Vibecoding my own Sim Tower

gamedev · godot · simtower · ai · vibecoding

Okay okay, so it’s not quite “vibe coding” that I do, but those kinds of headlines are what the internet likes. Let me give a little backstory first.

I’ve been in software for quite a while now, so this isn’t too new for me. I didn’t start building any games until recently though. Sure, I made a tutorial Space Invaders a couple of times WAY back, but game development always seemed hard.

Through Claude, all things are possible, jot that down

The first real thing I built with an LLM was a simple game. Then I figured I could REALLY make games, easy!

The AI Game Engine Trap

Through AI psychosis I was convinced I could make web browser games with JS, CSS, and HTML. Easy!

Yeah, not really, turns out the LLM was making a shitty game engine. Games were clunky. Tons of code, tons of rewriting “the engine” and some of the designs just did not work. I probably spun my wheels on a couple game ideas for 4-6 weeks. The thing was, I didn’t know what I didn’t know so it took a while for it to bubble up that I was making a really terrible game engine.

Godot and the Asset Bottleneck

So I used the LLM to research game engines. And now I’ve settled on Godot. It’s free and it seems to excel with 2D games, which is what I know I need to stick to for a little while first. I’m barely able to make and source 2D graphics/sprites/images; I’m not ready to create 3D models and textures at all.

With Godot I’ve created two very basic games now. Both of course 2D and both of course unfinished. Unfinished, but still playable, so I’m going to count them.

The first is a 2D overhead naval game. The core gameplay works, I just never got around to building out more than the first section of the map (it’s supposed to be a 10x10 grid of maps where you upgrade along the way as you sail from map to map until you get to the opposite corner with the enemy difficulty increasing along the way).

2D Overhead Naval Game

The second I’m still tinkering with. It’s an online multiplayer firefighter game. We’ve tinkered with this at my after-hours happy hour my team at work does. It works, again, basic mechanics all work, gameplay works, but I haven’t built more than the initial first map.

Multiplayer Firefighter Game

Multiplayer Firefighter Game Gameplay

So you can see a pattern here: I’m not an artist, so it’s hard to get good sprites/tilemaps/images for my games. And this ties into what I think about using LLMs: they’re GREAT tools when you know what you’re doing and are working within your expertise. But when you’re not a pro, they’re either not as helpful or not helpful at all. Prompting for images/graphics is tough, and I’m not good enough with Aseprite or a good enough artist to create my own images/graphics.

The LLM is great at making a fireman, but it’s not easy to prompt it to make that same fireman from all the different angles or to put it in the right pixel size or offset it correctly. So then it takes me forever to edit/update images so that they make sense. Like I said, I’m not a good artist nor am I great at using Aseprite.

Why SimTower?

Now that I’ve got the backstory out of the way, let’s get back to the new game I’m working on.

As a kid I always liked the Sim____ series of games: SimTower, SimCity, SimCopter (which isn’t really the same thing, but it was cool to build a city and then fly around it), SimAnt, etc. And now, I don’t think there are any of these games. Yeah yeah, Cities: Skylines is close, but I don’t know, it doesn’t scratch the itch the same way for me.

SimTower really came to mind because it felt like a game idea I could take pretty far without worrying too much about the artwork. It also feels like something I might be more artistically capable of. I draw a lot of blueprints of furniture or sheds. I used to like drawing cityscapes and perspectives of cities (like a street corner with two-point perspective, whatever that was called from 9th grade Commercial Arts, thanks Mr Juul). So how hard will it be to draw buildings, rooms, elevators… Well, to be honest, I still don’t know because the core gameplay doesn’t really require art assets.

The Alpha

Before I sink a lot of my time into drawing rooms and creating art assets, I want to nail down the gameplay. You can check out the current playable alpha build at mytower.games.byacommonthread.com. The alpha version of the game is extremely basic, but the idea is that you are a real estate investor and property developer. Build a good tower, sell it, buy more land, build more towers, etc.

Starting a new game will give you tutorial tooltips as you go. It walks through what most of the menubars mean. And it gets you to build the first level, place the initial lobby, and create electrical infrastructure.

SimTower Alpha Tutorial

Right now there’s only a single plot of land. I’m going to expand this so that you choose your plot on a map and the location will set the stats on demand. So a plot of land near a school has better residential demand or a plot near other retail and commercial businesses has more commercial and retail demand, along with other proximity based effects.

Also, there’s only a single building shape you can currently build. Later I’ll add more building shapes, materials, and other properties to selecting a blueprint. These choices will affect costs, demand, etc.

SimTower Alpha Building View

I think the idea is pretty self explanatory. Build your tower, rent out units, fill it up, make money, sell the tower, build another. The idea being that you can build out your little real estate empire or try to build the tallest tower.

SimTower Alpha Interface

I’m continually layering on more complexity as I go. I actually meant to release this a couple weeks ago, but then I made some more tweaks to the gameplay and got sidetracked. Initially the demand was static, which made the game too simple, so I added a layer of a global economy and local demand. I’ll continue tinkering with things. More demand tweaks. Adding the map, more plots, more blueprints and building types.

The Infrastructure

Since Godot supports exporting directly to HTML5 and WebAssembly, packaging the game for web distribution is super straightforward. Godot compiles the project down to a lightweight .html shell along with .js, .wasm, and .pck static asset bundles.

It’s all hosted in Cloudflare. Most of my other stuff is in AWS, but I don’t want to pay those egress costs in case a ton of people suddenly want to try this game. Cloudflare Pages serves the static WebAssembly export smoothly with zero egress fees. Well, I guess my domain is still in AWS, but it’s just pointing a CNAME at the static site hosted in Cloudflare (mytower.games.byacommonthread.com).

Continuing to build

And then I have some other ideas I’m going to try out:

  • Maybe path-finding and programming of elevators (right now it’s a much simpler “simulation”)
  • More room types and some tweaks to how rooms and demand work
  • Public transit linking up to the building, parking, foot traffic simulation
  • Multiplayer and sharing the map(s) with other players, save games, and save states
  • And of course, I’ll get around to art/images/assets

LLM/AI disclaimer

I wrote all of this myself, but I did have an llm check my grammar and formatting (it put things into a list and capitalized a couple things but otherwise this is all human)