(https://ancientarmies.files.wordpress.com/2014/03/cropped-header.jpg)
Ancient Armies
(In Development)
Description
An advanced simulation of Ancient Warfare. With the possibility of modelling periods all the way up to the late 1800’s. In addition, the mapping system (tentatively called ‘Atlas’), is coded to be completely stand-alone. As such Atlas can be used for any period or game!
What makes Ancient Armies unique?
It will be one of the first wargames that will put the player firmly in the place of the commander. The player will only be able to see and react to the events that a real leader who is physically present on the battlefield will be able to.
The finished map editor and mapping system.
(https://ancientarmies.files.wordpress.com/2015/01/screenie.jpg?w=584&h=352)
Official Site:
https://ancientarmies.wordpress.com/
Official Videos:
https://ancientarmies.wordpress.com/video-media/
Official Youtube:
www.youtube.com/watch?v=Rt1-6gwNvh8&list=PLAWNvkDrHeDHNiw2YnT-p5mFwKZ7dOukb/
Official FAQ:
https://ancientarmies.wordpress.com/about/
Manual: N/A
Official Forum: N/A
Features
• An Advanced Mapping System. Ancient Armies features one of the most advanced mapping systems currently available to any wargame – gone are the hexes and squares of older computer based games! The mapping system can simulate maps from hundreds of metres across, up to around 50 km across, though more than likely it will be able to go much larger. The mapping system is also fully vectorised, which in layman’s speak means that it will provide a smooth and continuous zooming capability with no loss of mapping detail – regardless of how close one zooms in. In addition, the mapping system supports massive customization, terrain overlays and Bezier based curves for more natural looking terrain.
• An Industry Leading Line-Of-Sight System. When set to its highest setting, it models not just terrain based line of sight, but also unit based line of sight too. It is so advanced that it can show the effects of screening units and has the capability to show things from purely the commander’s perspective only. In addition, it even takes into account such things as terrain clutter and the actual height of the commander! For example a person on a horse can more easily see over a unit of men….
• Realistic Command and Control. Going hand in hand with the Line-Of-Sight system, is probably one of the most realistic command and control simulations seen in an Ancient Warfare game. Most of your battles will be pre-planned using signals to trigger off events – just like real life. However, as a commander you can dispatch and receive messengers (called heralds in the game) and even personally order other units that are close enough directly yourself. In addition, the system will model your ability to be able to command dependent on whether you are actively fighting or taking a more backseat role. Both styles of command have their advantages and disadvantages…
• Detailed Formation Modelling. Ancient Armies includes some of the most advanced formation modelling ever seen in any game! Formations actually have a big impact on the game. Formations will impact combat, movement, cohesion and fatigue. Units will be able to adopt a wide variety of formations and unit densities – just like real life! This will enable players to experience the differences between a Roman Maniple and a Macedonian Phalanx (a first in a wargame) – thus forcing a player to operate them the way they would be operated in real life. In addition, Ancient Armies models the actual locations of the individual people within a formation down to a precision of 10cm!!! These locations are dynamically modelled so that as a formation takes casualties, you will be able to see that impact on their shapes…
• Realistic Manoeuvre Modelling. Most wargames treat all units of a given type the same way. Not Ancient Armies! These other systems also take big shortcuts with regard to the modelling of the various manoeuvres, such as having units turn from their centre points – a manoeuvre that would be almost impossible to do in real life. In Ancient Armies the manoeuvres available to each unit are unique – for example a Roman unit will be able to do a lot more than a Barbarian unit. In addition, the way that each unit carries out these manoeuvres will also be unique as the system takes into account a variety of variables that would affect that unit’s performance.
(https://ancientarmies.files.wordpress.com/2014/03/cropped-header.jpg)
A Wee Bit of Engineering!
Posted on March 16, 2017
(https://ancientarmies.files.wordpress.com/2017/03/under-construction-sign-hi.png)
Warning! Under Construction!
Over the past two weeks I have been conducting a great deal of engineering work on Ancient Armies to get it ready for the implementation of column movement.
It all started when I was looking at a bug with the fatigue system. This is the bug that my new telematics system picked up a few posts ago where fatigued units were not regaining their freshness after exertions.
Whilst probing around the fatigue system I was horrified by the fact that the code for it seemed to be literally everywhere! Having the code for a single subsystem littering an entire game can make it very difficult to understand, debug and can of itself cause many other engineering problems further down the line.
An inspection of the cohesion subsystem revealed a similar issue. :/
This is unusual for me; I’m typically very hot on software coupling and cohesion. I guess it was just the way these two subsystems had evolved over time.
In the interests of simplification and maintainability, I decided to completely refactor both of these subsystems so that they are both located in one place within their own respective classes.
Doing this was a non-trivial affair, it involved grabbing bits of code from all over the system and moulding them into a singular coherent class.
It took a fair bit of time but the rewards have more than made up for it.
For a start, it made fixing the fatigue system incredibly easy:
(https://ancientarmies.files.wordpress.com/2017/03/fatigue2.png)
Fatigue goes up, fatigue goes down! (finally!) (click for larger version)
For the first time, fatigue in the game is now being recovered properly after a unit’s exertions. The screenshot above shows the game providing real-time data to my telematics application on the right. This shows two units exerting and then resting with their fatigue levels doing exactly what I expected them to!
The telematics application has been a God-Send. For a start it originally discovered this issue, something that would have been very difficult to spot with standard tools. But more importantly, it also easily verified that my fix was working!
To try and prove this code fix was working from within the code editor would have been a tedious and time consuming affair. But with telematics, it is as easy as running the game and viewing the results!
The telematics system also came to the rescue with cohesion too:
(https://ancientarmies.files.wordpress.com/2017/03/cohesiongoodgraphicsbad.png)
The telematics application lending a hand in diagnosing a cohesion issue. (click for larger version)
After the refactor of the cohesion subsystem, the graphics weren’t showing a unit’s cohesion levels properly. A quick run up of the telematics application proved that there was nothing wrong with the underlying modelling and that it was in fact an update issue to the graphical subsystem!
Again, without telematics, this would have taken much longer to determine as it would have been difficult proving that the cohesion system was working properly over time.
The other tooling to provide great assistance was my new automated build process – as introduced in the previous blog entry. Seeing the installers magically appear on my NAS drive after committing code never grows old. Nor does being able to tell exactly which version of Ancient Armies I’m running! Both of these seemingly small details, go a long way to making the job of cracking bugs a lot easier.
Although the refactoring of the fatigue and cohesion subsystems took two weeks, it leaves the software in a much better state.
For a start, all the complexities of cohesion and fatigue modelling are encapsulated and hidden away within their respective classes. None of the rest of the system needs to know how they work. Even when I’m calling these sub-systems, I no longer need to memorise how they work as it is all nicely tucked away.
When other systems within Ancient Armies call fatigue and cohesion, they can now ask simple questions like, is a unit fatigued? or exhausted? and they can do so without having to do any of the sums themselves. This helps to simplify the code and to ensure that one achieves consistent results throughout the game.
The other big bonus from the refactor, is that if either sub-system needs tweaking in the future, I know exactly where to go – they are both housed in their own files. More importantly, I only need to learn what the code is doing in that one file to fully understand the subsystem. This is far easier that traipsing through the entire game’s codebase trying to work out what’s going on!
Finally, in what seems like a long journey, I am now in a position to start work on column based movement. So tune into the next post to see some of the early results from my efforts.
Laters
RobP
Original post: Click Here (https://ancientarmies.wordpress.com/2017/03/16/a-wee-bit-of-engineering/)