Rise of the Tribes

History

Worklog I started working on Rise of the Tribes about four years ago in Turbo Pascal using a home-made graphics library. I abandoned it when I switched from Pascal to C and started again about a year ago using the Allegro library.

The game is currently progressing, although most of my attention is currently aimed at building the engine. This is going reasonably well.

Timetable

Below each version is what new features/improvements I have in mind for it. To the right is the (intended) release date, or blank if no information yet.

0.1.8 (current):                                            Early July 2002
 * Fully functioning upgrade/build commands
 * Reworked scripting language and drawing code
 * Passive resource management
 * Improved makefile compatibility for new platforms

The 0.1.8 version will be compatible with the 0.1.7 datafiles; it is mainly an
update/optimization/generalization version

0.1.9:                                                      Summer 2002
 * Fully functional tech-tree support, with prerequisites and upgrades
 * Full resource management
 * New units and a new setting (Middle-Ages)
 * Multiple map tiles and map editor
 * Working attack/damage system

The 0.1.9 version will *severely* break compatibility with older datafiles.
Later versions will also break compatibility, but maybe not all of them.

0.2.0:                                                      Summer/autumn 2002
 * Engine fine tuning and expansion (also for later versions)
 * Automatic resource management, upon request.
 * Preliminary AI (for testing)

0.2.1 - 0.3.9 (?)                                           Winter 2002
 * Unit and setting finalization
 * Improved AI/customizable AI

0.4.0 (? could also be added earlier):                      Spring 2003 ?
 * Multiplayer support using LibNet (or maybe HawkNL)

0.4.0 - 0.5.0 (?)                                           Spring 2003 ?
 * Unit and setting balancing and (multiplayer) testing

0.5.0 - 1.0.0 (?)                                           Summer 2003 ???
 * Campaign creation; final tweaks
 * Documentation in .PDF format

Worklog

8-9-2002
Made the game case insensitive with respect to matching unit names. Added a _ to the end of the message string. Preparing for 0.1.8 release.

4-7-2002
Further generalized the build/upgrade scripts, which are now completely general. Resources are checked in all build/upgrade scripts.
Fixed several small bugs.

30-6-2002
Made the scripting language even more stack based and added support for passing arguments to scripts. You can now build up your base from scratch (and as such, you start from scratch).

29-6-2002
Also, it would seem that the problem doesn't occur when the queue size is set to 1. From the look of things, it would seem that this bug is *again* the queue icon bug that appeared shortly after the introduction of the queue system. It seems that it was never properly fixed - and I'm still at a loss and too tired to look into this right now. Build queues are disabled for now, until I can do a proper, new implementation. The old way wasn't flexible enough anyway.
I have checked and the bug was already present in 0.1.7

28-6-2002
Narrowed the bug down. It only appears to surface when units are being build at multiple structures and thus there are multiple queues waiting. I can build up to 200 supply easily with just producing units at the cave, but throw in a few huts and I don't even reach fifty supply before the game crashes. Narrowed it down even further, in fact. The problem is with a second construction structure of the same type. First hut and cave are no problem, but second (or later) hut guarentees trouble.

26-6-2002
Major showstopping bug. The game crashes randomly and data gets corrupted in the building process. Things are fine as long as the upkeep is ok and canceling buildings works properly, but it goes wrong when there aren't enough resources to build a unit. Right now, the unit is supposed to wait until it can be built, but somehow in that process, memory is corrupted.
On a positive note, I eliminated a possible bug in the way the units scripts are ran (I made a copy of the unit list, since some script instructions actually modify the unit list).

25-6-2002
Cleaned up the source code and added passive resource support (the upkeep and morale resources). Things are pulling together nicely - I may actually make my 0.1.8 release deadline!

20-6-2002
Further added support for dirty rectangles in the interface drawing code. It is almost ok now, but it needs code to erase things that are no longer current. Also, the minimap isn't properly redrawn whenever it should be. Then there could still be improvements on when to draw what.
Fixed a bug with the menu button reactivating when the mouse was over it and the menu dialog was cancelled from the keyboard.

16-6-2002
Made further improvements to the interface drawing code. It is more modular now and should be more efficient. I'll still need to modify it a lot though before it is really efficient. The minimap drawing code could benefit from it's own dirty-rectange system so it doesn't have to reblit the entire minimap each frame.
Fixed an issue with the command-map rectangle on the minimap changing size when the grid wasn't focused on a whole tile.

2-6-2002
Cleaned up the makefile - the same file will now build for DOS, Windows and general UNIX systems (Linux, Sparc). Now it'll build without even having to change the makefile!

27-5-2002
I got the program to compile and run on a SUN Sparc today without changing a single line of code (but after hacking about with the makefile). Cool stuf :-)

23-5-2002
Fixed a crash bug when changing the gouraud setting from the main menu when the map data array wasn't initialized.

