Exanima - Zetheros
Hey Exanimates,

We hoped to have a release ready now, and though we are very close, we moved the goal post a little for a couple of reasons. We also had some key team members who had to deal with some personal life stuff, which put our work a bit out of synch. With the new core role and AI functionality in place, our current goal was to use Derrin, the only intelligent NPC currently in the game, as a test case for these new systems. Our previous placeholder role system was really just used a platform for some quite rigid scripting, dialogue and commands, but now there would be multiple dynamic roles over which the character has agency, working closely with core emotional systems and expressing them, as well as driving conscious decisions on how to act despite of them. The new roles also support more complex behaviours and different activities. All this was ready for a more intelligent, communicative and self-sufficient Derrin. However, as we got into designing Derrin's new roles we soon realised that some of these specific roles would be redundant once we introduced the "Knight" NPC, which we plan to do very soon, and more NPCs later on. When considering a larger party things are a bit different, and it's important to note that unlike games where the player just gives orders to companions, most roles are supposed to be common and interchangeable. Potentially any NPC could be a party leader, or the party could be cooperating without an appointed leader, and no players need be involved. Thinking about how this would be set up led us into some new ideas for role features that better and more easily support group activities and interactions. So we had a little course correction, working on these new features and modelling Derrin's roles based on them, so that we can immediately test a more future proof and relevant version of things.

We also just made some big changes to combat AI and related AI features. These greatly improve tactics in group fights and support strategic behaviours. The AI is very dynamic and unpredictable, so it needs lots of testing and tuning which we've been doing to get a good baseline from which to observe feedback from players. It's very cool to see the AI smartly handle multiple opponents and generally being much more situationally aware. We've been making various other improvements as we noticed things during testing and we want to continue doing so once it's in players' hands, as all things AI and making NPCs feel smart and competent is a big focus at this time.

Finally, we've continued to update character assets and how they function, with yet more improvements or complete redesigns of items that didn't match our current quality standards and more brand new items. At this point there's really not much left to do in terms of clothing and armour, so for items we'll be shifting our efforts towards more weapons, more ornate variants of weapons and a complete overhaul of shields, which will become procedurally generated as weapons already are. We have been doing some other cool things with content and the content pipeline, but as they relate to the big upcoming story additions we can't really talk about them to avoid spoilers. We've also added some new elements to most existing late game areas and new ways to interact with the environment to support important and long awaited new features.

Changing how things work and modifying content is difficult because it essentially breaks the game and also the perfectly persistent saves that include everything down the exact position of every object and NPCs remembering every role interaction they've ever had with anyone they've met. This update is by far the most expansive overhaul of engine functionality and key assets, and it should be the last of its kind. We are trying to get everything to a place where we can add new features and content without constantly worrying about breaking many things and having long development down times. When it comes to key features the scope often exceeds even the 1.0 release, but we have to build things for the future if we want to avoid these situations repeating.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

We're now in the last steps of putting together everything we've worked on, seeing how it functions as a whole and building a release. We should begin testing soon, with a hopefully brief period of closed testing before opening it up to everyone in the testing branch, when we're at least clear of any major issues. We still have to add new content and features that are near completion or just don't require much work, but there have been so many major updates and additions to almost every part of the game and engine that we think we should update the main branches. We know our updates cycles are long and our priorities might seem weird, we focus on big complex features that maybe only pay off in the long term over low hanging fruit that add lots of perceived value with relatively little effort. In terms of development goals we're now close to a complete Exanima, but we still have big plans for the future, beyond the 1.0 release, and we're constantly working in the background to make those happen. We're secretive with those plans, we know too well how expectations grow in the community, and how we'll do our best to meet them no matter how wild they become, but let's just say that a finished Exanima is really only the beginning.

Recently we talked about how to better support roles and emergent behaviours we felt we had to make important changes to how emotions, personality traits and relationships drive character decisions. How characters perceive hostility and decide to engage in it or avoid it is a big part of this in Exanima, as encounters aren't simply friend or enemy. This is quite difficult as AI must judge these things based only on what they observe, and companions must also quickly judge the player's intentions and try to match them rather than just act of their own accord. This was previously driven by raw emotional responses, which also drove combat decisions, which could make AI feel quite stupid. Now we have more complex and specialised decision making, which makes it even less suitable for low level combat decisions. Improving this has been on our to-do list for a while, but now it's a requirement and so we expanded our combat tactics AI to make smarter decisions and broader evaluations of everyone involved and nearby. As we want AI companions to feel legitimately smart and useful and plan to increase the density of encounters going forward, this is quite important.

