Inspiration
Our game was inspired by Valve's 'Portal' series of games.
What it does
Our project is a short puzzle game. Your goal is to use a collection of robots and components to reach the end goal. In this demo, the end goal is to deliver batteries to a repository. To do so, you'll take control of different robots to gain access to unique skills and complete the puzzle.
How we built it
We built Apollo 404 using C# and the Unity Engine.
Challenges we ran into
Version Control
The files to our project are more than just raw code. As we are using Unity, we design different assets with their own textures, which can significantly raise the size of the project. Unfortunately, GitHub has a 100 MB limit to their repositories, which made it impossible for us to properly commit our work to each other. This became a challenge when each of us had different instances of the project with our own versions of the code, and when it came time to merge our work together, we had to solve various amounts of bugs that resulted from the manual import of the collection of code and assets. We ended up using Google Drive and .zip files to move projects to each other, but this didn't solve our difficulties resolving conflicts across our different codebases.
Lack of Experience in Unity
While we come from Computer Science backgrounds, our collective knowledge of the C# language and the Unity Engine was little. Jacob, Shane, and James came in with varying amounts of Unity knowledge, while Matt had never worked with Unity at all prior to the start of the project. Using the extensive documentation of Unity as well as our personal knowledge of general programming concepts we were able to improve our skills using Unity and come together to create the logic needed for our game to work.
IDE Difficulties
We found that Matt’s IDE for writing code was not properly warning him of code that could result in errors, especially relating to the collision systems necessary. This resulted in errors later when code stopped working, and development had to shift to fixing these issues.
Accomplishments that we're proud of
Player controller
After Shane found the built-in player controller systems in Unity difficult to implement, he decided to develop his own solution from scratch. The player controller system controls various aspects of the player, including movement, camera, and interaction with the game world. The player controller system also includes the logic necessary to switch between robots and use their unique abilities. Implementation of this system required a significant understanding of the 3D vector math and a strong ability to connect to other scripts of the codebase.
Collaboration
We chose to work in pairs to accomplish our game. This proved to work extremely well as we were able to divide our workload in half, speeding up development time. Matt and Jacob paired together to create the surface objects, such as the laser generator and receiver, the battery generator and receivers, as well as the ravine that divides the map in half. Shane and James worked together to develop the interactable player logic such as the player, the platform bots, and the grabbing feature of cargo bots.
What we learned
Don’t be afraid to take a step back
Oftentimes we found ourselves scratching our heads over why our code wasn’t working, and every time the solution was to RTFM (Read The Fantastic Manual). Simple mistakes led to overcomplicated solutions when the issue lied in using the wrong function or a misunderstanding of how a function worked. Unity’s documentation is incredibly well done, and anything we could not find there could be found on Google.
** Plan but expect change**
While we planned our initial concept of our game to use a fully automated system of robots, we had to drop this from the scope of our project for this weekend and focus on developing the logic that would create the uniqueness of each robot. Planning our level design concept was very useful in shaping our object creation roadmap and made it easy to pop all of the elements together to form our level. Using a list of objects on a whiteboard allowed us to quickly see what our development was focusing on and served as a strong source of morale when we reached a milestone in development.
What's next for Apollo 404
We hope to continue working on this project after TigerHacks is over. We want to add more levels, more puzzle elements, and assets like models, sounds, and textures. Ultimately, we want this to be polished enough that we can release it for other people to play. For now, thank you for watching our demo!
Log in or sign up for Devpost to join the conversation.