After a shaky July it has been a really productive couple of weeks here and I wanted to update everyone waiting on the alpha with our current progress.
An enormous win earlier in the week arose from what seemed like a relatively minor change to how we defined each block in the world. Technically these 'blocks' are referred to as voxels, and whilst they are fairly simple in their code definition, there are many many many of them - the worlds Isomer generate contain more than a whopping 12 and a half million voxels. Small and relatively minor changes (which I'm considering writing a full post on later in case it can help others) ended up saving 16 bytes.. that may not sound like much, but it constituted a roughly 30% space reduction for each voxel in memory, together over the whole world this shaved 200MB off the RAM usage for Isomer which is a phenomenal result. Currently Isomer uses around 700MB of RAM so the previously posted system requirement of 'At least 2GB of RAM' seems on the money.
Explosions are now more realistic, for each detonation Isomer now performs a line of sight calculation for the explosive spread making it easier to duck into cover when placing demolition charges or channel explosions from proximity mines. The result looks quite good!
The energy system has also received a significant update, each entity has both an energy and stamina statistic. Every action a unit can perform (moving, building and shooting) comes with a minor energy cost, the energy stat governs how much the unit can do before becoming exhausted (when their energy drops to less than 10%), exhausted units take longer to complete actions and received combat penalties, so it's important to keep an eye on your units to make sure they get enough down time between orders to fight off any enemy raiding parties. The stamina statistic governs the rate at which a unit recharges their energy reserves. Enemy units have exactly the same mechanics and their AI also ensures when it attacks and performs actions, it does so without being overly exhausted - it wouldn't be fun if the enemy units arrived exhausted and were a push over now would it?
Aside from this, we've got a lot more decorative items for the world including my favorite - explosive barrels (treat with care) and created a few more building definitions for the procedural world generator. Here are some screenshots of the new buildings you can encounter in Isomer.
One of the last major tasks still in progress is updating the game sprites to support display of the weapon in the hand of each entity. This is well underway as well as a number of last minute tweaks and enhancements, things are looking good for a release towards the end of the month. After much work, all the back end to support the release is in place so it's just a case of finishing the last few bits of art and coding. Stay tuned for more soon!