One part of these improvements allows AI to choose to engage in or avoid conflict based on many new factors including what others around them are doing and what their relationships or relevant social dynamics are. Once engaged in combat, AI will prioritise targets based on mostly tactical decisions, with especially smarter AI doing things like rapidly switching between multiple opponents to defend against different attacks or take attacks of opportunity, such as hitting someone in the back to help an ally. We can now easily further expand on this with more factors, such as identifying priority targets who represent a specific threat or helping allies who are in tough or spot or requested help through dialogue. This should all immediately make AI feel much more intelligent in combat situations and it's a solid foundation to build more combat behaviours and advanced tactical and strategic decisions.

We finally completed the updates to our absurdly complex apparel and armour system. It's extremely satisfying to see it work as well as it does now. It was very ambitious when we first designed it, it literally allows wearing any combination of items of any shape, covering any portion of the body, in multiple layers, tucking and tightening things in to fit, and generating procedural materials for the combined result, all this without any restrictions and in an efficient way. This is a lot more complex than modular armour systems typically seen in games, and as our items grew in variety and numbering in the hundreds, it was getting out of hand, often requiring us to make hundreds of meshes for a single piece of clothing that were dynamically combined into even more variations. Even so, we still ran into issues with unique item designs adding new requirements that we weren't able to properly satisfy. It took us years just to gradually piece together various ideas of how the system could be improved to solve more complex cases and without increasing the already excessive overall complexity. We just finished overhauling every part of this system and now we have something that is more powerful, far more intuitive and easy to work with, producing better looking and more optimised results, as well as new tools that make the production of character assets take a small fraction of the work they did before.

There will be one more related update to characters at some point in the future which will also increase their resolution and overall quality, but that will be just a matter of updating assets and not the systems and tools driving it, which are now decisively complete and far better than we ever imagined they could be. When we do that, we will add more items, with a particular focus on clothing.

We already had to rework many character assets for these changes, and this includes about 30 new or completely reworked items, many of which are the most core and common ones, coming in new variants and with new material and colouring systems and some general quality improvements. This adds up to a very significant visual update to characters. Until now we'd been developing the new systems and new assets in parallel, without being able to finalise and test either one until we could put it all together. This is now done, but we did run into some unforeseen problems when finally doing it, which led us to another addition to the system, which solved our remaining problems and actually further streamlined our process while also improving the performance of characters even more.

In the past we've told people to not report issues with worn items clipping, because properly solving those problems would require an overhaul of these systems. Well, that overhaul is done and the time is now, you should report any clipping or similar issues you encounter after this release. Also note that in an effort to preserve arena saves we have tried to patch your existing items into their new versions, but a direct translation may not always possible as there are significant differences.

We wanted to briefly respond to some of the feedback we received on the last diary. It was long and technical and probably hard to follow and we fully expected that some people would question why we were seemingly working on improving graphics, which did indeed happen. It's important to understand what making graphics for a game like Exanima involves. We are an incredibly small team, with literally just 3 people working on all of the game's graphics and environments, but we are committed to a certain level of quality, complexity and consistency. Making high quality art is genuinely hard, this doesn't mean it just takes longer, it also means wasting countless hours simply failing to produce something satisfactory, and having to continuously iterate until it finally looks good and consistent. A lot of this is simply caused by real time rendering limitations, artists spend inordinate amounts of time trying to patch the holes left by those limitations and making things look good despite them. We also take performance very seriously, and these problems are not easily solved without just throwing it away. We talked about features that hugely streamline the process of achieving high quality results, with intuitive methods instead of laborious workarounds, that are performance efficient, highly scalable and leverage procedural methods. That is the point of these efforts. We are far from done with producing original art for our game, and our productivity has always been founded on good tools, procedural methods and dynamic rendering features, we simply do not have the manpower to do it any other way. Anything that changes the way we work and what we produce should be done sooner rather than later.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

So, roles. We haven't begun testing just yet, though that's not the only thing we've been working on (more on that later). After we'd just figured out a whole bunch of stuff (see last diary) our goal was just to set up the roles that will be used in testing the main, important and difficult things. Of course as we got into the details there was a lot of wondering about how to best approach some of them and lots of interesting ideas coming up. A lot of this is about identifying things that could be considered common behavioural patterns rather than specific to a role we're adding. Sometimes this means making changes to core AI, sometimes it means more systematic role features, or standard roles and mechanics that handle a subset of common behaviours. Doing this alleviates the burden from the role designer, and creates a more robust foundation that supports more emergent elements and basically keeps things running smoothly even when there are no specific roles or cases.

The focus right now has been mainly on social dynamics, introducing the idea of social settings dictating what's considered appropriate at a higher level and also putting a greater emphasis on personality traits. Some of this gets pretty complicated, but basically it's how people modify their core behaviour and disposition depending on who they're interacting with and under what circumstances. In the short term, it's the foundation that drives how intelligent NPC companions behave with the player and how this can change, but implicitly also with and between the less intellectually inclined denizens of Exanima. It's basically ways in which different roles and situationally appropriate behaviours come into play automatically.

