Thank you! You make good observations about my interface and the sokoban puzzle solver (both the bugs and the simplistic complexity).
Do you mind if I drop you a line when I get around to revising this project?
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.
What follows is Mike’s own responses verbatim to my questions (the headings).
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.
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.
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.
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.
Again, inspiration is a tough topic to tackle because there’s just so much. I like to think of myself like a sponge.
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.
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
Sure
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.
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.
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.
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.
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.
Pixel artist, game developer, extremely helpful and friendly individual: Octoshrimpy. He’s my best friend, he’s my pal. He’s my homeboy, my rotten soldier. He’s my sweet cheese. My good time boy. I’m quite fond of him and I’m definitely stealing his MarkDown organizer scheme for my Obsidian vaults.
I know Shrimpy originally via his work to expand Public Domain sprite set, 16x16 Mini World (originally created by Merchant Shade) and his relentless good attitude in one of my favorite cozy discord servers, Very Epic Tavern. We are all indie hackers there and Octoshrimpy is just one of the skilled and gregarious folks you will find there.
I’m grateful for his time and I’m grateful to know him. You can catch Octoshrimpy’s various software and artistic uploads at his brand new blog which he created just so I could plug it.
What follows is Octoshrimpy’s own responses verbatim to my questions (the headings).
I got into programming twice, haha. first time was making a css-less website for my youth scout troop, with events and calendar, and then again when I discovered that minecraft could be modded with plugins and mods.
I have a lot of “current projects”, but the one I’m most focused on at the moment is an exploration game that I have spent nearly a year looking for, and nobody has made anything like it, so I decided to do it.
features or core lessons missing from modern development tools? I always look back and smile to my days in high school: I made a chat system piggybacking on the school’s pc network system using telnet, and wrote my own app launcher using vbscript that would auto-launch from a USB drive, so I didn’t have to log in into the city library computers, as it would open the apps above the screen lock they ran, haha.
I do! currently playing through Cloudpunk and occasionally Odd Realm. I do find building the systems for my own games is nearly as much fun as discovering someone else’s systems within their games.
Toby Fox from undertale/deltarune, Eric “concernedApe” from stardew valley, Thor from heartbound; I look up to them and their efforts towards making good games with all kinds of players in mind.
I love dwarf fortress, even if I don’t play it anymore. (it’s been replaced by odd realm haha)
I’m octoshrimpy everywhere, but lately i’ve been moving away from non-federated sites like twitter/reddit and moving into activity-pub-supported versions of those like mastodon and lemmy.
My DMs are always open, and I do my best to share any knowledge I have. :)
Sometimes persistence means walking away and letting the ol’ two brain cells fight about it in the background until they settle on a solution. With that said, ideas always come to me (and people) in the shower, but that’s because the shower is a place where we don’t really have electronics or distractions, and our minds can wander freely in a safe, comfy space. I recommend planning “boring times” where you just sit and do nothing, except write down ideas that come to you. Being bored is great, and brings about a lot of new ideas you would not have thought of otherwise. In the current age we’re always distracted by something around us, or doom-scrolling one app or another. Planning for boredom times helps exercise the creativity muscles, and gives our brain a quiet time to process all the background thoughts into foreground ideas. As far as coding on a schedule, my usual time to write code is around 8PM - 10PM, when the world goes dark and quiet. Less distractions, less overwhelming of the 5 senses, and I can focus more.
Most of the time, you don’t need a custom engine. There have been billions of humans on the planet, and statistics say at least a few of them have ran into the same problem you have, and a couple of those have come up with a solution. BUT in case you’re one of the first ones coming up with it for the future peeps who will think of it, sometimes we do have to sit down and create something new.
I personally do a mix of both. I outline the features in the MVP, and then accidentally let feature creep add in new features 😅
comments. write in comments what you want the code to do, then go over it in passes. refine the logic, still in comments, and then when you have a good grasp on everything your code needs to do, ony then start writing the code. it’s very difficult to write code that you don’t know what it will do (overengineering) or that you think you know what it will do without more analysis (hardcoded inflexible code)
I run my life on markdown haha. I’ve built my own system to keep track of tasks and projects, but mostly it’s like a flat-list kanban board like trello. the system goes as follows:
[ ][ ] your task name
[ urgency ][ status ]
@status: note about it if necessary (block, delegate, think)
[!][?] rewrite collision mechanics
[ ][/] redo hitboxes of bosses
@block: collision mechanics
---
## urgency
[!] rush
[>] important
[ ] neutral
[*] icebox
## status
[?] more thought - internal block
[/] blocked - external block
[ ] todo
[o] ongoing
[x] done
[-] cancelled
[~] delegated
i’ve played with unity, scratch, unreal, godot, gdevelop, pico8 and a couple more I can’t recall. every engine has its pros and cons, but in the end I settled for godot because i’m a very big FOSS advocate and the engine does everything I need it to.
I built a POSIX render engine (not game, just render) for quickly drawing graphics into the terminal, because there wasn’t anything like it (other than the absolutely ancient Curses). there wasn’t anything out there that could run on any POSIX-compliant shell without any dependencies, so I figured I’d make one.
FOSS is always a big one. ease of use, and proper docs are also important to me. if I have questions on how to do anything, I like browsing forums to see if I can find a solution to my problem.
Developer of Empires of Eradia: Cataclysm of Chaos.
Palandus was kind enough to speak with me about his work on TCOD and the customizations he had to make to support his requirements. His project has been in development since 2018 and I’m incredibly grateful for his input. We share a lot of the same influences: I’m thrilled to run into another Alpha Centauri fan in the wild! I also cut my teeth on AutoIt! I don’t want to editorialize too much, but it’s very validating to see other devs turn similar humble beginnings into hours of satisfying playtime.
RogueBasin says about EOECOC:
Empires of Eradia: The Cataclysm of Chaos, offers many unique twists on the classic roguelike formula. Instead of the typical dungeon layout with rooms and hallways, combat takes place in large open battlefields against multiple foes at once. Treasure, secrets and portals are scattered all over the map, and your vision is not blocked by solid walls but thick fog clouds you can pass through.. but not without risk! The game also offers a unique permadeath system, crafting and multiple disciplines to master.
EOECOC is a traditional roguelike, with an ASCII interface:
You can find Palandus and EOECOC online at:
What follows is Jason’s own responses to my questions (the headings). I’ve edited lightly for formatting and organization.
The reality of game development is that if your engine/library lacks something you need, you gotta put it in yourself or find a library or addon that will do it for you.
Oh yeah, here is a link to my text adventure. It is playable in browser, and has 3-5 hours of content. Its a decent game that I put quite a bit of time and effort into, if you wanted to see my previous work. Link = http://textadventures.co.uk/games/view/rvnjlvi4heq6u7-namkaxa/the-cataclysm-of-chaos-v9
Usually its a matter of things like: Is there a tutorial on that custom engine, Is it well documented, Does it have critical/core features you need to make the experience you want to create, Is there available assets that work nicely with that engine, Is it performant for a game that requires good performance, Is it easy to debug (UE is not easy to debug), and do you know how to read/write that language required for it?
Most people will prefer to use things like Godot, Unreal Engine, Cry Engine, Unity, or Gamemaker, to create games, depending on their skills, scope for the game, and such forth. But creating certain types of games, like ASCII roguelikes are extremely hard to do in these engines, so you have to often find a custom engine to do them in… or pay a lot of money to get asset packs and script packs to work together nicely in one of these engines. Not an easy task either.
I have 7 interviews with mentors to share over the course of the jam, and may have as many as 14-15 if some responses come in during the jam. I’ll be publishing them on my personal blog as well as in this forum thread.
Video Interview with Action Jake: https://www.youtube.com/watch?v=qnwuoGtu-Ho
Correspondence Interview with Jason “Palandus” Roberts: https://kn4obl.net/engjam-mentor-palandus.html or in this thread.
Correspondence Interview with Octoshrimpy: https://kn4obl.net/engjam-mentor-octoshrimpy.html or in this thread.
Correspondence Interview with Mike from Halftone Games: https://kn4obl.net/engjam-mentor-halftone.html or in this thread.
Correspondence Interview with u/JTStephano, dev of StratusGFX (open source rendering engine): https://kn4obl.net/engjam-mentor-jtstephano.html
Correspondence Interview with Dane “Splosions” Singleton, developer of Noia Online: https://kn4obl.net/engjam-mentor-noiadev.html
Correspondence Interview with Prof. Dave Churchill, Associate Professor at Memorial University: https://kn4obl.net/engjam-mentor-churchill.html
This concludes the interview series (unless I get a late email at this point).
Greetings! EngJam has begun.
I hope everyone has a fun and productive jam!
I’d like to kick off the jam with a video interview with Action Jake:
However, I am going to now exercise the first guiding principle of our jam (“Work-Life Balance”) and spend the first 8 hours of the jam asleep. This is a pace I can get behind!
I’ll be streaming throughout the jam, and I invite everyone to share stream schedules, social media links, and dev blogs / vlogs in this thread or one of your own.
Kind Regards,
-John
Greetings,
EngJam is seeking Mentors to answer a brief set of questions over email or Zoom. Your interview will be shared with jam participants to motivate and inspire them.
Some questions might include:
If you have other questions you’d like to get answered by mentors, please post them here.
Other questions or relevant battle stories or personal anecdotes would be excellent inclusions.
Looking for real time chat / Discord? Because this is our first year, I’m not starting a new Discord server for this jam, and I recommend participants to come chat in the Linux Game Jam Discord server, which is open to the public. I think a lot of the values for these two jams overlap and I’d encourage EngJam participants to focus on employing your engine in the next Linux Game Jam!
I appreciate the discussion. I have some thoughts on this too:
It truly would be impossible to “compete” against a long-term project getting new features with a scratch-built engine during a 2-week jam. There definitely should be some categorization between these.
I generally prefer open source, so I think that should be worth bonus points. But I can understand situations when someone is not ready to share their code, and I don’t think it should be mandatory.
Let’s not forget that this is a friendly competition: the prize is the progress you make on your game engine, or the wisdom you gain while solving problems. A closed source engine or a long-term project are welcome entries which wouldn’t invalidate the rewards anyone else gets from their open source and/or brand new project.
Thanks for keeping this jam going, your cheeseness.
Last year I submitted a heap of junk - https://jmccardle.itch.io/empty-simulator - an incomplete RTS implementation. I’m not sure what I’m going to make this year yet, but that code is going to live on in this new project. I worked out my executable distribution issues for 7-day roguelike earlier this year.
I recognize this style from the Summer incremental game jam, and while this one was fun and interesting, it definitely feels a little derivative compared to Resource Starve. The ability to move around and build gives a lot of freedom to the usually more linear incremental genre.
I had some performance issues on Firefox, especially once the building count starts getting up there.
I didn’t play through to the end. I really liked your art style, it’s clearly bespoke and downright gorgeous and theme-rich compared to some of the UI-only type of incrementals.
I’d appreciate more instructions and notifications: for a while I was just clicking on stuff. I was playing on a TV with some friends and family around the living room, and we couldn’t really make out what the icons meant from the couch.
I played this one through to the end over about 4-5 sessions. The pacing was great for an incremental game, but probably hurts the game in the jam. The initial 5 minutes was quite the pressure. The dynamism of the tool count and tool effectiveness values kept me coming back to this one.
“gold” is accidentally labelled “iron”, but otherwise works fine.
I managed to crash the game when spending like 1e10 faith on Chronomancy. So a cap would be nice (though I was probably past done with the game at this point)