Forum > Games Discussion

Exanima

<< < (11/13) > >>

Asid:
Coffee Diary - January 2025
Mon, 6 January 2025



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

Asid:
Coffee Diary - February 2025
Mon, February 3, 2025



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

Asid:
Coffee Diary - March 2025
Mon, March 3, 2025



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

Asid:
Coffee Diary - April 2025
Mon, 7 April 2025

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

Asid:
Coffee Diary - May 2025
Mon, 5 May 2025



Hey Exanimates,

We finally did it, the new role system is up and running, everything has been switched over to it, content is patched and we added enough backward compatibility to preserve arena saves. At this point we're just testing out the basics and putting a build together for proper testing, which is imminent. Once again the changes are very extensive, the entire platform for AI, behaviour and dialogue is new, with many fundamentally new features.

This is to say the least a huge milestone. The role system is what drives the world as we imagined it and basically the glue that ties together everything we've done. We spent years theory crafting it, trying to understand its possibilities and limitations, and what might be too ambitious and complex to develop and work with. Ultimately we went all in on complexity, including every feature we've considered that seemed useful, but the real challenge was how to design and structure it so that it's intuitive and easy enough to understand and navigate for content designers. The role system is first and foremost a content tool, for telling stories and creating characters and events with complex and dynamic behaviours and interactions. It needs to feel simple and intuitive to use, but as we expand our library of roles the goal is to achieve remarkable emergent behaviour.

As we've been finalising things and making roles on the new system we inevitably found more ways to improve things, sometimes in small ways, sometimes big. We plan to spend a lot of time using these tools, so it's important for us, but we also intend to release them to modders and players so they can create content too. They can be used not only to create characters and stories, but even mechanics. For example, something like the golem guards could be reproduced like this. We put a lot of effort into the tools, making a polished visual interface that is easy to navigate and gives lots of information at a glance. We put particular effort into our custom scripting language. Our goal here is something powerful but without bogging you down with technical details, leveraging specialisation, context and visual tools to remove low level tasks and verbosity. In short this means content designers and writers without technical expertise should find it approachable, and in general a workflow that isn't daunting and tedious.

Initially we'll be mostly testing the core changes to AI and other systems, and during testing we'll be gradually introducing more roles, more elaborate role setups, new interactions, expanding and updating dialogue and so on. Introducing the knight NPC will be next, and this will allow us to test many more features like dialogue between NPCs and multiple people and all sorts of complicated relational dynamics between more than two people. We'll continue to add and develop roles indefinitely, also applying more behaviours to less intelligent NPCs like the undead. A lot of what the role system is designed to do goes far beyond the scope of Exanima, but the more fundamental roles for driving behaviour, relationships and AI in general cover the most difficult and critical functionality and are the basis for the more specialised roles to come.

Meanwhile work continues on new content, including some new encounters, but as always we avoid content spoilers. With the crippling weight of developing the role system lifted we'll be focusing heavily on content for a time. We did also rework a few more pieces of armour and were able to make some smaller improvements to others thanks to the upgraded apparel system. We're also actively working on some very ornate weapon designs and some new weapon types.

Hopefully initial testing will go smoothly and we can open it up to everyone soon. Check out our discord for access to testing builds and all the relevant information.

Best,

Bare Mettle

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version