A lot of this also relates to aggressive behaviours. A well recognised issue we've been exploring is how AI currently tends to hold a grudge towards one particular opponent and make poor tactical decisions. This is because AI is currently purely emotionally driven, and a big part of what we're doing when adding roles is exerting control over emotions. Emotions are generally a bit too volatile as it is, and we're making adjustments, but roles can provide more context for the need or repercussions of violent behaviour, and once engaged in combat people can then make more logical and informed decisions. Dialogue could also influence this and various emotional responses might be overridden when it's considered important. We're not just trying to define a set of rules to produce a certain outcome, we always ask ourselves what would a real human do, why, and how do we simulate that?

That might sound like a lot to cover, but don't worry, we're still only focusing on some relatively simple immediate goals, but the way we approach them is important in defining how we can continue to build on them and something we take very seriously. Even if we're not doing something right now, we need to think about how what we do later will fit. While they need a lot of careful consideration, these are mostly details and adjustments within a system, and we will continue to make adjustments as we observe it and get feedback from players.

As we're taking a more and more structured approach to role mechanics and design we also saw a need for the design tools to evolve. We've come up with a new style which is much more intuitive to navigate and work with, giving a quick visual overview and access to all the behaviours and interactions a role provides. Our aim is something that anyone wanting to create story lines or characters can pick up with relative ease.

While we are trying to focus on getting the roles ready, we do also need to keep the content pipeline going in terms of features and development tools. We've been putting a lot of effort into supporting new types of content, scaling up production speed and leaning more heavily into procedural methods. There was recently a big rework of our terrain system, assets and tools, to not only improve visuals, but to more easily produce the bulk of natural environments using procedural methods. At the time there was one feature we wanted to include, but didn't: detail displacement. This creates an illusion of 3D detail on otherwise flat surfaces, something we already use for stone walls and the like, but not terrain which uses dynamically generated unique texturing. If we could make things such as stones, roots and other ground details effectively look 3D, it would save us a whole lot of work and performance inserting actual 3D details, while leveraging our already excellent procedural terrain painting systems and tools. These can also blend things together far better than intersecting 3D models. It would be a perfect fit, and this kind of effect is also very well suited to our isometric style view.

However, while displacement is great, to actually create convincing depth and shape we need another very important visual cue: shadows. Shadows also means light not reaching little places it shouldn't, you might not always be keenly aware of their absence, but something is off and your brain is not convinced. We make heavy use of dynamic shadow casting lights, so some shadow like effect is not enough, we'd need actual shadows from every light source. The shadows also need to look consistent with others, so that it's not obvious which 3D details are "real" or "fake". It sounded difficult and expensive, but extremely desirable, pivotal even, as we develop more detailed natural environments that would otherwise require lots of tricky modelling and level design work and expensive 3D elements, which still wouldn't look as good or allow for finer detail. It was definitely worth trying, and we came up with our own shadowing approach that is well suited to our particular engine and tricky requirements. We even came up with an efficient displacement solution which removes the stretchy artefacts common with these approaches. This was particularly important with our procedurally generated textures which can't be tweaked by hand. This feature is now fully implemented in our terrain, materials and tools and game ready, and the results are quite impressive. There is a performance cost, but it's very fast and more than compensates for not having to add expensive and ugly models and geometry. It's also more easily scalable, for the potato users, you can just turn graphics settings down.

We're only just discovering how powerful this can really be, especially when combined with our procedural ground detail. We've already updated some existing ground and other assets, but we've yet to really take advantage of this. From now on, it will be a critical part of our art pipeline. There are so many great examples of this, but here's a few screenshots just to illustrate the kind of difference this tech can make:





While working on these lighting features we couldn't help but take notice of a few other things we'd been hoping to improve, but hadn't managed to yet. When we first implemented our global illumination (GI) system along with the new renderer, we wanted something fully dynamic and blazingly fast. We absolutely nailed it. For those who don't know, dynamic GI systems tend to murder your performance and have their share of problems and limitations. Our GI system certainly has its limits, but much of this is just precision and similar concerns that are performance trade-offs. The most keen-eyed players shared some of our nit-picks, mainly that shadowed areas often look too dark, which doesn't look natural, lacks depth and makes visibility in darker areas uncomfortable. Taking a fresh look at the problem, we found a performant solution to correct these shortcomings. It's quite the improvement, indirect lighting is less harsh, while actually adding more depth and detail to the image. The game's signature darkness is still very much there, but it's more realistic with partial darkness showing something and not being impenetrable, adding more to the atmosphere. Outdoor environments benefited even more, where the odd mix of dark and bright shadows looked very out of place. The lighting is more natural and reflected light more vibrant. One thing led to another, and we then made further improvements, adding more detail to indirect lighting. We also made some quality improvements to our shadows, making for a cleaner image. The overall visual impact is huge, some of the devs considered it the biggest leap in visual quality the game has seen.

