Monday, June 4, 2012

Apex

Well,

Today we showed off capstone.  After 20 weeks, it's over.*  We set up the game to show in an old quasi-gutted church, plugged in the ol' laptop and let 'er rip.

Barring a few hiccups, it went flawlessly and people liked the game quite a bit.  We figured out that Kinect and direct sunlight do not mix.  At all.  Bodies/body parts exposed to direct and/or intense sunlight won't be picked up by the Kinect.  I know the Kinect works off of infrared light, beaming "lasers" out into space and measuring the diameters of said light sources, using that to determine depth.  Something in the sunlight washes out those lights, perhaps the sun's own infrared emissions, but that's an just a partially-educated guess.

Long story short, the place we demoed the game in was not short of a whole lot of nice big windows that let the sun come streaming in, so after the first few playtesters we had to be moved to a different spaces simply so the game could run.  I was somewhat crushed because the new room was set apart from the main testing area, but we managed to keep a good crowd despite that fact.

I managed to set up a high-score system about 30 minutes before the game was set to be tested that did the simple task of listing/retrieving and writing a list of high scores.  It tracks all highscores, ever, which needs to be changed because that could get insane, but for the purposes of the day it preformed swimmingly, tracking the scores of every one of our 30 players today.

So, what went right, and what went wrong?

Today I'll be depressing and start with what went wrong: The game wasn't universally playable.  The Kinect we brought with us refused to adjust it's elevation, which rendered it unplayable for one young boy and an excited mother who both wanted to try the game.  To me, that was a bit of a soul-crusher.  To our great professor, Brian Shrank, he simply adjusted the Kinect manually.  A task which you are not supposed to do because it kills the motors and that's probably why our Kinect wouldn't adjust automatically in the first place.
The buttons that I spend Friday creating weren't super intuitive, we kept having to tell players how to pick them up and what to do with them, they need to be both smash-able and crush-able, without having to pick them up and then smash them back down.  That, luckily, can be fixed.
Full screen mode has issues with computers other than my own, that was news to me.
Also, we are making one too many new calls in the game, somewhere.  Despite the fact that C# is a managed language and therefore memory leaks are technically impossible, after an hour and half of straight running the sound began to cut in and out and sound terrible.  The proposed problem of this would be that we ran out of virtual memory for our program.  Or were constantly on the verge of running out before the garbage collector came by and ate up some sounds.

The problem with that is, I have no idea where to start trying to solve that issue aside from hunting down and eliminated as many new calls as possible, and even then I'm only guessing.  The other possibility is that we went through too many levels, and David's great level-saving system hadn't let any of these assets go over the course of an hour+ cumulative game time, which includes the thousands of particles of blood and other effects that were generated throughout the course of the game.  But this puppy also has about 6 gigs of Ram, if I remember correctly, which would be an insane amount of memory to take up.  When we stopped the game, though, the physical memory capacity was around 43%, though. So there's that.

Okay, so now for what went good:

Aside from our two stranded players ( :( ) we had a lot of people play, and for me it was fun just to see people smile or laugh or even glare intensely at all of the little cavemen attacking their cave on the screen.  People had fun, people said the game turned out well.  If you know me well you know that, subconsciously at least, I yearn for validation for my work.  I work hard, but I'm never sure of it's quality.  That's not necessarily a good thing, but today really put me at ease, at least, because we achieved what we set out to do: Build an interesting, somewhat innovated and fun game that people would enjoy playing any way the played it.

The best was seeing friends play the game and how they reacted and played.  My friend Majdi was my hands-down favorite, he played the entire game as if he was trying to sooth the cavemen instead of kill them.  He was the gentle giant of the night, but watching him play made my day and hearing the banter between him and the crowd made my day, easily.

We did it, by golly we did it.  I've done a lot of attempting in my life, and if there's anything that's difficult for me it's following through.  Be it my swing in baseball, my techniques in Judo or the games I strive and love to create, I always start strong but end in a far worse position than I hoped for.  Capstone was not easy, but I had a great team and great people to support me and finishing this game was one of the more difficult tasks I've ever tackled.  And this is a game that I made with my friends from the ground up. There's not one brick or piece of duct-tape or staples that holds this game together that wasn't made by us, Team We're Okay, and the next wave of the gaming industry.

Sorry, I meant to say I HAVE a great team and great people supporting me.

Now... Back to programming! More games! Go, go, go!

-Kev