Role: Programmer, Technical Designer
Genre: Action / Shooter / Multiplayer / VR Development Time: 3 months Team Size: 4 Engine: Unity 2018 |
In Mechalangelo, two players face off in a space cathedral. One player is Mechalangelo, a giant painting machine. The other is a small, agile glider. The first to destroy the other wins!
On this project, I was responsible for:
On this project, I was responsible for:
- Prototyping and implementing many game features
- Implementing and balancing the core game loop
- Prototyping and refining VR interactions
- Designing and scripting AI behavior
- Creating tools to help the game's artists
- Conducting regular playtests
- Balancing the abilities of both players
- Bug fixes
GameplayWorked collaboratively to create the core gameplay loop and all abilities of both players. All abilities and the methods through which players could interact with each other were iterated upon several times. Ultimately, Mechalangelo became a game supporting multiple play styles -- players can frantically shoot at and dodge each other, or they can use their abilities to strike tactically or use the level to their advantage. It encourages the player to try something clever to defeat their enemy, no matter which character they play as.
|
Technical Design
Focused on player interactions with the game and each other. Mechalangelo can teleport, shoot projectiles of different sizes, paint shields in the air around himself, repair his broken mech to protect his vulnerable brain, and summon smaller mechs to help him fend off the glider. The glider can barrel roll, boost, shoot machine guns or heavy rockets, and collect health packs and weapon upgrades. These abilities were meticulously balanced so that each player felt capable of defeating the other, and so that winning and losing felt fair to players.
My favorite part about balancing this game was figuring out how to get the VR player to physically move around instead of just hide behind a shield. The VR player is limited only by how fast their body can move, so we really wanted them to use their movement speed advantage to dodge attacks, since the glider naturally has an advantage in both size and attack speed. We introduced a need to reload the paint for the shield, forcing the player to move to the center of the level if they wanted to do so, and we put teleportation on a cooldown to encourage the player to stay there for a moment while reloading, leaving them out in the open and forcing them to find a different way to counter the glider's attacks.
My favorite part about balancing this game was figuring out how to get the VR player to physically move around instead of just hide behind a shield. The VR player is limited only by how fast their body can move, so we really wanted them to use their movement speed advantage to dodge attacks, since the glider naturally has an advantage in both size and attack speed. We introduced a need to reload the paint for the shield, forcing the player to move to the center of the level if they wanted to do so, and we put teleportation on a cooldown to encourage the player to stay there for a moment while reloading, leaving them out in the open and forcing them to find a different way to counter the glider's attacks.
ToolsThe art for this game was done exclusively using Unity primitive cubes -- which gives the game a unique art style but causes terrible performance issues. This was especially devastating for performance in VR. To remedy this without sacrificing our artists' vision, I created a tool that could combine the meshes of multiple objects into a single mesh. We used this to reduce our level from several hundred thousand meshes to a mere couple thousand.
|