We are now deep into our open-engine surgery of the game which will streamline and reduce computational overheads allowing for bigger armies, faster frame rates and smarter enemies. We detailed this a fair bit in the previous newsletter. Whilst this is happening we’ve also been working on a new, hopefully regular feature that will be debuting along with the next large update – extra missions!
Whilst we have a fairly clear path towards the completion of the formicarium campaign mode (2 more major updates, the next of which will feature fire ants as its protagonist species, as detailed in the previous newsletter) we do want to add plenty of extra content to the game to give a more rounded experience. The current plan is to release these fairly regularly starting from the freeplay overhaul update.
A very fair criticism of our way of doing things is that updates are slow. We want to release polished chunks of the finished product rather than things that are very glitchy and need a lot of refinement. This, combined with our small dev team, means that our user base has to be famously patient. We hope that with regular extra missions that are lesser in scope but very different from the main campaign branch we can go some way to addressing this.
The turnaround on these extra missions can be significantly quicker than for the main campaign. This is because the things that take us the majority of the time to do (artwork assets, animation, writing, music, voice recording) won’t be needed. We’ll be re-using existing assets for these missions – this makes them a very efficient thing to enrich the game with.
Unlike the main campaign branch which tries to be somewhat realistic in its approach to ant behaviour and likely scenarios, there is infinite room for experimentation with these extra missions. Variety is the spice of life, and we have plenty of fun ideas to keep us going for a long time. For example, in the below video, John is working on a side mission where you have to look after an allied colony which isn’t very clever, so you’ll have to babysit it to make sure it isn’t overwhelmed!
We’re getting a bit of a head start on these missions at the moment because with lots of resources currently tied up in the overhaul to movement and collisions, there’s a bit of breathing space where we can set up levels and victory conditions before we can properly test them (when the deep-level work is done).
Right now there’s not much we want to share about our work on the 4th tier formicarium levels featuring fire ants. The planning process is well underway by now, and work on them shall really accelerate when we’re confident that our deep changes are stable. Those changes will be tested thoroughly when the freeplay rework update is released – hopefully by you guys as well as us!
Optimisations – Path Finding
A more technical thing to report on here, but as part of the efficiency and CPU overheads-saving round of changes that are currently deep in the works, here’s one that might interest a few people. Liam has been working on a new path finding method called jump point search, and as you can see from the demonstration video below it’s a faster way to calculate paths than the more conventional A* algorithm in most circumstances. The video shows how the two systems go about finding a path between two points on a hexagonal grid (like EotU uses in-game). This will have a small impact on the time it takes to calculate creature movement routes but we’re including it here mainly as it’s an interesting curiosity, if you happen to like such behind-the-scenes gubbins. Also, name that theme tune!
When one of the devs makes a change to the game they make a note in the source control (the system that tracks changes). Looking through these recent changes can give a little insight into how things are currently progressing with the build.Here’s a selective look with a short description for each entry, and given the recent work it’s no surprise they’re almost all to do with optimisations:
- Profiling additions on tick
- This is Matt, our engine specialist, adding things into the code that help him find out exactly where excess calculations are being performed. In Unreal Engine 4 terms, a “tick” is a complete cycle of the program loop so things that tick perform calculations every frame the game runs. By eliminating as many of these as possible CPU processes are reduced, frame rates increase, and the world becomes a happier place. Ultimately, these rounds of profiling make the game better for everyone.
- Optimisations to the chamber representation widget
- “Widgets” are a feature of UE4 we use for user interface and HUD elements. The process of profiling and optimising happens throughout the project, and this is another case of processes being refined and streamlined for faster performance.
- Re-working of creature overlap detection
- A recent change has meant that creatures aren’t constantly checking to see if they’re overlapping other things (which is quite expensive for the CPU if it’s happening every tick). Instead, John has recently gone through the code to see exactly where overlap calls are important, and by running the overlap detection functions only at these times a considerable number of calculations can be cut down.
- Minimap optimisations
- More work by Matt. The minimap is a remarkably complex thing to do correctly and there are lots of avenues to making it more efficient, so these changes will contribute to the overall efficiency savings.
If you’d like to see your screenshots in this section of the newsletter simply upload them to Steam in the normal way, or you can email them to firstname.lastname@example.org if you’d rather be a little more direct. Whenever we write a newsletter we trawl through recent additions and find our favourites.