Reveal and Godot Commentary
Author: Lee Buermann
Publish Date: September 2, 2024

Update

This week is the week folks. Its happening! I finally made the Steam store page for Space Duck: Escape publicly visible. (link) After a few weeks of waiting, I got the approval and immediately uploaded the trailer to the page and got it out the door. While admittedly a bit rushed, the reason for doing this in quick succession is that I'm trying to be ready for Steam Next Fest in October. The registration for that requires that you have a published store page and a trailer. The deadline to register is tonight, September 2nd. The good news is, I made it! Which means the rest of my timeline is still on track.

That means I'm ready to talk loosely about time lines. Steam Next Fest starts on October 14th. That gives me just over a month to polish up this demo and make sure its working on both desktop and hopefully Steamdeck. That's the current goal. I'm hoping to use all of that feedback to inform whether my next set of dates is feasible. If all goes well, we'd be looking at a mid to late November release. Just in time for the Holiday. That's sort of a tight window, but my goal here is to keep a fairly consistent flow of events to keep the game as front of mind as possible. I'm no great marketing mind, but I do know consistency works and attention is a premium. If I can roll any eyes I get from next fest into a full release that should help.

As for work on the game, I'm now on to working on sound effects and background music. I don't have a ton to say there yet as I've just started, but I can say that I'm trying to use the background music to add to the anxious feeling of eescaping. I need fast paced up beat music for that. And as you can tell from the trailer, I'm still a big Mega Man fan so I'm taking heavy inspiration from those soundtracks.

Story Time: Godot and Software Engineering

We're going to switch gears a bit with this story time. I've alluded to this in the past but I'm really enjoying working with Godot as opposed to other engines like Unity or Unreal. It relates to the software concepts I'm familiar with a lot more directly. I'll be diving into some examples of that and a few other nice things I've been taking advantage of in Godot.

First I'll start with the 2D physics that's baked into Godot's various components. To me this was one of the most difficult parts of Unity. I remember having to build almost all of the collision detection in the game which was tedious for a newcomer. In Godot, the character has an "is_on_floor" function that seems to mostly just work. There's also an is_on_wall function that I use for moving blocks and such. These things being baked in to the engine really help get started. I guess the downside is if you don't like how they work you have to still build it yourself. This tickles the Software Engineer part of my brain. Making reasonable defaults with options to build something more complex if you need to will massively boost productivity for developers using your tools and libraries.

The next thing that I'm really enjoying is how close a Godot scene feels to a standard Object in most programming languages. In Unity a scene felt more akin to a Level to me. Building other objects to put in that level felt like I needed to build something else and learn a bunch. With Godot, I'm able to build a scene for the Player, and drop that into each level. I'm able to build a scene for an obstacle like a moving spike block and drop many of them into a given level. They all work the same and if I update the scene, I update every spot where that scene is used. Its great and works exactly the way Objects and instances of Objects work in languages I use for my day job. One additional bit on Scenes. They're extensible. So exactly like inheritence in Object Oriented programming, we can build generic or abstract classes that can be reused. Notably I'm using this for all of the equipment in the game. Every active piece of equipment has to do something when the button its equipped to is pressed. All of that can be abstracted and now for each new item I can simply implement what the item does and not worry about which button its equipped to etc.

I've got more to say but I'll stop for now. Godot is great and I'm finding it really inuitive to utilize its features for what I need.

Sign Off

That's it for this week. My goal for this week is to land on background music for each of my levels and start polishing some of the end state for a demo.

Thanks again for reading and following along!

Lee