- A sequence of battles on a Total War scale, and a player character commanding one side.
- Player's sight limited to their own field of vision, and not including their soldiers' vision.
- Player's ability to command limited to earshot (and nearby combat noise).
- Individually and reasonably intelligently acting troops who can take the initiative.
- Mounts, probably multi-tile, including at least horses, possibly elephants. Maybe some more unusual real-world ones. Perhaps non-flying dragons, if the plot is fantasy enough to allow them and if the lore/game mechanics can allow them to be captured from the enemy and work for the player.
- Player initially commanding a very large force of people with no battle experience and no relevant equipment, who must learn to fight and scavenge equipment/mounts from fallen enemies.
- No possibility of reinforcement between battles (at least not nearly enough to replace losses).
- A variety of battlefields and circumstances: fields, hills, forests, buildings; attacking or defending a position; ambushes; storming a castle for the final battle.
- Difficulty. Losing any one of the battles should be a possibility, winning the first few battles shouldn't require complete mastery, getting to the final battle and winning the game should require a great deal of skill.
- A plot, preferably with randomised elements, quite possibly excluding fantasy elements, which allows for all this. I don't plan to write this plot.
- As little micromanagement as possible, despite the individual nature of the troops and their skills/equipment.
- It must be possible to direct commands at groups of units, refer to groups of enemies in orders, and to divide/merge/reshuffle groups according to need during the battle.
- During the assignment of equipment, it must be possible to assign groups/equipment/mounts based on groups, troops' skills, etc. For instance: giving all the horses to the most skilled of the current sword wielders and making a new group from the new horse riders, then dividing the heavy armour equally between the group of axe wielders and the new horse riders.
- Doing this should be trivially easy and not require any dealings with individual troops. This will require some careful interface design.
- Since much of the battlefield might be out of sight of the player, messengers should go to the player with status reports if/when appropriate.
- The whole thing should run at 2-4 game seconds per second at the minimum on a reasonable computer (someone said they had a single-core 1.8GHz machine, so I'm aiming for that).
- Runs at over 15 game seconds per second at 2.6 GHz, with 8000 troops per side. Obviously this will go down as the individual actor AI becomes more complex, and as battle calculations become more involved. Because of the stipulation that there are no reinforcements, it will take a large number of troops in the first battle to make victory attainable in the final one. So, ensuring good performance with large numbers is essential.
- Troops walk around friendly troops.
- Troops kill enemy troops.
- Dead troops leave bloodstains.
- Not much else.
- People with appropriate skills automatically fixing damaged equipment after combat.
- Very small quantities of random reinforcements, or caches of weapons and armour, or stables of horses found between battles, if the plot allows.
- Lieutenants who can give reasonably sensible commands while the player is too far away to do so. The enemy should probably have these anyway.
- Some kind of decision from the player about where to go for the next battle, perhaps something along the lines of the travel map in The Last Stand 2 (minus the supplies and the day counts).
What am I working on/thinking about right now?
Dynamic clustering, vision, and hearing. While all this stuff about troops behaving/thinking individually is all very nice, making every single troop look over the whole map to find enemies and making every soldier process every sound by themself is completely infeasible.
The solution is to have them form into communication groups (not the command groups the player will be assigning later, which could get spread out too much), which are formed and bounded by distance from their centre of mass (anyone too far from the centre gets thrown out of the group).
These groups can ration the use of their eyes so that every group on the map gets a chance to look for enemies, and can simulate the spread of information between nearby comrades... by simply making the group's information available to every member of the group (maybe with some delay for realism/performance. Maybe not). So if one group member sees a thing or hears a sound, all of them see/hear it.
I'll need to find a sensible method of inter-group communication too, and make sure that the way group members deal with nearby directional cues in a way that will allow them to make non-stupid decisions in situations such as being surrounded, or being on the flank of an enemy group but having a group centre further back on the front line.
No screenshot today, you got your nice screenshot last time.