Isles of the Cloud Realm
Almost two years into building an online RPG in Go and Godot
I'm building an online RPG. I'd never made a game before.
The indie game development community has told me this is inadvisable.

In late 2024 I took a few-month sabbatical from work because I was burnt out. I spent the time on creative pursuits, to get away from thinking about computers, and it mostly worked; most of those months went to photography, writing, and sewing. My brain kept floating back anyway, to the same thought exercise: how would I go about designing a multiplayer game server?
I spent a few days building a small proof-of-concept. It came easily; this is what I've done professionally my whole career, and I understood what needed to get done and how to do it. It felt like the overlap of my adult work (software engineering) and my childhood hobby (gaming, mostly online RPGs).
Building it excited me in a way I hadn't felt since my early years in software. The sabbatical was supposed to be a break, though, so I set the game down rather than take on a large project. Once I was back at work it kept calling me, and proper development started in January 2025.
I'm almost two years into working on this consistently, and a world is starting to emerge from it.
I've recently hit the "this is starting to look like an actual game" phase, instead of it just feeling like a tech demo. It's a little odd to step back, look at it, and buy into the illusion. It's also why this feels like the right moment to start talking about it.
The game side has come a long way too. Players sign in, make a character, and share a world that streams in around them. Many of the gathering and crafting skills are finished, and a real combat system is taking shape.

There's still a huge amount of work left. The people who called this inadvisable weren't wrong about that part. I'm not itchy to reach the end; the joy is in the process. I expect that eventually adds up to a "finished" game.
I played too much Runescape (opens in new tab) as a kid. What stayed with me was how deep the skilling and crafting went. You could pour hours into them without touching combat or questing, which is mostly how I played. I want that kind of depth.
World of Warcraft (opens in new tab) was the first game where the world itself felt like the main character instead of me. I think that matters in an online game. Everyone else logged in is on a journey of their own, and the world can't be built so that each of you is its main character.
The combat system in Tibia (opens in new tab) was more creative than its constraints should have allowed: 2D, grid-locked, real-time, and still deep. You had to think about positioning, kiting, and using terrain to your advantage. Grid-locked movement doesn't have to mean simple gameplay.
I'm still pulling from new inspirations as I build, even ones I find long after I started. The gathering system in the Fantasy Life (opens in new tab) series feels super engaging; I only discovered that series once this project was already underway.
I'm not trying to clone any of them; what I want is the feeling they gave me. If I turn out to be twice as good as I think I am, I might manage half of it.
The game should be slow-paced and relaxing, not stressful or demanding. The kind of game you play while half-watching a show, or sink hours into when you're in the mood.
Progression still has to feel rewarding; there's a line between chill and boring that I'm trying to find. The focus will be PvE. Other players in the world should feel like they're on your team, not your competition. I might add PvP eventually, but that's not the initial focus.
The server is Go, with no external libraries. The client is Godot, also with no external libraries.
The server is the source of truth. The client shows state in real-time with optimistic updates, and rolls back to server state when it needs to. It's a simple model, and it's worked well so far.
The world is 2D and grid-locked, like Runescape (opens in new tab) and Tibia (opens in new tab), but unlike a lot of grid-based games it isn't tick-based. It's real-time, and every entity has its own thread and can act independently.
I skipped the libraries because I wanted to understand everything from the ground up. It's been a great way to learn, and it made some performance optimizations possible. From initial load testing, the server can support hundreds of thousands of simultaneous entities.
A lot of it will be technical: architecture decisions, the problems I've run into, and what I've learned along the way. Plenty of it won't be. I'll write about game design too, how I'm thinking about the systems, what I want the game to feel like, and why I've made the calls I've made. I'm writing for other software engineers and game developers who are curious about how something like this gets built.
None of this is a game announcement. The game is far from ready for players, and I'm not willing to make any commitments about when, or if, it ever will be. This is a side project, and the fun is in the building. So there won't be release dates or feature roadmaps here, just the work as it happens.
I mostly work on this alone, but most "solo" projects aren't truly solo. Building on Godot means thousands of people have a hand in this game; without them it wouldn't be possible. I've commissioned artists for work I couldn't do myself, built parts of it alongside friends, and had enough in-person conversations about the game that there are pieces of it I couldn't trace back to any one person or conversation anymore. Sharing the work and hearing people's feedback changes it too.
I'm going to do my best to share what I learn in this journal as I go, and put some of it back into the universe.
Come say hi
Come chat with me. I'll share extra learnings in the Discord.
- The Discord just opened, so it's quiet and I'm excited to bounce ideas around with early members.
- You'll be the first to know about an early alpha.
- Technical folks are welcome, and so is anyone interested in playing the game.
