Game Projects

Another Excercise - Terrain Rendering. Again the main part of the excercise is using Vertex and Index Buffers. Also a lighting technique used in games for terrain lighting was introduced and it is basically as simple as creating a light 'source' (just a vector to imitate the direction the light would be coming from) and for each triangle normal on the terrain, the brightness of the colour in that triangle is dependant on the angle between the normal and the light vector. For this excercise I followed this and the other techniques shown in class, its actually fairly straight forward to render terrain using a raw file format....

Exe + code here

Like the solar system, most of the base code is supplied by the course and we have to fill in the blanks.

--------------------------------------------------------

I started my 3D courses and found it frustrating not having any kind of tests or quiz at the end of each chapter as at the moment I feel like I need my hand held haha...During the course, my wishes came true and we indeed were given some review excercises! This meant I almost needed to start the current module again but in this way, it was a way to really solidify some concepts.

One of the excercises involved making a sphere, which then became a solar system, using vertex and index buffers. Here is my solar system with code included. I use a sphere class which has a linked list that can hold child spheres, this way when rendering I can simply multiply matrices and values together to get all the relationships as intended. I did have a look at a kind of 'Scene Node' class but for the moment, it seemed overboard for a little excercise considering the main issue was to use vertex and index buffers. Camera class given by the instructors.

--------------------------------------------------------

I wrote a maze generation program to hopefully put into some form of 3D at a later stage. Its console and quite easy to create mazes. See my main code which uses the maze generation class. Hopefully given time and some friendly help, it should become a much more robust creation.

The general creation method is
1) start at 0,0 of (nSize x nSize) grid, each 'maze node' has 4 walls - north, south, east and west
2) pick random direction to go.
3) If that destination node has NOT been visited, knock down the walls between the current 'maze node' and destination 'maze node'.
4) if that destination node has been visited, backtrack one movement and goto step 2.
3) Repeat until all nodes have been visited.

--------------------------------------------------------

2d Stuff: Pong and an explosion sprite demo. Done to learn dubble buffering and enforce the technique - here

Air Hockey - Added sound using the FMOD sound library windows 2d/sprites game - here


--------------------------------------------------------
FSM AI Example 1: Get the code here
--------------------------------------------------------

Wiimote Demo - source code soon

I found a wiimote obj model here which is pretty handy. I am also using the WiiYourself c++ library for accessing the wiimote via bluetooth.

--------------------------------------------------------


Whats the point?

Basically, you have a pile of boxes. You have to blow them up by smashing them onto the objects in the scene like the ground, trees, barrels, and bamy the door and his identical family members.
Use the mouse to pivot around the scene or right mouse button to pivot on the spot for more specific aiming at a target (like bamy and his family members!).

1 point for blowing up a box
10 points for hitting a bamy family member with any box!
multiply these number by the shot count, so if its the third box your shooting and you hit one of the family, thats 30 points!

The trick is, not to get the highest, but the LOWEST score possible.

I guess you will still wonder, whats the point?

Libraries used: Ogre for the graphics, OgreNewt for the physics in the game, Hikari for the gui interfaces (Use of flash swf files within ogre! I can get around flash pretty easy so saved an extra level of learning for the moment - goal was to complete a game for now!) and FMOD for the sound.

Download the game installer!
Visual Studio 2008 runtimes

Also in this project I used the Example Application and Example Frame Listeners - just to get going. The aim was the finish line, the journey had certain requirements, but going forward I naturally will NOT be using the example framework. Again, the idea was to just complete a demo - the first one is always the hardest they say...

Bugs to fix
-----------

* I need to set up some sort of system that registers once that a pallet hit a barrel and wont be allowed to register again until a new throw....hmmm that kind of system might do it actually, otherwise each frame as the pallet smashes through the barrel, it says 'play the collision sound'and I end up with noise and slow downs.
* sometimes a body will just not die and will get stuck in random air?!?
* not a bug, but add 4 'walls' around the scene, make them invisible to act as 'triggers' so boxes cant go flying off the plane outside of my collision detection objects.
* Open GL crashed my machine when I tried it?!?!? Not sure if it is a one off, but prefer to know why.
* any bugs people find and I may have overlooked because I subconciously know the limits :)
* 01/02/09 Once I understand the wiimote controls pretty well, i'll add a wiimote mode :)
* 01/02/09 Fix the power bar, too slow, full power is useless!
* 01/02/09 Remove hikari library usage? (maybe - it works fine so why fix something not broken)
* 01/02/09 Reassess score system - its confusing