A Bit of Spit and Polish!

The last week has been exceptionally busy. Not only have I been learning more new tech for work – yes Angular, I’m looking at you – I have also managed to cram in a lot of enhancements and bug fixes into Ancient Armies.

As of now, there are no bugs that I’m aware of, though I’m sure there are still others lurking about that will reveal themselves in time. This means that most inconsistencies and issues seen in previous videos have probably been rectified – including all of the line of sight issues…

Anyways, enough of bug fixes. What enhancements have been implemented?

First up is the orders system symbology:

The orders symbology now shows a ghost unit so that one can see precisely where one's unit is going to end up. It also aids the player when line of sight is active in the game...

The new and improved orders symbology!

The orders symbology now shows a ghost unit on the end of the last order. This will enable users to not only precisely place their units, but to also make sure that they are aligned with other moving units’ destinations correctly.

The other reason for going to all the trouble of incorporating this functionality is to provide the player with an aid-memoire when any of the game’s line of sight modes are active.

Normally when a unit goes out of line of sight, both it and its orders symbology disappear from the display. However, with this new system, the ghost unit at the end will still remain – that is until it is directly eyeballed again.

This means that in the heat of battle, one will be able to keep track of where one has ordered one’s units to go, even where one no longer has a direct line of sight to them.

I am also tinkering with the option to enable players to turn this feature off, as I suspect that some hard-core players won’t want to be reminded of where they have sent their units!

If this new feature isn’t that clear right now, do not despair. I will be releasing a detailed line of sight video pretty soon, which will explain this feature and many of the other features that Ancient Armies offers!

Another subsystem that was looked at was the cohesion subsystem. I have spent a fair bit of time enhancing the graphical representations :

Unformed unit graphics calculations are now more refined!

Unformed unit graphics calculations are now more refined! No more mismatched unit shapes with overflowing text!

When a unit becomes unformed due to cohesion, its unformed graphic now exactly matches the shape of its originating pristine graphic. This includes accurate placement of internal colour splits and the perfect placement of rotation points:

The refined calculations for the graphical representation of cohesion now also calculate rotation points to a much greater degree of accuracy.

Units with cohesion damage are now perfectly located on the map. No more mismatches!

These enhancements make the transition from a pristine unit to a cohesion damaged unit completely seamless – and vice-versa too. So the odd unit micro-jump that one used to see in the old videos is now long gone!

Irregular units have also been improved too. Their text is now much more legible. However, my first attempt wasn’t so successful:

This was my first attempt at making the text more legible on irregular units. Close, but no cigar! :p

This was my first attempt at making the text more legible on irregular units. Close, but no cigar! 😛

However, I soon realised that having the display in a real 3d engine enables me to take advantage of some lighting tricks:

The original irregular unit text was very hard to read. This has now been rectified!

I effectively made the text luminous – which makes it stand out much more! 🙂 I’m sure you agree, that the text is now much easier to read!

Another area that I decided to look at was unit terrain detection:

In the old days the units used to detect terrain based on their cardinal points. This works fine most of the time, until the unit encounters a linear terrain feature like the stream up ahead....

In the old days the units used to detect terrain based on their cardinal points. This works fine most of the time, that is until the unit encounters a linear terrain feature like the stream up ahead….

The old system was very fast and worked well for most circumstances. However, it will fail with linear terrain.

In the above example, if the triangular unit were to move over the stream, it would get to a point where all three sample points would straddle the stream. At that moment in time the unit would think that it was in clear terrain and speed up, until it’s trailing corners arrived at the stream.

This would create odd movements, with a unit slowing down, then speeding up and then slowing down again as it crossed the stream.

The old system wasn’t quite this simple though. It used to have a latching mechanism that would help a unit know if it was still crossing a stream or other linear obstacle. However, this mechanism could easily be tricked.

In the end I decided to replace the entire mechanism so that it used the new unit detection code that I wrote for the line of sight system mentioned a couple of blog posts back. This mechanism is super-fast and super accurate, plus it neatly gets around the issue mentioned above! 😎

Whilst looking at unformed units I also thought I’d re-visit unit collisions too:

Don't try this at home!

Don’t try this at home!

In the old system units were completely prevented from passing through each other. This is now no longer the case.

However, passing through one of your own units (unless either unit is an irregular unit or it’s a maniple manoeuvre) will result in both units taking a lot of cohesion damage – as seen above. One might want to avoid doing this in the game. 😉

The system is designed so that units can pass through other irregular units (and vice-versa) without cohesion damage, though passing through such units will still hinder progress.

Enemy units however are still impenetrable. If you want to go through those, you will have to fight them and rout them!

Surely that’s all the enhancements for this week?

Not quite….

All dynamic menus are now populated in alphabetical order!

All dynamic menus are now populated in alphabetical order!

Having ordered submenus will make looking for orders and formations a lot simpler between differing units as these orders will now all be in an expected place within the menu – regardless of which orders are available.

In addition to the feature enhancements mentioned above, I also rejigged the directory structure of the game to make it compatible with modern operating systems. From here on in all data is stored in an Ancient Armies folder located under the user’s Documents folder:

The game's data folder under the user's documents folder.

The game’s data folder structure under the user’s documents folder.

These folders are structured by data type too, which makes assets easy to find. It also allowed me to update the game and the various editors so that they automatically look in the correct folders for the data type that the user wishes to manipulate. This makes for less fiddly folder navigation when using the tools or the game.

This next bit is quite geeky, so you might want to put on some peril-sensitive-sunglasses!

As an added bonus, my JIRA system got a free update this week:

A recent free JIRA upgrade has allowed me to run the project using agile methodology and sprints!

A recent free JIRA upgrade has allowed me to run the project using agile methodology and sprints!

Although using agile for just one person seems a little insane – it does actually help! Having a sprint board enables me to concentrate on a particular delivery without any distractions. It also aids in planning the work pipeline going forward. In all, it should make me more productive! 🙂

Well, that’s it for this week! I will put out a new line of sight video pretty soon, so that you can see the nuances of that system as well as many of the enhancements mentioned in this post.




2 thoughts on “A Bit of Spit and Polish!

  1. Wow Rob, that unit detection/interference system is coming along great. A ton of interesting nuggets in this post, I’ll be back to re-read it a few times.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s