Developer of BloodDome99.
The Steam description for BloodDome99 says:
80s arcade meets modern horde-survival roguelike. Create unique builds, master dozens of weapons, and kill ever-growing hordes of contestants in the retro-futuristic gladiator gameshow BLOODDOME99
BloodDome99 is a twin-stick shooter with randomized powerups, available for wishlist on Steam and planning a Q4 2023 release.
I'm very grateful to have received some of Mike's time to talk before EngJam. BloodDome99 is written with Unity, and is slated for release in Q4. Making your own engine is rarely a requirement for making your own game, and if your goal is actually completing a fun game, then I suspect Mike's perspective will move you in the right direction.
This interview with Halftone Gaming was done in support of EngJam, a game jam for game engine development. Running now, August 19th 2023 through September 3rd 2023: https://itch.io/jam/engjam
What follows is Mike's own responses verbatim to my questions (the headings).
How did you get into programming and game development? What games inspired you?
I got into programming / tech as a way to get out of the restaurant industry into something more stable. I had sort of moved away from video games but during Covid I came back to them in a big way and rediscovered a lost passion. I had been wanting to pursue some self-driven projects for a while and video games were a great way to combine my technical background with my creative impulses.
As far as inspiration, I could spend hours answering that. I try to draw inspiration from everything I encounter, not just games. That being said, I'll specifically call out the game Downwell because I don't hear it mentioned very often. I'm very inspired by games that do a lot with very little, and Downwell is a great example.
What led up to the development of BloodDome99?
BloodDome was originally an entry in a game jam. It's heavily inspired by 80s action movies, bullet heaven / survivors-like games and arcade action like Smash TV and Metal Slug. People responded very well to it and we were having a lot of fun with it so we decided to keep working on it and expand it into a full release.
Any fond memories on languages or systems from the past? Anything you were glad to see go out of style, or are there any features or core lessons missing from modern development tools?
Hm. I'm not sure I've been at it long enough to feel nostalgic. I also think, for the most part, things don't really 'go away'. Every change or innovation is another tool to add to your kit. It's always up to the individual to decide which tool to use.
Do you still play games "just for fun"? Is developing the same kind of fun as playing?
Absolutely. I probably play more than I ever have, although in a different way. I tend to try many games and devote less time, in general, to each game. Though there is definitely something to be said for developing being a form of play. Especially if you develop with a focus on intuitive systems it can be really fun to combine your own systems to make new and exciting things.
What's still fun or most inspiring to you?
Again, inspiration is a tough topic to tackle because there's just so much. I like to think of myself like a sponge.
What's a classic game (whatever you decide that means) that still gets you pumped up?
I'm still blown away by how good early Nintendo (NES, SNES) games feel. Super Mario Bros still feels tighter and more exciting than almost any platformer that's come out since. I think a lot of games from the arcade and early home entertainment period have a lot of good stuff going on. There was big focus on fun.
Other things you would want to share?
Steam: https://store.steampowered.com/developer/halftonegaming Halftone Games Discord: https://discord.com/invite/MCbpwWdjrU Instagram: https://www.instagram.com/halftonegames/ Tiktok: https://www.tiktok.com/@halftonegaming Twitter: https://twitter.com/halftonegaming
May people message you for help or feedback?
Do you have any tips on persistence and overcoming problems? Do you code on a schedule? Do solutions come to you in the shower or while dreaming?
I think staying organized is extremely important. I use Airtable personally. I keep an extensive list including specific changes, additions, backlogged features, half-formed ideas, etc. Every week I give myself 'tickets' to work on for the week. I definitely think about my tickets when I'm not at my computer. In fact, usually, by the time I start working on a ticket I already have a pretty good idea of how I'm gong to implement it.
How can one decide if they need a custom engine?
I have only ever used Unity for development. I haven't really felt limited yet tbh. But I will say that whenever possible I build myself 'tools' rather than hardcoding things. For example, every gun in BloodDome99 is built on the same script. It's got probably close to 100 different fields and variables that all interact to determine the behavior of a gun. So just by changing variables I can create a gun that shoots bees, a flamethrower, a tractor beam, etc.
Do you prefer rushing towards a minimum viable feature, or do you build to support your entire feature list?
Definitely MVP, if I understand the question. I want to get a playable proof of concept as quickly as possible, then I want to expand and polish it.
How do you balance between extensibility and simplicity? How can newbies avoid rework of delicate, inflexible code versus overengineering?
I think you have to learn by doing. I started a project last year that's on the backburner right now. When I go back I'm pretty sure I'm going to redo it from the ground up. If you're always learning there's always going to be rework. But, as I said above I think the biggest thing is making intuitive systems and tools rather than just trying to solve a specific problem.
What game engines did you try? What did they have as far as pros & cons?
Only Unity. I don't use the asset store at all and I spend a lot of time writing scripts. For what I'm doing I like it, though I've got nothing to compare it to.