First of all I want to say that this has been a really cool idea for a competition - as a programmer finding a good set of art assets is always the hardest part of the job, and having a hard (short) deadline also really drives the motivation. I also want to thank dbb for creating the awesome mech set of sprites - they look really good and pretty much inspired this game on their own.
For this competition I was pretty ambitious: I tried to build a complete RTS - including LOS, pathfinding, fog-of-war, collision detection, squad-based tactics, and minimap. I didn't work on the game over christmas, so the whole thing was built in about 2 weeks of after-hours time. I was hoping to spend more time on the AI, but it turns out building and debugging things like A* pathfinding and collision detection are time consuming!
Apart from the amazing sprites that dbb created, Mechwar is inspired by Code Geass: Episode 11, where the Black Knights intercept the Britannian army with an epic battle at Narita, and more recently, Avatar, where near the end the Mech's are part of the massive battle at the end, again in deep forest. I was going to call it something more inspiring, but in the end wasn't feeling very creative and stuck with being literal.
The central theme of CodeGeass is that Lelouch is a mastermind, who directs his units like chess-pieces, but doesn't control them individually. I was trying to get the same effect, so made control work at the squad level rather than the unit level. It's also why you cannot tell units who to attack, but instead need to move them into position.
Unfortunately I missed being able to finish the other half of the orders: specifying squads formations, engagement rules, follow-up behaviour, target priority, etc. The goal was to use scouts and other squads as lures, to drag the enemy into ambushes. It doesn't quite work though atm, because the enemy don't chase you once they engage, they just stick to their current path. That's something I might fix later (post-competition).
The controls themselves are also un-standard, that was done to support giving more complex orders (which doesn't work). Unfortunately I didn't have time to come up with a better set, but the in-game instructions should help.
I'm pretty happy with a lot of the features that did make it in though:
- Squad colours works, and the trees are also resized/tinted to make the forests look interesting,
- Healthbars transition colour and from translucent to opaque as units take damage,
- Squads attempt to find a path to the target without walking through trees,
- Units will automatically attack the nearest enemy with the lowest hp that they can see,
- Units won't shoot their friends in the back (mostly),
- Fog of war, group selection, and the minimap work,
- Performance is great on fast machines and okay on slow machines, even with lots of units and projectiles,
- The game is fully customisable.
The game comes with 2 xml files, a Scenario document and a Units document. All units damage types, speed, hp, etc can be edited, and the scenario can also be changed. You can add melee units to the game, but unfortunately, melee attacks aren't supported (yet).
The whole game has been written in C# .NET, using Tao.OpenGL for the graphics. It requires .NET version 3.5. I should be able to re-compile it using Mono for linux/MacOSX, but its not something I've tried yet. I also used this
for the pathfinding and this
for the collision detection.
I'm really proud of the technical achievement of the game, Its still pretty fun to play, even if its not quite as complicated/interesting as I was hoping it would be.
Finally, I'm using Courier New (system font). I wanted to use some of the supplied fonts but my engine doesn't support glyphs and I didn't have time to convert them to font files. Hopefully that's okay in the rules - I haven't included the font, it runs off the system.http://www.4shared.com/get/193778199/2e741878/Mechwar.html