Friday, January 8, 2010

College Chronicles Part 3: Katamari Arkanoids

Only two months after Extreme Pong 2 I got to a class called Structures of Game Design (SGD).  In this two month class we got a crash course in designing games from the ground up.  We learned about breaking things down into easily maintainable features that we could use to mark progress.  We also learned a bit about taking all the things we had learned so far in the program and applying it to a game.  This included using DirectX (previous class), vector math, using data to drive your game, and many other techniques and technologies.

Everyone in the class was tasked with a project for the first month.  This was to make an Arkanoids/Breakout type game using the material that was taught in class.  At the time I could tell that Toni (my girlfriend at the time, now wife) was getting a bit frustrated with my amount of free time (which was zero).  I knew it was only going to get worse so I wanted to get her involved so I could spend more time with her.  I am no game designer by any means, but I can roll with ideas.

I explained the project and asked her how I could make something she would like to play.  She simply said, "Just make Katamari", which I think was a joke (we had been playing it a bit at the time).  That peaked my interest, and this is what came out of it:

This game was the result of about three weeks of development.  Making it is one of my fondest memories from Full Sail University.  I really had a lot of fun making it.  The design was simple.  The Katamari guy's head is the paddle and the ball is the ball he rolls around.  Instead of breaking the bricks you collect them up and your ball gets bigger.  You can only pick up bigger objects once your ball gets big enough.  The goal was to steal all the gameplay from the Katamari and make it an Arkanoids game.  I believe I succeeded.

There was some cool (at the time) tech I got to make for this game.  I came up with a level file format which consisted of ascii art (OMG file IOz).  The level editor was literally whatever raw text editor I had.  I created a readme that tells you everything you need to know to make your own levels.  You can check out the scripts folder for more info.  It was also a lot of fun figuring out all the math needed for the collisions and how to have the ball collect objects and get bigger over time.  This was also my first DirectX game, but I only utilized the Sprite interface of DirectX.

Once again I did all the art/sound stealing/modifying/creating.  The goal was to be more professional in the asset part of the game this time around (ignore previous sentence).  All the art is authentic Katamari art, which I tweaked with my photoshop skills.  I did create some objects myself, but they are the simple ones.  The sound is also straight from the source.  I remember running the game and recording the sounds with windows recorder and my awesome 20$ desk mic straight from the Television's speakers.  Surprisingly it worked out.  I did use my voice for one effect in the game.  Lets just say I couldn't find a good vacuum-like sound.

The code this time got a lot better.  the code was also documented much better.  I actually fixed some issues before this post and didn't have a hard time navigating the code (thought I'm probably biased because I coded it).  Unfortunately it is apparent I was still learning.  There is still no math library being utilized!  I knew the math, but for some reason I didn't understand how terrible it was to have all the details just written inline (yet anyway).

I utilized inheritance a bit more and had all the game objects derive from a common base to simplify rendering etc. Although it seems I made child classes just to discern the objects from each other.  I am even using Run-Time Type Information(RTTI) to test the type of object an entity is for collision etc.  I probably only used it because it was something taught to us during that month, I don't believe I've used it since.

It also seems that I was taught the singleton pattern during the creation of this game.  From doing a search I find a total of six singleton classes.  It seems that whenever I needed to do something new I made a "Manager" and created it as a singleton, for the sole purpose of globally accessing it.  Thankfully that was just a phase.

As is was noted earlier this game holds a lot of my fondest memories of school.  When I finished this game I knew this was something I could see myself doing for a lifetime.  It was the first game I made that people actually wanted a copy of on their computer.  Whenever it got real tough at school (which you will find out in later posts) and I felt like maybe this kind of work wasn't for me, I would remember this game and it would push me forward.  Not bad for approximately seven months of programming experience in my opinion.  What do you think?

P.S.  Sorry no "how to" instructions in-game, check out the "ReadMe.txt" in the "bin" folder for the controls.  Oh yeah, Hey NAMCO BANDAI Games ! I can totally make a bad ass version for you guys if you like this one :-D.

Game Download(Windows):

Game Video:

No comments:

Post a Comment