An Update on My Personal Projects
Hello there, it’s been a while. Over the past few months I’ve been focusing entirely on my personal projects, as I no longer work at the Great Xcape for various reasons. Due to this, the escape room redesigns I’ve worked on will not be made, and I’ve made the relevant blog posts private just in case someone were to accidentally stumble upon them and spoil themselves on the rooms. With that out of the way, lets talk about personal projects.
Right now I have 2 main personal projects I’m working on, the first of which is listed on my projects page as “Untitled Call of Duty Zombies Clone”. This is pretty much exactly what it sounds like on the tin — it’s a game inspired by Call of Duty: Zombies. The main aspects being drawn on from that game is the wave shooter mechanics and the easter egg hunts often found in those games. My favorite maps in Call of Duty: Zombies are always the ones with intricate puzzles and challenges that need solved and completed as you move through the map in order to unlock special items, story, and other rewards, so I wanted to have a crack at making my own levels like that. On the other hand, I’ve always really enjoyed games that have “builds”. For those unfamiliar with the term in this context, in some games, various items that you can find throughout the game might have various effects, and these effects might build upon each other and make them better than the sum of their parts. Call of Duty: Zombies generally has this sort of gameplay at a very basic level, but the idea for this project was to turn that aspect of the game up. The main gimmick in this project is the player can build custom guns over the course of the game from parts they find throughout the level — dropped from enemies, bought from machines, or otherwise — and make decisions on what parts work well with each other. Currently the scope of this project is a split screen multiplayer design that could rely on Steam to do remote play with friends, though once a first prototype is complete, I plan to reassess and decide if I’d like to make the game for networked multiplayer.
My other personal project is a game I’m currently calling “Maintenance Crew”. The general idea of this game is the players are a maintenance crew being sent into an old derelict facility to keep it at a minimum level of maintained so the company that owns it can pass an inspection. The players would enter the facility through a surface level elevator and work their way down the floors until their inevitable failure as the facility becomes more and more dangerous. Each floor would have particular tasks that need to be completed before the players can move on to the next floor. This game, unlike the Zombies clone I’m working on, IS networked multiplayer due to its nature — there was no other way to accomplish what I’d like this game to be. The primary reason for this is it includes a proximity voice chat system, which simply can’t exist in any other form. This game takes heavy inspiration from Lethal Company, though I intend to lean more into large sprawling levels and more varied tasks. I’d also like to lean more on the idea of “soft” timers. Using Lethal Company as an example, when you land on a moon, you have a hard timer that is somewhere between 10 and 15 minutes to get into the facility and get out with as much loot as possible. While this is a hidden timer for the most part, it’s still a hard limit on how long you can stay on a moon. For Maintenance Crew, my “timers” would be things that the players can work around to increase their viable time in the floor. This could be in the form of items the players carry with them, upgrades to their elevator, or some other means I haven’t thought of yet. Either way, the intent is for the game to be able to go infinite in theory. Due to this, the game also has a procedural map generator that is already functioning.
An example of the dungeon generator functioning — placeholders for testing the system; not final generation
Right now, I’m working out how I want the dungeon to generate. I have a system in place for multiple tile sets in the same level, though I’m currently not fully happy with how it functions. The main problem it has right now is the dungeon generator is very dumb. It’s main loop is pick a random open exit and place a random valid room on that exit. This works fine for the most part, but if I want to have a generation like the one above, it’s pretty much up to random chance at the current moment. I have ideas for how to make the generator more consistent, but I haven’t implemented them yet. What I have implemented is a system for doors that would normally close upon finishing the dungeon to remain open and create loops. This is required because the dungeon generates essentially like a tree from a single point. Each room has a doorway that is its “entrance” and is never closed. It also has some number of doors that are designated as “exits”. If an exit hasn’t had a room built off of it by the end of the dungeon generation, it becomes closed. However, sometimes these unused exits just happen to line up with other unused exits, since the tile set is designed to a grid. If this happens, those exits can remain open and create loops in the generation. I’d like to come up with a way for these exits to only sometimes open up, but I haven’t figured out a method that doesn’t require the dungeon generator to keep track of all these occurrences.
My current idea for improving the dungeon generator is to generate it in steps. Using the above image as an example, I could have a step where the generator generates 30% of the desired rooms in exclusively the pink tile set. Then, once that finishes, generate the remaining 70% in the white tile set. This would allow the dungeon to consistently get a generation similar to the one above.
I hope you’ve enjoyed this small(ish) update on my projects and I hope to give updates more often! I’m currently planning to try and write at least 1 blog post a week, so there should be a lot more to see here soon.