Inspiration
We are all Overwatch players, and were really excited when Overwatch announced a PVE game-mode for Overwatch 2's release in 2022. Unfortunately, the developers announced that they would no longer go along with the PVE game-mode. When we found this out, we were all heartbroken. We saw this hackathon as a way of making a PVE mode. We decided that we'd make a lane defense zombie apocalypse style game, with the zombie models inspired by Overwatch characters.
What it does
The game simulates a four lane zombie apocalypse survival experience that makes use of rogue-like elements. The player encounters three types of common enemies, the common zombie, a "speedy" zombie, and a "tank" zombie. The "tank" zombies have a lot of health, but are slow. The "speedy" zombies have very little health, but are super quick, as their name suggests. The common zombie acts as a middle-ground between both these types of enemies. At the end of every five waves, there's a shop that lets the players purchase power-ups that can help making progress slightly less challenging. The shop uses currency that is dropped by enemies. The more currency you have saved up, the more items you can buy. Different types of weapons spawn during the waves, namely the SMG that increases fire rate, and the Sniper that pierces enemies and deals higher damage, but the damage drops with each enemy pierced. The player can also launch a grenade that can deal damage to two lanes at once. Defeating enemies builds ultimate energy. Tanks give the most ultimate energy, while speedy zombies the least. Building 100% ultimate energy allows the user to pop an ultimate ability that accelerates the rate of fire of the weapon and greatly increases the damage, with zero ammunition cost. Every ten rounds, up to 100, there's a unique boss fight. The boss fights repeat once the player get past round 100. Getting to round 100 rewards the player with a prestige system.
How we built it
We made use of Python code-base for the actual game itself, while using an Arduino microcontroller to make our inputs using a joystick. The joystick inputs correspond to actions within the game the player can make. We wired six LED lights to six digital pins that are all initially on, but turn off as the player shoots the bullets in game, functioning as a real-life "ammo count" for the game, in case the ammo count is hard to read on screen. We wired a buzzer that buzzes when a new wave starts that adds an additional immersive layer to our game. We wired our joystick to the Arduino, with the inputs corresponding to features in the game. Pulling the joystick back shoots the gun in game, pushing it forward reloads the gun, pushing the joystick up or down changes the lanes in game, and pushing the joystick forward diagonally downward and holding it pops the "ultimate" ability. Pushing the joystick forward twice in rapid succession launches a grenade in game. Pushing the joystick in unleashes a close range melee attack that does large damage in game. Pushing the joystick in AND holding it pauses the game. Moving the joystick while in the pause menu allows the user to access the different pages in the menu. This is how the joystick works in the shop as well.
Challenges we ran into
Our biggest obstacle was getting our Arduino C code to combine with our Python game engine code. We had trouble implementing a real life buzzer that rings out when a new wave starts, we also had trouble initially implementing different weapons. We had Claude help us understand how is done, which was a great learning experience. All these challenges helped improve our problem solving skills and enhanced our understanding of programming languages.
Accomplishments that we're proud of
The game runs significantly better than we'd initially expected it to. We're so glad the "gun" controller came together well, we were really excited for that part's implementation. I felt like it made the game feel a lot more immersive, even if it's a very simple looking game.
What we learned
We learned how to implement Arduino C code into a Python game engine. We were already familiar with how Python and Arduino C work by themselves, but putting them together was not something we had much practice doing. Spending a day working with both these languages helped us build this important skill.
What's next for Dead Lanes
Add loot boxes, skins, battle passes, and in game currencies to allow the players to have as much customization as possible to enhance user experience. Possibly add a story mode with future games adding on to the story.
Log in or sign up for Devpost to join the conversation.