In Command Input you are an employee of an abusive company in the far future. Your boss tasks you with testing the company's newest drone technology. Using your drawing tablet you will draw shapes corresponding to commands to complete a number of tests all while your boss berates you with angry emails. This was my final game in my second year at Champlain College. The goal of this game was to make unique mechanics involving a controller that was not what you would usually see. My role on the project was lead programmer. I focused on creating puzzle mechanics and tools for our level and narrative designers to work with.
For this project our team was tasked with creating a game with a unique controller. Our team agreed to use a drawing tablet because it was easily accessible at our school. To get input I had the user draw a symbol with one stroke of the pen and compare it to an array of existing symbols. If the drawn symbol matched then the player would preform that action.
One of the first mechanics I implemented was pushing boxes onto buttons to open and close doors. This mechanic helped add complexity when combined with other mechanics. To implement this feature I used Unity's box collider2D components to allow the player to move boxes when moving into the space they occupy.
I later added a button manager script which checked if button had a box on it for some action to occur. If the box was moved on or off the button it would change in the button manager.
To fit the drone theme of our game I added a battery system to the player. The player has a limited amount of moves in a level and if they use all of them up they need to restart. Each time a symbol is successfully recognized you will lose battery. I implemented this in the player script by not allowing them to move if they didn't have any moves remaining.
To add more complexity to puzzles we added doors that the player can only move through after using a move (drawing a symbol). The player can switch between moving through red and blue walls. The UI will indicate which walls you can move through. To control which walls the player can move through I created a wall manager similar to the button manager.
The emails in our game are the tutorials of the game. In each level you will receive an email from your boss giving you instructions. The emails are also meant to enhance the theme of the game with your boss being rude to you.
The email system was created using Unity's scriptable objects feature. I made the creation of emails as easy as possible so my team could create emails in engine. The name is left blank because when you log into the game it takes your name and saves it for emails.
To start the game the player needs to type in a username and password. You can type in anything and it will work. The game will save your username and use it later for emails. We thought that a unique game should have a unique way to start it.
Since our game was created over 5 weeks we had plenty of time to readjust our idea and iterate on the ideas we liked. Our group went to QA testing 3 times to have other Champlain College students test our game and give us feedback. We would iterate our game based on feedback. This is a picture of a early version of our game
Here is an image of some of our feedback from the 4th week of development.
Being a 5 week long project, a good amount of documentation is required. As the programmer I was in charge of creating and iterating the technical planning document. Below is a link to the final technical planning document I created in collaboration with the artists, producer, and designers to document the pipelines, systems, and mechanics.
Technical Planning DocumentThis project was a very interesting one. I utilized a plugin for detecting drawing input which left me to implement all the puzzle mechanics. Working with mostly designers made me think more about what tools they would need to succeed. In this project I mainly created tools and mechanics for my designers to create levels or narratives. I also got to practice integrating my systems and UI programming together which is always fun.