DOOM DELIVERY / DEVELOPMENT LOG
DOOM DELIVERY: My First 3D Game and What I Learned
Finding the game in a bicycle controller, fixing collisions, and finishing a first 3D game.
Originally published on itch.io ↗. Reproduced here from the original post.
DOOM DELIVERY is finished and submitted for Godot Wild Jam #97.
More importantly for me, it’s also the first 3D game I’ve actually finished.
Going into this jam, I was pretty wary of 3D development. 2D made sense to me. It felt approachable, easy to experiment with, and simple to get something on screen that I could immediately start having fun with.
3D felt like a different world.
There were more axes to think about, cameras, lighting, materials, slopes, collisions, models, transforms, and a lot more opportunities for something to behave in a way I didn’t understand.
After these ten days, that feeling has changed quite a bit.
I don’t feel like I suddenly understand everything about 3D development, because I definitely don’t. But I understand enough now that it feels exciting instead of intimidating.
This project really unlocked my interest in making more 3D games.
Finding the Game in the Controller
One of the most rewarding parts of the jam was building the bicycle controller.
I started with a pretty simple idea: I wanted momentum to matter.
Getting up to speed should take effort. Braking should cost you. Grass should slow you down. Going downhill should help you, while climbing should hurt. Steering should feel different depending on how fast you were moving.
A lot of the game came from repeatedly building a version of that controller, playing it, noticing what felt wrong, changing it, and playing it again.
That process ended up giving me a really useful compass for the rest of the project.
Once riding the bike started feeling good, I had a much clearer idea of what DOOM DELIVERY needed to be. Any mechanic I added had to support that feeling rather than bury it.
The deliveries, terrain, stairs, shortcuts, timer, and scoring all started making more sense once the movement itself was fun.
That was probably my biggest lesson from the jam: getting the core interaction right early made a lot of later design decisions much easier.
Things Broke. Frequently.
There were plenty of problems along the way.
At one point, hitting a wall could leave the bike happily preserving its momentum while going absolutely nowhere. I ended up adding impact-based momentum loss and some recovery behavior so getting stuck against geometry didn’t completely kill the experience.
Terrain detection also went through a few versions. Grass and stairs originally relied on a raycast-based approach, but moving those surfaces to dedicated area zones made their behavior much more predictable and easier to tune.
The delivery system had its own share of bugs.
I managed to give two deliveries the same ID, which made one of the orders effectively disappear. I also had a HUD reference problem that caused parts of the interface not to update correctly.
Both were simple problems once I found them, but figuring out why the game was behaving strangely was the harder part.
There were plenty of smaller issues too:
- Camera placement
- Collision behavior
- Tuning stairs
- Balancing steering at different speeds
- Getting the UI positioned correctly
Almost every one of those problems followed the same pattern:
- Something behaved strangely.
- I isolated the problem.
- I changed one thing.
- I tested again.
Not glamorous, but very satisfying when the pieces finally started working together.
Where It Ended Up
DOOM DELIVERY is still very much a prototype.
There’s one small map, a handful of delivery locations, simple geometry, and a three-minute arcade loop.
But I’m happy with what that prototype proves.
The movement works.
The delivery loop works.
The terrain affects how you approach routes.
There are moments where you see a shortcut, commit to it, carry your speed through it, and feel like you made a genuinely good decision.
That’s the part I care about most.
And now that the basic game works, I can see how much bigger the idea could become:
- Larger city maps with different personalities
- More interesting routes and shortcuts
- Alternate objectives
- Collectibles
- Score challenges
- Maps built around very different kinds of movement
For now, though, I’m glad I finished the version that exists.
Ten days ago, 3D game development felt like something I wasn’t quite ready for.
Now I mostly want to make another one.
Thanks for playing DOOM DELIVERY.
Deliver before doom arrives.