January 2024
Last month we mentioned we were migrating our entire engine, game and tools to 64 bit, as we really don't need to support 32 bit anymore and this gives access to practically unlimited ram and many big optimisation opportunities. This was a massive undertaking as our engine uses a lot of very low level (close to the hardware) code and we also took this opportunity to improve and optimise many core systems as we reviewed so much of it.
You may be wondering, the game already runs great, why optimise it further? First off, these are not rendering optimisations, as that's GPU territory, but in terms of everything else, and especially physics, these optimisations are extremely important. Unlike graphics which just runs at different framerates and different settings, physics always work in the same way, and for this to work and be any good in the first place, it must always do exactly the same thing at exactly the same rate. This means better performance isn't a matter of higher framerates and better settings, it's simply a hard limit on what we can do with the game.
Physics in Exanima isn't just for show, every element of gameplay, every interaction, every motion and outcome is a direct result of physics, no exceptions. Character motions are driven by virtual muscles and are made dynamically, even the slightest collision can completely change outcomes, everything has physics, everything is fully persistent. We never use simple shapes like boxes or cylinders for collisions, but always accurate representations, even when objects have complex shapes that are notoriously difficult to simulate.
All of this detailed simulation is expensive, which puts limits on things like how many characters we can have, how many objects, and just generally how detailed and accurate the simulation can be. Greater character density is an important requirement for what we have planned for the game's conclusion, but we also want more physics interactions to add gameplay elements and improve immersion which was the main goal of our fully physics driven approach. This includes things like cloth physics, plant physics, soft bodies, animated tentacles and water to name just a few.
This huge migration is now complete and we've also done lots of low level optimisation and a slew of improvements, especially to our tools. We've been using and testing things for a while now and it's all very solid and very fast. The results have exceeded our expectations, with physics performance being doubled, and collision performance specifically almost tripled with room for further improvement. Collisions are particularly important, because while things like character and other motions are expensive, they have a fixed cost, but collisions keep scaling as more objects are involved and the game doesn't place any restrictions on what you can do.
Most recently we've been working on cloth physics, which is really the technology which drives cloth, hair, vegetation and soft bodies, so this is a big important thing and it accounts for a very big chunk of our performance budget. We also use cloth physics to help generate models for clothing in our tools. We came up with a new method that produces much better results and is much less restrictive in terms of modelling. After some thorough optimisation, it's also up to 10 times faster than what we had before. This is a really impressive result which is great for all the things we plan to do with these features.
These kind of major engine and tool revisions are par for the course after a major update, and often involve many months of work. With this and our terrain system overhaul we're done and already back to focusing on content and gameplay features. The team is busy with major content additions for the next update as well as some nice improvements, as some existing content is gaining new importance with the introduction of new features. We plan to start insider testing of the updated engine and terrain (which affects all content) soon, and we should be following this up with a public update that includes some new features and content updates.
Have a great year!
Bare Mettle