A Biomedical Engineering major, a non-engineer, and a part-time student/full-time worker walk into a tech talk about Unity. That sounds like the start of a bad joke, and it might explain why this oddball trio--two first-time hackers and a more experienced guy they had never met before--decided it was a good idea to try and build a 3D game instead of a traditional app or webpage.
What it does
The premise is simple: a tilt maze, not unlike the ones you might have played as a child. The experience is complicated by the fact that dim lighting obscures some of the path, and you can't always see where you are going until the ball, which has its own light source, gets there. For another twist, in its harder mode, the maze is riddled with "trap" holes that make you automatically lose if you fall into them.
How we built it
We used Unity to generate the majority of the game. Our primary goal was to create something that worked and had a defined beginning and end, so the project started as a simple plane that rotated around its center based on user keyboard input. We then created a plane with walls and a hole in the bottom using Fusion 360 and imported this as an asset to replace the simple plane. The ball was created by simply generating a sphere object and manipulating its gravity to roll with the movement of the plane. We placed triggers at the bottom of the hole in the map so that the falling ball would cue a win screen upon collision.
With the basic win condition established, we modified the main map to contain a full maze (built in Fusion 360) to navigate while guiding the ball to the final hole. After that, we built two more separate scenes, one of which functioned as a homepage, and the other of which contained the same maze but with additional holes added at some of the dead ends. From there, adding triggers for losing under these new holes was a relatively simple task, and the rest of our time just involved manipulating colors, lighting, and lens flares to make the game aesthetically pleasing.
Challenges we ran into
None of us had ever used Unity before, so there was a bit of a learning curve to figure out how to make the physics and camera angles work. For an embarrassingly long time, the ball kept falling through the bottom of the stage, and that's really all that needs to be said there.
Accomplishments that we're proud of
Well, the ball doesn't fall through the stage anymore, so that was kind of a big deal.
In all seriousness, though, our single biggest accomplishment was managing to overcome our lack of knowledge and produce a workable product within the time constraints of the weekend. We came in with literally no idea what we wanted to build, so being able to create, plan, and execute a course of action was a victory in and of itself. As far as technical elements, we were proud of our decision to build the map in Fusion 360 and import it as an asset, which allowed us to capitalize on skills we already had while navigating an otherwise unfamiliar environment.
What we learned
The Big One:
How to use Unity
- Implementation of simple physics
- Collision detection/triggers
- Basic game design elements such as win/lose conditions and level building
What's next for eyeMAZEing... iMAZEing... Eye Feel aMAZEing?
From a play perspective, the easiest next step is the generation of more mazes, with varying levels of complexity, to provide a wider range of gameplay. In addition to levels where the mazes are easier or harder, we had the idea of a "wormhole" level, where falling into one of the trap holes causes the ball to respawn next to one of the other holes, selected at random. We considered implementing a score counter as well, to keep track of how many times you won or lost the game.
In terms of display, we would like to have a nicer menu (possibly with a spiffy logo) and more engaging win/lose screens. Adding sound effects or background music would also enhance the user experience.
And finally, though the current version is just for Mac, we hope to create versions that are playable on PC, mobile, and tablet platforms as well.
Why the ball looks like an eye
Hell if we know. It just seemed fun.