Coffee Diary - May 2024



We recently re-wrote a lot of our physics engine and optimised it for 64 bit, in the process we also made big improvements to collisions and some complex interactions. This has been in testing for a while now, and of course everything physics came under a lot of careful scrutiny, every little flaw exposed. Originally we designed our physics engine to tackle specific difficult problems, and we accepted that this came with some limitations and compromises. We should know by now that just won't do.

The level of physics simulation in our characters and combat isn't easy to do, we've improved it a lot over time, but of course it can always be better. We also have a dedicated portion of our playerbase that engages in "grappling", using weapons and shields to trip and throw opponents, pushing the limits of what the simulation can handle.

The collision improvements are big and definitely help, but there's a lot more to it. A quite evident flaw is things separating from each other. This is most obvious when a weapon separates from hands during difficult collisions because it's got nowhere to go. With collisions becoming more solid, this problem became more obvious, and when a weapon is used as a lever to throw an opponent, but it separates from the hands, then the opponent can slip between the weapon and the hands, or the weapon between the opponent's joints and body parts.

Another difficult problem is static friction. This is basically the increased friction between surfaces that are not moving relative to each other, and prevents any movement at all. In many situations correctly eliminating all movement and slow drift or jitter is very difficult and leads to all sort of problems. We had already improved friction, but while this addressed some important cases, others were still not very good, and objects slowly drifting when active remained a problem.

A related issue, but also a separate problem, is vertical stacking. Creating something like a pile of books or plates is a good example of this, which wasn't really possible and particularly erratic when disparate masses are involved.

This being a real time sim, we could improve all these issues with just increasing the simulation rate, but it would be very expensive and only an incremental improvement. With the recent upgrades and optimisations, we felt we had the foundations here to make some dramatic changes to how our physics engine works, to address all these issues and generally take our physics to another level. We considered these things already long ago, but it seemed too difficult and expensive, especially with our character physics, and we couldn't see how to do it without losing our engine's "special sauce". With these new foundations and uncompromising attitude we made a new effort and had a breakthrough.

This is a fundamental transformative change to our physics engine. We dramatically improved on all our problem areas. Collisions are even better still, the separating parts problem basically eliminated, friction and stacking vastly improved. We basically went from our physics engine being quite good at specific things to being much better at those and good at everything else too.

Great! But we weren't done yet. With everything being more "solid", the next link in the chain took all the stress and suffered. A character's joints and muscles, when placed under extreme stress, could overextend and dislocate. This was an existing problem, but exacerbated and highlighted by these changes. We also have a problem with weapons being light and nimble in the hands, but artificially heavier in the world, to make impacts feel stronger. This disparity in masses obviously causes some problems, and exerts even more stress on the joints.

To deal with this problem we made new tools that allow us to interactively modify and test joint and muscle configurations on characters. With these tools we were quickly able to improve muscle structure and overcome these issues too, while making characters feel much stronger and more controlled.

All these changes have dramatically improved the feel of combat, it feels tighter, more precise, more real. All hits and exchanges are extremely solid, footwork is more quick and precise and it can all take some serious abuse and still function correctly. It's not just combat that's improved, all physics interactions are much more robust and realistic, making the whole experience better, allowing us to do more with environment design and generally making our lives easier as developers.

We have made a few specific changes on the back of this, mainly to combat mechanics, and we also improved things like object interaction. We're still tweaking things, with so many core changes there need to be some adjustments, but we've set a great baseline already and this is a process that continues as we observe things and receive feedback. This better physics foundation is obviously huge in importance and scope for this game, and supports key mechanical improvements and future additions to combat, and everything else.


As much as we've done on physics, we have been working on a few other things besides. We've been making more updates to the game's content and we've been improving and adding graphics features to support new content. We've made some general improvements to lighting and post-processing, which particularly benefit outdoor environments, but also make everything a bit brighter and clearer without compromising the mood and darkness.

There's been a bit more in the works here in terms of graphical features and content to support the next major area to be added, which is a bit different from what you've seen so far, but we're not quite ready to show those things just yet.


This and everything we've discussed in recent diaries is live on the test branch and has already received a few hotfixes. We're still tuning things and ironing out a couple of kinks, but overall things are stable and in good shape and feedback so far has been very positive. You can find changelogs, more information and a place to give feedback on our discord:

Be warned that existing story saves will not work correctly due to the extensive changes to terrain and level assets. Once the update goes live on the main branch, there will be a full save wipe, so any progress you make in the story now will be reset. To access the test branch you need the password: BMXATestB915


Bare Mettle


© Copyright 2019 Bare Mettle Entertainment Ltd. All rights reserved.