I'm a novice C++ programmer and I started recently to dive into the world of game programming. After a lot of research and self-teaching, I found out about Irrlicht, and tried to get familiarised with this API. The main motivator for all this is an idea for a Real Time Strategy game I have in mind.
The name of the project is Commands of War. It will be an open source Real Time Tactics/Strategy game heavily based upon Soldiers:Heroes of WW2, Faces of War, Men of War, etc (the saga from Best Way Entertainment). For who doesn't know the games I'm talking about, their most important features are:
- the absence of resource management and unit creation (limited amount of units are available from the start to the end of each scenario); - the heavily tactical aspect of the game, with virtually every object and wall on the game providing an interaction interface for soldiers to take cover on/kneel/hide; - the "destructibility" of the whole scenario (buildings, walls, etc can all be shattered by grenades and tank shells, changing the scenario and forcing new tactical decisions).
Commands of War shall embrace these interesting features of the Best Way games, providing however a striped-down open-source alternative, with lower system requirements, and focusing mainly on gameplay. Many ideas for features and enhancements are "planned", like:
- a new unit management system, where each selected unit is assigned a number (1, 2, 3...) and each assigned order is given to one unit at a time; all units move at the same time to their positions only after the last unit is assigned an order (this makes tactical planning and playing a lot more fun and easier).
- a map generator with an inherent "cover spots" detection system - spots where soldiers can use walls or objects as cover -, to provide optimum replay experience;
- a fog of war similar to the Commandos saga (hence the first word of the project name), so that the player only sees what his soldiers are seeing, in a triangular directional fashion; unexplored map will be complete black, whereas areas that a soldier already looked at shall be marked yellow for 2 seconds, then orange for another 2, red for another 2 seconds and finally greyed out. This will provide real-time information to the player as to for how long has each area not been "patrolled" or checked out by any of his soldiers.
- waypoint system integration. This would provide additional tactical control and planning possibilites, eg. forcing soldiers to stick by walls or to go from one cover spot to another from A to B;
- at first, the game shall be geared towards online multiplayer player-vs-player, postponing the need for a robust AI (besides the basic pathfinding algorithms and such, of course);
- a button to auto-pickup relevant ammunition to each soldier a certain radius around them; this decreases horrid micromanagement pauses on the game;
- qualitative damage, instead of quantitative (eg. HP points). That is already present on the Best Way games, but only on tanks and vehicles; soldiers still have HP. I'll explain: instead of a soldier dying when reaching 0 HP, only hits in the chest or head, or more than X hits on the limbs, should be able to kill a soldier. Each hit will have a probability of causing death within 30 seconds after the hit. That probability would be, for example, 20% for each shot on a limb (the only way of killing someone hitting a limb is if that someone bleeds out -> for that, one must hit an important artery. One could say the odds are arbitrarily 20% of that happening), 60% on the trunk, and 95% on the head (these are far more vulnerable anatomic spots, of course). The only way to discover if the soldier had a life-threatening wound would be through a field medic, which should then decrease the probability of fatal outcome within the 30 seconds window. Nonfatal limbs would only sacrifice the soldier speed, aiming accuracy and range of sight, for instance.
- modes of fire: shoot to kill, only clear shots, shoot to disable (at limbs), suppressive fire, shoot at specific anatomic spot (...)
This might be a utopic goal for a rookie like me. However, I do believe I have the will power and determination to pull this through (at least part of it). And I think the project by itself is very interesting; maybe there are people out there willing to join the party! That would certainly be a huge help, I'd really learn a lot from working with another programmer(s), and the ideas I have are catchy (at least I feel so). It's a win win...