September 2016

An enhanced roll-a-ball Unity tutorial

Building my first project with the Unity game engine

Rollaball Design


Assignment #1 in my first graduate-level HCI course “HCI 580: Virtual Environments, Worlds, and Applications”, this project introduced me to the beauty (and frustration) that is the Unity game engine. Endless opportunity awaits those that can master the program’s immense capabilities. I had never used the program before though, nor had I ever laid eyes on the C# scripting language. I knew this assignment was not going to be easy.


On paper, the task seemed relatively simple. Complete the roll-a-ball tutorial on Unity’s website, and then make the following updates:


  1. Convert the game to multiplayer
  2. Add a jumping ability (but don’t allow the players to jump off the game board) and make half the collectibles only obtainable by jumping
  3. Add materials to every game-object – players, walls, ground, collectibles, and skybox
  4. Ensure the camera keeps both players in screen at all times
  5. Include UI score-tracker for each player
  6. Add a reset button that re-enables all collectibles, and clears players score back to 0


Because I am a designer first and foremost, I had a ton of fun stylizing the game. Putting on my developer hat was enjoyable as well, yet nowhere near as simple.


See what I came up with in the demo below.