Global illumination differences are harder to clearly show in screenshots and we don't have direct comparisons. The aim here is subtle realism, if nothing stands out it means we did well. Capturing the range can be tricky, but the shadows are crisp and contrast sunlight well while still showing lots of lighting detail and depth within them, and things look nicely grounded.



Even in a dimly lit room, you can still see lots of detail inside the shadows, they don't just swallow up large portions of the screen. It's more realistic and immersive and you can make out quite a bit more of your surroundings even in relative darkness.



Clearly there was some shifting of priorities here, but both in terms of roles, AI and visuals these are very good changes and we've been working very hard to get it all in a complete state right now. We're working on one last piece of fancy new clothing, and we should hopefully be able to wrap up the role stuff up quickly. The role and AI changes are obviously very big and broad, and we definitely expect to be fleshing them out and tuning them over time rather than all in one go.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

Since we started working on roles a few months ago we've been focusing on a few specific goals. This is good, because what we've learned in years of theory crafting the system is that it's all too easy to get lost in hypotheticals and go down rabbit holes without really reaching a conclusion. Fundamentally the idea is that we can keep expanding our collection of roles, adding more nuance and situationally appropriate behaviours. Ultimately the complexity lies not in the system, but in the quantity and variety of roles, and when asked "what does the role system do?" the best answer we can give is "depends what you tell it to do". By focusing on few specific problems we can make progress without worrying too much about the endless potential applications. However, this is a critical moment in which we're defining not only a limited set of behaviours, but also the capabilities and details of the system.

We've done a lot in the past few months, much of it was building new AI features and behaviours rather than the roles themselves, but we've defined the mechanics for driving behaviours and activities with roles, how they can influence and exert control over emotions and solved various difficult problems. But the biggest obstacle in the system's design hasn't been how to make it function, but how to make its emergent complexity easy enough to make sense of and navigate for someone designing roles. It's important to understand that roles are not simple triggers and set behaviours, each one introduces possibilities, and many roles exist and are working at the same time. Basically we don't tell NPCs exactly what to do, we merely suggest things that they might want to do, but they are not limited to just a few choices that belong to expected paths.

One particular stumbling block has been "relational roles", which describe what individuals know or assume about each other, what specific relationships they might have, how they might interact under various circumstances and carry a detailed history of their previous interactions. These are usually reciprocal and often asymmetrical or dynamic pairings on both sides, which can explode into a huge number of relationships with varying affinities in both directions. This makes even apparently simple problems immediately confusing, and we've never been happy with this convoluted structure and its unclear implications. It has remained somewhat of an unsolved problem. We've been analysing many practical examples trying to narrow it down to something intuitive that could meet our requirements, and finally we've found something we're happy with.

We've also established some new mechanics for relational interactions, we simplified accessing and using complex role data by moving most of the complexity to the inner workings of our scripting language, which now has more advanced high level features and is supported by better visual tools. This also allows us to use fewer specialised roles and more intricate dynamic decision making. There's a lot of details we've established better, we have clear best practices in place of open ended problems. In finalising some of these details we've also dealt with another troublesome issue, which is that changing roles could cause historical data for them in saved games to not match up. This is inherently less problematic now and with the new tools we can easily track changes in role data allowing them to be patched.

We've completed, finally, the new AI behaviours and core mechanics to drive them. The scope of the roles is for now quite limited, but we're touching on everything the system needs to do. Having now also finalised how the roles themselves function, in a way that goes beyond our immediate requirements, we can now more quickly and confidently develop roles that aren't just placeholders. We're immediately seeing elegant solutions to introducing more complex behaviours and social dynamics for even the most basic and unintelligent encounters in the short term. We already have a very solid foundation for AI which works surprisingly well even without roles, so we're excited to see what we can do with proper roles that actually expand on this rather than hinder and limit it.

As for the clothing and cloth armour updates we've talked about recently, we completed the changes to how character models are generated and also identified and included more optimisations that will allow us to render characters more efficiently. We're very happy with some clever solutions we developed here, the entire system is much more efficient and robust. We're still replacing a couple more items, but the bulk of them is done. The new items look great, a huge upgrade from the items we replaced and with all these replacements, the new items and the material improvements, the overall upgrade to character visuals is huge. We also added a bunch of features and a tool for our new cloth physics system that allows us to use it for creating clothing assets and textures. We're able to change many parameters in real time, interact with the cloth and even dynamically change the structure. Our new cloth is very versatile and performant, we're able to do this with millions of polygons of cloth, tweaking and adjusting things in real time to quickly create some very high quality assets. We've yet to explore everything that we can do with this, but already we've gotten some very useful things out of it.

