Blog entries (2022)
-
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.
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:
- Take current game world
- Apply a bunch of simulations
- Save the changes
- 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.
Iāve also added a little animation to show when theyāre sleeping, as opposed to dead:
(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!
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.
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.
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!
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:
-
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:
I think tooltips are going to be important to be able to display context to the player without overwhelming them with text:
-
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:
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:
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:
In the future Iād love to extend... (continue reading…)
-
Announcing: Adaptory
Very excited to announce that the game now has a name!!
Introducingā¦
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:
(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:
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
~
:(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:
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:
-
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 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…)