Museum Heist is a top-down stealth game. Players take control of Celine and Roy and attempt to steal the valuable treasure inside of a museum while avoiding capture from security. A special exhibit is on display tonight and security has been increased for this heist!
Level Design System Design C# Programming Research
Type: Game Jam
Team Size: 4
Genre: Stealth, Adventure, Top-down
Project Duration: One Week
Roles and Responsibilities:
Designed and blocked out the Museum Scene.
Designed NPC patrol routes and patrol time.
Placed all collectable items in scene
Designed and implemented AI behavior system.
Designed and implemented the invisibility system.
Expanded security guard AI to respond to obstructions between themselves and the player. (e.g., A wall between the NPC and player.)
Scripted display of information via user interface.
Scripted logic to handle the rendering of different effects with shaders.
Scripted player movement and other player given inputs.
Planning the Heist!
Museum Heist was a project that I had no idea what the end product would be. Within the first day of the weekly jam, we tossed around a few ideas and I ended up creating a simple prototype in Unity so we could keep coming up with ideas while in our prototyping phase.
Leading a Team
After showing off the prototype, the other members of the team designated me to be the leader of the team since they felt comfortable handling other areas of development such as shaders, visual effects, animation, and sound design. Since each member felt comfortable, it meant we could all do our best work while learning in the process each be put under some level of stress due to the project needs.
The first part of the project was to set up Trello and use the Scrum method for the project. The team needed some way to stay on track with code, design, and making sure the team was making progress.
Trello ended up working extremely well, items that were put in the backlog were being moved into the current sprint column as they were being worked on and moved to the done section as they were finished.
While working on the game's design, I found it difficult for me to like any of my own ideas. Crazy right? I ended up taking some time to study The Legend of Zelda: Link's Awakening and asking myself what drew me to this game specifically. It eventually hit me that it was a top-down game and still had simple game play that was fun. I didn't need to come up with extremely complicated mechanics or features for our project. We knew we wanted the game to be top-down so I needed to find a way to build around that and our invisibility mechanic. The solution was giving the guards line-of-sight and having them respond to the player's invisibility mechanic.
Once I got the basic functionality for the invisibility working, I ran into a problem. You couldn't see the player! This was a big issue for me because players need feedback when they use a mechanic. I spent the majority of the third day trying to solve for this as there was now an issue with three areas of development. Code, VFX, and 3D. The way the characters were modeled and exported from Blender gave them over 21 materials and that's a lot of materials to change for our invisibility mechanic. I had to find a way to iterate through each material, get their renderer, and change the alpha value while using a custom shader made by our artist that handled the transition. It was a challenge but also a learning opportunity for myself and our 3D artist. I ended up getting it to work and the artist that modeled the characters learned a simpler way to export his art while keeping material count low so everyone wins!
For the player visibility, we decided it would be easier to use a shader that highlights the player avatar a vibrant blue to communicate to players that they are invisible.
Two days before the jam was over the unthinkable happened. I broke the artificial intelligence! When trying to implement the line of sight feature I broke the very thing that made our game what it is. Without the security guards properly chasing the player, there is no game. This was the beginning of my self-inflicted crunch.
On the first day of my crunch, I spent countless hours trying to identify what I did wrong. There was no way I was going to scrap this idea this far in the jam I would let myself down and ultimately my team. I ended up reaching out to a friend for guidance as I was completely lost. After about two hours of bug hunting, we discovered the problem and he guided me through better methods of preventing and identifying these issues later in development.
On the final day, I began designing the museum with inspiration from a screenshot one of the artists posted in Trello. Once I had the rooms all I would have to do is fill it with assets, place the collectibles, security guard nav points, and visual effects. Music was the very last thing to be implemented as we wanted to make sure we had the lighting just right so it would blend perfectly with the music and environment we wanted players to experience.