We think we're very close to being able to begin playtesting, we've been pushing the requirements for the first playtest further and further, but at this point everything looks quite final so there shouldn't be any more unexpected additions or requirements. The play test should be more about fixing issues and adding things rather than an early look at features that are still in development at this point.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

There's a lot of different things in motion at the moment, but mainly we're trying to get the new AI and role features ready and in a playable state. We're past design and feature additions, so it's mostly technical implementation details now, though lots of things do branch out into new aspects of AI as we broaden what it can do. The most laborious part has been AI understanding what things are and interacting with them, there's a lot of nuance to every decision and doing things that only the player could do before, and do it co-operatively. There's some technical challenges here and things that touch on various core engine functionality, some of which also represent building blocks for eventual multiplayer features and simulating the running of a larger scale world. We're trying to be very thorough and get everything to that point where we can build features in a content driven-way, that is it becomes mostly a matter of designing new role based interactions and dialogue using our tools rather building on engine functionality. To this end, we are also already writing new dialogue and revisiting a lot of the existing dialogue.

We have also been doing more work on the apparel and character model systems. Besides replacing various core apparel items with much better ones, we found that though we tried to make the new system backwards compatible, in some ways it ultimately wasn't. This means there's a few more items we need to at least adapt to the new system, and one more step we need to take now towards our "human 2.0". The issue is with removing parts of character models that are hidden by layers of apparel and clothing above them. The very freeform and layered armour system means there can be 5 or more layers of 3D model stacked on top of each other. With character models being particularly expensive, this is not good for performance, especially as we're working towards increasing character density in both future and current content.

It became obvious pretty quickly that efficiently removing parts of models with all the different layers and shapes, the chain of dependencies between visible parts that need to match, the different "races", and respecting the countless shape variations that need to be applied for layered items, was a very complex problem. Indeed we did have some version of this before which was not efficient and prone to many issues. We're no strangers to complex systems, but the problem isn't just the complexity of it, but also making it easy to work with despite it. This apparel system overhaul was not just about improvements and fixes, but most importantly about greatly streamlining the workflow which was very difficult and confusing. It took some figuring out, but again we managed to come up with something which works very well and simplifies the work even further.

Both the AI and role systems and the apparel updates need to be ready before we can begin playtesting, we're getting through this at a good pace, and fortunately updating apparel is now pretty quick with our new methods, but there is still some work to do. We'll be adding more role interactions throughout testing and once we have a clearer idea of how everything is working and get some feedback we can see what else we might be able to squeeze into the big content update. For now we're keeping our options open while we continue to work on a few different things.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

Previously we mentioned how we'd been reworking many items, and how in future we want to add many new ones, particularly clothing, and make various improvements along the way. Adding more clothing as we expand on our world and content is important, quality improvements are also nice, but really more of a by-product of other things. The main motivation for "an overhaul of our characters" is that we desperately need to massively streamline and improve our workflow. We already made some important advancements here with our tools, but clothing is especially problematic because there's a huge number of different items of varying shapes that can be worn in any combination. Every combination needs to change the shape of clothing, and so something like a shirt needs to come in thousands of shapes. These are dynamically assembled, but even so we need as many as 500 3D models in very specific configurations. For one shirt. This part is all done by hand, and it can take weeks of confusing and tedious work, testing and adjusting. There are many things that can go wrong and they are slow and difficult to fix. Despite our efforts, we still have various issues like clipping and holes and sometimes have to give armours unflattering shapes in order to make them fit.

This proposed overhaul is something we've been talking about internally for a long time as "human 2.0". It's been kind of a distant dream, something we don't dare tackle until after a 1.0 release. We couldn't even consider such an overhaul unless we could solve the fundamental problem of how much work it takes to make just one item. Meanwhile, this is costing our artists lots of time that should be better spent elsewhere, for results that are still inadequate. Just recently, while trying to figure out how to make some items work, Madoc decided he'd had enough and put the role system temporarily aside to figure out what could be done. Even if we're not doing some big overhaul yet, solving some fundamental issues and streamlining the workflow was just too important.

Many curses and a few keyboards later, we have a new system and tools with lots of automation and a simplified workflow that turn weeks of work for one item into just a few hours. Quality character assets still take time of course, but the tedious, confusing and problem ridden part of it is basically gone. It solves a lot of problems, it's a huge relief to us and brings many benefits already. The way bodies and clothes deform for animation is better, things are far less prone to errors and issues like clipping, artists can focus on the real work, it's intuitive, it can be iterated on quickly, there's a lot of implicit future compatibility in assets and even loading times are improved. To really reap all the benefits we will eventually need to do our big "human 2.0" rework of many assets, but now we've already solved the biggest and most critical problems to support it.

