Worklog for NTense

Worklog 1

Return to Worklogs

Final(Posted 2003-04-10)
It seems I've pretty much neglected my worklog, but so much has been going on.. I'm in the process of publishing Cubex, and have just put up my website Forest Mark Studios. I'm pretty excited about all of the things coming down the road, but I think this is probably the last entry I'll have on this worklog.. Any future developments will be posted on my website.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

A(Posted 2003-02-03)
I posted a call for Beta Testers in a few forums.. I need a little help testing the rest of the MP online, and figure it can be done quicker with a few more people on hand. Hopefully my mailbox won't be too flooded (or for that matter, too empty), but we'll see. It's getting pretty exciting to see the product come together!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Cubex almost ready(Posted 2003-01-31)
OK, I haven't been very good about keeping up an online worklog. Sled Jammer has taken a big back seat to my puzzle/strategy game, Cubex. Cubex is about 90% complete!! I am currently making final Game levels, and polishing up the code a little bit. Both Single and Multiplayer work well so far, though I've only tested the MP with 2 players, and the game can handle up to 4. So I need to beta test with 4 players, but I think I'll wait until I've got all the game levels completed before I go there. For now, I'm cranking out levels, optimizing the code, and looking at publishers. It feels good to almost be done with my first one!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

In the face of Change(Posted 2002-10-21)
Lately a lot of effort has been to merge the movement code written by my partner in SJ with the main code. This has proved to be a temendous challenge as it was written "non-modular". So much of it is being rewritten, but so far it's coming along well. Next will definitely be shadow mapping and level loading.

Some rudimentary(sp?) work has been done on collision detection.

Finally, object placement and physics system needs to be implemented.

I just received some disturbing news, stating that I will be out of a job in 3 weeks. So, much of my time is now being devoted to job hunting, and figuring out how my wife and I are going to afford 2 house payments until one of our houses sells. On the positive side, this provides an excellent opportunity to switch to a programming related field. I just don't have the passion for healthcare that I used to.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Back to Work(Posted 2002-10-09)
I'm back from my Honeymoon (it was GREAT!!!), and working hard on 3 projects! That's right, 3! SledJammer is still the biggest fish in the pond, but I decided to work on 2 smaller products to publish in the near future and hopefully get some much needed cashflow going. One is a puzzle game which is about 50% complete (after about 6 total hours of coding and graphics work) , and the other is a 2D space shooter/breakout variation. I hope to push these to a budget software publisher before December.

My partner has written a pretty good control system / and camera code for SJ. We now have the sled on scene, with some rudimentary collision detection. Before we go any further though, we've got to merge the code. It wasn't written modularly (is that a word??), but needs to be so that multiple ships can be passed to the ship control module. Once we merge all of it, I'll add shadow code.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Editor(Posted 2002-09-07)
Today I put together a VERY BASIC world editor for SJ. It's console based (though I think I'll make it graphic soon), and currently saves 3D terrain tiles/ respective their locations to one another, level splash & movie files, and player start position. I'll be implementing more as I progress with SJ, but for now that'll do.

Added a HUD element (weapons display) to the cockpit display. It needs some tweaking (don't we all!) but was relatively easy to put in place.

I pretty much have spent the rest of the night working on my Wedding Programs (not code)... My fiancee and I have been toiling away at one endless task after another. It's no wonder people need a honeymoon after their wedding!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Graphics Selection fixed(Posted 2002-09-06)
After an hour of stepping in and out of my code one line at a time, I finally fixed the in-game graphics selection menu. It works well on my "test bed", which had proven to show the flaws in my program well!! ;-)


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

First(Posted 2002-09-05)
OK, here are the very first screenshots of SledJammer. Not a tremendous amount happening here, just trying to get the terrain system down, and the atmosphere looking right. Camera movement has been coded, and soon the first "Sled" (thus the name) will be added. An untextured picture can be seen at the bottom in the NEW GAME menu shot.

The game menus are animated but obviously that can't be seen in these stills. All of these were taken at 1280x1024x32 resolution. As you can see, it's running at 63 fps right now. That's what the limiter is set to (which works wonderful!) I've run this on a 400 Mhz machine with 8 meg of ram and it ran at 1024x768x16 at 20 fps. Despite the lower framerates, all the movement/acceleration were just as smooth as on my development system! This is the beginning of the first level of the game, which will be a "Training" level 'ala mechwarriors training sessions'. Hope you enjoy!!


