aSymplePlatformer - Fall 2014 GI Jam Programmer, Artist, Lead Designer

October 2014 - January 2015

The Journey

A play on words with its title, aSymplePlatformer is a simple asymmetric multiplayer platformer created for the Fall 2014 Games Institute Jam at the University of Waterloo. With Serge Babayan (@sergei1152) and Shan Phylim(@shanpls), we created this game in less than 48 hours, though we continued to work on it following the end of the GI Jam itself. You can see the state of aSymplePlatformer as it was at the end of the Fall 2014 GI Jam here.

The GI Jam is three days long, but the first day is always dedicated to tutorials and presentations to get the inexperienced started. As such, we spent the tutorial day attending tutorials for Unity, as we had never made anything in it before. In particular, we were walked through making a rudimentary version of Angry Birds in Unity, which is loosely what the scripting for Player 2 is based on. Here are the project files for the rudimentary Angry Birds built during this tutorial. Funnily enough, the naked wizard that Shan doodled during these tutorials ended up being the main character of our game!

As the core theme of this particular GI Jam was asymmetry, I thought of the basic premise of the game; one player will be controlling a character on-screen via keyboard, climbing, dashing and jumping their way to the end of the level while a second player will be using the mouse to drag and drop obstacles into the level to stop the first player from successfully reaching the end. With that in mind, our team (at this point titled "Froshbite") was able to quite nicely divide up the work and efficiently put together the game in time for the showcase at the end of the GI Jam.

For the first day working, Serge and I programmed the platforming aspects of the gameplay, while Shan worked on the obstacle dropping gameplay for the second player. For Serge and I, we dedicated most of our time on making the platforming gameplay feel acceptable. Basic movement was easily set up thanks to Unity's extensive documentation, and our character was able to move side-to-side and jump in no time at all. However the mobility still felt limited, so we focused on fine-tuning the jumping by changing upwards velocity depending on how long the jump button has been pressed, and by adding a dash function which allows the character to temporarily boost left or right while maintaining Y-axis position. Needless to say, implementing these two functions took longer than programming any other aspect of the game.

Project Tools

Team Froshbite:

We figured that if our main character was a naked wizard, he'd have to be more mobile than the average person.

While Serge was finalizing character movement and tweaking physics values while testing the game, I worked on making some more basic art assets to integrate into our demonstration level as well as the in-game GUI elements. Along with the in-game pause menu and win conditions for both players, I also wrote a very basic level select menu that used 3D Text to load levels in the build when clicked on. We never ended up using this in the GI Jam build as we only had one level to show (though we did continue to work on the game after the GI Jam and currently have more than one level, thus necessitating a level select menu).

The last day of the GI Jam was mostly spent cleaning up the code and synchronizing everyone's scripts with GitHub. Most of the time was dedicated to properly integrating Shan's obstacle scripts into the game as there had been little testing for it up until the last day. It was a fairly lax day knowing that the core mechanics of the game were essentially finished and just needed finishing touches on it. Ultimately it was a project that all of us were satisfied with, knowing it was our first ever game made in Unity. It was especially satisfying after learning that the game was actually fun to play together!

The Road Ahead

While we likely will no longer be working on this game, the following is a list of next steps to take in improving it, or making sure we know how to do these things for our next Unity project.

  • Proper implementation of switching between different animations
  • Completion of tutorial levels
  • Improvement of existing art assets, menu graphics
  • Creation of GUI that matches art style
  • Creation of sound/music assets

Back to top