The posts below this one are my original Nova Dawn Development Journal which I updated between 2005 and 2007.
I haven't been doing anything on Nova Dawn recently as I've been working on my new game Plasma Duel. I'll be back to work on Nova Dawn once Plasma Duel has been released.
I've also been using the break to reassess the gameplay of Nova Dawn. The plan has always been to begin with a single vehicle, working for a faction, and work your way up until you are in command of the faction. I've been wondering if I shouldn't just put the player in the role of the faction commander from the start. The beginning of the game will be important strategically, and if the player is only a lowly operative he has very little control over it.
The compromise solution I have settled on is to stick with the original plan. But when you are promoted to an officer or commander, that allows you to begin new games at that rank. That keeps the gentle introduction of being given missions and following orders. But allows more experienced players to take control of their entire faction from the beginning.
I've done quite a bit since my last update here. Too much really to comment in detail upon but I'll mention the important updates that I can remember. The screen above shows some of the updates. The bases now have doors that open and close wnd turrets which track vehicles in front of the base. You can also get out of your car now, walk around, and get in a different car if you wish.
One of the most important fixes I made was to speed up the frame rate a bit. Up until a few weeks ago, in busy scenes, in forests for example with rain and headlights, the frame rate was dropping down to 20FPS. This was unacceptable and I spent a lot of time rewriting and optimising my game loop to very little effect. I eventually fixed it ny replacing my multi-purpose blit routine with two specific blit routines for specific purposes. One of these is twice as fast as the old routine and is used for most of the sprites I move around, so performance has been boosted greatly and I'm getting the steady 30fps I'm aiming for.
I also created a custom vector font class which I'm currently using to display the randomly generated base names. Base names have a prefix and a suffix, the suffix being common place name endings like "Ford" or "Ton". This gives about 2000 combinations of fairly convincing sounding names.
Next on the agenda is the crafting system and NPC AI.
The main news is that I've completely rewritten the code that creates my road network. It makes a much more realistic network now that connects together 30 bases scattered around the map. The old method used to result in roads that ran parallel to each other in a nonsensicle fashion. The new algorithm connects roads and bases together using the shortest route available.
I've also got the bases so that you can drive into and out of them now, lots of weather effects to go with the day/night cycle and a major improvement to the HUD to show the direction of nearby vhicles. That last improvement has settled some worries about how difficult the combat was when fighting other cars. Because of the small screen, enemies quickly leave the viewing area especially when engaged head on. Now that I have colour coded indicators to show where other cars are even when they are off screen, its much easier to engage and fight them.
Next I'm going to be working on the gathering of resources and constructing new components aspect of the gameplay. I'm looking forward to this as its going to be a key gameplay feature and I'm quite proud of the system I've come up with for the manufature of new parts.
I'm getting married in three weeks time and then I'm off on my honeymoon. I'll see if I can post some screenshots inside the base and of the new road networks before that.
As you play Nova Dawn there will be a day/night cycle. Time will be scaled town so that a full 24 hour cycle will take 12 minutes. As it gets to the evening the landscape will become dark and the cars will have headlights to light the way ahead. I've added the code for headlights now and taken a few screenshots.
Here is the basic design for Nova Dawn's gameplay.
The game world is an island, the size of the island is 600 by 800 tiles (although this might be subject to change), each tile is 120x120 pixels in size. Therefore on a QVGA device the game world is 300 screens wide by 300 screens tall. Each tile can be either grassland, desert, tundra, mountain, marshland or water. In addition the tiles can have roads and features on them. Features are rocks, trees, ruins and buildings.
The player travels around the game world in a vehicle. The vehicles available to be used are bike, trike, buggy, coupe, saloon, truck, van and APC. The player can also travel around on foot. The handling of vehicles is affected by the terrain they are travelling over. Vehicles can be customised with different weapons, engines, wheels and armour.
There are a number of competing factions in the game. The player chooses a faction affiliation at the start of the game and begins the game in the capital base of that faction. Each faction begins the game with a single base which is that faction's capital. The game world has over a hundred bases scattered over it which all begin the game as neutral, apart from the faction capitals. Most bases are linked together by a road network. When a faction member, including the player, arrives at a neutral base he can attempt to recruit them into their faction. The status and equipment of the player that approaches a base affects the likelyhood of that base being recruited. If the base refuses to be recruited the faction may decide to conquer the base by force. A base will surrender when it has taken a certain amount of damage.
The player can rise up in ranks within his faction. To begin with he is at the lowest soldier rank. Next comes Squad leader ranks where the player gets access to "wingmen" and better equipment. After that comes Base leader where the player get access to base production and missions. Finally as Faction Leader the player may command any base.
The primary gameplay is the gathering of resources for production into upgrades to your vehicle. Factions will be competing for resources and can be peaceful, hostile or at war with each other. The basic resources are metal, plastic and alloy, with alloy being much rarer than metal or plastic. These resources are scattered around the game world semi-randomly, with concentrations in places such as ruins. Bases have workshops which can combine the basic resource into processed resources. Examples of processed resources are explosives, machinery and electrics. These can be further combined into complex resources such as electronics, high explosive and instrumentation.
The task of exploring, discovering and gathering resources is made more difficult by frequent attacks by bandits. All of the factions begin the game away from one corner of the map. This corner of the map is the badlands where all of the bandits originate. The final goal of the game is to destroy the bandit base and kill their leader.
I've just started a new project that I will be developing along side Nova Dawn. The game will be called Elements and is probably going to be as much of a toy as a game. Its going to be half way between a cellular automation "life" program and a sand picture program. You'll be able to add different Elements (Fire, air, ice, oil, water, sand, life and stone) with the stylus and watch them interact with each other. Its a much smaller project than Nova Dawn and I hope to have it finished by about March or April. For Nova Dawn I'm aiming for a Christmas release. Thats a bit optimistic but its good to have a goal.
I've been working on the code for weapons over the past couple of days. I've got the machine gun looking very nice now. The guns smoke, bullets stream at high speed, and there are sparks and more smoke when a bullet hits something. I've also got the code for damaging other vehicles based upon where they were hit. I even have bullet holes appearing on the cars (and blood on the pedestrians which Jen thinks is a bit gory) in the location where they were hit.
I'll take some more screen shots to post soon.
The reason I've not posted for a while is that I got a bit stuck at the point of testing Nova Dawn on an actual Pocket PC. For the sake of convenience I've been doing all my development work on a desktop PC and hadn't created a PPC version. One of the reasons behind this was that I'm using STL and I knew it was going to be quite a tricky task getting STLPort working.
I bit the bullet one night a few weeks ago and got the whole thing compiling up using STLPort in the embedded compiler. Thats when I realised the memory footprint the game had. My tiles were too big and I had too many of them. Over the past few weeks I've had a couple of iterations of refining, resizing and optimising and finally last night I produced a vastly slimmed down version of the game that runs comfortably on my pocket pc. The game even looks just as good as the bloated version.
I'm now looking forward to coding the guns and vehicle damage. Other bits on the to do list are a random name generator for bases, which will be fun, and a rewrite of the random map generator.
Whilst play testing the gameplay side of things with bits of card, I've actually created quite a fun board game. I've been spending more time working on that recently than the computer game. I might include it in the final game distribution as a PDF file users can print out and play.