Matt Tuttle

The Long Road to 3D

I've spent most of my game development life in 2D. HaxePunk, Flash, and an entire NES game. Lately, though, I've been slowly moving into the third dimension, and it's starting to feel like that's where I'm headed.

It's not exactly new territory, though. I've been playing with 3D off and on for years.

Mods, maps, and Forge

Technically, the first 3D thing I worked on was a Resident Evil mod for Half-Life when I was in college. I coded a way to board up windows and doors. I'm pretty sure it completely broke the AI. The mod fell apart anyway, like a lot of mods do. We were a big group, most of us had no clue what we were doing, and eventually the team splintered.

I also made Half-Life deathmatch levels for my friends to play. Years later, I did the same thing for Halo nights in Forge mode, from around 2011 to 2015. A Star Fox clone I wanted to make back in 2009 was planned for Silo3D and Unity. So I've had some basic modeling experience for a while now. I did the donut tutorial in Blender and all that.

None of that was making a 3D game, though.

Break a Leg

My first real attempt at 3D in Godot started with an idea for a theater game, similar to Overcooked: chaotic couch co-op where you grab props and costumes, move lights, trigger sound cues, and pull the curtain at the end of a scene, all on cue.

I made a basic prototype with CSG shapes where you could move a character around the stage. I don't think I got much further than the basics. It still felt pretty daunting, and I struggled with some of the game design.

A top-down view of a checkerboard-textured stage built from CSG shapes, with four small blue player characters and a few green cylinders
The Break a Leg prototype. Checkerboards and cylinders.

Space Dungeon

Next, I made a space dungeon crawler after seeing how someone built their own dungeon crawler in Godot. This was after I'd done the Firebelly course, so I had a much better understanding of how to structure things in Godot. I built it with some assets from Quaternius, one of the sites on my resources page, and worked on making it look decent.

I posted a video of it on Bluesky, and it got a tiny bit of traction. After that, I tried adding enemy characters with 3D models from Synty and animations from Mixamo. That also felt daunting, and I wasn't sure it had a hook.

A first-person view of a pastel blue and purple space station room with supply crates and a door, and a dark armored figure standing off to the right
Space Dungeon, with Quaternius assets and one of the enemy models.

A lot of my projects die early because I second-guess myself. This was another one of them.

Kingdom Idler and Lighthouse

A kingdom builder idler was the first project I thought I might actually release. However, I wasn't sure how to design it to make it fun. I tried a bunch of different directions and didn't like any of them. Incrementals may sell well, but I don't enjoy making them, and only some of them I find fun to play.

Lighthouse was meant to be a full horror game. So was another one before it. But the scope felt too large to tackle at the time. I might return to this in the future.

A dark, foggy night scene with low-poly rocks, a wooden gate, and a lighthouse in the distance under a glowing moon
Lighthouse. It has a mood, at least.

Finishing something

The two games I've actually finished in 3D are both jam games. The Universe Is Collapsing and Ten Thousand Floors had deadlines, so I didn't have time to get in my own head.

A hallway in Ten Thousand Floors
Ten Thousand Floors.

They also showed me how much I don't know. Ten Thousand Floors ended up with 500 to 800 draw calls in some of the unoptimized areas. On the NES, I always knew what my limits were: palettes and sprites. Here, I didn't have a clue what caused the spike until I looked into it. It was a matter of ignorance. I also did some silly things, like copying materials just to change the UV scale. It worked, I guess. 🤷‍♂️

Where I'm headed

Right now, it's feeling like 3D might be my future. There's still a ton I don't know, and to some degree that's a good thing. I'm less likely to get in my own head.

I'm taking a GameDev.tv course on environment art in Blender, and learning how to export CSG blockouts from Godot into Blender to edit them. That should keep me from doing the material trick again.

Posted in Game Development

Tags: Godot, 3D, Blender