Prototype Development

July 17th, 2010 by Shaun Milne

Has it really been two weeks already, wow, I need to update this more often.

I've been busy making concept art, and playing with ideas these past weeks and have settled on an idea for my first iPhone game that I'd like to make to break my app store virginity. I'm sure it won't be as painful, or full of the horrors that I've read about on the rest of the Nets. Think happy thoughts, and pray.

Received my beta copy of Unity 3.0 a while back and it is truly great. The Beast lightmap generator/renderer is awesome, and saves you having to bake your models the old fashioned, more time consuming way. Just setup your scene in Unity, flag all the game objects you want to bake as static, and hit the bake button.

Unity 3 Feature Preview - Beast Lightmapping from Unity3D on Vimeo.

Prototype development is always fun, you get to try out new gameplay styles without feeling like you're fully committed. In fact, a successful prototype will probably tell you more about what doesn't work in terms of gameplay than what does. Of course, you just discard what doesn't quite work and use what does to refine a better prototype.

One of the biggest design challenges on the iPhone, I think, is the control mechanism for a game. A lot of simple, successful games on the app store are single touch or tap based games, usually revolving around a simple, well-defined gameplay mechanic. I wanted to have a more complex gameplay mechanic (but involving intuitive gameplay) that would be based around controlling an onscreen 3rd person character, so a virtual thumbstick and buttons seemed like a good choice. Having just played through MikaMobile's OMG Pirates! I feel the virtual thumbstick works pretty well as long as it's super responsive.

So, after making a semi-successful prototype of the gameplay, I moved on to the fun part of fleshing out the original character concepts with some 3d artstuffs. Blender is my new BFF. Seriously. It's hot-key heavy, but damn, when you learn those hawt keys it makes you super productive, like some sort of vertex pushing ninja or something. This video on youtube gives a no-bullshit speed walkthrough of most of the hot keys. It's for blender 2.5 alpha but it still applies to the current full release. Oh, and blender is 100% free. A few hours in and I'd mocked up a low-poly concept of the main character and unwrapped it. I'm going for a cell-shaded anime style look for the game, but without the outline borders so it'll be more subtle.

First character unwrapped and base colours were applied.

Rigging the character was a little more difficult. IPhone performance isn't too hot on the best of days, so I was aiming for a one bone per vertex ratio to keep things speedy, and also to be able to support the iPhone 3G, which is my minimum target platform. Unfortunately, I couldn't find an easy way to initially automatically weight my character using a restriction on the numbers of bones per vertex. Blender has a great scripting API available through python, which unfortunately for me is a language I'm not too hot with. Still, 2 hours later and I'd hacked a simple script that loops through the mesh's vertices, extracts their weight/bone influences and reduces the bone count based on the weight ratio of the currently attached bones, culling the lower weighted bones until the target amount is remaining. I'll post the script here later for anyone looking for something similar, after I give it a bit of a clean up and maybe a rewrite or two. I still suck at python. I keep trying to read through the documentation but the Monty Python references might as well be links to the youtube sketches, as that's where I usually end up!

Test animation of rigged character in blender.

So a good start overall, and I've learned a lot about my asset pipeline and hopefully reduced any potential risks or worries I had about the gameplay in the beginning with the prototyping. This week I'll probably be throwing my prototype code away, and setting up my sprint plan for asset creation and coding tasks. I'll be using a free web tool called Pivotal Tracker for my project management, as it is really great and has a sweet API. Also, I switch between Mac/Windows so a web tool is ideal. Check it out if you're into agile, even if you're a one man show like me, it really helps planning your time out and keeping track of tasks and bugs.

Recent Comments