[Deleted]

Just some terrain shots with a little river running through the scene. This Trainer terrain is scaled to be 16 square kilometers. All the textures were manually drawn in Photoshop. No lightmaps yet, and haven't placed any "objects" in yet (physics tests with the sled are being conducted with another level).

[Deleted]

This is a pic of my options menu.. It of course doesn't have all the options placed in yet. I just wanted to get some bare bones in first to work with.

[Deleted]

I am pretty pleased with the water effect I got on this level. I made about 16 different water textures in Photoshop, and this one so far has one the prize for my favorite! I'm working on coding a procedural water tex, but I don't know if that will put too much of a hit on the processor to really make it worth it.. We'll see!

[Deleted]

My Main Menu!! I developed a mouseOver command to handle this menu system. You can see the New Game button "highlighted" as my mouse cursor moves over it.

[Deleted]

Above is an untextured Trainer sled. It's my first and may very well be revamped, but for now it's what I have to work with!

I've gotta go back and clean up a lot of code, and am going to revamp my graphics selection code tremendously!

Started working on the level loading code today. Initially I have the function set to hold an array of 16 terrain tiles (each tile is currently scaled to be 4x4 kilometers or 16 square kilometers). My type structures are getting a little more complex than I would care for, but to keep everything as modular as possible I'm trying to hold all objects in respective Type structures.

Well, it's getting late, and I've got work tomorrow, not to mention more wedding planning ahead of me this weekend!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Terrain and Atmosphere(Posted 2002-09-03)
Well, I sometimes feel like I'm going 3 steps forward, one step back.. Right now I feel like I'm in that one step back phase! I've been wrestling with the Resolution change function from the options menu after testing it on a number of systems and reallizing that while it works perfectly on my development system, it doesn't on others.. I think I've got it somewhat improved though, but need to take it to other test platforms..

I've added some visual improvements to the GUI since the last entry. Mainly animations, but also some performance tweeking.

The majority of what I've been doing is building(modelling and texturing) the first three levels for the game, and designing a level loading/scripting system. I've achieved pretty good results so far(at least with atmosphere, clouds, and sun w/lens flare) though my water texture leaves a little to be desired!

I feel like I'm pulling multiple jobs right now! Definitely feel that I've been pretty heavy on the graphic arts this last week, learning to use Photoshop relatively well(creating my own brush textures now!!!! Whohooo)!

Recent additions:
------------------

---------
| GUI |
---------

-display player ship in NewGame Menu
-Allow player to create their own game file under their name
-Start game button w/animations
-text entry routine (still need to place locallize this in it's own function)

--------------------
| GamePlay Code |
--------------------

-accel/decel code
-level atmosphere code ~90% complete
-integrated complete gameplay into the GUI

With my wedding just 18 days around the corner, I don't have an abundance of time either. I'm grabbing 10 minutes here, 20 minutes there to tweak code, and test the results!

The "To Do" List:
-terrain tile system (~10% complete)
-Level loading system
-Texturemap ship
-implement ship model+physics
+++++ include soundfx with model movement/firing
-HUD (~5% complete)
-Tutorial level models
-Tutorial voice and scripting

This should be more than enough to keep me busy for a while. I hope to have a playable version of the tutorial within the next 2 months (by Nov?? Thanksgiving?)


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

GUI Progress(Posted 2002-08-24)
It's been one month since the Sled Jammer project was conceived (sp?), and I feel like a lot of progress has been made. The GUI options menu is complete minus keymap settings which will be added after the control system is setup and running. Speaking of which, my partner started this week with testing some sled control code, so hopefully that won't take too long to complete.

Started on the New Game menu, which is about 20% complete.

After the New Game interface is complete, level loading/scripting will be the next BIG project. I have already laid out some preliminary thoughts in the design document, so hopefully I can build around that.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Terrain Tests(Posted 2002-08-22)
Things have been pretty slow in development lately. I've only had about an hour total over the last few days to sit down and code, so progress has been minimal.

Began building the terrain level for the first 3 tutorial levels. Textures were created in Bryce, but need to be pulled into photoshop and touched up..

Added a few functionalities to the GUI, and removed the ESC functionality so that you have to use the "Exit" button to exit out.

Added code to free resources when leaving menus.

Created a design document to help keep track of progress and guide development.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Programming Mayhem(Posted 2002-08-18)
Man... I just spent 30 minutes writing this huge Log entry and accidentally hit the back button on my browser and lost it...... UUURRRRGGGGGGGHHHH.. Well, it's almost midnight and I don't really have time to write it again, so I'll just post a summery of this weekend's coding events:

1) Gained a "partner in crime" to assist with this project.
i. His first project is player movement
with gravity simulation

