DEV Community

Robert Floyd Dugger
Robert Floyd Dugger Subscriber

Posted on • Originally published at blog.rfditservices.com

I built the same game for 20 years without knowing it

I want a world that doesn't stop when I do.

I didn't know that's what I wanted until recently. But it explains every project I've shipped for twenty years, and it started with a browser RPG I played in middle school during summer school.

Lands of Hope is still live. You can play it today. Deep content, crafting queues, a community that made the world feel like it mattered. What hooked me wasn't any single mechanic. It was the feeling that the world kept going without me. Things set in motion with consequences I had to wait for. Other people in it, doing things alongside me, making it real.

I was thirteen. I didn't have language for what I wanted. I just knew how it felt.


TurboShells came first. Turtle racing where every turtle's body assembled from its genome at render time — shell radius, leg length, color expressed from a genetic sequence. The turtles raced. The faster ones bred. The slower ones didn't. Nobody played TurboShells. But I built it anyway, because something about setting a breeding pair in motion and waiting for the result felt right in a way I couldn't explain.

rpgCore next. A thousand tests. A proper ECS architecture. Genetics, lifecycle, dispatch — everything composable, everything persistent. SlimeGarden put it to work: breed slimes, dispatch them, see what comes back. OperatorGame pushed the dispatch loop into squad tactics. VoidDrift stripped it down to its core: drones go out, mine asteroid ore, return, station inventory updates, repeat.

Every project had the same shape underneath. Something goes out without me watching. Time passes. Something comes back changed.


The recognition came slowly. I was writing VoidDrift's Scout dispatch system one night — drones leaving the station, doing their work autonomously, returning with ore — and I stopped. I'd written this before. Not something similar. This exact thing. The same send, wait, return, consequence that the breeding pairs were running. That the slimes were running. That my Lands of Hope crafting queues were running when I was thirteen.

I opened a list of every project I'd shipped and read it from the top. The dispatch loop was in all of them. Not because I'd planned it. Because I kept arriving at the only mechanic that produced the feeling I was chasing.

A world that goes on without you. That changes while you sleep. That has consequences whether you're watching or not.

ContentPipeline publishes while I'm at work. PrivyBot fires its morning briefing whether I'm awake or not. RALPH ran overnight tasks the first night I deployed it and had results waiting when I woke up. VoidDrift's drones mine whether the screen is on.

I haven't been building games. I've been building persistent worlds.


The surprise was that naming it didn't feel like a limitation. It felt like a body of work.

Scattered projects suddenly had a spine. TurboShells wasn't a side project that went nowhere — it was iteration three on something I've been refining since middle school. rpgCore wasn't over-engineering — it was building the foundation the loop deserved. VoidDrift isn't just a mining idle game. It's the clearest version yet of the thing I've been trying to make since I was thirteen.

The struggle was that I couldn't have named this pattern while I was inside it. Patterns are invisible to the person living them. You need the list, the distance, the moment when you stop mid-implementation and recognize the shape.


AntColony is next. Same chassis as VoidDrift, same loop underneath — workers dispatching, foraging, returning, colony state updating without you. Different world. Same feeling.

I know what I'm building now. I'm building worlds that don't stop when I do.

I've always been building that. I just needed twenty years to see it.

Top comments (1)

Collapse
 
lyubomyr_ivanitskiy_c6474 profile image
Lyubomyr Ivanitskiy

Interesting read, thanks for sharing. Recently, I performed a similar kind of analysis myself, and I agree—it’s a very useful exercise.

Looking back, I’ve noticed a recurring pattern in many of the projects I’ve been drawn to over the last 15 years. On the surface they seemed unrelated: a custom keyboard for blind users, an image-to-sound decoder, experiments with alternative programming languages and type systems, cryptography and steganography projects, my own neural network architectures, attempts to model information and its representations, even ideas for alternative economic systems.

But in hindsight, they all seem connected by the same underlying fascination: language, communication, representation, and meaning.

As a child, I invented my own alphabets and languages. Later I became interested in music notation, programming languages, linguistics, etymology, semiotics, philosophy of language, NLP, AI, cognition, animal communication, and information theory. I was always fascinated by how information can be encoded, transformed, hidden, transmitted, and understood.

At various points I built a keyboard for blind users as an alternative writing system, experimented with converting images into sound so visual information could be perceived through hearing, designed my own neural network concepts, and explored entirely new ways of representing knowledge.

What strikes me now is that all of these projects may have been different expressions of the same deeper idea trying to emerge. Every few years it would reappear wearing a different disguise, hoping that this time it would finally find its proper form.