Late last month I decided to reboot a project that I had started last semester. I had made some good progress on it before summer break but I stopped working on it when I was inspired to develop my proposal platformer. Ever since taking an android development class in Fall of 2011 I had been searching for my great idea and one day while out walking I realized that the problem with a lot of mobile games is the way that they are controlled. Like it or not, virtual joysticks and numpads will never come close to a keyboard or a controller. After coming to this conclusion the light bulb went on and I thought of a (hopefully) pretty good idea.
The resulting vision was a puzzle platformer where you had no direct control of your character, but instead indirectly manipulated his movements using a set of spells. The main character, who I will now refer to as “the wizard”, can cast spells in two different ways. One way is to shoot them as a projectile. This affects the environment around him; such as burning ropes and freezing water. The second way he can cast spells is on himself. For example if he needs to stop moving to avoid being crushed he would cast the ice spell on himself.
When playing any level the challenge is twofold. Firstly the player must figure out how to effectively use the wizard’s spells to get through the level. Secondly, once the player knows what they need to do they have to actually do it right. Many levels require timing and precision to make it through alive.
Words can only convey so much so here is a video of a very early stage of the game (ignore the title, I have changed it since making the video)
Where to Start?
After developing my concept I had to figure out where to start. When starting a game there are many options. I could have programmed everything straight from OpenGl. This is a graphics library that is supported by android. If I went this route I would be doing a lot of background coding like a tile engine and a physics engine. I also would be placing all the graphics straight from code unless I made my own map editor or something. Even if I used preexisting libraries and engines there would still be a lot of groundwork to do before there was any real tangible result. Many programmers love to tinker in all that stuff and have full control of everything but I firmly believe in not reinventing the wheel and getting right to the fun stuff.
In the end I settled on a cross platform game creation tool called Unity3D. Normally the android version of this software would cost a pretty penny but I was lucky enough to get it during a student giveaway period. Although Unity is meant for 3D game development after doing some research I confirmed that it was perfectly viable for 2D development as well. By using this tool I was saved the trouble of graphics coding and physics coding. I could even drag my sprites right into a viewport to build the levels! Additionally Unity has an asset store with many free and paid plugins that basically just make development faster and life easier. On top of all these advantages the potential for expansion that Unity gives me is amazing. If I want to in the future I can easily deploy my game to the web, iphone, mac, and pc. In future versions of Unity I believe even Linux and Windows 8 Tablet apps will be supported.
To Be Continued…
This is all the information I feel like writing about right now but expect more information in the future. I plan to talk about various things such as difficulties I’ve faced with Unity, where I’m getting my graphics and music, and whatever else I feel like. I’ve made a lot of progress in the few weeks that I’ve been working and I look forward to eventually sharing my game with the world!