2) Fixed a bug in the 3d sprite move routine so that now times under 1 second can be passed to it

3) Added 4 functional buttons to the GUI

4) Added a graphics mode selection and in game change routine

5) Converted the game engine to a Message based State Machine (for lack of a better term)

6) Did a TON of housekeeping to my existing code.

7) Gave the GUI it's own file, and mouse movement it's own function (rather than being embedded in the GUI)

8) Added multiple sound effects to the GUI

9) Added memory clean-up routines

So, it's been a busy weekend.. I polled the forums for a bug I'm having with the lower resolutions.. Seems only every other row is being drawn on the screen. Things look pretty bad. Will have to come back to it when I'm fresh, and maybe try it on a different system to see if the effect persists there.

It's getting late.. I've gotta go to bed.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

More Menu Functionality(Posted 2002-08-16)
In the next 45 minutes I've gotten to sit down at my home computer, I improved more of the GUI..

1) Fixed the bug in the 3dMouseOver command (which is now posted on the code archives)

2) Fixed the bug I was having with the text formatting (thanks to all on the forums for their input on this)

3) Improved the animation in the game menu.

4) Added partial code for Graphics Mode Selection Routine, Music and Sound Volume.

So, the options menu is coming along nicely. I think the others will go much faster once I get this one completed to use as a template! I'm pretty excited about getting the GUI done. It's my first "mile marker" in this development process!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Menu Functionality(Posted 2002-08-14)
Completed some menu functionality yesterday.. Just with the options button moving to the options window, but I only had about 45 minutes to work on it.. Also developed dynamic "Frames/borders" for menu functions.

Experienced problems with text formating.. I received a 'Font does not Exist' when trying to SetFont after the load.. hmm. Will check the forums for an answer.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

GUI Progress(Posted 2002-08-12)
In my last entry, I noted an entity doesn't exist error that was driving me nuts! Wouldn't you know, I was saving the wrong path name in the data file!! Sometimes you look over the simplist mistake!

