Exanima

Started by Asid, February 10, 2017, 12:28:18 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Asid

Coffee Diary - November 2025
Mon, 3 November 2025



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


I stand against Racism, Bigotry and Bullying

Asid

Coffee Diary - December 2025
Mon, 1 December 2025



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


I stand against Racism, Bigotry and Bullying

Asid

Coffee Diary - January 2026
Mon, January 5, 2026


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

I stand against Racism, Bigotry and Bullying

Asid


I stand against Racism, Bigotry and Bullying

Asid

Coffee Diary - February 2026
Mon, 2 February 2026



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.


Just a quick last minute video to accompany this month's dev diary for Exanima. You can find our monthly dev diaries here: Bare Mettle Forums:...




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

I stand against Racism, Bigotry and Bullying

Asid

Coffee Diary - March 2026
Mon, 2 March 2026



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


I stand against Racism, Bigotry and Bullying