I've been wanting to play with Godot since I learned about it, around 2018, when I was writing glue code around a 3d renderer, a physics engine, a UI library, and would call that a game engine (at least I had fun and learned a lot).

The thing is, in order to learn a game engine/editor, you've got to have a game to design. Turns out I've always had the idea of a game that would be some kind of a modified clone of Caesar 3, this old city builder I loved so much as a kid ( and later!). I had a few lines of game design jotted down in a dark corner of a directory, and had forgotten about it... until a couple drinks with a friend revived the memory, and how much fun I think this game would be. So you know where this is going. I'll dive into the game design later, but for now, it's close enough to assume the game is an arcade city builder.

So I found a base model to load into the engine, and started reading the documentation as I wrote the parts I think I need first, that's the terrain. For a prototype, a square-cells grid will do. I've defined a few terrain types to test the path finding (dirt, grass, rock, water), and got the camera controls working. Here's a preview of how it doesn't look like a game yet!

First tile map with individual tiles and a sample prop to get a feel of where the world origin stands: 20240224.terrain_generation.png

Then tiles got a type (dirt, grass, rock), and the camera controls were in:

The game menu is a test drive at the UI system at this point.

Then I made a tile selection tool, in order to set areas where constructing homes was possible:

(the sign model comes from Kenney's game assets).

Also in order to drop citizens (placeholders) on the map:

I'm now learning about LimboAI, a behavior tree library that I'll use to code high level behaviors like how each new citizen will settle on the map and spend their days.

It's a lot of fun to learn Godot and get to build something, using pretty well-made tools.


Published

Category

blog

Tags