This game is © 2025 David Hammerle. All Rights Reserved. You are granted permission to download and play for non-commercial, personal use only. No redistribution or commercial exploitation is permitted. For any other use, please contact davehammerlecoder@gmail.com.
I made this game back in 2003 and 2004 and I spent about 500 hours total working on it. It's a real-time strategy game, but the player can only deploy units. The player has no control over deployed units after they are deployed. I was hoping to sell it as shareware and make some money off of it, but I had no clue how to actually do that successfully. It was actually possible to buy the game on many shareware sites for a couple years, but, of course, nobody actually did... Feel free to download it and play it. The download link and instructions for running it and playing it are below.
Download the .zip file from here and unzip it to a folder. There will be a file 'RacDep.jar' in that folder. You should be able to run the game by double-clicking that .jar file. If that doesn't work, you can try double-clicking the 'run.bat' file. If that also doesn't work, you can try running 'java -jar RacDep.jar' from the command line in that folder.
You can start a game against the computer by selecting "Play Computer" on the main menu. "Play Simultaneous" will let you play against someone else on the same computer. The 2nd player uses the arrow keys and Z and X instead of the mouse and the other player gets a red pointer on the screen. At the beginning of each game, you will be able to select which units to use in the battle and so will your opponent.
The player can deploy units anywhere on the map, but has no control over the units after they are deployed. The objective of the game is to capture all the buildings and wipe out all the enemies on the map. The buildings are represented by gray rectangles with images inside them. Buildings also provide deploy points, which can be spent to deploy more units. And they provide extra free units of whatever unit type is associated with that building. As a catch up mechanic, whenever a building is captured from the opposing player, it generates a bunch of extra units of the associated type proportional to how long it has been held by the opposing player.
Units show battle damage as black parts of them (randomly placed black dots). Units that are close to death will be mostly black. If a unit has a slowly expanding or contracting circle around it, that means it has a cooldown ability that will be ready when the circle is done filling or emptying. Units gain experience for killing enemies and such, and they level up. Leveling up gives the unit a permanent bonus and heals the unit to full health. As units level up, they become more colorful, starting off with only 2 colors, the player color and one other color and going up to at most 9 colors (including player color) at level 8.
You can right-click a unit type button to see a description of it in the bottom right corner. You can right-click a building to see some useful stats for it, also in the bottom right corner. Unfortunately, the ability descriptions can be a bit cryptic and difficult to understand. For example, an ability that impacts enemies inside a radius of 2 spaces of the targetted enemy is described as '2r aoe'. Also, right-clicking a unit on the map won't show you info about that unit.
On the opening screen, you'll see a bunch of options. The defaults are fine for most of these options. Each option is described here:
If you want a more detailed explanation of how the game works, you can download additional instructions here. However, I wrote those instructions back when I didn't yet understand the value of brevity, so they are very long and much more detailed than they need to be. Also, parts of them are out-dated because I changed the game without updating the instructions.
I made this game using straight java and java's 2D graphics API... and, of course, quite a lot of really terrible programmer art. If you can manage to tell what anything is even supposed to look like, you're doing well. To make it worse, I made it so that the units acquire more colors as they level up which makes it even more confusing to tell which unit is of which type. It's easier to tell which units are higher level, but that's not actually useful information.
The user interface was all custom and I made it using the java's 2D graphics API. I even made a fairly simple flow layout system, so I could just create a panel and add UI widgets to it like text and buttons and images and the layout system would figure out where to put everything. But I really should have just tried to use java's UI systems to save time.
Probably the most impressive part of the game is the AI that the units use to move around, attack enemies, and try to capture buildings. It includes pathfinding using the A* algorithm. One important part of the pathfinding algorithm is that allies that are not moving, as well as enemies, count as obstacless that must be moved around, but allies that are moving do not. This way a large grouping of allied units can move towards a destination together as a blob or cluster rather than turning into a wide line across. The fact that units will go around stopped allies makes it so that a cluster of allied units that is lined up in a column will spread out and turn into a blob instead.
Aside from pathfinding, the AI also balances a large variety of considerations. It considers a whole bunch of options including attacking an enemy, targeting a friendly unit with a buff or healing, and capturing a building. It accounts for the fact that it is more valuable to kill an enemy that is in the process of capturing a building or about to start capturing a building that a unit that is not. It accounts for targetting enemies with less health and enemies that have more powerful attacks and abilities. And it accounts for travel time pretty well.
I also optimized the AI a bit by not actually testing pathfinding for an objective until really necessary. And I made it so abilities that impacted enemies in a radius around the impact location to target each specific enemy rather than being able to target an impact point in the middle of a clump of units, but not actually a specific unit, again, as an optimization.
This game also has options for multiplayer, both simultaneous on the same computer, and also over the network. However, the playing over the network is not well tested and may still be buggy. And it has a save game feature even though the games are short enough that it doesn't really need it.
This game also reads in the unit definitions from a file 'spec.txt' at the beginning of each run of the game, so unit types and abilities and stats can be changed pretty easily if a player wanted to do that... assuming they can figure out what all the ability descriptions in spec.txt actually mean.