20-5-2002
The game will now work from any directory, provided that the variable game_dir in the [game] section of the config file is set properly. An install script should be able to do that; right now it must be done manually.
The default game dir is still the current directory under all platforms.
Fixed a small bug that disallowed scrolling with the minimap while the mouse button was held down.
Preparing the game for the 0.1.7 release.

19-5-2002
A green/red grid now appears under the mouse when giving a build command. When the grid is all green, the structure can be placed there. Also fixed a bug with the buildcommand failing if the builder was already at the target location.

3-5-2002
Added a `click' sound when a command button is pressed. Changed the sound options dialog box so that the midi driver can be changed on the fly.

2-5-2002
Tweaked the ## centre command slightly so that it now only works if the key is double pressed quickly.

27-4-2002
Restyled some of the game input code and fixed the sound options dialog box. Adjusted the base graphic routines to take advantage of hardware acceleration if that is available.

20-4-2002
Fixed some minor issues related to the command stacking and some ## selection/centre related bugs as well.

16-4-2002
Added the ability to centre the map on a numbered unit group by pressing ##. Tweaked and finetuned the production screen. Fixed several small bugs and memory leaks.

14-4-2002
Added a progress indicator and the ability to cancel a construction command. This is working very smoothly and nicely, but there are some small bugs that need to be fixed.
Added graphics to the building code so structures are actually being built.

12-4-2002
Renamed some of the campaigns. Fixed the (tiny) unit overlap bug where sometimes the overlap between a unit and a building would depend on wether one of them was selected or not.
Fixed bug in mini-map colours changing incorrectly when selecting a unit belonging to a different player.

9-4-2002
Added a lot of minor things that needed adding eventually. You can now perform the same actions on the unit portraits that you can on the units themselves (ie, select, deselect). Clicking on the leader's portrait will centre the map on the leader (maybe change this to centre on the group instead?) and giving auto-commands by rightclicking the mini map will actually work now.
Fixed the stupid bug in find_closest_path that prevented it from using the data from the previous calculation and units will now move to a nearby point if the selected target itself is unreachable. Must invalidate this data after each game cycle though.

7-4-2002
Added a new structure: the Cave. It will serve both as a command centre, a warehouse and a residential structure.
Implemented the mini-map, which makes moving around the game screen much simpler. Modified some graphics as well.

6-4-2002
Fixed several smaller bugs and cleaned up the pathfinding code. Added volume controls to the options menu and fixed a silly typo that caused the game to ignore the midi_volume set from the setup program.

3-4-2002
Fixed a bug when giving a command to a group of units that isn't known to some units in the selected group. In particular, the game crashed when hitting the `attack' button while a Medicine Man was in the group. Fixed some spelling errors.

2-4-2002
Code cleanup. Targeted and non-targeted unit commands are now handled in a more sensible way and are no longer treated differently. Canceling a build command no longer crashes the game and giving a build command to a group leader no longer sends the whole group to the target location (but changing leaders and giving a new move command does cancel it).

On a down side, I noticed a bug in graphic overlap detection at the edge of the viewport. Needless to say I fixed that too...

Also fixed the (broken) 8bpp code, although the units still don't have the proper team colours and some other colours are converted wrongly as well. Noticed a strange bug in the transition between the fog-of-war and the black shroud that is very apparent in 8 bit mode that as yet eludes me.

1-4-2002
Cleaned up the build process. The game now compiles (under Linux) without a single warning. Restructured the source tree. I should probably also clean up the source directory, since there are some old files there that are no longer being used...
Uploaded an alpha release to my homepage and submitted it to allegro.cc

31-3-2002
Made a lot of progress. Unit grouping now works and upgrading one unit no longer `upgrades' the rest of the group (no more Hunters changing to Painters).

23-3-2002
Many small tweaks and fixes. Fixed the crash when scrolling to the lower left corner of the command map (sortof). Finally fixed the path finding code to use A* instead of the dumb code I started with and the buggy slow code that later replaced it.

17-2-2002
Fixed some minor issues regarding the fog-of-war; in particular, the update code no longer marks and registers units for redraw operations if the tile is (partially) obscured by the fog-of-war. Fixed problems when starting the game in 8 bit mode, although it doesn't work perfectly yet. The game crashes on selecting shading/rendering instead of bitmaps, and the team colours aren't set properly.

5-2-2002
Extended the fog-of-war to a bitmapped option. It looks even more like WarCraft II, but it avoids the slow rendering. Began implementing the command panel so the player can actually give orders.

10-12-2001
Moved over from DOS/Windows to Linux as my development platform. Restructured the source directory tree: all source-code files are now in src/ and all header files are in include/
Added the in-game menu button and options dialog. Fixed some issues with the fog-of-war sometimes shrouding the entire map.