About
God Is Debt was originally made for a game jam, which I talk about more here. While the Game Jam Version took 190 hours to complete, the full game took exactly 500 hours. Most of this time was spent on development, but a portion was also spent on miscellaneous admin and marketing tasks.
Every single part of the game was solely made by me using GameMaker Studio 2 as the engine, scripting the gameplay with GML. Aseprite was used for all of the sprite art, as well as storefront artwork. The music was produced in Waveform 11, and the SFX in ChipTone.

Gameplay
The game fits the Shoot-’em-up genre, although it does dip into Bullet Hell in some areas. There are 6 levels in total where the player travels up the screen, confronting waves of enemies. The end of each level features a boss fight with more elaborate attack patterns and larger, more detailed artwork.
The player controls a fighter craft that can fire bullets in a straight line, or overheat their weapon by continuously firing to shoot a spread-shot. This overheating system provides the player with a constant moment-to-moment choice of how to deal with enemies. Whether to carefully manage their shots to keep a high fire rate or opt for a slower but wider spread shot. Each weapon has its advantages and in some cases there is a correct choice.
As enemies are defeated they drop Power which the player can collect. This gives the player points, upgrades their weapons, and charges Power Shift. When activated, Power Shift doubles the player’s points, makes them invulnerable, and fires a huge number of projectiles. It serves as a tool for both survival, and chasing a high score.
A world map offers the player each level in sequence, allowing them to replay as they see fit. Once all levels have been completed, The Complete Saga is unlocked which offers a classic arcade experience of playing through each level back-to-back.

Each level has 3 medals to signify the player’s performance. Medals are earned for completing the level, destroying all enemies, and taking no hits. If a player earns all medals in one go, they then earn a special Perfect Clear medal, and a matching Steam achievement. Getting Perfect Clears on all levels is a requirement to unlock the True Ending.
I originally planned to have 3 difficulties, which would reduce the player’s lives, make enemies harder and make them more numerous. Due to the time taken to balance each level, I scrapped the adjustable difficulty. The Perfect Clear system instead acts as a pseudo difficulty, letting the player decide if they wanted to push themselves for a greater challenge.

The bosses were the most interesting and challenging part of the game for me. I had a lot of fun coming up with silly ideas and seeing them come to life, but due to their size and complexity each boss took a long time to draw and code. Some time was saved, even with some code being shared between them.
Achievements
Every designer loves a good achievement list. Making a collectable set images for people to earn is a very fun concept. I kept it simple, ending up with just 25 achievements, each level has one for completion, Perfect Clearing, and fulfilling an extra unique challenge. In addition to these there are a few others for Saga Mode, viewing each Epilogue, and some general level completion ones. I gave them unified borders so it was clear how they are grouped together.

Narrative
The game jam which this was originally made for was themed on anti-capitalism. It would be quite easy to make the case that most games are narratively focussed on that exact theme. Abe’s Exoddus (my favourite game), and many of the early Ratchet & Clank entries (my favourite series) are quite explicitly anti-capitalist, with the main characters seeking to right the wrongs of the world around them, being the Magog Cartel, Chairman Drek, or another businessman villain.
The name of the game “God Is Debt” sums up the world quite accurately, goofy pun aside. Capitalism has been so revered and worshipped to the point that it has manifested into literal gods which I named Paradigms, from ‘para-dimes’. Each Paradigm is a reflection of a symptom, or phenomenon of capitalism, and rules over a domain which also fits the theme, some more obvious than others:
- Tutorial Simulation – AI and over-computerisation
- Shores of Waste – Pollution and waste
- Straight of Devastation – War, colonialism and genocide
- The Flats of Ire – Consumerism
- The Chartered Lands – Labour exploitation
- Safe Heaven – Extreme wealth
The player, only referred to as ‘comrade’, travels between each realm, where they are occasionally contacted by two colleagues who also remain unnamed: a scientist, and a commander. They comment at the start of each level, before a boss fight, and occasionally to highlight a new mechanic. Sometimes a Paradigm will butt in and make a comment too. Dialogue is delivered via a popup dialogue box, but due to the auto-scrolling nature of the game, I kept these to a minimum. So there are only about 20 interactions throughout the game, each very brief.

The only other source of written narrative are the intro and 2 Epilogues, each is a slideshow of a few images with text, which is written in a very brief, folky, sermon style.

Sprites
The game has a huge number of sprites which took up a large portion of the development time. There are 250 png files which correspond to a mixture of spritesheets, singular images, and environment tilesets, which is a lot. A quick count of individual images, including those that weren’t in the final game, is approximately 1000!
For the environments, I made a tileset for each level which could be autotiled to form a base layer, and then depending on the level, add buildings or other decoration. Even though the general layout was automatically tiled, I still had to go over each layer to add variation which took a while. I tried to find a way to improve the autotiling tool to suit my needs, but couldn’t find anything, so manually doing this took a while.

