Monday, May 5, 2008

Update on progress

It has been almost 2 months since I last made a post and a lot has progressed in this time. Below is a screenshot of the latest build:


To briefly go through the features in the screenshot:
- New unit models are featured for the worker, soldier and archer and are all fully textured
- The building model from a previous post is now in-game and fully textured
- Volumetric shadows from units and buildings
- Trees are randomly scattered on the terrain with variations in size and will flutter in the wind.
- There is a new water shader in the game, although I am not yet satisfied enough to display it in full.

Other features under the hood which you can't really see in a screenshot include:
- The first pass of networking code is in and running. Multiple computers can connect to the same game although if any network errors occur the game currently quits on all computers. I am yet to implement the team/player mechanics so everyone can effectively control everything. I haven't noticed any sync issues yet and I am also yet to try over a long distance/high latency environment.
- A database back-end system controls the various game data structures. These include information about models, shaders, textures and materials as well as statistics about various game units and buildings. It is quite trivial to add an extra game unit or building and can be done by editing the database file. This file also specifies which units can build which buildings, which buildings can train which units etc. The database is just an XML file so is easily human readable. I have used the TinyXML library to do my parsing as I needed a simple lightweight cross platform parser and this works quite well.
- The groundwork for the GUI system has been written with button widgets and event messaging systems in place. Font rendering has not yet been implemented which is why this has not progressed much so far.
- First pass for fog of war has been done but I don't like the way the fog looks so I haven't showcased this yet.

My objectives are currently set on the game logic:
- Implement the player/team structures
- Add mechanics for resource collection
- Add build mechanics
- Add training mechanics
- Add the combat system

When these are all in place the game will be playable (although in a fairly crude state) . I will then be able to move on to interface controls and general polish.

No comments: