Professional Game Complete, on Apple app store

Rollie

A fun filled iOS and Android gravity changing platformer game with amazing visuals and fast-pased gameplay. Currently available in Apple app store.

Introduction

This is a Unity 3d powered game completely coded in C# using Mono Develop. I worked on the whole project as the only programmer and received help from two artists who produced most of the art work.

Technical Details

Languages C#, Python
Libraries Unity 3d runtime, .Net 2.0, Sprite Manager 2, EZGUI, Prime31 plugins.
Tools Unity 3d, Blender, GIMP, Photoshop.
My contribution I was responsible for all the code that went into making the game.

Gameplay video


Gameplay images


Development process

Initially I came up with the pitch to do this kind of a 2d plat-former and with the idea of playing with gravity. But I was unsure of the implementation aspects of it. After the pitch, I started working on a Game treatment document which was to get the initial ideas flowing. I then started working on the core mechanics of the game which is the gravity changing aspect, and soon realised that using Unity Physics is not the best idea after all. I quickly developed two three system which utilised Unity Physics in one way or the other but was unable to achieve the state that I wanted. So I decided to take the hard road.

I created a template of the level inside Blender3D modelling software which was just couple of ploys, and then imported it into Unity. Then I programatically grabbed all of the vertices on a given plane which was predetermined and calculated the Bezier path taking those vertices as control points. So I ended up with a conceptual bezier path that I could place the player in at any point. I then had to develop the jump mechanic to comply with this approach. I do this by manually calculating a line intersection check for a given line segment (not bezier segment) and if collided I would then calculate the exact point of hit. I found this approach to be much more elegant and predictable as oppose to using the any one of Unity physics approaches (even if they worked). This all is handled by a Finite State machine and the game runs on 60 framed per second nearly all the time.