Thursday 6 September 2012

OhMyGodICompletelyForgotToPostAboutOrcaJam

Generic greeting interwebs!

I was just filling an hour and I realized I should do 3 things with my blog while I have a minute.

First of all I'd like to assure all of you that I am still alive, and have merely been very busy.  Repeat: Not dead, just busy.

Second Strategem Update:  I was too busy to work on stratagem the last few weeks, but by next week, I should be able to pull myself out of my little quagmire very soon.  I did get some game development done on another project, which brings me seamlessly to my third topic, and that is....

ORCAJAM!!

I really meant to post during or after orca jam, but I had difficulty doing so while I made up the sleep debt from the event.  But since I have time now, here's what I remember.

Night 1

After some confusion, I set up the brick as my development machine with flash develop fully functional, and my mac riding shotgun for internet access.  I had already settled on a project which was an attempt to make a simple platformer in a very non sequitur style.  It's main features were:

  • The ChiliPiper, the player character who ran around and jumped with floaty physics and a bagpipe that could shoot flaming chili peppers out the top of it.
  • Flaming Chili Peppers, flaming projectiles as dangerous to the player as to the mobs who littered the level.
  • The orca.  This had nothing to do with the orca jam, but is instead pulled out of a dream I had in which I was chased out of the ocean and back to my house by a killer whale with human legs.  In keeping with that, the orca relentlessly chases the player and cannot be damaged by the chili peppers and will kill the player by touching them.
  • Syrup Mobs, a last minute integration of the maple syrup theme for the game jam.  Evolution was also a theme for the jam, but I felt the whale with legs had that covered. But I digress.  The syrup mobs are generic bad guys who behave like red koopas and wil kill the player on contact and be killed by a chili pepper.
  • Solid platforms, ladders, one way platforms, slopes, moving platforms, and of course, an exit. 
  • One level as proof of concept.
And with that I started building.  First I programmed a rudimentary physics system for falling until something hit the floor, got the player jumping, and then I set about creating the one way platform and the solid platform.  This was the first time I'd really done anything like this, so it took a while.  I was working on the solid platform responses when I went home for the night.  It was late.


Night 2

Got up early and beat the crowd in.  I was there by 7 or 8 or something.  I had been having some sort of problem with the solid block, although I can't remember what it was.  Anyway, the night before it seemed like an endless bug, but when I came in that morning, I fixed it in about 10 minutes.  Never under estimate the value of sleep.

Next I got the ladder working and then moved on to a massive refactoring job.  I took the player and made it a subclass of Actor and then created the chili peppers, syrup mobs, and nightmare orca as other actors. This took most of the day, but you should know, I was a bit distracted.  Somewhere between this day and the next, I set up a game reset function by keeping a list of all the actors in the scene.  When the game ends, all the actors are deleted, and then the system re-creates the player, orca, and enemies.  

Scope is the hardest thing to control at a game jam, but you won't finish anything if you aren't willing to cut stuff.  I dropped slopes, moving platforms, and anything other than the two platforms I had and the ladder.  

I may have had the music going that night, or I did it the next morning, either way, I came to the conclusion that I had all the components I needed to make the prototype.  Now I just needed actual sprites (hitbox sized coloured squares had been standing in), proper victory, orca AI, and a level.  I outlined the basic AI for the orca that evening, vowing to complete it in the morning, then headed for the bus.  

What followed was a bit of a gong show. I started penciling out the level as soon as I had enough light and was so engrossed in this task that I missed my stop and got off several blocks later, winding up lost on a street in Esquimalt with in the middle of the night. So much for getting home early.  I kept walking until I hit the 14 going the other way out by admirals, took it back to my usual stop and made it home for about 1:00.  At least I didn't have to walk the full way.

Last Day

I admit to sleeping in a bit the last morning, but I still beat most of the crowd in.  I set to work on the orca AI and got done a basic system.  Then I built the level.  That wasn't difficult, just tedious.  After that I marshalled the services of Marta Ligocki who generously provided sprite art with simple animations.  It took an odd combination of game maker and Flashpunk to convert them into sprite sheets, but when it was finally working, it was awesome.  

In the final moments, I got the start and restart text going, and debugged the Whale.  When time ran out, I had a game with floaty physics in which the player is almost always killed by a merciless killer whale.  Unfair? Yes, but playable, and therefore complete.  

Anyway, I accomplished my major goals.  I can confidently say I know some Flashpunk, and I can try flash normal for my next project. I have been to the orca jam.

On a final note, a funny thing happened on the last night.  Even though I badly needed to sleep, I was driven to get on Ruby and start implementing Flashpunk infrastructure and creating Tetris in Gosu.  I didn't finish it, but I went for a good 2 hours with no deadline, no pressure, no instructions.  It was very out of character.  It's moments like that that give me hope for myself as a developer.  

And now, I believe I have been at this for enough time today time to post.

Thanks again for reading interwebs, and please comment.  I feel like I'm talking to the wall....