Basalt is a roguelite match-3 game, currently in an early phase, but still it’s fully playable. In the game you match gems to dig deeper into the dark depths of this abandoned mine. The inhabitants of the old mining town strongly advices you to not dig too deep, but without explaining why. Well, there’s only one way to figure out.
The announcement trailer
About the project
This project is a co-production between two companies, Games People Play and Rubarb. We are both located in Oslo, Norway (Scandinavia), and we’ve known each other for quite some time. Jack, from Games People Play, approached us with a game idea he had been working on. It looked like a prototype, it had some bugs here and there, but we immediately saw the appeal.
I’m sure you see the appeal, too. ![]()
Together we wrote an application for a development grant from the Norwegian Film Institute, which has a fund for video games. In June 2025, we got about $50.000 NOK to start developing.
The actual work started in late August, beginning of September. In late November, we had squashed the last breaking bug in the matching and gem-dropping system, and the game reached a new level of stability. Since then, we haven’t had another breaking bug.
The team
Jack (Games People Play)
Jack is the game director and is responsible for the game design. He also does the heavy lifting of financing and pitching.
Simon (Rubarb)
Art director, animator, designer, shader artist and programmer. Everything in the game that you can see, was made by Simon.
Dan (Rubarb)
Audio director, and responsible for all the music and every little piece of sound effect and ambience. Dan has the ability to create complete soundscapes that go perfectly together to create just the right mood.
Thomas (Rubarb) (This is me)
Technical director. I write code and make things work. I create systems that allows Jack to implement new content and mechanics in a safe way, but without limiting his creativity too much. I care about stability and performance.
Cooperation
Simon is a man of many talents, and one of them is the ability to write code, very fast. Not to be disrespectful of his code, but it doesn’t always reach the level of quality needed for a public release, which is fine. Early in the project, we realized that his speed could complement Thomas’ lack of. If Thomas were to write all of the code, we wouldn’t have come as far as we have.
To take advantage of Simon’s coding abilities, we decided that he could prototype and hack together mechanics based on input from Jack. Together they would try new things and figure out how things are supposed to work. Later, Thomas starts rebuilding the code to be more stable and scalable. Once he’s done, Jack comes in and pushes the systems to its limits. ![]()
As the technical director, I had to accept that the code base consists of shippable code and prototype-based code, and that over time the prototype code will eventually become shippable. As we like to put it, Thomas creates the dinner table and each of the plates, and the others are allowed to add as much spaghetti to the plates as they like, as long as it doesn’t spill over. This way of collaborating has turned out to be very effective for us.
The game today
Basalt has changed quite a bit from Jack’s prototype, but the core of it is still there. As mentioned, we are still in early development so things might change.
About this devlog
Needless to say, this game is being developed in Godot. We are on version 4.5, and we usually upgrade the engine to the latest stable release. I would like to use this devlog to write about technical aspects of the project. I’ve written devlogs before, and it’s always been a very good experience. I get to clear my thoughts and put words to my experience, and sometimes others find my writings useful or inspiring.
I have started drafting posts about
- The system architecture. How the game is built, what parts it consists of and how they communicate with each other.
- Editor tools. My experience with different types of editor tools, and how to make them, and why we have made ours the way we did.
- Build and distribution system. The process of building different versions of the game, with different sets of features, for different platforms.
- Coding in C++. How I setup the project for building GDExtensions, how I debug them and the workflow for implementing the extensions in the game project.
I hope this will be of interest to some. Stay tuned for the next post. ![]()
– Thomas