The enemies also took up a good chunk of time, but the bosses were the largest commitment as they had lots of elaborate attack animations, secondary forms, or multiple moving parts which had to work together.
The 10 intro and Epilogue images were quite daunting as they were full screen pieces of art, but were finished to a standard I was happy with. Considering they are only shown for a few seconds and would only be viewed by the player once or twice, they didn’t need to be masterpieces, just enough to compliment the accompanying text.
One part I really enjoyed was the GUI and level select menu; creating a map screen with moving tabs and the techy borders. The HUD was likewise fun to design and draw. Adjustable 9slice sprites were very handy for making buttons and menu backgrounds that were fitting, and suitable for their contained elements.
Audio
Music has always been a challenge for me, though 10 years of casual guitar playing and piano lessons when I was younger has given me some helpful tricks. Each level has its own looping track about a minute long. In addition, there is the boss fight track, and a few much shorter tunes such as the level completion jingle, intro, main menu, and level selection loops.
I used Waveform 11 as it is free, straight forward, and doesn’t hijack my PCs audio or require annoying licensing managers. I’ve really come to appreciate its simplicity, and think it will replace my previous goto, Bosca Ceoil.

All the songs are composed across 7 tracks, each track being a different instrument that comes with Waveform. There is just 1 drum track, and 6 various synth instruments all made with the built-in 4OSC plugin.
As for the SFX, I found these quite frustrating to make at first due to the trial and error nature, though by the end of the project I had made exactly 100 sound effects and better understood the process. I used ChipTone which is a very handy, free synth sound effect maker.

QA Testing
Another time consuming task was testing, with general balance playtesting being the most draining. I had several phases of development where I would perform sweeps, playing through every level multiple times, focusing on a different area such as SFX or visuals, and then adding every single issue to a bug spreadsheet. This sheet peaked at around 200 issues which was extremely demotivating.
I would eventually work my way through the list, either addressing issues, or marking them as optional if they were just nit-picks. A lot of things were pleasantly simple 5 minute jobs, but some larger tasks required reworking boss attacks to make them more fun or interesting, or adding more artwork to levels to make them less bland.
Storefronts
The Steam store page took a while as I had to enter a lot of information, and create store and library images which are all different sizes which I found very annoying. I ended up using the same image for everything, cropped and adjusted to fit each element which still took a full day. The trailer was much more fun to make, I synced up gameplay clips with the boss fight music in DaVinci Resolve and overlayed some marketing text, which all together only took a couple of hours.
The entire store setup process took longer than I expected, but once I had done it all on Steam, I move on to itch.io, which was relatively quick to get through.
For both stores I had to sign the same US tax documentation to declare I was a foreign entity doing business with US companies. For steam I also had to pay £80 for a game release credit.
Pushing builds was also a lot more complex on Steam, I had to use tools built into the steamworks sdk to handle that, though once I’d done it first time it was quick to repeat. For itch.io it’s a simple case of uploading a zip file. I had originally intended to release it as a HTML5 export to play in browser, as I had done with the Game Jam Version, but it turns out that itch.io doesn’t support browser based games as paid products. I only found this out on release day, but after thinking over it I was fine releasing it as a DRM free download.
One additional concern I had for Steam was that some of my game’s content could be flagged for being objectionable. The level Straight of Devastation is about war, colonialism and genocide and has several references to Palestine which was important for me to include. If flagged it could result in being blocked from releasing until addressed or outright removed. Thankfully no issues were raised, but there is always a risk of complaint later down the line that could lead to issues, only time will tell.
Solo Development Challenges
As much as I like that this game was 100% made by me, there was a lot that I struggled with. Music production, SFX, and art are all very challenging. I’d much rather trust a skilled and passionate teammate to shine in their area of expertise. In the end, a game would only benefit from professionally made assets and it’s clear that God Is Debt was made by someone who can get by, but isn’t an expert in these areas by any means.
The time drain from QA testing was also significant. I’m more than happy to confirm code has been correctly implemented. But when it comes to balance testing and performing level playthroughs over and over again, I found this very monotonous and frustrating, even more so knowing that testing your own game is not at all ideal.
If I could pick two other people to form a mini dream team, I’d ask for a level designer who also does playtesting and balancing, and an artist who could also do music and SFX as well as marketing. I’d be very happy to focus purely on design, narrative and coding.
As for the Publishing side of things, there were some annoyances here and there, but a few days spent on admin tasks got it all done. On a proper commercial product I’d most likely want to handle the publishing admin myself as throughout my career I’ve seen publishers mishandle the process in every possible way.
Conclusion
I’ve learned a huge amount from this project, more than any of my others. I feel like I’ve become much more competent, and efficient in many areas such as music production, and 2D sprite art, not to mention the huge endeavour of coding the entire game.
I’ve applied much of my experience in the industry to this project. I really noticed how quickly I was able to analyse things and decide to change or remove them for the good of the game, and how quickly I could go on a tangent to unblock other parts of development.
My goal for this project was simply to publish a game that I’m proud of, and I can comfortably say that I’ve achieved that. I have no goals or expectations for sales as this was a learning project. Two months after release I have sold 20 copies on Steam and gained over 100 wishlists.
The project took up most of my time in the few months up to release and I was very glad to see it finished. I had been very eager to explore some other ideas but made sure to stay away from them until this was all done with. I’ll take a break from game design for a bit, but have a good idea of what I’ll be moving on to next, and if it works out, I’d be willing to go through all this again to publish a second game.