Friday, September 28, 2012

Audio Manager

Since we knew sound was going to be integral to our experience as a bad-ass ninja, I built the Audio 

Manager class , and built it so it would be simple to use despite any drastic changes that may come down the 

line. 


Therefore, I made it a static class that took in a string referencing the audio clip in the Sounds folder. This 

made the class easily accessible by anyone that needed to use it. Of course, I had to wrap the function a bit

to be adaptable to what the programmer needed. In particular, the ability to designate whether the sound 

needed to be a 3D positional sound or a global sound the player would hear anywhere.


Thus, I built the PlayClip function to split into two functions depending on whether the player supplied a 

Vector3 position. The function branches slightly depending on whether a position is supplied or not, but the

overall simplicity of accessing it is more than worth it.

Physics Engine

For our 3D game, we decided it would be prudent to search for an existing XNA physics engine to use for our game.  It would save a lot of time to be able to use it to handle all of our collision detection.  Looking around, I've found a few that seem to fit the bill.  I first looked at Jitter which an utter mess to look at its documentation.  Second, I tried JigLibX which was much more user friendly.

When tinkering around with JigLib, I found it rather easily to program in collision detection using their methods, and it seemed to work fairly smoothly.  Unfortunately, we ran into some serious problems a week later.  It seemed like porting it to the XBOX caused some irrevocable problems (i.e. it crashed).  We had to scrap it, and Blake looked for another engine while I worked on other things.

Fortunately, he found the BEPU physics engine which is what we are currently using.  The documentation is a little convoluted, but it seems to be working.  The only thing we have to figure out soon is how to properly handle collision detection between two specific objects (say a player and shuriken).  Hopefully we will figure it out soon and continue forward.

Debugging Tools

When we first began this project, we immediately decided upon a system that would show programmers vital changing aspects of the game. Thus, I was tasked with building a Debug class.

This dynamic class needed to be able to take any vital information and show it in the upper left hand corner of the game screen. I designed it as a static class that takes in a string which would draw to the screen every update cycle.  I made sure to keep track of all the calls to the debug class, so no information would be lost if another call was made.

This has proved to be a vital testing utility for various game aspects. For example, we can easily check the player's current state (i.e. on the ground, in the air, running up a wall).

Thursday, September 6, 2012

5 Games for Ninja Royale

These are fives game I've played/viewed might include some mechanics we'll want to include in our game.

1. Mini Ninjas - It contains a cartoon like style we might want to emulate; it has wall jumping and climbing mechanics; and each character is a little unique which we might want to consider (like players could choose a sub-ninja class).  Oh, and how did we not think of a bow and arrow for a weapon!? Video

2. Ninja Gaiden Series - It has smooth gameplay mechanics (including wall jumping), and a crap ton of weapon ideas we could probably use. Just a taste of its many weapons : Shuriken, Windmill Shuriken (basically a huge shuriken that follows you), fire wheel magic, spinning blade, after image effects, fire shield, vacuum blade, etc.


3. Batman: Arkham City - Has a great open world which could inspire map design, and it has many stealth mechanics that a Ninja would be proud to implement.


4. Shinobi (PS2 Remake) - It has many fluid ninja mechanics such as wall jumping, mid-air dashing, wall walking, etc.  Plus it has a pretty good ninja running stance for reference. Video


5. LittleBigPlanet 2 - It has many stage elements that could be interesting to use in the game (such as panels that propel you).  Plus, it has a wicked grappling hook that has other functions than just grappling on to walls (you can grapple other players for instance). Video


Honorable Mention - Just check out this link.  It hasn’t been made yet, but it is similar in the way we might want to work with our battle mechanics.