Blog entries (2022)

< Latest blog entries

  • First release on itch.io!

    Adaptory Alpha 1 is now live and free to play!! šŸ„³ You can download a copy on itch.io, 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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 šŸ˜Š
    (continue reading…)
  • 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,... (continue reading…)

  • 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 itch.io this month, however the timing might be a little tight. Wish me luck!

    (continue reading…)
  • 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... (continue reading…)

  • 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.

    ... (continue reading…)
  • 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:

    (continue reading…)
  • 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:

    ... (continue reading…)
  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • Announcing: Adaptory

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

    Introducingā€¦

    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... (continue reading…)

  • 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... (continue reading…)

  • 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
    (continue reading…)
  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)

  • 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... (continue reading…)
  • 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... (continue reading…)
  • 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... (continue reading…)