Blog entries (2022)

< Latest blog entries

  • First release on!

    Adaptory Alpha 1 is now live and free to play!! 🥳 You can download a copy on, or by using the embedded link below:

    This is a first alpha that anyone can download and play for free. It’s got about 15 minutes of gameplay – it’s mostly showing off the core systems and gameplay mechanics.

    If you get a chance to play it, I’d love to know what you think! I’m particularly looking for bugs, crashes, or anything that doesn’t make sense.

    This is the first release of many – next up I want to add... read more

  • Getting ready for release

    I’ve been adding lots of cool new things to Adaptory as we ramp up to the alpha release! 😊

    For the alpha release, there will be a simple goal; you need to send a distress signal using your transmitter. In order to do that, you’ll need to collect the brand new resource transmitite and supply it to your transmitter.

    Your pawns will automatically deliver dug-up resources to your transmitter

    There are now doors as well. When closed, doors are impervious to gas and liquids. You can place them as blueprints in the... read more

  • Making Adaptory into a multithreaded simulation game

    (Warning: technical gamedev post)

    One of the reasons I started making Adaptory is that I wanted to try making a game that has multithreaded simulations. Most simulation games have a loop similar to:

    1. Take current game world
    2. Apply a bunch of simulations
    3. Save the changes
    4. Go back to 1

    Generally this loop is done on a single thread, meaning the update performance is limited to the processing power of your CPU. I like playing huge game worlds and I’m always frustrated when a game I love starts hitting limits.

    On the other hand, most computers these days... read more

  • Lasers and sleeping emotes

    A nice short update! Pawns now wield magical multitools that they use to do things like digging, building, and supplying errands.

    Pawns use their multitool to modify the world

    I’ve also added a little animation to show when they’re sleeping, as opposed to dead:

    Sleeping emote, thanks Katie 😊
    read more
  • Hair – and an alpha release date

    I’ve been such a busy little beaver this month! One of the two major branches I’ve been working on is now complete… pawns now have hair styles, thanks to @careously!

    Pawns have one of 32 different hair styles

    You’ll see the pawns’ hair at the start of the game, and also when they’re not assigned to a specific job. At the moment, the hair style (along with pants and shirts) is assigned randomly, based on their gender (m/f/x).

    In this update,... read more

  • Now with colour!

    We’ve finished up the initial character art for clothing, skins, and expressions. and I think the pawns look great. They have a lot more personality now, and it should be fairly easy to add more options.

    Pawns now have pants, shirts, skins, and expressions

    I’m still hoping to release a public alpha on this month, however the timing might be a little tight. Wish me luck!

    read more
  • First Mac OS build

    Over the last three weeks, I’ve been mostly focusing on getting Adaptory working on Mac OS. The engine I’m using natively supports Mac, however I found out that its OpenGL support is much stricter.

    Which meant I had to rewrite the graphics code. That was three weeks of work I wasn’t expecting!

    But – Adaptory now plays on Mac OS! The game is unoptimised and the builds are unsigned, but it’s a start.

    First Mac OS build of Adaptory (on High Sierra)

    I also attended NZGDC 2022 last week, a... read more

  • New pawn art and animations

    Very excited to be finally sharing this news! Adaptory is getting new art by @careously!

    WIP wireframe pawn art and new animations

    Over the last few months I’ve been exploring these new styles with Care and I’m really happy with where we’ve landed. It is quite a change – the new style is less gritty, and more playful – but I think it’s going to look awesome once it’s finished. Seeing the new art come to life was incredibly rewarding.

    ... read more
  • Progress continues

    Over the last week I’ve been revisiting the story/setting, the high-level development timeline, and the marketing plan. Today, the plan is still to go via Itch, then Kickstarter, then Steam/Epic. I think it might be a good idea to get an early copy on Itch ASAP so I can start collecting feedback and ideas, and then gradually publish new features every 4-6 weeks.

    (And a quick reminder that if you’re on Patreon, you can download a playable pre-alpha of the game today!)

    In the meantime, work on the user interface bits and pieces continues:

    read more
  • Even more user interface work

    It’s been a while since the last blog, probably because there’s a lot of stuff happening in the background! While I’ve been waiting for these moving pieces to land, I’ve been spending more time – again – on the user interface.

    Since this game is designed to have playtimes of 10-40+ hours per session, the quality of the UI is important. It needs to feel comfortable, pleasant to use, and fast.

    So I’ve fallen back to my design library roots and I’m putting together a simple UI kit. Despite being constrained by an incomplete CSS 3 specification and a few layout bugs, I’m pretty happy with the results so far:

    Basic text styling and layout bits

    I think tooltips are going to be important to be able to display context to the player without overwhelming them with text:

    ... read more
  • Giving pawns orders

    Over the last week, I’ve been improving how to give orders and errands to your pawns. While they’ll normally be autonomous, sometimes you might need to help them get out of a hole. Which they may have dug themselves into.

    So, I’ve added a “move to…” command:

    Giving pawns move commands

    You can also now cycle through all of the things present on a tile. Each selection dialog shows you more information, such as what the thing is made out of, what... read more

  • Fully spatialised sounds

    After the last post where I talked about adding spatialised sounds – that is, sounds that feel like they exist in a two- or three-dimensional world – I continued looking into adding reverb to the sounds, to make the game world sound more real and alive.

    Originally I thought the best solution would be to pre-compose sounds with reverb at different distances, but because the game camera can move so fluidly, it didn’t work. If you moved the camera, sounds became choppy and uncomfortable.

    So I’m happy to have come up with a solution using the native OpenAL bindings, where I can add any number of filters and effects to playing sounds:

    Demoing full sound spatializaton (best experienced with headphones)

    Along the way I also needed to upgrade... read more

  • Working on events and spatial sounds

    I’ve spent most of the last week on budgeting and applications, but in between the spreadsheets and the writing, I’ve been working on a framework for creating in-game events. I’m planning to use this to help deliver the story and setting for the game world, to create tutorials, and so on.

    At the same time, I’ve also been revisiting the sound engine. I’m adapting gdx-sfx that provides 3D spatial sounds. When you zoom in, nearby sounds get louder, and when you move the camera, far-away sounds get quieter:

    The volume of playing sounds changes based on zoom and location

    In the future I’d love to extend... read more

  • Announcing: Adaptory

    Very excited to announce that the game now has a name!!


    Initial capsule art

    Adaptory is a riff on a couple of themes that form the core of the gameplay:

    • adapt, because you will be challenged to adapt and thrive to a deep and changing world;
    • story, because I’m hoping that the game will help you to create your own stories; and
    • factory, because deep down, I love base-building games that include setting up production industries and automation (like Factorio).

    📆 Release schedule

    The game will be... read more

  • The first playable release

    This week, I’m focusing on my application to Kiwi Game Starter 2022, which “is the NZGDA’s annual game development award and startup programme for interactive games businesses and startups.”

    The submission involves lots of business and marketing practice, which is really good for me. But more excitingly, the submission requires a playable demo of your game!

    Which means that next week, I’m going to be releasing a very early pre-alpha to my $10 Patreons. The pre-alpha is very short, and only on Windows, but it is playable.

    So if you’d like to... read more

  • Unedited gameplay demo

    It’s been a good week. I’ve implemented sleeping/passing out, updated some icons, cleaned up the animation machine logic, and added more depth to the element simulation.

    (Now, pawns will gain – or lose – heat from their surroundings. This doesn’t have any immediate impact, because they don’t feel hot or cold or pain yet.)

    I also spent time revamping the sound effects, which was actually a lot more fun than I expected. Pawns now make footstep noises when they walk around, making the game world feel more alive.

    That means I’m happy to now share the first unedited demo video of the game, complete with sound:

    A live, unedited demo of the game in action
    read more
  • Thoughts and dreams

    For the last week, the most interesting things I’ve been working on have been the pawns – your friends that have found themselves in this awkward base-building situation, and with your help they will survive, build and thrive.

    Previously if a pawn was running low on oxygen, it wasn’t very obvious; they’d become sad, and eventually run to somewhere that did have oxygen, but that was it.

    Now pawns will show you that they’re running out of oxygen with a helpful bubble:

    Thought bubbles appear when a pawn has an important thought

    It’s... read more

  • Testing Groovy/JVM scripting engine performance

    (Warning: very technical gamedev post)

    I did some quick testing on the performance of Java and Groovy (my preferred scripting engine), to see where various game logic should occur, if it’s being called potentially tens of thousands of times per second.

    Test specifications

    Using Java 1.8 on Windows, Groovy 3.0.8, for 300k iterations of a simple a < b check. I ran the benchmark five times so that the JVM and... read more

  • Focusing on materials

    Over the last week my focus has been on the physical materials that are present in the game.

    The first task was to select which elements and materials I actually want to be present. One day I’d love to support as many materials as possible; but for now, focus is necessary.

    I’ve identified 43 elements and materials that I’d like the game to support. These include your standard water, ice, steam, and oxygen, which I’ve already demoed so far; but I also want to support some slightly more esoteric ones, including molten plastic, concrete, and super-heated gold. I’d like... read more

  • Sandbox tools and a debug console

    I’ve continued to focus on user interfaces for the last week, and I’m happy with where it’s at now. I’ve finished a lot of things that should form a stable foundation for all my work going forward:

    👍 Debug console

    There’s now a debug console, which you can access with the tilde key ~:

    There's now a debug console

    (Internally the console is using Groovy, which means the console has access to all sorts of amazing features. You can even do math with it.)

    👍 Better sandbox... read more

  • More user interface work

    I’m deep in user interface code again.

    My previous approach was fine, but it was a quick and dirty implementation. I knew I’d need to clean it up before I can start adding more complex interface elements (like dialogs, menus, events – all the things you need in a game).

    I’m still using a hybrid CSS/HTML + libgdx approach, based on the awesome CSSBox project. Over the last week I’ve added scrollbars, text... read more

  • Cleaning up liquids and tilesets

    It’s been a long time since my last post where I wrote about the first liquid and gas shaders in the game. Since then, I have been deep in the weeds with two deeply interwined challenges, so it’s been difficult to write about them separately!

    The first challenge I tackled was having variable liquid levels; a tile of 1000kg of water shouldn’t look the same as 1kg of water.

    For now, I’ve implemented this with a fairly basic tileset. It’s better, but I’d like to revisit it at some point in the future. I have an idea of doing... read more

  • Blob layouts and tilesets

    (Warning: technical gamedev post)

    I noticed the following tileset layout is quite popular in asset packs:

    Mossy Cavern tileset by Maaot

    But at first glance I couldn’t work out how you could display ostensibly 28-1 different possibilities (since each tile can have eight neighbours) with only 47 tiles.

    And did this match up in any way to the “blob” tileset reference, where you reduce each tile... read more

  • Liquid and gas shaders

    Being stuck in the weeds continues, with great success! Over the last two weeks I have focused on the rendering code for the game, to make the game more pleasant to look at.

    Using a concept I’m calling “texture offsets”, tiles keep track of their relative movement, which allows the illusion of gas expanding:

    High-density gas expands to... read more
  • Progress on the element simulation

    I’ve been deep in the weeds of the physics/element simulation, which I think will be a big part of the game.

    Hoping to have a bit more to show off next week, because there’s still a few bugs I’d like to iron out first, but here are two shots of the simulation in action:

    A tile with lots... read more
  • A draft timeline

    Happy new year! 🎉

    I had a refreshing break with lots of games, including discovering Timberborn, which is a great base builder with a novel scarcity/weather mechanic. And beavers!

    I used my first week back as an opportunity to reflect on my progress to date and where I’d like to go. As part of that I fleshed out my very first game design document.

    And whoa, there is a lot that I’ll need to implement in order to achieve my vision for this game.

    I then attempted to capitalise on my experience and skills as a software developer/team... read more