This was a temporary shift in priorities, but a very important step that was well worth the time investment. We won't be adding lots of brand new clothes or generally upgrading characters just yet, but we're ready for it now. In the meantime you can expect some very nice visual upgrades to some of the most commonly seen items in the game. Updating these foundational items is how we solve our armour etc. fitting problems. We've also made more nice improvements to materials and randomisation. Here's some examples of some clothing type items that we're already reworked using the new system:


Despite this detour, we have made progress on AI and role features. Our approach continues to be to focus on the most difficult problems first and solve them well before we do many things with what we have. This will be the focus of initial testing, to properly identify what players notice most and any issues, so we can finalise the systems that will support more roles and interactions. There's practical elements here, and of course expanding AI capabilities has many gameplay implications, but we're mainly focused on immersion and lifelike NPCs. We really don't want any of this to feel like gamey features.

This means we're quite detail orientated, the little things such as how characters move and look around and how they describe what they found, that don't fundamentally change the functionality, but makes all the difference in our eyes. Dialogue in particular, with common and repetitive speech, has been quite difficult. We want to make it varied, flow from previous remarks and responses, while accommodating diverse grammar required by dynamic elements. This creates a large scope problem that needed new approaches. It does need care and effort, or we could break immersion rather than contribute to it. We might not immediately land where we'd like to be, there's always room for more nuance and variation, but the important thing is that we're building it in the right way and not cutting corners early.

It's been a very busy month, working on many different things besides and tying various loose ends. From here we should be able to focus on getting the role functionality ready for a test release, while we continue work on the next major content release.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

While we're making good progress with new content and a few other things besides, development is still very much focused on AI and the role system. We've been particularly focused on searching and looting behaviour, as it uses many different things that have other applications, the building blocks for being aware of and interacting with the world, and it's a really good case for highly complex role interactions. Importantly, looting is also a really big part of the core gameplay loop, which gives NPCs plenty to do outside of combat and makes them more active participants. We also recognise that searching every container and inspecting every item really becomes one of the more tedious aspects of the game long term.

Companions that can be genuinely useful in searching and looting alleviates a lot of the work from the player and adds a lot of value. If NPCs are also able to equip themselves they become much more self-sufficient and capable, for companions it means it saves the player a lot of micromanaging their equipment and inventories, particularly in the early game where upgrades are frequent and temporary. Another benefit is that companions can help players navigate and learn the complex equipment system, by pointing out useful items and upgrades that the player may have missed or not recognised. There's lots of good practical reasons to flesh out these behaviours, but we think it's also one of the most important steps to making the NPCs feel alive and intelligent, not just as companions, but in general.

Probably reading that you've raised your eyebrows a few times and wondered how it could work and what sort of problems it might cause. Indeed we've been navigating the many difficulties and complexities of all this and there's a lot, more than those that immediately stand out. We've been adding many features and improving a lot of core AI behaviour and interaction to support this and make it feel right.

Companions need to be able to move around somewhat independently now, and promptly understand when it's time to leave to not get separated. They need to see and recognise objects around them, understand what items might be useful, or interesting to the player, even what combinations of items might be useful if worn together, or make matching outfits. NPCs should not easily spot hidden or hard to see objects, remember what they already searched, know when something was discarded, be able to discard items that are no longer useful, not spam the player with insignificant finds and so on. They must also be able to name or describe any object in dialogue, with correct grammar and ideally varied and contextually appropriate dialogue. There's lots of details to consider to make this behaviour seem believable and natural.

We want NPCs to behave much like a human player, show awareness and interact with the world at a very high level. A lot of this comes from dynamic and narrative roles that can be played by anyone, and a lot comes from complex natural behaviour like this. With more AI and role features in place we can keep expanding the AI's capabilities. Our goal is to make them lifelike and create an emergent narrative that feels like it's actually happening, not predefined or scripted. This is often in direct conflict with conventional player-centric design, and we do need to find a delicate balance and make some concessions. It's a difficult and now familiar line we tread, but it's something we really miss in games and we want it.

To completely change the topic, we've also finished our new round of overworld and arena items. We've added new items and plan to better distribute some things across ranks, and we've completely overhauled some older items that weren't up to our current standards, which has been a point of feedback from the community. We've also made some notable improvements to the most prominent procedural materials like metal, leather and cloth. For the time being we are still limiting how many brand new items we add, as we are slowly working towards an overhaul of our characters that will improve the fidelity of all character assets and greatly improve our workflow for them, as well as introduce new features like dynamic cloth to them. When that happens we will add a large number of new clothing items in particular, but that's still some way off.



