Coffee Diary - April 2026

Zetheros

Developer
Hey Exanimates,


It has been a very busy month indeed. Our next test run will basically be a release candidate that includes pretty much everything. Testing so far has gone pretty smoothly, so hopefully the trend will continue, though there are some pretty big changes and additions.

Besides some more content and polish for the Gardens, a lot of focus has been on overall polish and making sure that some core systems are really solid. We mentioned we were working on solving some pathfinding issues, mostly to stop your companions and enemies from falling into holes with your precious loot, but this went really deep with a lot of fundamental improvements and additions to pathfinding systems and features. The smarter pathing is a big improvement and NPCs can now negotiate some seriously tricky paths. In the same vein, we wanted to finally solve issues with characters occasionally getting stuck in objects or the environment. This happens when distant characters stop testing collision to save performance, or when the game lapses time while you're unconscious and repositions them, or when entering a map with followers in tow. All it takes is for a character's foot to be in the wrong place (for example) and they can become permanently stuck inside something. Trying to fully position a character in a way that no part of them is colliding is actually a very difficult problem that requires many things to solve. But these solutions have many uses, we were able to solve various other physics and placement issues and we can now also do a really solid unstuck feature. These aren't the most exciting things to be working on, but the complex nature of the game and developing our own engine means we have to tackle these difficult problems and can't just work on game features and content.

We also did some nice improvements to the new thaumaturgy domain. We were happy with the new core visual effects we developed for it, but some of the supporting effects were letting it down and there were still a few quirks to solve. The effects we wanted to improve seemed like hard rendering limitations at first, but we started to see ways they could be overcome. These were not easy to do though, so we were hesitant to try, but in the end we just had to do it so now we have some really nice new features in our rendering engine that will be useful for many things. We can't really go into specifics without spoiling what the new thaumaturgy domain is, but the changes and additions are about solving some fundamental real time rendering problems and here they provide some nice visual polish.

Some of the new content we're introducing in Gardens put us in need of very fast loading times. We're always trying to improve them, and we'd already done a lot here, but the levels keep getting bigger, more complex and varied. Procedural items and characters also require a bunch of extra processing and resources compared to non-unique pre-made assets. The dream would be for any content to be fully streaming with zero loading times, but in many situations this is extremely difficult to do and requires many clever systems working in perfect synchrony. Very fast loading times would allow seamless travel between zones, entering buildings, sections of maps or falling into pits to land somewhere else, without breaking the flow of the game, but streaming and virtualisation can also be critical to some game features, make many other things seamless and responsive and reduce resource consumption, allowing us to do more. It becomes necessary for large open maps, but also the game can't freeze when NPCs are allowed to move around the world, enter a map you're in, change and interact with things. Or other players for that matter.

Streaming content isn't especially difficult when it's just loading some assets or something specialised like terrain, but all our characters and items go through the same procedural generation that touches on many engine systems and resources that are busy doing something else. If these are accessed the game will crash, if we just wait for work to complete we're back to freezing, or terrible performance. This means everything had to change to coordinate this work, and every little interaction or small change must be carefully scheduled and pipelined, it can't just execute as needed. Characters can wear almost 30 procedural items at once that need to be modified based on how they interact with other items (a single piece of clothing can be dynamically assembled from 100s of meshes), collision volumes and voxels are generated, masses are calculated and all sorts, so generating or modifying a character can take a lot of work and time. A brief pause when using the UI can be forgiven, but sometimes this needs to happen in the middle of the action and the game freezing is unacceptable.

We're not trying to achieve the zero loading times everywhere dream here yet, but just to meet our immediate requirements we had to tackle the most difficult problems, build support for all this at an engine level and change the way we handle every character UI, item interaction and many things besides. It's been a lot of difficult work, but now loading times are up to four times faster and content can be loaded, generated and modified as you play without the game freezing, or even stuttering. As to why we deemed it necessary to do this now, you'll have to wait and see, but the faster loading times are really nice in general, things like opening the inventory no longer freeze the game and a lot of things just feel more responsive and smooth. We didn't realise how much of a difference this all makes until we tried it ourselves. These changes are also very noticeable in arena, where there's constant loading in and out of matches and a lot of character and item screens which could feel very slow and tedious to navigate.

Speaking of procedural characters, long ago we teased some experiments we did with deep wounds on undead exposing flesh, organs and bones. That was just a rough concept and required a fair amount of work to actually make it into an in-game feature, but we finally got round to it. We've made many changes to the procedural decomposition, but this is the main addition. There's a number of decomposition effects that change including the extent of the wounds, and the patterns of the wounds and other effects are unique to each individual. Here's some screenshots showing some levels of decomposition and different examples.






Something else we've been wanting to do properly for a good while is shader compilation. You've probably noticed the stutters this can cause when you first load up the game, especially on a new update. We've been neglecting this as we're constantly making changes to our rendering engine and maintaining this can be difficult. Our engine is unlike most modern engines, we leverage forward rendering for a lot of versatility in materials and effects, but also to implement a huge number of highly specific optimisations. But this requires a massive number of specific shaders that are generated dynamically and predicting which ones will be needed gets complicated. We've just tackled this and added some dev tools that allow us to track which shaders are being compiled when. This makes maintaining things easier and helps us compile most shaders in advance to remove most of the stuttering. We plan to expand on this as we introduce more ways to mask shader compilation, so that you're not just hit with a long wait when launching the game instead. The new streaming features we just mentioned should also help us do this.

While working on various things we also found new ways to further improve image quality. Image quality is kind of our engine's signature thing, we go to great lengths to produce the best possible sub-pixel rendering and produce a sharp detailed image with minimal aliasing. This is particularly important with all our highly detailed shiny objects which are small on screen and also the subtle motion, which would otherwise be a shimmering or smudged mess. Our "supersampling" (for lack of a better word) does most of the heavy lifting, but there's a lot of tricks and processing that go into this, starting at the asset level. We invented a new trick and made some general improvements which further improve image definition and reduce aliasing. We also made some specific improvements to character views and item icons where the difference is most noticeable.


Best,

Bare Mettle
 

Lapty

Member
ZONDBIES!!! RARAAR AHAHAHA))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
 
Top

Home|Games|Media|Store|Account|Forums|Contact




© Copyright 2019 Bare Mettle Entertainment Ltd. All rights reserved.