Hello, apparatus aficionados and cogwheel connoisseurs!
It’s been quite some time since we last posted a dev log. Several months, in fact! Ideally this shouldn’t happen, since we want to keep you all in the loop — but the development going towards Nordsken got the better of us and we didn’t leave us enough time to write these! And then it sort of became summer and you know how things go.
Good news, though! Our absence isn’t indicative of a slowdown in development, but rather the opposite. We’ve been busy the last couple of months, and now we’d like to bring you up to speed before we start leaving for vacation and what not.
In the dev log below, we’ll go over our experience at Nordsken (exciting!), our transition to Unreal Engine 5 (riveting!), code refactoring (how fun), and quite a lot more!
Nordsken was a blast. Our booth was a success, with lots of people coming and going the whole time.
It was great seeing other people try our game, and even better seeing people enjoy it! Though perhaps best of all was seeing people break it.
An Engine Change
Transitioning to Unreal Engine 5 has been very exciting, and surprisingly smooth – kudos to Epic games for a very robust porting tool!
It truly is an amazing engine, and the features of UE5 have made a night-and-day difference in our game. More on that below!
Lukas “Gås” Rabhi Hallner
Luminous Wizard and Nanotechnician
Hi again, everyone!
Lots of things has been happening indeed! Transitioning to UE5 was both exciting and painful. Painful due to the time spent compiling the same shaders over and over due to various bugs and issues
Exciting due to all the cool features and possibilities: fully dynamic global illumination with Lumen is a blessing due to how our lights work with electrical systems and puzzles! Ticking off the box: Allow static lighting, was fantastic, to not have to bother with lightmaps and baking issues saves lots of time. Nanite is also a very nice addition considering the amount of meshes we instance in the world. And it’s also a time saver, considering you won’t have to spend as much time on LODs.
I’m also really excited to try out other new stuff, such as Niagara fluids perhaps for visualization of future liquid based puzzles.
A Little More on Cabins
Much focus has also been on improving the cabins, both interior and exterior. Things such as new doors with color variations, interior doors, system for creating wallpapers, a blueprint tool for gutters and a Houdini tool for wall skirtings!
The cabins are built with small modular pieces which are instanced out with a construction blueprint, all pieces included, both interior and exterior therefore uses the same trim sheet material. By adding parameters and patterns we can now by the click of a few buttons customize a cabin’s wallpapers, in terms of pattern, pattern size, colors & texture, while at the same time allowing us to customize the exterior.
I’ve also spent some time to make the world feel a bit “alive” bringing in more decorative movement as you explore.
More will come of course, but so far this includes things such as smoke, steam and heat distortion from machines, ventilations & pipes! You’re inside a walking city traveling across rugged hills after all — it makes little sense for everything to be so static!
Fredrik “Smörgås” Lind
Creator of Crashes
Goodness, I’ve done a variety since last!
Let’s start with Nordsken, maybe! Public playtesting meant lots of invaluable feedback for us. Player direction is a tough nut to crack, especially for an inexperienced studio. Seeing how people walked and looked around the scene was crucial. In order to tackle getting lost we’ve implemented world-space tooltips, providing key hints and just making interactable items pop out more.
I Also Want to Write About Lumen
A lot of people found the game too dark, and rightly so.
The issue has been that we want to retain absolute darkness in some areas, to amplify the whole scary big machine vibe — but the playable area must still be well lit. We do a lot of dynamic lighting, since every light in our game is powered by an electrical simulation. This means very limited indirect light, or bounce lighting. It’s just generally been a big hassle getting the scene lighting correct.
Luckily, UE5:s Lumen system provides an absolutely superb result and has been a godsend for our game.
Feedback also included feeling overwhelmed by the amount of simulation data being presented upon hovering over a simulated component. To make it more apparent that it’s not necessarily needed for puzzling, it’s been moved to an active scan feature.
The scanner shows you technical data of any given machine component, and highlights connections in the world. It can also be used to remotely control some machines.
Lastly, for me, has been the matter of simulation. It’s the big one. If you recall previous dev logs, we simulate electricity, angular kinetics, and fluids, to provide the basis for our physically accurate puzzle solving. That’s a lot of math, and previously it’s all been done in Blueprint. If you’re familiar with Unreal, that might make you cringe a little.
Blueprint is nice for rapid prototyping, but is slow to execute and not very well suited for heavy math. I’ve finally bit the bullet and inserted a C++ base for all machine components, which has reduced clutter so much, and improved performance beyond belief. We can have much, much more machines now.
It hasn’t been all fun and games, with uncountable crashes and lots of required learning. But now it’s nearing completion, and the system is in a better state than ever.
Pontus “Sparkles” Andersson
Has Visited Goats
Sparkles managed to slink away on vacation before this dev log dropped. Rest assured his work on audio continues to make the world a better place. The game world, that its.
Notable additions include new robotic foot step audio.
Simon “Vito” Gustavsson
Robot Brain Surgeon
Long time no devlog! The summer began with us being at Nordsken as exhibitors, which was super fun — we got to meet a lot of people! Also super tiring, and it didn’t help that I got sick after Nordsken either.
After becoming not sick again I started checking out the new features of Unreal Engine 5 — and there is so much new cool stuff! That also meant a lot of new stuff I didn’t know, and still don’t know to the fullest extent.
Switching to a new engine version came with lots of small bugs that needed fixing, for example not able to pick up items anymore (because they changed how physics objects handle sleeping). We have also been busy checking out Github’s new “projects” feature which, we are currently using for our agile development.
This week has been a bit back and forth on my part as I have done several different small changes to lots of things, differing from menu upgrades, physics object and NPC pathfinding testing for future use — and other small bug fixes. All the while having different meetings with people and dodging thunderstorms!
AI pathfinding and behavior scripting is super fun so I’m pumped to work more on it. Have a nice weekend!
Simon “Boonga” Öhlund
During this last couple week I’ve have primarily been working on some environmental assets, that can be used for general set dressing
We wish you a pleasant summer if you live in a hemisphere of summer, otherwise we wish you a frosty winter. Mechanical regards, and don’t forget to, y’know…
I thought sunscreen was paste of vanilla and drank it all —~ The Gumlin
but I’ve been told it’s a thing that’s good for humans to remember.