That's all for now. We are always working on a few other things and longer term goals, but we can't cover everything we're doing in our dev diaries. AI and roles are the current focus and a great big complex thing with many facets, we've been laying a lot of foundations which is always a process riddled with difficult problems decisions, but now we're seeing the results and soon we should be able to start testing and polishing the main features.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

In our last diary we talked about some of our immediate goals for AI and the role system, this is a series of things that provide NPCs with better awareness, more behaviours and interactions. Since then we've been gradually implementing and testing these features, and as we did this we ran into some complex dialogue issues. Right now we're mostly focusing on improving the dialogue system to handle these more complex and frequent interactions.

The dialogue system is designed to be very dynamic. Rather than well known scripted events and dedicated dialogue modes and moments, communication is something that can happen naturally at any time and during any other activity. There's a lot of factors contributing to when and if certain dialogue is used, not just simple triggers. You can even talk during combat or anything else, and so might NPCs, but only if it's appropriate, with context, urgency, relations and emotional states and all sorts affecting these things. There can even be multiple dialogues running at once between different people, and people can join and leave or interject into conversations. On top of all this, all role interactions are remembered by characters, the status and details of their relationship are being constantly updated by multiple things at once and stored permanently.

All this is to make characters feel alive and intelligent with lots of potential for cool emergent behaviour. That last part is particularly important to us, it shouldn't feel like scripted moments, but things that actually happen organically.

One of the first problems we had to tackle is NPCs dealing with multiple dialogues at once, knowing what to prioritise, when to wait before saying something else and so on. Synchronising the various relation updates from multiple dialogues, activities and events was also a back end issue we had to solve and optimise. Because the system is so open and broad in scope, we need to try to account for every hypothetical scenario, even if rare. We're working on other features too, like NPCs repeating urgent requests and becoming annoyed or concerned if they don't receive a reply, with a reaction that is appropriate to the specific context. In general we've made a bit of a shift in functionality, with less focus on raw scripting of roles and dialogue and more on AI handling common behaviours so that we can support a better emergent style while also removing some of the burden of scripting complex role interactions.

As we tackle and explore these things and develop features we see the potential for many more applications. They are sometimes quite niche, and currently we don't often have the right content to feature a lot of them, but it opens many doors for content to come, giving us more tools to create interesting gameplay elements and situations.


Beyond progress on roles and dialogue, we're working on new content, and a few other things besides. The new area is a pretty big departure from previous content and we've been making many changes and additions to support it. Right now we're also focusing on our vegetation art pipeline to produce many high quality and efficient assets. We're also continuing to improve many assets throughout the game, and we're completely overhauling many older overworld / arena items, improving them dramatically.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

Last month we went into some detail about the role system and what our main objectives for it are at this time. While there have been many big improvements and additions, the role system is the key feature of the next update and what supports the story going forward.

Having figured out many of the core role mechanics, we've been now focusing more on low level behaviour stuff, which while perhaps not as impressive in scope, is what you'll notice most during gameplay. This is basically where roles are used to control actions and activities or react to common events, rather than modelling relationships and long term goals.

This includes a lot of mechanics for NPCs to become aware of nearby events and things in the environment, as well as interact with them. NPCs should comment on things that are happening dynamically, notice objects and other things around them and use them. One important practical part of this is finding equipment, being able to determine whether it's useful to them or a party member and call it out or just use it. There's quite a lot of nuance to something like this, as we don't want NPCs to just be instantly aware of everything, objects that are hidden or just hard to spot should be more difficult for them to notice. We also don't want them to be constantly calling out every minor upgrade or greedily taking all the best items for themselves.

In terms of combat there's also going to be a fair bit of role involvement. We want NPCs to engage in different behaviours based on what's happening and also accept commands or requests. This could include helping allies in danger, perhaps gaining courage and rallying for someone they care about, requesting help and things like just commenting on notable combat events. In general we're also trying to make roles an important part of engagement, to build on the more animalistic emotion driven and sometimes selfish behaviour of current NPCs.

These aren't the only things we're working towards, we have quite a few advanced behaviours planned, but this is what we're focusing on right now and the requirements are shared. To support a lot of new behaviours and dynamic roles we're putting a lot of new AI functionality to engage in different actions and properly prioritise them, many mechanics for understanding circumstance, events and objects, put them in context and describe them in dialogue.

Roles aside, we've also been working on the late game "save system", or rather some ways to prevent losing all progress. This is however just one optional aspect of a quite large set of features involving various new mechanics. Supporting these properly and in a way that is future compatible has requirements that mean changing how some things work in a fundamental way.

