February 2025
So, roles. We haven't begun testing just yet, though that's not the only thing we've been working on (more on that later). After we'd just figured out a whole bunch of stuff (see last diary) our goal was just to set up the roles that will be used in testing the main, important and difficult things. Of course as we got into the details there was a lot of wondering about how to best approach some of them and lots of interesting ideas coming up. A lot of this is about identifying things that could be considered common behavioural patterns rather than specific to a role we're adding. Sometimes this means making changes to core AI, sometimes it means more systematic role features, or standard roles and mechanics that handle a subset of common behaviours. Doing this alleviates the burden from the role designer, and creates a more robust foundation that supports more emergent elements and basically keeps things running smoothly even when there are no specific roles or cases.
The focus right now has been mainly on social dynamics, introducing the idea of social settings dictating what's considered appropriate at a higher level and also putting a greater emphasis on personality traits. Some of this gets pretty complicated, but basically it's how people modify their core behaviour and disposition depending on who they're interacting with and under what circumstances. In the short term, it's the foundation that drives how intelligent NPC companions behave with the player and how this can change, but implicitly also with and between the less intellectually inclined denizens of Exanima. It's basically ways in which different roles and situationally appropriate behaviours come into play automatically.
A lot of this also relates to aggressive behaviours. A well recognised issue we've been exploring is how AI currently tends to hold a grudge towards one particular opponent and make poor tactical decisions. This is because AI is currently purely emotionally driven, and a big part of what we're doing when adding roles is exerting control over emotions. Emotions are generally a bit too volatile as it is, and we're making adjustments, but roles can provide more context for the need or repercussions of violent behaviour, and once engaged in combat people can then make more logical and informed decisions. Dialogue could also influence this and various emotional responses might be overridden when it's considered important. We're not just trying to define a set of rules to produce a certain outcome, we always ask ourselves what would a real human do, why, and how do we simulate that?
That might sound like a lot to cover, but don't worry, we're still only focusing on some relatively simple immediate goals, but the way we approach them is important in defining how we can continue to build on them and something we take very seriously. Even if we're not doing something right now, we need to think about how what we do later will fit. While they need a lot of careful consideration, these are mostly details and adjustments within a system, and we will continue to make adjustments as we observe it and get feedback from players.
As we're taking a more and more structured approach to role mechanics and design we also saw a need for the design tools to evolve. We've come up with a new style which is much more intuitive to navigate and work with, giving a quick visual overview and access to all the behaviours and interactions a role provides. Our aim is something that anyone wanting to create story lines or characters can pick up with relative ease.
While we are trying to focus on getting the roles ready, we do also need to keep the content pipeline going in terms of features and development tools. We've been putting a lot of effort into supporting new types of content, scaling up production speed and leaning more heavily into procedural methods. There was recently a big rework of our terrain system, assets and tools, to not only improve visuals, but to more easily produce the bulk of natural environments using procedural methods. At the time there was one feature we wanted to include, but didn't: detail displacement. This creates an illusion of 3D detail on otherwise flat surfaces, something we already use for stone walls and the like, but not terrain which uses dynamically generated unique texturing. If we could make things such as stones, roots and other ground details effectively look 3D, it would save us a whole lot of work and performance inserting actual 3D details, while leveraging our already excellent procedural terrain painting systems and tools. These can also blend things together far better than intersecting 3D models. It would be a perfect fit, and this kind of effect is also very well suited to our isometric style view.
However, while displacement is great, to actually create convincing depth and shape we need another very important visual cue: shadows. Shadows also means light not reaching little places it shouldn't, you might not always be keenly aware of their absence, but something is off and your brain is not convinced. We make heavy use of dynamic shadow casting lights, so some shadow like effect is not enough, we'd need actual shadows from every light source. The shadows also need to look consistent with others, so that it's not obvious which 3D details are "real" or "fake". It sounded difficult and expensive, but extremely desirable, pivotal even, as we develop more detailed natural environments that would otherwise require lots of tricky modelling and level design work and expensive 3D elements, which still wouldn't look as good or allow for finer detail. It was definitely worth trying, and we came up with our own shadowing approach that is well suited to our particular engine and tricky requirements. We even came up with an efficient displacement solution which removes the stretchy artefacts common with these approaches. This was particularly important with our procedurally generated textures which can't be tweaked by hand. This feature is now fully implemented in our terrain, materials and tools and game ready, and the results are quite impressive. There is a performance cost, but it's very fast and more than compensates for not having to add expensive and ugly models and geometry. It's also more easily scalable, for the potato users, you can just turn graphics settings down.
We're only just discovering how powerful this can really be, especially when combined with our procedural ground detail. We've already updated some existing ground and other assets, but we've yet to really take advantage of this. From now on, it will be a critical part of our art pipeline. There are so many great examples of this, but here's a few screenshots just to illustrate the kind of difference this tech can make:
While working on these lighting features we couldn't help but take notice of a few other things we'd been hoping to improve, but hadn't managed to yet. When we first implemented our global illumination (GI) system along with the new renderer, we wanted something fully dynamic and blazingly fast. We absolutely nailed it. For those who don't know, dynamic GI systems tend to murder your performance and have their share of problems and limitations. Our GI system certainly has its limits, but much of this is just precision and similar concerns that are performance trade-offs. The most keen-eyed players shared some of our nit-picks, mainly that shadowed areas often look too dark, which doesn't look natural, lacks depth and makes visibility in darker areas uncomfortable. Taking a fresh look at the problem, we found a performant solution to correct these shortcomings. It's quite the improvement, indirect lighting is less harsh, while actually adding more depth and detail to the image. The game's signature darkness is still very much there, but it's more realistic with partial darkness showing something and not being impenetrable, adding more to the atmosphere. Outdoor environments benefited even more, where the odd mix of dark and bright shadows looked very out of place. The lighting is more natural and reflected light more vibrant. One thing led to another, and we then made further improvements, adding more detail to indirect lighting. We also made some quality improvements to our shadows, making for a cleaner image. The overall visual impact is huge, some of the devs considered it the biggest leap in visual quality the game has seen.
Global illumination differences are harder to clearly show in screenshots and we don't have direct comparisons. The aim here is subtle realism, if nothing stands out it means we did well. Capturing the range can be tricky, but the shadows are crisp and contrast sunlight well while still showing lots of lighting detail and depth within them, and things look nicely grounded.
Even in a dimly lit room, you can still see lots of detail inside the shadows, they don't just swallow up large portions of the screen. It's more realistic and immersive and you can make out quite a bit more of your surroundings even in relative darkness.
Clearly there was some shifting of priorities here, but both in terms of roles, AI and visuals these are very good changes and we've been working very hard to get it all in a complete state right now. We're working on one last piece of fancy new clothing, and we should hopefully be able to wrap up the role stuff up quickly. The role and AI changes are obviously very big and broad, and we definitely expect to be fleshing them out and tuning them over time rather than all in one go.
Best,
Bare Mettle