Making a game is about so much more than just implementing game mechanics:
The game consists of many “invisible systems“ that work behind the scenes
You play with your ears as well as your eyes, games need audio
When testing the game on a technical level, you can save countless hours by making some custom debug “cheat codes“ for your game
And much more!
In this post, we’ll go through some of these. While these aspects might be a bit less glamourous when compared to more direct game features, I think there is a certain beauty to the more subtle cogs in the machinery of a game.
Scenes and Menus
Below you can see a video of the current main menu (with music!). This is of course an early draft, and it feels a bit derivative of Stardew Valley with the cloud background. However, getting a menu working early can be pretty useful. Up until this point, our game was just an instant drop into the gameplay, with no proper beginning or end. This simplified setup allowed for some dirty shortcuts in our system design.
However, when we added the main menu, and implemented the transition into the game, several systems broke. For example, if you pressed play, then returned back to the main menu, and then pressed play again, some systems didn’t reset properly. Fixing those issues didn’t take up much time, but I can imagine that postponing the main menu by a few months could turn this process into a real nightmare.
Developer Tooling
Playing your own game through the lens of a player is very useful for evaluating the design. But there are times where you just want to test something from a more technical perspective. For example, what happens if one hundred customers enter the café? As the developers, we can do whatever we want, and what we want is a panel where we can easily throw in different buttons that let us test a bunch of crazy scenarios, while still running the systems as close to the real deal as possible.
All of these buttons call at most 1-2 lines of code when you click them. This is because they use the different game systems the same way as normal gameplay would. The time modifier buttons set the Engine.time_scale
property in Godot, causing all time-dependent systems to run at a multiplier. The little warning symbol I added to the higher multipliers are just to indicate that some of the game systems actually glitch out a little at those speeds.
Audio
Sound effects: “retro“ vs realistic
Pixel art games often default to a retro 8- or 16-bit sound font. It’s a natural fit, as the same kind of hardware limitations gave birth to both styles of media. However, we want to try a more free-form style of sound effects. That doesn’t mean that they have to be realistic.
The reasoning is that while the pixel art graphics are definitely an artistic choice in our end, we are also breaking that style in a few ways. The characters are moving independent from a grid, and the UI and game world have different pixel sizes. In addition, the music we’re making for the game is also not in any retro sound font, and the sound effects and music should fit each other.
Here you can see some of the first sound effects: placing a cup on the cleaning rack. This is still a crude initial implementation, with both the timing and style being a bit off. However, simply populating the game with audio does so much to bring the world to life, and we can always go over and polish it later.
Music
Divine Favors
At the end of the day, this game has heavy undertones of magic, and a perfect way to emphasize this is through music. This track is a quick sketch for the more “grand“ moments in the game, such as when you browse the divine favors:
It’s a pretty busy soundscape, and to build this into something more fit for the background, we can stretch it out a bit, and let the different instruments take turns in presenting themselves. I also want to bring in some synths to represent the sci-fi aspects of the game world.
Absurdist Vibes
As you progress in the game, things get wacky pretty fast. You play as a barista living a thousand lives in frequent dialogue with gods, after all. We want to play into this as well, by having the music build towards an absurdist old-school adventure vibe. Here is a sketch that tries to capture that concept. This kind of track might not be fit to actually play in-game, but it could serve as an overture of sorts that plays during the credits, for example.
That concludes a slightly different devlog, hope you still enjoyed it! Next week we’ll be back to regular feature blogging, and this time it’s time to bring out your hammers, because we are implementing a building system! 🔨👷🚧