Thursday 16 April 2009

One notch on the belt...

...only been here working in the games industry for 74 days and I now have a full game to add to my CV.
I've been working on a PC game that needed porting to the iPhone.
We got the original code, and Gordon, Nigel and others had written stuff before to help port and convert much of the existing engine to the iPhone. This is because we've done Diner Dash and Chocolatier for the iPhone, which uses the same engine - called PlayGround. I've been on the project since the beginning - in fact a couple of weeks before the beginning, as my initial project got cancelled, and I've been unable to tell anyone what it was.
It's no major title, so don't get excited, but for me, I've seen the game through from beginning to end.

The trouble with a project like this, is that the dev cycle is only 8 weeks. The game is already created, and you have modify existing code, much of which is sifting through stuff you don't understand because you don't necessarily (as a programmer) think to do it that way. Other people's code is always hard to work with and much of it seems pointless or inefficient.
It's difficult. It's worse when the publisher, the producer or the designer says, 'we want the game to do this...'.
'The game wasn't written to do that!!', you scream!
It's fine when you make the game from the ground up, your code, with all that in mind from the initial design. Even if the initial design was flawed, or didn't cater for it, you at least have a good knowledge of the code, the structure and the flexibility to make the changes. But when the game was never designed to do that, some things, actually are impossible. Matt (a designer) said - 'nothing is impossible to code', however, he was at least able to follow that up with 'but some things are - given the time frame'.
With just 8 weeks, some changes would require huge sections of code to be re-written, the knock on effect would probably break the rest of the game resulting in loads of bug fixing and band aids!

I haven't blogged for a while because I stayed at work late on Monday night and Tuesday night, because JR super ninja fingers 'Numpty' Cantin, kept finding dumb hardcore bugs by doing inhuman things to the iPhone!
We had to stay and fix the bugs, then wait while they tested some more. At midnight on Tuesday we decided to play some Left 4 Dead whilst we waited for the testers to play through the game with the latest build. JR wanted to play - we told him where to go and to get back to testing. In a schoolboy rage he frantically went to work trying to break the game. We got about 20 minutes of game time before he cackled gleefully and presented his latest bug.
We quit L4D, went and fixed it, then they went off to test again.
At 3:00am I was amazed at how JR came bounding back in, pleased that he'd just broken the game again.
Fix, test - lather, rinse, repeat.
4:00am and the last bug...
I take one look at it, and tell the guys to go play the PC version, as something like that must exist there. Lo and behold the final bug, actually exists in the PC code we were given for a 4 year old game!!!!.
Do we fix it? Hell no!
Does it cause major problems for us.. kind of.. it locks up the iPhone - badly! Meaning people will be really pissed off!
We had until 5:00am, as the guy in Ireland would be getting to work (9:00am in the UK) and expecting the Gold Master copy to download.
James, the producer has a discussion, and we decide that there's no way we can fix it without a few hours research + we should get the publisher's help as it's their original bug, not ours. The e-mail is sent - we go home.
In those lucid moments between sleep and waking is when I do my best thinking, when it comes to code problems, and at about 5:30am, just as I was drifting off to sleep I realised how to fix it - good times :)
Hayden was awake at 6:30am - bad times :(.
Back to work for 10:00am. I get in, make a cup of tea and log on. I write one line of code and then test it. Build to the device and test it. Called over a couple of the guys and test it. Bam! Fixed!.
Back it goes to the testers - of course this 'band aid' caused another bug, thankfully easily fixed as my line of code was just placed in 'logically' the incorrect position.
3 hours later the testers, including JR - who didn't get in until midday (Git!), come walking back in, tails between their legs, defeated. The programmers had won - hurrah!.
ZERO bugs left in the database.
Jr could not even break it by performing a Hadukan maneuver with 2 hands on the iPhone screen, whilst simultaneously hitting the sleep button, playing music and receiving a call, standing on one leg with his tongue out!

And that was that!
The game was approved by the publishers and is now off to Apple. Any changes now will simply be Apple requirements and standards, if any, so it should be up on the App Store in a few days.

Once it is, I'll tell you all about it and it's title - for now, I must still keep it under wraps.

2 comments:

Tsung said...

Congratulations, one game done... Many more to follow.. :)

Doucha said...

Cheers m8 ;)