Our design is such that any seemingly insignificant object or thing can potentially carry a lot of information, is fully persistent and can be understood and remembered by NPCs. Dynamic events and behaviours require and create a lot of dependencies with a scope that's not always predictable. This introduces a lot of difficulties with authoring and maintaining content, particularly in supporting a distributed workflow, or mods and player made content. All these interactions need to work both within that body of content and the game world they belong to.

We have a partial solution to this already, but there's still some very difficult problems that are becoming more relevant as we look into new features and expanding beyond Exanima's current scope. We've known we'd have to tackle these problems for a long time, and it didn't look easy, but now we've finally designed a solution. This will allow us and others to create large chunks of content in a completely independent way while supporting all these features. This content can then be seamlessly introduced into the game without requiring changes to shared resources or even existing saved games. It's a bit difficult to explain exactly how important this is, but it certainly is.

Best,

Bare Mettle
Exanima - Zetheros
Hey Exanimates,

The last round of changes we discussed in the last coffee diary went live on the test branch shortly after. The new weapon motions and other adjustments were very well received, and we will of course continue to tweak things based on feedback. The new arena with new vegetation features was also included and seems to be working and performing well for everyone. Before we move things to the main branch and do a save wipe we are making some content changes that are required to support upcoming features, so that we won't need to save wipe again when they are introduced.

This major overhaul of our engine, physics and many big core features is finally complete. Some of this such as terrain, vegetation and cloth was in our original immediate plans, but realistically most of it wasn't. These are all hugely important changes though, planned or not, and now that they're done we're finally turning our attention back to the role system.

We briefly introduced the role system topic a few coffee diaries ago, but basically the role system is what drives all "high level" NPC behaviour. We already have a very good and functional system in place for modelling behaviour based on emotions and basic relationships, but with just these things, AI basically behaves like animals. We do already have a version of the role system in place, which is used in a very basic way to give characters dialogue and some basic understanding of others, but as it is this is very static with few placeholder roles, and does almost the opposite of what the role system was designed to do.

What we call a "role" system is very broad in scope. Roles provide different behaviours, decision making that exerts control over raw emotions, they model relationships, carry memories of past events and interactions and generally context for AI to understand and interface with things. They can be very broad like "human", very specific like "Derrin the farmhand" with personal details, or just fleeting contextual things like "pulling lever at friend's request". Relational roles identify others based on experiences with them, context or assumptions, and carry histories between individuals. A character can have many roles active at the same time, and remember them even when they are no longer active.

It's hard to talk about without being vague, but the takeaway is that roles can do a lot of things. It all depends on what roles we design, as part of general AI behaviour, specific events, player interaction and all sorts. Most roles can be circumstantially adopted by any character, and as we expand our library of roles all NPCs will gain more behaviours and awareness. Building this library of roles is one of the key challenges, but it's something we can do incrementally once we've defined a good foundation.

In the past month we've made some important strides in defining what our key role types are, how they interact with each other and the mechanics to support more functional and dynamic roles, control emotions and more. We figured out a lot of important stuff, and are already moving into implementation and optimisation details as far as the most important mechanics go. As we get into a lot of the more practical roles, we do also need to pair them with new AI actions or events that drive behaviour, but we do have a good foundation here for how this works. It's a matter of adding to the range of things that AI can do and understand. Beyond that, the role system itself can be considered complete and becomes mainly content driven. That means we can continue to add new roles and nuanced behaviour without changing how things work.

Our first intermediate goal is a smarter and more aware Derrin. We will use him to aggressively test new role system feature and interactions. The somewhat lofty goal would be to make him feel like a real human companion that is more independent, reacts to things and makes decisions on his own. His relationship with the player should be more nuanced and dynamic, with more things affecting it, but also a better understanding of context and when cooperation is useful even if he doesn't really like it. Basically, we want him to feel smart and alive, not an NPC following scripted behaviours and commands without question. That and emergent outcomes is the purpose of the role system.

The next major update will also feature new NPCs, able to have complex interactions not just with the player, but also with other NPCs. The roles for the most part, as stated previously, are not static things designed to fit one character, but things that can be attached to any character, if circumstances are right. All NPCs have a broad range of behaviours and relationships, and events are mutable and can carry things in new directions.

It's a lot, and we've seen that people tend to either consider too abstract and are somewhat indifferent, or let their imagination run and get very hyped. Whatever your expectations might be, and what we actually accomplish, it will absolutely make for a more immersive and dynamic experience with many new interactions and outcomes. That is the kind of game we're making, and the role system in our eyes is perhaps the most important part of it.

Best,

Bare Mettle
...

Search news
Archive
2025
Apr   Mar   Feb   Jan  
Archives By Year
2025   2024   2023   2022   2021  
2020   2019   2018   2017   2016  
2015   2014   2013   2012   2011  
2010   2009   2008   2007   2006  
2005   2004   2003   2002