Anyway, yesterday I worked on my GUI, specifically the main game menu. I wrote 3d mouse functionality, a 3D Mouse Over command (though its got a quirk [not quite a bug] that I'll have to work out later), and highlighting buttons. The menu runs pretty smooth, and contains animated layers! Also added the bg_music for the Game Menu. I still need to add "functionality" to the buttons, and create the "sub-menu" routines. I also improved the data file routines..

A large part of this time was learning to work with sprites in a 3D environment, and learning PhotoShop. Things are coming along well though.


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Debugging(Posted 2002-08-09)
OK, so I've spent some pretty impressive time coding and testing my compound data types to hold most of the game object data. Also, I've written routines to write most of this out to files. I'm having problems reading one of the data members though, and I haven't been able to get the debugger working to figure out what what's going wrong. All I'm doing is storing an object's model path, and then retrieving it to be displayed, which "loads fine" but then gives me an "Entity doesn't exist" error when I go to position the object?? Hmm. It's kind of stumped me, but the Forums have provided me with some tips on using the debugger, so I'll try tonight when I get home from work to resolve the issue..

Next on the To Do List:
Develope the GUI!!!!


I think I'm going to try and build a GUI library. I know there are a few out there, but I think developing my own will be good for learning (if not test my patience!)..

Until next time!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Hours of Coding(Posted 2002-08-07)
Today I opened NotePad at work, and spent endless hours coding (or recoding rather) my SledJammer. I decided to restructure the entire program and make it as modular as possible. I'm doing this to make my code more portable, so that it can be used in other engines. In addition, I'm making the code very abstract, and trying not to hard-code anything. This should make editing levels and attributes much easier!

So, after coming home from work I took my files I revamped in NotePad, and pulled them into B3D! Luckily very few typos, but I did run across something that took me a while to work through. I am using compounded types (types within types) to form complex structures. It's the closest thing I can do to get mimic classes and inherited structures. Luckily, after hours of staring at this forsaken monitor, I have my existing code bug free!

Added ScreenShot Code (untested)
Added Basic movement code
Improved the graphics initiallization sequence. Now it searches first for available 32-bit modes and selects them if available. 16-bit mode issues a warning of decreased graphic quality.
Added the framework for gravity code (each object can be effected by gravity differently! Each object has a gravity modifier value, so a feather can "float" gently to the ground while a piece of steel will fall hard.. There's a default gravity value that effects all objects, and then the modifier optionally effects that initial value).

To Do:
-Create a basic "Test Level", and get my ship moving
-Find/make some suitable sound effects!

Well, I'm not going to write a book tonight (my fingers are pretty tired ;-), but I think the improvements I've made will make the entire development process much smoother!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

Book is In(Posted 2002-08-04)
Well, yesterday I got the "official" B3D book and boxed version. I was pretty excited. Even more so simply because the box was from the UK... I don't think I've every received mail from overseas before, so it was cool seeing their postage marks and everything.. OK, I know that sounds weird, but I thought it was cool.

So, the first thing I did was open the book and fly through it looking for morsels of wisdom. I found a few suggestions that should help in structuring my software, so off to the drawing board for more development!


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>

SledJammer Engine Build(Posted 2002-08-02)
Hey! It's my first B3D worklog ever!! I feel like I should get a prize or something! Anyway, I've got about 5 game designs in my feeble brain, and decided to work on the "easiest" one first. I'm projecting a 6 month development period for it since I'm currently the only one working on it, and learning/adapting to B3D from C++ as we go. I plan to market the game after it's completion along with a MOD-guide to help player's to build their own levels. Possibly some development tools (though may keep those proprietary {sp?}).

Intended Features:
Multiplayer Support for up to 16 players
Single Player mode
Smart-Variable decision AI
Includes flocking patterns
Includes coordinated hunting
Realistic Physics
Soft Shadows
Particles
Realistic Skies (multi-layered/animated)
Rolling Fog/Haze keyboard/mouse/joystick support
Fully Customizable KeyMapping with the ability to save custom KeyMaps

SledJammer(tentative name) game design began July 25 2002. To this point, the majority of work done has been with in-game utility functions, types, and file structures. To date, the following have been added:

CreateGameConfig (complete) - Creates GameConfig.DAT if not already made.

PreGameConfig (complete) - If GameConfig.Dat has not been initiallized once, initiallize with default settings

CheckGameConfig (part-complete/doesn't correctly call CreateGameConfig if file doesn't exist?)

UtilityFunction (complete) - based on global flags, reports FPS, Triangles Rendered, Camera Positioning, etc..

Created Types:
Player (includes Ship, KeyMap type)
Ship (includes Weapon type)
Weapon
KeyMap

Today, I ran my first test of the engine. Not too much happening yet on the screen yet: 1 terrain(textured), 1 model(2500 polygons, textured, poly-reduction will take place before launch), BG Music, Movement via cursor keys, and 1 light source. Ran smoothly at 1024x768x32 at 76 fps(though I'm sure this is my monitor refresh rate). This is without a lot of optimization, but none the less, I got things up and moving.

INPROCESS:
Working on a level/world description file format, and a level script parser.

Currently looking for 3D artists/animators (I love 3d modeling, but if I did all the models, it would take me at least 2x as long to develop)

Researching Shadow routines. I want to be able to pass an entity to function and have shadows calculated in that function.. Needs to be fast! Most of what I have encountered is too slow for multientity shadowing.

To Do:
ScreenShot routine
Collision Detection
Physics
Enemy AI
Networking (UDP vs TCP?)

Well running out of time for this entry. Will post again once more has been added.

Before ending just let me say 'Mark, this is an incredible piece of work! Especially coming from one primary coder! My hat is off to you!'


_________________________________________
Desktop: Athlon 2100 | 512 MB | 128MB Radeon 9000 Pro
Laptop: Intel P4 2GHz | 256 MB | Radeon Mobile 32MB
C | C++ | Blitz3D | VB | Java
Forest Mark Studios << Cubex | Horse Essentials | Military Essentials >>