
Steam news
Full Steam announcements and update articles for this title.
Hey Exanimates, So the update is finally out, that was quick right? Right. It's been great seeing many people get back into the game and all the positive feedback. We've been busy patching and hotfixing, some things we'd hoped we'd fixed actually weren't and going from a few testers to so many players uncovered various things that flew under the radar or are specific to some system configurations. So much has been changed and rebuilt, so there's going to be some issues and things that need adjusting again. We've addressed a lot of this already, and made a bunch of improvements and content fixes too. The last few months we've mostly been trying to get everything ready for the update rather than working on anything new, so our attention has been largely on what comes after this update and leading up to 1.0. As we've mentioned we won't be tearing the guts out of our engine again, so we should be able to add features that don't rely on that last bit of content in smaller updates before then. There's a fair bit we want to add and improve, but some things are a higher priority, or will benefit from long testing so we will focus on those first. Something that we hope to add imminently is the post portal "save system". This is not a simple save and load system, but rather something that you will need to unlock and comes with some limitations. You will need to collect certain items, one of which comes from a difficult boss encounter. However you do not need to defeat the boss as there will be another way to obtain the item. This item will have other uses too, but one use allows you to essentially create your own save points at certain specific locations. If you use it in this way, you will not be able to use the item again for its other purposes. We've tried to cater for different players, and also give you a sense of agency in how you save your progress and a strategic element. It should be fairly easy to piece together how this all works, but either way we'd rather not spell it out for you and let you discover it and some its nuances in game. We've been laying the groundwork for this for some time and we're actively working to complete it, so we hope it won't be long before we can introduce it. Something else that we want to complete for 1.0 is the remaining skills, and by extension combat in general. This has been a hot topic internally for a while, that we've also discussed with some of our community. Like some other things, combat has been in bit of state of limbo, and this is a bit of broad topic that needs some context. Early in development we genuinely thought the game was mostly fine and just needed more features and a bit more content, but the reality quickly became endlessly iterating on combat. This is what players focused on most, either because they loved it or "hated" it. This went on for years, and eventually we said enough and stopped iterating on combat to focus on actually making a game. It was never our intent to make a combat sim, we just wanted everything to be governed by physics because of emergent gameplay, interactivity and just that sense of a tangible, functional world it brings. But here we are, with something more sophisticated that doesn't fit our original, more humble plans. Now we've just overhauled our physics and character physics, to fix many general problems and to support new things. We also worked on combat AI, but mainly because we want smart and realistic behaviour from our NPCs and creatures. It's been all about the foundations and immersion. We've been doing the minimum to maintain combat in a working state, by adjusting most motions to the new physics and so on, but there have not been any meaningful changes or additions to combat. A lot of things have fallen into a state of disrepair as we stopped iterating on temporary things. Now it's time to finish the most important features and try to finalise things for 1.0. You may have heard various ideas we've floated about combat, some are more speculative, but some have been well defined and tie into skills and other mechanics. That said, these things require a lot of experimentation and testing, even when we have detailed plans the physics based and very dynamic nature of combat means things could not work out as we imagined at all, so we may need to change those plans significantly, or even scrap them. Take this as our intent, but understand that we can't be sure what will actually come out the other side. There will definitely be public testing, and we'll see how things evolve. Let's start with bashes. We're quite excited about this, and it's a core feature that could significantly change the dynamics of combat and support other mechanics. The basic idea here is the "Alternate Attack" (Alt) input is no longer just for thrusting, but basically puts you in alternate stance (e.g. half-swording). This could change how you defend too, but most importantly in this mode the right mouse button no longer walks, but performs "bashes" instead. The simplest bashes would be a shove or check, but we're also considering various mechanics for alternate bashes or combos such as queue strikes, punches (including with a shield) and sweep takedowns. We haven't defined all the exact moves for each weapon configuration yet, but so far the idea is that we'll have a similar RtL / LtR and combo system as regular attacks. And this brings us to shields. Shields are not in a good spot, they're unappealing to the player and yet tedious to fight against when used by the AI. The difficulty is how to make them effective, and yet still have a weakness that's exploitable against AI. The shield stamina system exists largely for this purpose, and while we know some people don't like it, it will likely stay, but be fleshed out so that it's more meaningful and serves more to provide openings to players who exploit it tactically. There's a few mechanical changes planned to solve some of the issues with shields, but largely we want to play more into their offensive capabilities, and bashes will play a role there. Bashes could potentially also play a role in creating openings against shields. When ranged combat is introduced, shields will immediately become more valuable, and we'd also like to enhance their defensive capabilities against large opponents. Of course shields will also finally become procedural, with new and reworked shields. On the topic of defences, we need to talk parrying. The issues with parries have been discussed for a long time, but it's something we haven't been dealing with, for good reason. We used to regularly tune parry motions as attacks changed, but this was time consuming, motions just kept changing, the number of motions kept growing and we wanted to change the mechanics anyway. Something that has always stood out is the "binary parry", that is whenever someone is attempting to defend all it takes is to touch their weapon with your attack it rapidly stops doing damage. This creates a lot of implausible moments that don't fit with our fully simulated combat and a few mechanical issues. This was largely a crutch for our physics engine not being to properly solve collisions between thin, fast moving objects (weapons), but that problem was fixed with our physics engine overhaul, and now it's all due a revision. This is a very important change with a lot of knock-on effects, there's already about 60 parry motions, we'll need more and now parries must really attempt to physically stop or deflect attacks. Parries have never been reliable, this won't change, and mechanically they will be inherently less reliable, but we hope that with revised motions and dynamic behaviours we can get things working well. It's a daunting task, but either way this is clearly the way to go and we think it will be an important improvement to the feel and flow of combat. Another potentially important addition is the "Draw" close combat skill technique. The concept here is that after landing a hit you'll be able to hold your weapon on the target and transition into a pull down, sweep or draw cut, depending on your weapon and inputs. Additionally, we may allow interrupting any attack motion to transition into one of these moves, without needing to hit anything. This so far is our best answer to officially supporting the grappling moves that some of our community is fond of. This should both provide more intuitive controls and use more deliberate motions where the characters are deliberately exerting force on the target, removing some of the randomness from both setup and execution. It should also generally support manipulating your attacks in new ways and transitioning into various cuts for swords. This also could be another tool for dealing with shielded opponents. Obviously ranged combat represents an entire new skill category to fill and will introduce many new factors into combat, but as it doesn't yet exist in the game in any form and we're still defining some details we feel it's not time to really talk about it yet. We will say that we consider ranged combat a much easier problem to solve than anything close combat, as there aren't complex physics interactions involved. There's some new gameplay mechanics, but there aren't any new problems to solve in terms of physics and it's essentially not all that different from say using a Force Bolt. One final topic is armour. You may have heard us say that we plan to revisit the encumbrance system, and a few things besides. Currently armour carries no penalty at all once you have 3 ranks of MiA, it's simply an incredibly strong net benefit to defences with no tradeoffs, not wearing the heaviest armour is just a pointless handicap and the lighter armour sets are just inferior in every way. Armour is obviously ridiculously good, and that won't change, but we do think there should be some upsides to using something other than the heaviest sets in the game. The obvious implication is not being able to completely negate encumbrance from those heavy sets, but rather than a simple nerf we're hoping to approach this more as a buff to both heavy and light armour. The idea is that when unencumbered you'd move a bit quicker, but also in a way that feels less "weighty", and isn't just the not very obvious speed difference we have now. For heavy armour we want to play more into its increased mass and protection, a good and fitting start is making the Security technique more effective with heavy armour, which really plays into the feel and identify of a heavily armoured "tank". We're considering a few ideas still, and we might rename the armour skill to "conditioning", introducing some things that are less focused on armour. We look forward to hearing your feedback and suggestions, just remember that our goal is to polish up and complete the combat system, we are not looking to redesign the fundamentals. Often suggestions amount to imitating features and controls from other games that people are already familiar and comfortable with, but those just don't translate to our simulation based system and its fine grained, nuanced control. These are some very important core additions and changes, we have discussed other features in the past, and they might still, but likely after version 1.0. Those are our biggest priorities as we see them right now and likely what we will be focusing on next. There's a few other things that we'll continue working on for now though, in particular with AI which is also very complex and unpredictable, so we need to observe and tune things over time. In particular with companions (Derrin) we're working to improve various pathing and other behaviours. Watching people play and talk about their varied experiences has already given us a lot of insights. Best, Bare Mettle
Before we get into everything that's in this update, we need to address the elephant in the room. Most of you don't closely follow the game's development, and this was to say the least an unusually long time between updates. Exanima is an unusual game, filled with features you won't see elsewhere, probably because no other developer is stupid enough to attempt them, let alone all of them at once. It has grown far beyond its original scope, with layers of complexity that create an organically rich experience, but also multiply into something extremely difficult to develop and inevitably flawed in some ways. We've toiled endlessly to remove the flaws while making it richer still, in response to the desires of our players and the varying ambitions of our team pushing the envelope further. It's been a chaotic growth, but it doesn't have to make sense, this isn't just some game to us, it's our life's work and consuming passion. We built this game entirely from scratch, our own engine, asset and world building tools and everything to fulfil our unique purpose. It's an insane endeavour, especially for a team as small as ours, but it's also what makes it special, and we hope you can appreciate that.
With that out of the way, let's talk update. Bear with us, it would probably be easier to talk about what hasn't changed. This is the last major update before the 1.0 release, there are huge content additions, but also huge foundational changes to try to address every major problem we ran into throughout the game's development, deliver on things promised, pave the road for the complete game and beyond, and solve those "inevitable flaws" as best we can. Many flaws can be easily dismissed for a game in development, but that in development status must end soon, and we have big ambitions for what comes after. Big or small, if there was a problem we hadn't solved yet, it's because it wasn't easy and probably required big changes and different approaches. Even this far into development, some of our major goals still seemed like faraway dreams, but it was time to make them a reality, and one thing we've learned by now is that if we do something we need to do it right the first time so we don't have to redo it again later.
This is a highly condensed changelog. There are far too many specific changes to list in once place, so many things are grouped and summarised. If some specific changes are more important to you, you can find more detailed changelogs in our public testing threads and other information on our Discord.
Massive new map: The Gardens
4 new encounter types
Over 60 new or fully redesigned items
New NPC thaumaturgy domain
Acquisition of new powers on defeat of NPC shapers
Large expansions of Catacombs map
Complete graphical overhaul of Golems map
Overhauled terrain and ground system, all new assets
New grass and small plant system
Visual overhaul of many assets throughout the game
Overhauled undead with procedural exposed flesh
Remastered several non human encounters
New outdoor arena
Fully functional role system
Many new NPC interactions and behaviours
New dialogue and dialogue mechanics
Extensive improvements to NPC emotion system
NPCs can now loot and discard items independently
NPCs can equip themselves with found items
NPCs can call out items they think may be useful to allies
Improved character and clothing deformations
New procedural item generation features
New procedural weapons, new variations and materials
Improved armour set bonus functionality
Improved character simulation and animation
Improved muscle function for smoother, more precise motion
More realistic, smoother and consistent footwork and movement
Greatly improved ability to negotiate uneven and steep ground
Improved prone recovery behaviour and speed
Improved crouching behaviour
Improved designed motions for all weapons and creatures
Improved and fixed many combat mechanics
Improved general impact and fall damage mechanics
Fixed many general animation issues
Improved pathfinding system
Improved NPC navigation behaviours
Improved combat AI and tactics
AI can now smartly negotiate multiple opponents at once
Better Scaling of combat AI based on skill level
AI better understands and avoids hazards and abilities
More purposeful and deliberate AI combat behaviour
AI better understands weapon characteristics
Improved AI special ability tactics and strategy
Huge core physics engine overhaul
Greatly improved collision behaviour
Greatly improved stacking behaviour
Improved friction simulation
Advanced cloth and soft body simulation
Greatly improved physics engine performance
Added and improved physics based sound interactions
Improved player interaction behaviour and performance
Improved rendering engine capabilities
Improved global illumination quality and detail
Displacement detail shadowing from all lights
Improved contact shadows and shadow quality
New material and visual effects
Improved procedural materials
High performance vegetation materials
Significant GPU and CPU performance improvements
Improved performance scaling based on settings
Advanced compositing features for complex effects
Improved post-processing
Improved "supersampling" image quality
The game is now 64 bit
Massively improved loading times
Content load and generation streaming
Much faster character and item UI interactions
Inventory now opens without stutters
New interaction and narration features
New and improved fading of objects obstructing view
Improved shader pre-compilation (WIP)
Added skill UI Images
Improved item icon quality
Improved font quality
Many, many fixes
The biggest content addition yet, a huge and varied new area to explore that will play a major role in the game's story when it reaches its conclusion. As the name implies, this area features plenty of vegetation, but also open spaces and complex environment elements unlike anything in the game so far. It also features the greatest variety of encounters, and our most spectacular and fun battle yet.
We've come a long way from the early days of flat, grid based corridors, this represents the final evolution of our environments, where we no longer feel constrained by our engine's capabilities, though we do still have some tricks up our sleeve. A lot went into making this function, play and perform well on all fronts. World building and exploration are extremely important things to us, environments shape many parts of gameplay and the experience, defining what's possible, and we no longer feel we need to compromise.
New terrain features and overhauled assets allow us to make much more convincing and detail rich environments. The terrain and ground system has undergone a major rework, with a richer material system, support for more materials with more advanced blending, better 3D detail, displacement mapping with detail shadows and a better grass and small plant system and rendering, all of which comes with a complete overhaul of all related assets. Exanima's view means the ground is usually most of what you see, ground that is rich in detail, depth and variation is perhaps the most critical element of the visuals.
In addition to improving the visuals of terrain we've greatly expanded our tools and engine functionality with advanced sculpting features, the ability to cut precise holes in terrain and design complex procedural brushes with interactive results and more. This gives us more freedom and allows us to make better looking terrain and environments and do it faster. Close up of our new 3D grass system and assets, featuring advanced lighting which gives it more depth.
While Gardens is the largest content addition, almost everything in the game has been updated to take advantage of new features, the Catacombs map is greatly expanded, the golem map has been completely remastered, undead received a big visual update with exposed flesh, various other encounters were remastered, countless items were fully redesigned and more. This is part of an ongoing process to update our thousands of assets after our previous big graphics engine update and the newer features added recently, as well as just getting everything up to the same high quality standards.
New procedural character features with exposed flesh and bones on undead, giving each one a unique and gruesome appearance.
Perhaps our most ambitious goal for the game was the "role system". We're all about organic interactivity and emergent gameplay, and the role system was meant to fulfil that goal in the behaviour of NPCs. We built a system of emotions to drive the decisions of NPCs, and then a very simple version of roles that did little more than assign basic behaviours and nudge dispositions, but the role system as we imagined it was still a huge open ended problem, that grew in complexity as our community told us everything they hoped NPC interaction could be.
This also makes it very hard to describe, but here's the problem we're trying to solve: when games feature a designed narrative it typically follows a few rigid paths, it can't respond to dynamic events, changes in circumstance or the actions of the player, only a few scripted choices. We want both, and roles would provide carefully designed behaviours and dialogues that tell a specific story, as well as many common ones that fit the many activities, interactions and responses to events within our world. Characters can have many roles, changing dynamically as they engage in different tasks and become involved in events and plots. Roles respond to emotions and evolving relationships and remain with characters as a memory of everything they've done and said before, to draw from for further interactions.
That probably still sounds vague, and that's the nature of the complex open ended problem. But we finally buckled down and committed to a design that supports what we need to model these behaviours. We developed the structures and systems that drive these roles and relations and how they interact with everything, the tools to design them, a scripting language for our engine to support complex decision making and outcomes, a more dynamic dialogue system and more. We've been using this to create more complex dynamic behaviours and replacing our hard coded ones with these new systems, much more versatile and also open to modders. As we introduce more NPCs and move beyond the confines of Exanima these roles will drive everything.
We've also been expanding our core behaviours for AI. A prominent addition here is that NPCs can now independently search and loot the environment, containers and corpses. They can evaluate items and understand how they might fit with their equipment or be useful later. They can also do this for allies and call out when they find items that may be useful to them. Your companions are both more independent and able to assist you in searching the game's cluttered environments.
We've added a new thaumaturgy domain, and while this is a subset of powers mostly limited to NPCs, a lot of work went into developing features to support its mechanics and effects. We don't want to spoil what they are so you can experience it in game, but it involved some interesting development challenges in terms of physics, rendering and more which expand our engine's functionality in very useful ways.
We've also added the ability to absorb powers from defeated shapers. This means that when you defeat one you can learn powers from domains other than your innate one, expanding your repertoire of abilities and providing a new progression and reward system.
Another thing to receive a significant overhaul is combat AI. The combat system can be highly dynamic and full of nuanced detail, but without good opponent AI it amounts to little. Exanima's combat requires complex prediction with a great many variables involved. Making AI that can feel smart and engaging to a skilled player is very difficult, and precise predictable behaviour is trivial and boring to counter with experience. AI must also vary greatly in skill, so that common encounters aren't a tedious struggle and the skilled AI stands out as such. This also allows for NPCs such as companions to progress greatly in their proficiency with experience.
Getting these things and this careful balance right has been an ongoing struggle, and as we add new larger and different creatures the rules change and the need for new behaviours arises. We have some ideas on how to enhance combat AI in many ways, but before we make additions we have to get the basics right. We had some long standing fundamental problems to solve, and we wanted a more advanced system that could produce more varied combat behaviour, such as more slow and deliberate large creatures, or just changes that reflect the personality and state of mind of different AI, not just skill, while still being effective.
Our redesigned combat AI does these things, while providing a higher skill ceiling for AI and a better scaling that makes low skill AI feel easier to beat, but not just completely stupid and ineffective. AI is now also able to smartly tackle multiple opponents rather than fixating on one, quickly switching targets to fend off an attack or use an opportunity, and making more advanced tactical decisions in general. They're also more aware of hazards, including drops, obstacles and special abilities, trying to dodge and avoid them in the heat of combat. The tactics system for using abilities is also improved, with AI that are given a random assortment of powers being able to better prioritise and plan ahead for how to use them strategically.
Just a few examples of the 60+ new and overhauled items.
Our layered and slotless apparel and armour system is designed to mimic real life, placing no restrictions on what items can be worn, in what combinations and their design, so long as they physically fit together. You can wear up to 5 items on your head alone. This has been a very difficult system to maintain as we add new items and give our character artist almost complete freedom. The number of possible combinations is incomprehensible, and yet all these items must somehow be wearable in any combination and adapt to it. There's roughly 350 wearable items in the game, and a single item could be made from over 500 meshes that are dynamically combined to create countless shape variations. Despite these efforts the game was still riddled with issues of items clipping when layered together. New items kept multiplying the rules and combinations and it just got too complex to work with.
We've long talked about a "Human 2.0", an improved system designed with the hindsight and experience of having worked this way for so long. This includes many things, but at the core of it was an improved system and tools to simplify this complex layering system and the work involved in creating items. This part we've developed now, creating a much simpler workflow for our artists, solving countless difficult clipping problems, improving how clothing and armour deforms with motion and also improving performance by better removing parts of apparel hidden under other layers. This also came with a complete rework of almost every clothing item in the game, many pieces of armour and at least some refinements to just about every item. As well as solving many issues, the redesigned items and improved features really improve character visuals.
We also improved our procedural materials which are applied to all equipment in the game, particularly with better damage and dirt effects. As well as improving existing items, we've added many new items in every category and new ones, new weapons, new elements for procedural weapons with new features there too. This includes our first batch of highly ornate procedural weapons which are the most modular and advanced yet. Our armour set encumbrance bonus system was also improved, now allowing large sets that include many variations to provide bonuses when any combination of items are worn in a way that connect with each other. Some examples of new ornate weapons leveraging new procedural item features.
Our physics engine is very much at the core of all gameplay and interaction. It is a completely custom and very unique engine designed to handle complex interactions between intricate objects while remaining stable and performant on even low end systems. Difficult interactions can be largely solved by high simulation rates, but this costs performance and is not friendly with our eventual plans for multiplayer, where stability under infrequent updates and errant behaviour is also critical. It is of course also critical in our unforgiving and perfectly persistent game world, where a physics glitch isn't just amusing or inconvenient, but game breaking.
There were two key issues we felt we needed to solve despite our modest simulation rate. One is what the community refers to as "phasing", where two colliding objects could pass through each other. This is very important especially in more advanced combat interactions. The other was stacking, basically being able to pile objects up such as books etc. which is a notoriously difficult problem, especially with lower simulation rates, and was in a particularly sorry state.
Our engine already featured Continuous Collision Detection, which means that no matter how fast or far between time steps objects moved, collisions would still be detected, but our problem was more with solving collisions when strong dynamic forces were applied to thin objects such as weapon hafts, a common occurrence with parries and grappling fighters. This and stacking both required a fundamental redesign of how our engine handled collisions and other interactions, and by extension many other things. This led to basically a full re-write of our physics engine, which involved a lot of optimisation work, but also the opportunity to include important new features. Despite its enhanced capabilities, our physics engine performs better than ever (more on that later).
One important new feature was an advanced cloth and soft body simulation system. When "human 2.0" finally comes (this will be after Exanima reaches version 1.0), we want to include simulated clothing which needs to handle complex dynamic cases, cloth has many other applications, and soft bodies will be used in fleshy environment elements, creatures, vegetation and more.
There have been many big improvements to character physics, on the back of a big overhaul of our physics engine (more on that later) and new requirements that arise with new content. Combat feels better than ever, all character motion is smoother and more precise and characters are able to negotiate things like stairs far better. There are a host of more specific improvements, many problems and clumsy things were fixed and the game just feels better to play. Character physics are at the core of all gameplay and how you interact with the world.
The steep learning curve of fine grained control over a fully simulated character will never go away, it can't and therefore shouldn't, but as characters become more competent and consistent in how they perform actions it gets easier and more comfortable. Of course it's not flawless, there's a reason a whole industry still uses basic animation and not fully simulated characters after 30+ years. We've got just one programmer developing the whole game and engine, but even if we spent 10 more years working on character physics it wouldn't be perfect, but we will keep ironing out the kinks.
After the physics engine overhaul we went through a public testing phase that inevitably became focused on combat, various core changes were made. This meant having to revisit all our designed motions, which with all the weapon setups and creatures means 100s of difficult physics based animation. We later introduced new creatures which deviated more in size and proportions to the anatomically plausible humans we built our physics on. This to our great dismay did not work at all, and led to a big overhaul of character physics from basic muscle function and structure to all the dynamic animation that keeps characters balanced and negotiating the environment etc. Once again all our designed motions no longer fit and had to be redone. These were big foundational improvements that might still need some polish, but will support the game as it continues to grow and evolve.
We've made extensive improvements to lighting, materials and added new features.
We have made several improvements and additions to our rendering engine to better support new environments and effects as well as generally better visuals. We've also improved our tools which we use to create in game assets and the many procedural materials that are used extensively throughout the game.
Our global illumination, lighting and shadows were all improved to better capture scene detail and materials, we also added displacement map shadows from all lights which add a tonne of detail and depth to details and complex surfaces making them look much more convincingly 3D. These things not only greatly improve the look of the game, but really help with your visual perception of the environment in the game's dim lighting. We've added vegetation rendering features and a few others besides to support new features and elements.
Our graphics engine focuses heavily on performance, image quality and everything being dynamic. These things are an absolute priority to us, the game must run smoothly and look crisp above all else, without steep hardware requirements. We find our own novel solutions to include advanced features and improve visual fidelity without compromising on these fundamentals and remaining highly scalable so that even low end systems can run the game well. The Gardens put a particular strain on performance due to dense vegetation combined with our many dynamic shadow casting lights, a much more costly scenario than an outdoor environment where you'd usually find vegetation. With the addition of this more taxing content and graphical enhancements we also made extensive optimisations and improved scalability so that the game runs better than ever while looking better too.
One place where we don't spare performance is our "supersampling" (for lack of a better term, it actually does much more), which received some fancy new processing to further improve image quality and motion, to better capture our detailed art. Our constantly evolving asset creation tools and procedural materials also play an important role in delivering consistent high quality, with further work going into improving the quality of our dynamically rendered item icons.
New displacement mapping with full shadows adds lots of detail and depth to objects and surfaces.
We've always tried to support even the oldest and most humble PC configurations, but it's been some time since we began development and now everyone is dropping support for 32 bit, including the Steam platform itself. It was time to move on and switch to 64 bit. This is a pretty big deal, in 32 bit we were limited to using a puny 3GB of RAM, a limit we've been struggling with as we keep making larger and richer content, despite our optimisation efforts. Importantly though we're now targeting much more modern CPU architectures, which gives us access to more advanced features and significant low level optimisations. Basically we can do the same things, but a lot faster, and use resources more efficiently.
Porting software to 64 bit isn't always a big deal, but in our case this meant our entire engine, game and all our development tools, an enormous code base. Our engine also includes very extensive low level optimisations, strictly designed memory layouts of data and huge amounts of hand written performance critical assembly code (this is code that deals directly with hardware / CPU level instructions) which had to be redesigned and completely rewritten for the different 64 bit instructions, data types and capabilities. This was a massive undertaking, and with it came many opportunities to revise a lot of fundamental engine systems which had to be leveraged.
We did not take this decision lightly because of the massive amount of work involved, but it was necessary to break free of that 3GB RAM limit and by leveraging 64 bit capabilities we were able to improve our engine's capabilities while also improving performance. This played a critical role in the important enhancements to our physics engine in particular.
A big addition to our engine is a new content streaming system and optimisations which dramatically improve loading times and allow content to be loaded and procedural content to be generated as you play without the game even stuttering. This was a difficult task that drastically changed these pipelines and affected many parts of the game and engine, but it represents an important foundation that enables us to do many things.
Greatly improved loading times means we can transition between areas almost instantly, giving us more freedom in design and eventually allowing things like falling into a hole to appear in another area. It also allows NPCs, and eventually other players, to travel and enter areas seamlessly, without the game having to pause to load their various assets and many procedurally generated items. When we move to massive streaming and populated environments these features will be critical, but we also hope to leverage them to basically eliminate loading of any content. In the short term it's a great quality of life improvement, transitions are snappy, the inventory can be opened without the game stuttering and every interaction and interface that involves characters and items is much faster or works seamlessly.
While most basic modelling work is still done in 3rd party programs, everything else we do in entirely our own tools. This includes textures, materials, level design, rigging, skinning, animating, designing roles, writing dialogue and many other things besides. This is the reality of using a completely custom engine, especially with unique approaches to many things. Far more work goes into making tools and the back end than the game itself, and reportedly this is why the industry is leaning heavily into pre-made engines, not so much for the engines, but the tools that come with them.
It's far too much to get into here, but we have been investing heavily in more and better tools, they define what we're able to do, how well and how much work and time goes into everything we do. It requires a lot work up front, but pays off big. We still have so much we want to do, and we're also working towards polished, user friendly tools that we can release to modders, already we've been working with them to create more versatile and open systems to support their work too.
As mentioned previously the following major update will be 1.0 and bring the game to its conclusion. This will include one final area and several features, but no more major engine or systems work. The game currently exists in a sort of limbo, where the core gameplay is good, but things still lack a purpose because without all the content in place they can't play their role yet. Many things that we have gradually introduced will begin to make sense, tie together and provide real objectives for the player. New NPCs will also make an appearance and drive the story forward.
Not all the features we want to add are dependent on the last bits of content being added, so we will endeavour to add some of these in smaller intermediate updates. Though recently we've limited intermediate updates to the public testing branch, we don't see the need to do this or wait for bigger updates when we don't have major system reworks resulting in engine downtime. The game should hopefully be able to survive in a good working state from here on, we've tried to make sure of this.
A lot more will come after Exanima reaches 1.0, but that's a topic for another day.
Best,
Bare Mettle
Hey Exanimates, The complete update is currently in testing and at this point we're just looking for issues that need to be urgently fixed before release and tuning various things. The latest test includes the changes we discussed in the last diary, many improvements and additions to the Gardens including a sub-level, the new shaper and their thaumaturgy domain, another new creature, new items and various other things. Some of the changes and additions are quite significant and involve major engine level changes, so they certainly need some testing, but we've already solved a good portion of important issues in a very brief period of testing. Of course the other new creature was a lot of work, but after having just done a big overhaul of character physics and general improvements for the last one, we didn't run into much of the same issues again. This other creature does have some unique elements that required new features and this time we wanted to create its rig entirely from scratch using our new tools. This meant some significant additions to the tools and we made many improvements along the way. It definitely took longer developing the tools first, but with them in place we are able to do what would normally take several days in about an hour, and do it better too. We will be adding more creatures and redesigning some creatures later, and after the 1.0 release we will work on "human 2.0", which will bring many improvements and an overhaul of core assets for humans. This will require updating many things including hundreds of items, and the new tools will be critical in dealing with the workload. In general this is a new class of tools for our engine that will have many applications besides and we've done a lot of the ground work to support them and the new workflows they enable. The new creature did still highlight some issues with character physics, AI and combat mechanics, much smaller in scale than last time, but they still led to some general improvements. We fixed some old issues with foot-ground interaction which result in smoother and more consistent footwork behaviour and some horizontal swing targeting improvements which all applies to players too. We also made more combat AI improvements which are very noticeable, though at this point it feels like we need to handicap low skill AI more aggressively. The new thaumaturgy domain brought some interesting challenges with power mechanics and also teaching the AI to use them. We always develop powers as player usable first, then teach the AI to use them after. Some of the new powers require new general features and kind of broke all the rules we had in place for when and how powers can be used, what interrupts them, how you control their duration etc. so we had to expand on those systems and it got quite complicated, but useful for more powers to come. For the AI we also had to come up with a better tactics system that involves not just evaluating each power individually, but also considering tactical information returned by other available powers. The AI works just like players here, they don't have scripted combat behaviours or patterns, but simply a list of available powers and the same restrictions as the player, so they need to be able to make decisions and plan ahead without a predefined overall strategy. A notable addition is the ability to acquire powers from defeated shapers. This allows you to learn basic powers from other domains, including the one we just introduced. We're big fans of things that enable you to play and interact with the world in new ways, and new capabilities that are unlocked through interaction with the world rather than stats and levels. This also provides a very nice reward structure for defeating some of these harder encounters, something that will be expanded on once the potential system correctly affects powers. There has been lots of polishing game and engine systems, content and additions and improvements to gameplay, but because there's so many and it's often difficult to talk about without spoilers or you knowing what's changed from previous test versions this isn't really the right place for that, we mostly focus on major development milestones in our dev diaries. Near releases, during testing and when we've just made some engine changes that touch many systems is when many things get worked on, not necessarily because they're a priority, but simply because of what we happen to be working on at the time. The little things do add up, and attention to detail and subtle, but deep mechanics is very much part of Exanima's identity. Even though the game has received significant updates on the public testing branch, those updates were mostly about big overhauls to our engine and various game system and content, but didn't include a large chunk of new content to experience as is the norm for major updates. Because of this we've perhaps unwisely held off doing a main branch update this long, and it all took longer than we expected. Things rarely go as planned with all the unique development challenges this game presents when we're breaking new ground. If there's one thing we've learned developing new tech and with the growing scope and standards of the game is that if we do something we better get it right and future proof the first time rather than having to redo it later down the line. We now try to be very thorough and look to everything the game will be in the future, not looking for short term solutions. We've also learned that development and content tools take a lot of effort, but are a good investment that is best made early. Anyway, we're done developing new things as far as this update is concerned, and as soon as we're happy with how things are working we'll finally release to the main branch. On that note, Exanima isn't really designed as very re-playable game, it has grown so much and become very large indeed, but without tying its elements into a complete experience yet. That really requires the game to be content and feature complete, so we're also trying to head towards that without fatiguing our players with too many pointless playthroughs. This is not a live service game, it was supposed to be a small indie dungeon crawler and a stepping stone that has grown far beyond its original scope and design. From here there will be one more major content update (without the complete engine overhauls!) and features that will tie it all together into something that should make a lot more sense as a story and gameplay experience. Best, Bare Mettle
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
Hey Exanimates, We've finally started insider testing of the update! We've done one patch and we've got another big patch on the way. The testing release already feels very solid, with only a couple of very specific issues that we want to do some more targeted testing on. The new map is massive, varied and looks very different from anything so far. We've been trying some more complex things with the environment design and they have been well received and are working well. We're still adding a bit of visual polish to some assets and things like a few more small objects here and there, but these are small touches. We're going to make one significant addition in the test build still, the new thaumaturge / shaper encounter, which needs a little revision after many changes to character physics and AI, but that's it. Leading up to the test release it's mostly been finalising content and just transitioning from a still a bit prototypey dev build to a release build. Much of this was migrating all our creature types to the new race system and adjusting their motions and AI after all the changes to those systems too. A few of the older creatures got a visual upgrade too. All the changes to muscle function really messed with existing motions, and this meant having to redo or at least modify almost every attack motion and many others, not just for creatures, but also humans with all the different weapon types. There's literally hundreds of these, so it was quite the slog, but between the improvements to character physics and the fresh look at motion design things look and feel great. There was really a lot of testing new creature physics, new motions and the new combat AI which is still a work in progress. This led to a lot of improvements beyond the initial scope as we noticed various little issues, including some notable combat mechanics problems that had been reported in the past. In the last stages of development of an update we're much more hands on with the game instead of deep in the engine code and artwork creation. This, and especially when we do these rounds of insider testing, leads to uncovering and fixing many little old issues beyond the scope of the latest build and features. Maybe not game breaking stuff, but it all makes for a more polished and enjoyable experience. Our list of things we'd like to improve is many pages long and always growing, with many things that often seem small, but can take a lot of work to do. We do gradually complete the items on the list, which usually include something that someone in our community will be particularly happy to see. One thing that is a more serious issue that we've been giving particular attention to since the test release is pathfinding, particularly the tendency for NPCs to fall into pits as well as take some unlikely paths. This is a very difficult problem. On the one hand we don't want NPCs to take dangerous paths that could lead them to falling somewhere bad, on the other we do want NPCs to be able to take the same dangerous paths the player can, such as crossing a pit via a plank placed over it, or walk along a thin ledge between a wall and a drop. We also want NPCs to avoid walking against walls, except for cases like the narrow ledge, where it's better than falling. To be able to drop off a small ledge, but still prefer taking the stairs in most cases and so on. This requires complex pathfinding logic and nuanced decisions, things like this may seem straightforward to a human, but for a computer program that doesn't understand what these things are it's a whole different story. Our pathfinding isn't based on anything hand designed or designated walkable areas, it's just "polygon soup", characters can walk on anything including dynamic objects which change and create potential paths. We've been iterating on our pathfinding a lot, and while it keeps improving, these problems remained. It's one of those difficult open ended problems that we can't be sure even has a solution. Recently however we've had some new ideas on how to better represent things and how AI decides if and when to take dangerous paths. We've implemented these changes and our problematic test cases seem to be solved and we're also seeing generally improved pathfinding behaviour, with NPCs taking more sensible paths. We're also considering further additions, like perhaps companions voicing their reluctance to cross a particularly dodgy path, but being willing if encouraged by the player. This is not something we were confident we could solve, and it's been bothering us for a long time, so it's great and a relief to see such an improvement. It's been a hectic time working on a huge amount of different things to get everything ready, but it's been exciting and uplifting to finally see it all come together, especially after a stressful few months of unexpected and sometimes seemingly insurmountable problems. We can't say for sure how long we'll keep things in testing, so we won't, but things are looking good. Best, Bare Mettle
Hey Exanimates, We quickly recorded a video at the last minute to showcase some of the improvements discussed in this diary, but read on for a more in depth and accurate explanation. We last talked about some difficulties we encountered with physics for a new creature, and how despite our efforts to get it working with some incremental improvements and adjustments, it became clear that some aspects of our character physics required a significant overhaul. While it's unfortunate that it's taken so much additional work (no one wants the work on this update to stop more than us!), this has led to some really important improvements to the game overall and how it plays. Considering how difficult this character physics work is and how much time we've spent on these things in the past with varying levels of success, we got through these many and big improvements surprisingly quickly. After we'd managed to at least cover some basics like good muscle function and control and moving on flat ground without constantly face planting, the next goal was traversing uneven ground, slopes, stairs etc. This was already problematic even for human characters, there's a lot tripping or stumbling over even minor obstacles or bumps in the ground. We know this is something that players can find quite annoying and it produces a lot of clumsy and silly moments in general. This has only become more of an issue as we've introduced more verticality and complex environments. We've made some attempts to improve this over the years, but the improvements have been marginal. This new creature really couldn't handle the clumsy movement and it was time to give properly solving these issues our best shot. We've failed so far because it is indeed a very difficult problem. Our physics means that the feet collide with every little thing, if the character fails to avoid hitting something with their foot, they will trip and lose balance. The "ground" isn't some simplified navigation mesh, it's really a bunch of random polygons, it could be a pile of dynamic objects. The character isn't just some 3D animated sprite gliding over it, it needs to use muscles and generate forces well ahead of time to eventually clear obstacles, ascend and descend slopes, stairs etc., not just with their legs, but the entire body. This requires scanning the ground ahead, trying to determine its shape, predicting what adjustments will be necessary to the animation to traverse it, how muscles should contract to produce those motions, how hard to push off the ground, how fast it can all be realistically done and so on. Besides the mechanical problems, it also has to look natural. If the motions are exaggerated or too fast, if the character does things like lift their feet too high to clear small bumps, it looks silly or just very weird. It all has to be measured just right and very smooth. And that's just the basics, movement must work on any type of slanted or uneven ground with perhaps dips and holes, there's no artificial barriers so anything goes and characters must react to tripping, stumbling and slipping and try to recover their balance. Hopefully that gives you an idea of the scope of the problem. It's such a complex problem with so many moving parts with variable outcomes over time, there isn't some exact solution that you can realistically just work out. We started by laying down some foundations for better scanning and mapping the shape of the environment ahead, which was already a difficult problem, more so because of performance constraints with potentially lots of characters running around at once (whether you see them or not, physics don't disappear). We also made a new system for controlling muscles that would be better able to make precise adjustments to pre-designed motions like running. We also finally tackled an old problem with how strongly characters push off the ground to counter gravity or generate vertical motion to try to stay at the right height. A good start, but these are just building blocks and not a solution. The next step was adding some visual aids for how we were scanning the ground, what the prediction targets were, when and where exactly the character decided to plant each foot and so on. From here we were able to fine tune prediction mostly through trial and error, diagnose problems and make various improvements, making dynamic adjustments to mechanical states based on what was physically happening rather than what was expected in the reference animation. Eventually we started to see some good results. Characters were negotiating difficult ground and smartly stepping or hopping over most obstacles, our new monster was climbing over stuff like a champ and it all looked good and smooth. This can all be made even better, but fine tuning these things takes time and we're in a hurry, so it was time to move on. With everything working so differently there were a lot of cascading effects and other things that didn't work anymore or we had to outright disable just to test this. Our next problem was the dynamic balancer, how we detect that the character is losing balance, tripping or slipping so they can try to do something about it, or understand when they're not able to negotiate particularly difficult ground so they can adjust or give up gracefully. There's a lot of potential goofiness here, but a big problem was that the dynamic balancer must smoothly take over, sometimes briefly and barely assisting, so these must interact seamlessly, but walking and running were now using a completely new system for dynamic behaviours from the balancer which is also the foundation of all combat and other movement. The logical thing to do was to make everything work on the new improved systems rather than try to maintain both and make them communicate, but this meant changing combat footwork again, which as we've noted before, is scary ground as it's such a fine tuned system and critical to the feel of combat. Eventually we got the footwork seemingly working well using the new systems, we thought we had almost everything working and moved on to testing the new creature's combat AI. But in testing combat we noticed the footwork wasn't there, it felt a bit sluggish and unresponsive, looked clumsy at times and characters were falling over too easily. This was discouraging, it was quite possible that while some things were technically better, the flaws of the old system are what gave the footwork its "magic". Eventually with a lot of A-B testing between the new and old footwork we were able to identify the differences and return the footwork to its former glory, with a few notable improvements. Another thing that broke from all the changes was crouching. Crouching is one those "WIP" features, and it already wasn't working well. A proper crouching implementation would need more work, but we were able to do something that is still not perfect, but definitely better than it was. Characters can now crouch well on uneven ground, they can perform attacks better and even move around reasonably well. Some quite ugly problems were fixed. We also had a separate problem with getting up from prone positions. You may have noticed that when getting up characters will occasionally slide or spin in weird ways. Of course this problem was much more pronounced with the new creature, which basically just started turning in place without ever managing to get up. This was again due to some artificial forces we used to try to get characters in the right orientation to perform their getting up move. It's another one of those problems we've had difficulties with in the past, but as we keep discovering with so many core improvements to our character physics these heavy handed hacks are not really needed anymore. We managed to work around the problem without the ugly hacks, so they're gone too. In future we plan to add more quick recoveries from different positions and partial falls, but not today. We're trying not to bore you with too many details, but these are the broad strokes. It took a lot of failed experiments, dead ends, promising things abandoned for now due to time constraints and maddening persistent problems like ankles misbehaving or characters leaning too much and falling and so on. It's been a truly hectic month. We know we can improve a lot on these new foundations, but we've been trying to get through this as quickly as possible and moving on as soon as we could call it "good enough for now". Even so, these are huge improvements already, and a big hit on the backlog of difficult issues to solve. Considering all we got through it fast. Moving around feels so much smoother and there's a lot less weird, silly or irritating moments in general. One last thing, we mentioned testing combat AI for the new creature, and this is quite an important topic. We want this new monster to be quite accurate with some of its attacks, and because it's also big we wanted it to be more deliberate in its actions and less like the typically quite hectic AI. As we explored ideas for this we realised that probably a lot of things, even humans, could benefit from some of this, and this led to some new designs for AI tactical decisions. We've been testing these ideas and we've now got a barebones, but fully functional version of this new combat AI which already seems to be a notable improvement. The combat is very dynamic and landing hits on an unpredictable human player is difficult, the AI tends to be quite spammy, if it had to wait for the player to make a mistake and give a good opening it wouldn't be much fun. AI behaviour is an absolutely crucial part of what makes the combat fun and engaging. This would be a massive topic of its own, but to keep things brief we've come up with a method to allow both hasty and impulsive actions and more precise and careful ones and to support more methodical behaviour without it feeling slow and dull. The new creature no longer felt too twitchy and hyperactive for its size, but still very threatening. It's still early, but we should be able to control how "energetic" fighters are, give them more varied and personalised styles of combat, add dynamic changes, make the AI feel more diverse and engaging and hopefully raise its skill ceiling. We expect this to really elevate the gameplay with more work down the line. There's always many things that happen in a month of development that we can't realistically cover in these diaries, but this was a particularly productive month. There were setbacks, but with good outcomes. We're constantly entering unknown territory as we expand the game and we just don't know when we'll bump into an unexpected problem or how big it will be. Honestly sometimes they seem practically impossible, and sometimes our efforts come to nothing. So many things that might have very simple tried and tested solutions in many games can be immeasurably more complex in this one, and we're a tiny team developing everything from scratch where much larger projects use ready-made engines and solutions. We're fully devoted to our community's desire for something special and your countless hopes and dreams, nothing else matters to us. Best, Bare Mettle
Hey Exanimates, We're working as hard as we can to get everything ready for the 0.9.5 update, but one of the new creatures we're introducing has proven a lot more problematic than we expected. This creature is larger and more oddly proportioned than anything we've done before, and this has caused a lot of problems with our physics driven character motion. Character physics have been our biggest development challenge, it took us literally years of experimenting, iterating and refining them before we got them to a point where most players were happy with how characters move and respond to inputs. This is immeasurably more complex than just an animation problem. Our character's movements are driven exclusively by physical forces and virtual muscles, they physically interact with everything, they must promptly react to inputs and move in any direction while also turning, performing actions, negotiating uneven ground, reacting to collisions and forces and trying to stay balanced, all at the same time. And that's just the basics, with many more specific and difficult problems we had to tackle. It's not just an animation or physics problem, the meat of it is how characters reactively decide when and how to move each part of their body, how much force to exert with each muscle in every moment to produce slick, smooth and plausibly human-like movement while also feeling very responsive to control. Humans are able to do this thanks to millions of years of evolution and a lifetime of practice in the real world. A program that can replicate much of this in a fast real time sim is no small feat. We started with something very clumsy, and while we hoped to improve it, we believed that players would be more forgiving of some of the clumsiness for everything that such a dynamic system has to offer. We know now that's not how things go. There's always room to improve many things, but after all this work the core physics that are the foundation of gameplay are undeniably in a good place and far better than we ever imagined they could be. Unfortunately, this new creature threw a huge spanner in the works of all this fine tuning we've done over the years. We've been focusing on teaching humans to move, and so far we've gotten away with just some broad adjustments for other humanoid characters. The odd proportions and even just the distribution of mass on this new creature really did not work well at all, and this was kind of terrifying as it's a very delicately balanced system that at this point feels more like magic than science. Any small change could throw everything out of whack, and we couldn't even be sure if getting this creature working is possible. Humans after all are real, bio-mechanically sound creatures, this is something less anatomically plausible. The new creature could barely even stand, it wasn't able to move its limbs properly and dashing and running around was far beyond its capabilities. We weren't just going to give up and cut it though, we had to try. We still want to add many more creatures, our plans include that creature types are very local and vary as we expand the world. We're even considering adding procedural elements to creatures as well, building on our already very modular and morphable character system. So we began the difficult and scary process of trying to understand all the reasons why it failed to move properly and do something about it. Our first problem was with basic muscle function, and this at least was relatively simple to solve. Instead of scaling all muscles while assuming human proportions we now measure parts of the body and scale each muscle accordingly. This worked well and it's fully automatic, adapting to any change in body structure for any individual character, which is great. Our next problem was definitely on the scary side: footwork. All the fast and completely dynamic work of movement and staying balanced in combat while performing actions. This was the magic sauce that we were so scared of spoiling, something we arrived at through years of trial and error, sometimes working on a promising idea for months only to discard it when we just couldn't get it to work, and sometimes discovering improvements more by accident than intent. Our new creature wasn't impressed, and so we warily tried to unravel the magic and figure out exactly why some things that worked so well didn't here. Eventually we transformed enough of the magic into exact math that took the specific proportions of the body into account and got things working well without breaking anything. Again we had something that should just work better than ever with any creature. Big sigh of relief. Our final problem was with walking and running, which has proven much more difficult than we anticipated. We'd recently made some improvements for other creatures and thought this would be easy, but no matter what we do the new creature keeps falling, stumbling, dragging their feet and so on. Walking and running is the most artificial part of our character physics, unlike the entirely physics driven and dynamic combat movement where motions are generated on the fly, this is based on motions that are designed by hand to look natural, with some invisible forces and essentially hacks to help the character stay upright and moving. This seems like a simpler system, but it must still interact with physics and have dynamic behaviours, and the simplified part is where things went wrong. It's just too rigidly coded to our current animations, so the new creature with its weird long legs and animations just can't move effectively or stay balanced. We tried to just make adjustments, but nothing worked and it became clear the only solution was a more complete simulation, and this means a significant overhaul that we're still in the process of. We're now analysing the specific hand made animations as they apply to the character, comparing animation inputs to what's actually happening in the physics to make dynamic adjustments, predicting exactly where and when the feet should land and how high above the ground they should be as they move, how much each leg should push the character off the ground and propel them forward at any moment among other things. The creature now moves well on flat ground at least, and things are generally improved for everyone, the motions look more grounded and physical. We're still working on balancing on uneven ground, but we've done a lot of the big difficult stuff so hopefully we can fix the last few issues quickly. We do expect to see more general improvements, and as we keep adding more verticality to the world and more creatures these are important. Some of the things we developed here are also interesting for features we hope to add in future, such as more contextual movement and traversal animations and things like quick recoveries for losing balance or falling in different ways. Rewinding a little, before we could even test the new creature in game, we've been using our new in-house tools for rigging and skinning. You never know what's missing, needs fixing or improving until you use something, so there was a lot of that. While the tools are fairly specific for now, they're part of new tool systems we plan to use for many things yet and there was quite a lot of engine level support to getting the entire workflow in a good solid state. We also realised that there was one important step still missing from our character production process, which is modelling additional collision mesh for parts of the character such as the joints. Our tools aren't quite yet equipped for this kind of modelling, but we did one better and can now just generate this entirely automatically. At this point we can take our character artist's raw 3D models and create textures and materials, rig them, skin them, animate them, give them properties and behaviours and add them as fully functional in game characters without ever touching a 3rd party program or a line of code. We don't expect you to understand just how much of a difficult and confusing process this previously was, but this is a pretty big deal. We have also been working on some improvements to our procedural item and material systems, some of these were urgent, but we've also got other things still in progress and can probably wait until after the update. We're working on some improvements to how materials and parts of objects blend together, adding more advanced effects to character materials and also expanding the procedural materials to work not only as part of our procedural item system, but as a general engine feature. This means we can give any object dynamic procedural materials, we can use them while authoring items which is great for our new tools and we can "break" the procedural item rules as needed. If for example an armour had a lot of additional elements that don't fit in our character layouts, we could add "modules" with custom layouts. We already made our weapon layouts more versatile and added some new features for compound elements to support some new weapons. Speaking of which, we're adding a first batch of the new ornate procedural weapons that we've teased a few times on our discord. These will be rare loot, and once we have more types we will probably also add them as alternative tournament rewards. Here's a few examples of some in game generated outputs:
Have a great new year, Bare Mettle
Hey Exanimates, We're very close to beginning closed testing of the full 0.9.5 update. This will be mainly for the new area, encounter types, new items and thaumaturgy. While there have been some engine changes such as rendering optimisations and the new grass and race systems, it's mostly content and the big changes were already thoroughly tested in the testing branch. We don't expect this to last long or involve difficult technical issues. Originally we hoped to begin testing a bit sooner, but of course we ended up making a few more improvements and additions. The new race system we discussed in the last diary is up and running, and while switching everything over to it we improved many things. We won't repeat all things it was designed to support and how it improves our creature and animation workflow, but we immediately saw benefits and took advantage of some of the new features. In configuring animations with the new tools and making new animations for the new encounters we ended up improving many of the older animations too, sometimes because of what the new tools allowed, and sometimes because we noticed some weren't working very well. The walk and run cycles is something that we improved on particularly, but while updating those we had some issues with characters losing balance, which led to a long investigation which finally ended in improving how characters balance during locomotion. This means there's now a lot less falling over or stumbling for no good reason while walking and running. In animating the new creatures (and some new armour) we ran into another production bottleneck that has been a particular annoyance throughout development: skinning. Skinning is a term for how characters and whatever they're wearing deform as they move. We use a peculiar system of our own design which is optimised for our extremely modular and dynamic armour system and also to give us very fine-grained control over the behaviour of things like the articulation in armour. Designing these deformations however is a very lengthy and tedious process, made much more tedious by our reliance on 3rd party modelling programs for most of the work and basically not really being able to see what we're doing. We recently overhauled our apparel system, and a big part of this was a new skinning solution for clothing specifically which is almost completely automatic and give much better results, but for articulation of armour and whole new creatures this doesn't work. Faced with this big skinning workload, Madoc again decided it was time to improve and invest in our tools, so we can now design the deformations and even skeletal structure of creatures directly in our engine with much better tools designed for this purpose, and interactive results. These tools represent a big step for a lot more than just skinning though, as they are essentially the foundation of our in-house modelling tools, which will solve other problems and importantly allow us to better use a lot of other engine specific features. This includes some big new environment design features we've been working on. It's too much to get into right now, but we'll probably do a showcase of these later on as they're a pretty big deal. The game has a lot of unique features and a unique engine and this means a lot of unique problems to solve and just difficult technical development. It is what it is, we're not just developing the game, but the entire platform it is developed on at the same time. We're moving in a different direction to everyone else so we have to figure out a lot of stuff that no one else has tried to figure out yet. Sometimes we have to make a difficult choice between the quickest way to do something now and the best way to do it now and in the future too. We made the wrong choice many times early in development, and doing things better, not quicker is a lesson we wished we would have learned earlier and that would have saved us a lot of time. We don't want to make that mistake again. Anyway, no more developing new tools and systems before the update is out, we promise! At this point we're really just wrapping things up and at most we'll be touching up the content while testing is ongoing. Best, Bare Mettle
Hey Exanimates, At this point we're mainly putting the final layers of polish on the new content. This is mostly material work, to make everything look good and cohesive. Making detailed and realistic materials for modern graphics is very difficult, and making sure all the colours are balanced and that all the materials, the dirt and grime etc. belong together and their environment is like a giant game of whack-a-mole. Even Madoc who is our main programmer has been mostly helping with getting art finalised. When Madoc gets involved in the art pipeline there's a lot of finding tool based solutions to improve results and avoid lots of brute force work. Why fix a problem once when you can fix it forever? While making the game and our own engine, in total we probably spend more time developing our content and asset creation tools. We have our own unique way of doing everything from physics, animation and AI to rendering, with many unique features; our tools are the backbone that allows us to take advantage of these features, and to develop them in the first place. When there's a major advancement in what we're able to do in the game, it usually has more to do with tools than anything else. Our tools are extensive and designed around creating instructions for how something is made, so that the process can then be rapidly repeated and iterated on. Adjusting or improving any step of the process is relatively quick and easy, as well as creating more assets using the same or a similar process. We're proud of our tools and they're how our tiny little team is able to consistently produce cohesive, high quality, original art and content. Exanima has grown to be quite a large game, but mainly it has an enormous amount of carefully crafted stuff in it. Our most recent addition to the team, a second programmer (Jimmini), has been almost entirely dedicated to expanding our tools and content creation pipeline. These range from improving on what we can do with engine features to brand new tools which will play a major role in how we make content going forward. Some will be used for the content in the Exanima 1.0 release, but we are gearing up for what comes after. We typically avoid showing any new content before release, but we'll make a small exception with screenshots of one asset to illustrate our art pipeline. Beyond some low poly modelling work, this was created entirely within our tools and uses our newest features, also in terms of rendering. Everything down to the brickwork and roof tiles is created entirely from scratch, giving us complete artistic control. This asset is part of a highly modular "kitbash", meaning we carefully make many individual elements (e.g. the segments of an arch) which combined in many ways and with some tricks can a large number of different assets, that still look well integrated and varied, while using fewer resources. We aim for a certain level of quality and immersive visuals that contribute to the game's atmosphere, while using approaches that are very performance friendly to keep everything running well, even on low end hardware. And here is a detail of the roof tiles which shows the kind of thing we're able to generate using procedural methods in our tools. In our last diary we mentioned we were overhauling our 3D grass. The main goal was for the grass system to support not just grass but also small plants and dense undergrowth, as this would be more scalable and efficient in terms of performance and especially in terms of level design. We've made a large number of all new grasses, plants and flowers, more detailed and much higher quality than our previous assets. To make convincing 3D plants we also had to use more advanced rendering methods and there were a number of difficult problems to solve with this. We're using dense grass in environments with lots of lights and high contrast lighting, making grass not look flat or polygonal while preserving lighting detail is difficult, and performance is a concern when so much of the screen is covered in layers of grass being lit by many lights. Indeed our previous grass was heavily reliant on shadows for any depth, which are not always possible. Another common and difficult 3D graphics problem is blending, the grass in our game is small therefore thin, and we really wanted to avoid the pixelated or fuzzy look this often produces, so we needed some clever solutions. It took a lot of fixing, tweaking and adjusting to finally get everything working and looking how we wanted, and once again adding some features to our asset creation tools was critical to getting it right. We solved all the problems we mentioned and developed some fancy custom shading that is also highly optimised. It looks great even on lower settings and blends perfectly with the ground and all its variation. Here is an example of dense undergrowth to fill in more vegetation heavy areas. We can now quickly paint this in with a brush and it will dynamically adapt to changes in the terrain as it is edited or modified. Here is a large amount of grass showing the variation and how it adapts and blends with the ground. While the ground is not intended for such close-up viewing, this zoomed in shot shows the lighting detail, including specularity and translucency. It looks convincingly 3D even under high contrast lighting: As well as a new NPC thaumaturge, in this update we're adding four new non-human encounters. The most we've added at once until now was two, and adding new creature types requires a lot of rigging, animation work, careful tweaking of physics, combat AI, sound design etc. So far we've been developing the features to support each new creature and its unique physical and other behaviours as needed and the result is a lot of custom hard coded rules and systems. With four new character types added now and more on the way, this is becoming cumbersome, but importantly this hard coded system has been a big problem for modders who like to add as many modified versions of them as possible. Modders have been very limited in this regard and when we add new creatures it takes away valuable slots they rely on and undoes their work. They've asked, and we promised modders a better system some time ago, so we decided it was finally time to add it. We developed a proper "race" system which allows adding virtually unlimited character types featuring a massive number of properties and parameters for their appearance, physical properties, animation behaviour, AI, sound and voice effects, stats, locational resistances, equipment use, blood effects and generally how they interact with every game system. On the back of this we've made various improvements to some of the underlying mechanics and tools. We're now able to make adjustments to physics and animation in real-time to immediately see the effects in game, which really improves our workflow. The biggest change we made though is to how character motions are managed. The new system can create custom motion sets on the fly based on race parameters, equipment, skills and combat styles and effects like special properties on items, powers etc. Motion sets are mixed and matched dynamically allowing all these conditions to provide highly specific overrides while also finding appropriate fallbacks if a motion for specific combinations is not provided, which is also great for modders. We've been wanting this sort of functionality for a long time, but understanding all the requirements and mechanics for a data driven system was a difficult problem. This is also the perfect foundation for changing motions for different weapon grips and even layering motions to support things like performing actions while running or dynamically changing stances. In general we've been trying to work more closely with modders recently and we've been putting a lot of work into developing polished, user-friendly visual interfaces for all our tools as well as versatile systems to eventually pass on to them. We hope to begin releasing some of these soon and we're quite excited to see what the modding community comes up with. Already with these new systems we expect there's a whole lot they'll be able to do. We're a little restricted with the relatively serious and realistic tone of the game, but modders can be more daring and tend to push at the limits of what our game can do. We do mention our tools from time to time, but only briefly and usually without specifics. We realise it's not what many gamers get excited about, you just want more content nao, and the amount of effort we put into the back end or seemingly small additions to the game might seem insane, but while Exanima might now be close to its 1.0 release, we're only just getting started and there is so much more we plan to do with these systems and tools. We're in it for the long haul, and to create something special. We know the long development cycles can be frustrating, but we're still here, as dedicated as ever and we will continue to deliver more and better game. The 1.0 release is ultimately an arbitrary milestone. Best, Bare Mettle
Hey Exanimates, It's been a very hectic month working on many different things, but also a nice change of pace from endlessly working on a single huge game or engine system. We're trying to get all the new content ready for release, and there's a lot. The Gardens is the largest map yet and also the most complex, varied and unique. There's a lot of new nature and other assets and additions to the terrain which we're currently polishing and optimising. With so much work on terrain, we also made some nice improvements to our tools. Good content creation tools are always a big part of our development efforts, we think they are extremely important, we plan to continue making content indefinitely and also releasing the tools to the community. Optimisation has been a particular concern, as vegetation is notoriously expensive because of the complex 3D models with many layers to render. Usually this is featured outdoors where the lighting is simple, but in this case we also have to deal with many local lights and shadows, multiplying the cost. We wanted to maintain good performance without sacrificing the visuals, and while our engine is very well optimised, this is just a much bigger rendering workload than we've ever had it deal with. Making sure all assets are well optimised is part of what we're doing, but we've also been trying to squeeze even more performance out of the rendering engine. We did a thorough investigation of performance bottlenecks, not really expecting to find much we could do, but when we looked at the results we started having some ideas. When something is already well optimised, even small optimisations can make a relatively large difference. Beyond optimising various special cases, we went looking for approximations. Real time rendering in general is all mathematical approximations of the real world, and often approximate versions of the expensive mathematical functions doing those approximations. Basically there's always some wiggle room in how approximate your approximation of an approximation is. Combinations of these can have a compounding or mitigating effect on each other, one approximation could help correct the error of another, or make it worse. After a bunch of experimenting we came up with various things that could perform much better with minimal detriment, or that might make the lighting look a little bit different, but not objectively worse. This helps us alleviate the expensive nature of the new area, but as a result we have improved performance in general. We can use these on lower settings to boost performance with minimal visual compromise, or even on higher settings for elements where the difference is just not noticeable, such as grass and most vegetation. Speaking of grass, we've been overhauling our 3D grass and small plants to improve them visually and to support larger and more realistic plants for dense undergrowth more efficiently. As part of the terrain system this level of vegetation is subject to some special optimisations and careful procedural generation that can realistically produce better results than someone placing thousands of little plants by hand, while saving lots of time and rendering performance. This becomes increasingly important when producing and maintaining large natural environments. Being procedural also means we can easily scale back the density of this vegetation for lower end systems if necessary. We've also made other visual improvements in revisiting some of the rendering, an important one being better support for the detail shadowing with lower or disabled supersampling settings. Detailed and immersive visuals with smooth performance are very important to us and we're genuinely excited about how our latest efforts have come together in the new content. Still on the topic of vegetation, while we don't consider this an urgent feature, we are also working on plant physics. Everything in Exanima interacts with physics, and plants should be no exception. We don't want plants to just wiggle and rustle when touched, but to bend and push back realistically. We considered various approaches here, and as usual performance is a big concern, but also with our very small team we can't be creating detailed physics models of every plant. We're still early in its development, but we've come up with a way of automatically generating accurate simplified physics structures for plants that can be simulated and deform them efficiently. This likely won't be featured in the earliest releases of the Gardens, but we are actively working on it. On a totally different topic, we've been trying to finally tackle some important physics related issues that have been discussed recently in the community. This stemmed from a discussion on a functional unstuck feature, but it's relevant to several problems with positioning characters. A case some of you are probably familiar with is finding NPCs in weird spots, stuck inside something or each other, or reacting violently to some unseen force somewhere nearby. This happens for example when characters are repositioned while you're unconscious or away, and if they are colliding with something in the new position all sorts of bad things can happen. Identifying a collision free position for a character to occupy is a difficult problem, but is also needed for a good unstuck feature and for NPCs to move away from other characters or dynamic objects around them. But this alone isn't enough or always possible, we also need to pose characters to avoid near objects and gently nudge them into the space without disturbing objects and causing violent reactions or other issues. Not the most glamorous aspect of development, but these are some of the challenges we face with the game's complex physics and scope. We have of course also been working hard on the new thaumaturgy domain. We have a few fully functional powers now, we've finalised all sorts of mechanics and visual interactions, done the sound design, figured out some new control and other mechanics for players and also started working on the domain tree images. This one is a bit more fleshed out than Energy, and there's a cool surprise in there. If you're wondering why we'd put effort now into player mechanics and UI, that's because we've decided to introduce the acquisition of powers from others when they are defeated in this update. If you weren't aware, the domains you start with are your "innate" ones and you naturally learn their powers, but when you witness the death of another shaper you might unlock powers that are from their domain, as well as absorb some of their "potential". This can be invested in powers to make them and their domain stronger. We still want to introduce more progression and reward mechanics, and these are some important ones. With the big core engine and game systems developed as they are now, we're finally really switching focus to enriching the gameplay experience, with things that are relatively much easier to develop, but add lots of perceived value. Best, Bare Mettle
Hey Exanimates, We've pretty much hit pause on roles, AI and this round of testing to focus fully on getting the big content update ready. We released a major patch in testing with some important changes, various additions to the current roles and dialogue, refinements to AI and lots and lots of fixes. As it tends to go with testing periods we fixed a lot of older issues as well as new, there's always a few highly specific and old issues that remain on the backlog for now, but everything seems to be in a really solid state and testers have been very thorough. Thank you. We made big improvements to core AI and how NPCs perceive and respond to behaviour, following on the tricky issues we discussed last month, but a big change in this patch was to how emotions interact with roles and dialogue. This is a difficult problem because accounting for all the different emotions, how they can change or be meddled with by mind powers at any time, can easily create a disconnect with how characters behave and role based interactions and their effects. There were just too many conditions and outcomes to consider, and odd results can be quite immersion breaking or create problems with role logic. This pushed us to design a better system that could constantly monitor changes in emotions and dispositions to alter outcomes of ongoing role actions and influence, but the real problem was how to design and maintain role behaviours that could account for these complex conditions, especially when the emotion system is being constantly refined. Role design tools that are clever and intuitive to use were a big part of the solution and mitigating the complexity. Ultimately we succeeded in both a much more robust system while also making it easier to design more varied and appropriate responses. At this point we feel like the role system is well and truly off the ground, and while we will continue to tweak it and add more roles and interactions based on these features, we're now focusing on finalising the new content and some features for the next major release. The new area, The Gardens, is very distinct both in terms of overall design and completely new assets. We're currently mostly polishing up various things to ensure consistent quality and visual harmony, but also animations and behaviours for some new encounters. As usual we're careful with avoiding spoilers when it comes to new content, so we won't give details. A lot has gone into features, tools and art to make all this work for some time now and we're committed to delivering a high quality final product. While not yet usable by players, we're also introducing a new thaumaturgy domain and have been working on its effects and mechanics. Each domain comes with its unique challenges and this is no exception. The core systems for thaumaturgy and AI using it are now well established and in this case the unique visual effects are the main focus. As is hopefully apparent from the visual effects in the game so far, we're keen on things being more sophisticated and convincing than your typical sprites and particle systems, while also very mindful of the extreme performance impact that complex effects can have. We had very specific visuals in mind for this domain, and some optimistic theories about how they could be accomplished. From a rough, but promising prototype we ran into some tricky problems getting to a polished effect, but we solved them all and it's looking just like we hoped it would. Best, Bare Mettle
Hey Exanimates, Public testing of role system features has been ongoing, the main focus was how roles can interact with emotional states and dynamic events and behaviours. We encouraged people to try to break Derrin's behaviour by doing unexpected things or manipulating him in various ways with mind powers at any point including during dialogue and seeing if he behaved naturally and dialogue could be resumed with responses appropriate to what transpired and what was said previously. This was a particularly complex role setup to test the limits of the system. People found a couple of isolated issues, but for the most part this has been working well. We've also seen lots of thorough testing of every possible item combination for the new apparel system, which we've been fixing quickly thanks to the new system, and just general bug and issue reporting. We've done a few hotfixes and one big patch to address most of this, with only a couple of rare bugs and mostly minor issues still to resolve. Things are looking pretty good and feedback on all the AI and graphical improvements has been very positive.
The big difficulty we immediately faced was with the AI's emotion system and how they understand and respond to behaviour. Until now we dealt mostly with extreme loyalty, extreme adversity or a sort of chaotic neutrality, but now we are trying to model a much broader and more nuanced spectrum of relationships and behaviours, that are also to be supported by and interact closely with dynamic roles. We intend for this to work in any setting and for any person or group of people where loyalties and intentions are unclear. This could include various civilised settings, like perhaps a town square or a tavern, where there are certain expectations of behaviour even from strangers. NPCs must be able to intelligently read and carefully judge situations and respond accordingly, not simply be provoked to violence indiscriminately. Why is this person acting like this? Who's the target of their behaviour? Why? Whose side am I on? Could they want to harm me or someone I care about? Are they trying to protect us? Should I help them? Should I be concerned, scared, angry? Should I get involved? What would be the consequences?
The new Derrin is a good test case for this, as he can now be quite wary of the player yet still cooperate with them, choose to aid them in combat against targets, while also reserving judgement on those targets and avoiding hostility, being ready should the player seemingly turn on him, and yet forgiving of accidents that could be seen as hostility. On the other hand there are also undead with only perhaps a passing sense of loyalty to each other and who attack recklessly with little regard for who's in their way and will sometimes get angry at each other. This is all a result of constant and careful judgement of actions and balancing of emotions, not a set of simple triggers with set outcomes. To achieve this we had to make some major revisions to core AI, improve emotional responses and introduce much more sophisticated methods for judging behaviour and intentions over time, particularly in group situations. These are now brand new systems that will need fine tuning, but from the last round of testing we're seeing that we're already very close to a solid baseline for raw core AI. This is all designed to be supported by roles, which can build more complex behaviours, relationships and outcomes, essentially acting as a layer of higher level thinking based on these raw emotions. We've also been revisiting our personality traits, and studying ways in which they can interact more with these systems to produce more varied behaviour at a fundamental level.
As those who have been following us long enough know, dynamic and reactive NPC behaviour has always been critical to our vision and perhaps our most ambitious goal, which like everything else has only grown more ambitious over time. Just like physics, the goal isn't and never was about combat, or about some impressive gameplay moment, but a world that consistently responds plausibly to anything you might do. We design the world, everything in it and how it works to make it feel like a real place, not a game level. We realise this can seem a bit abstract and the path is long and arduous and there are compromises involved, but that's what we're all about. Exanima's currently limited scope may not seem like the best platform for this, but we need the functionality and the tools before we can build the world. There is much to come in Exanima and beyond that will be built on this. There are many years of study, planning and also uncertainty behind this, with problems that only seemed to get more complex the more we tried to tackle them. Finally solving its intricacies and developing it into functionality is a huge accomplishment for us. We will continue to monitor and patch the test build, with some additions to role interactions here and there, but we will now focus mainly on finalising and polishing the new content for the full update. The main addition will be a large new area, "The Gardens", which is full of new and different content, but we have quite a few things in the works, some of which may come in smaller updates soon after the big one. If you haven't played the test builds, then there are many big improvements, additions and overhauls throughout the game. We'd also like to remind you that we use Discord to track issues, gather feedback, discuss and provide release notes for patches and hotfixes on the testing branch. If you'd like to contribute to testing and share your thoughts please join our discord server: https://discord.gg/Z5aV2bF Best, Bare Mettle
Hey Exanimates,
Before we get into what we've been working on, let's address what many of you want to know: public testing will begin in a matter of days. We hoped to start some time ago, but we've been making changes to how some important things work, because we saw a better way to tackle some of the more complex role features. We're currently fixing a few things from the last round of insider testing we did a few days ago, and then we'll go to the Steam testing branch.
The past month we moved past testing core role functionality and we've been trying our hand at some actually complex role based behaviours. So far all AI decisions have been driven by an emotion system, with roles only really being able to nudge things in a direction and provide some specific interactions and reactions. That didn't really allow for more rational behaviour, and often creates a harsh disconnect between how a character acts and what interactions they can engage in. We've been working on a much tighter integration between roles and emotions, allowing roles to both influence emotions more directly and to make explicit and considered decisions based on emotions and low level behaviour. You could basically see this as making the difference between a wild animal and a thinking, rational human.
We had developed the core features for this already, but when it came to actually using them we realised there was a better, but fundamentally different approach. This has quite an impact on core AI and places a much bigger emphasis on roles for low level behaviour, so things will need to be tweaked and adjusted over time, but has many advantages. This leads into what we previously discussed as "foundational behaviour roles". They provide the most important emergent behaviours and relationships based on unscripted events and actions. We're again using Derrin as a test case, where he could previously only be provoked into combat without this being reflected in subsequent behaviour or dialogue, he can now respond in various ways, choosing to plead for mercy, run away and try his luck on his own or negotiating a truce with the player. He will respond differently to intimidation or outright hostility, or hold grudges and so on. A big part of this is also making dialogue more dynamic and situationally appropriate. Where game dialogue is typically something that happens separately from the rest of the game, in Exanima dialogue can be conducted while doing anything else and while everything continues to happen normally. It's entirely possible to attack someone at any point during a friendly conversation for example, or for it to be interrupted, or simply be or become inappropriate in an emerging situation or emotional state. This creates a lot of very difficult problems with many cases that are not easy to predict or account for. As well as building contextual awareness into the dialogue system and dynamic reactions, there is the problem of dialogue being interrupted and resumed naturally, possibly taking a new direction based on what happened.
We've added various new dialogue and re-written most of the existing dialogue. Besides just improving some of the hastily written old stuff, we've tried to make dialogue feel like a natural back and forth between characters, in keeping with its real time aspect. This however means that dialogue branches often and quickly explodes into a large volume even for short conversations. This is made much more complex still by the previously mentioned contextual changes, dynamic elements and resuming interrupted conversations. Our systems and tools were designed for this, but it's our first time navigating these complex cases and we're still figuring out the best ways to author and handle all this as we go.
We've also been making unique events and interactions more generalised and versatile, so that they can work with many roles. This means characters might respond differently to these based on their roles or that characters can easily be substituted for others. One example of how this would be used is for Derrin (and other characters) to appear on playthroughs other than Unknown's, providing an opportunity for different lore exposition and a more meaningful alternate playthrough. On that note, we're also finally working on introducing the proctor uniform and armour set. This is an elaborate and very unique set with eleven pieces that can be combined in different ways.
After a first round of improvements to pathfinding went through testing, we worked on it a fair bit more. We solved some remaining issues and made characters better at navigating complex paths, far less prone to getting stuck and they now try to find a safe and comfortable position to stop in. There's still some pathfinding related improvements and tweaks we'd like to make such as characters moving better in groups, moving out of each other's way and dodging moving objects, but for now the focus was mainly on making companions better at avoiding dangers and sticking with the player. While role testing and general polishing continues, we're still finalising new content, but also working on a few things besides. We're not sure exactly what other features we will include in the main update just yet, but as we've overcome these big development hurdles we're shifting focus to completing and adding new features and smaller content additions. Some of these will come in small updates following the big one. Best, Bare Mettle
About
This page aggregates Steam news feeds, patch notes, and developer announcements for Exanima, sourced from official Steam community posts.
Major updates, balance changes, and seasonal events often correlate with player-count spikes — cross-reference announcements here with the live charts on the main Exanima statistics page.
Articles link back to Steam for full changelogs. SteamScope refreshes news entries as new posts are published to the game's Steam hub.
FAQ
Browse related Steam game intelligence pages and categories.