Hello friends! So, last weekend, I participated in the Jamsepticeye Game Jam on itch.io, hosted by Jacksepticeye and Ducky Dev. The theme of the jam was “Death is an Opportunity,” but to me, this sounded like an opportunity to make a videogame! So, putting the new Godot skills to use, I am proud to present DOD: Department of Death.
About the Game
DOD: Department of Death is a business simulator puzzle game. You are the newest agent at the Department of Death, tasked with selling travel packages to new souls. Your goal? Help them reach the final underworld with money in the bank and reputation to spare. It’s a simple little game, built in Godot over a three day period, and is fully playable on the web. The source code for this game is also MIT open source! You can grab it in the downloads section of the itch page or on my personal GitHub.
The Making of DOD: Department of Death
I often see posts online about, “Can you make a game entirely out of Control Nodes in Godot?” For those who are unaware, Control nodes are Godot’s User Interface objects. Think text, lines, colors, images, etc. It’s almost like a layer of CSS on top of your game. They are tough to learn how to wrangle into shape, but once you have, they can be very powerful. I saw this game jam as an opportunity (heh) to put that question to the test, and the answer is a resounding YES.
Every single node in this game is a Control node.* Labels give text-flavor to every Button. TextureRect nodes dance around slowly to add some style to your travel packages. RichTextLabels give deep control over the narrative, allowing for variation in the text styling. A MarginContainer controls the size of the game while HBox and VBox containers organize the layout. An overarching Color node displays the CRT shader. This gives the game its unique look, which then sits inside a Blender-rendered monitor on the itch.io page. While there’s a lot of GDScript controlling button presses, tweens, and variables, no other kinds of Nodes were used to bring this game to life.
* The one exception to this is AudioStreamPlayer nodes for the sounds because, well, they’re sounds.
Some Technical Trickery
Even more impressive, there are no load screens. The transition effect for your computer shutting off at the end of the day is simply for covering up the change in date. The game makes smart use of loading in various PackedScenes when needed, and trashing them when not, keeping resource usage down. This also means no Scene has an enormously long script file.
The database for dossiers and narrative was built using JSON. JSON, or JavaScript Object Notation, is a text-based, very readable, and easy-to-use format for information storage and retrieval. This was not necessarily the best choice for a game like this, as Godot’s Resource format could have been easier to use. Still, JSON format allowed me to put all the game’s data into just a couple of files, and retrieve it through code. This saved me having to sift through dozens of Resource files to make adjustments for each character. Ultimately, though a bit more complex up front, this allowed me to just write the story as I needed.
When it came time to package everything up, the end result was a nice 11mb HTML5 game. There is also a 14mb source code download for anyone interested. A little bit of CSS editing at the top of the index.html page let me change the load to bar to orange and move it to the center of the screen. Finally, the page background was built and rendered using Blender. This was then aligned to be pixel-perfect with the resolution of the game in Photoshop. A completely blank banner image on itch pushes the game down into position, and then boom, we have DOD: Department of Death.
Play the Game!
The entirety of DOD: Department of Death can be completed in about five minutes, so go ahead and play the whole thing! The real challenge comes in finding each of the game’s multiple endings on the last day. That’s right, MULTIPLE endings! Of course you could download the source code and spoil them for yourself, but really why would you do that?
Thank you all so much for playing! Don’t forget to please support the studio by grabbing another game or a piece of merch from the Shop. There will likely be some more small jam games over the next few months, so stay tuned, follow everywhere, and I’ll see you for the next one!
– Danny






