Wednesday, March 31, 2010

First Live Test


I am really excited, today we did the first live test of the game and it worked REALLY well (I mean for a first run). Joe uploaded some videos of me playing:






Here are also a couple of Screen Shots of how the game looks:



Obviously not everything is sweet and perfect and some problems did arise:
- I was backwards (need to make sure this doesn't happen)
- There was quite a lag (although the game was running on debug mode and the data was being streamed on wireless which gives room for improvement)
- The walls are a little bit too short. They were just right for my height but if Joe plays the game it will probably be way harder for him.
- Need to place some sort of markers on the virtual floor to give a better sense of depth and know when you passed the wall
- The player seems to be resetting between walls

Things to do over the week before the next test:
- Make sure the player is not backwards
- Make sure the player is not resetting between walls
- Put in overlays for score
- Make the walls more continuous and give less time when you crashed against a wall

Hopefully I can get most of the bigger issues worked out before next Wednesday when I will be testing the game again!


Monday, March 29, 2010

The Controller

(Hey, I said coming soon....)
Annnnd this is what I've been working on:


This video might not seem different from the one I showed during the Alpha Presentation buuuut it is. Trust me.
The difference is that the motions we are seeing on this video are being streamed live from the Vicon box in the lab. Even though it is not a real time motion yet, it is pretty much like it. Before I was loading and playing a pre-captured motion.

So this is what I accomplished:
- Install the Vicon Data Stream stuff
- Understand how the data is being streamed and get it working with Aline's OpenGL example
- Adapt that to my code and to the way gamebryo/physx deal with geometry
- Make sure the motion fits in my world (I had to fit Gulliver into my tiny world). The mocap data came from a world of 1000x1000 (more a less) and my worlds is about 200x200...

Steps to follow:
- Test what I have with real-time data..... aaaahhh (scary...)

(Getting to this stage on the project was possible because I had the helping hands of Joe and Aline)

Alpha Review Comments

After the Alpha Review I got great comment which helped me realize that there are still some unclear elements to the gameplay (or maybe they were clear somewhere deep inside my brain...) Some of the things I've been thinking about are (yes, I've been thinking...):

- There are going to be two game modes: 3 lives (survivor), infinite lives (continuous)
- I won't be able to define if it is going to be 3rd person or 1st person until I test it (maybe I'll have both and let the player choose)
- The game difficulty is as follows:
* I have sets of predefined walls (probably: easy, med-easy, medium, hard-med, hard)
* I will be sending random walls withing a set to the player (starting with easy)
* As the game progresses I will be incrementing the range of the walls being sent (easy+med-easy, etc)
* The speed at which walls move also increases (it will have a limit to avoid making the game impossible)
* The score is merely based on the number of walls you successfully avoided
* You can crash 3 times, the 4th one you are OUUUUUT (for 3 lives mode), for infinite lives hmmmmm....I haven't decided
- I need a pool for the Final Presentation! :>

Coming soon: the controller...

Friday, March 19, 2010

Alpha Review

Today is the Alpha Review. On the last post, I had four main goals to accomplish for alpha, out of those the only one that I wasn't able to finish is adding sound. The good news is that my Sphereman is now playing and the motions look great, at first I was having problems with the frame rate, it seemed to drop a lot. But after rearranging some of the code to make sure all the motions are preloaded before the game starts the frame rate problem was fixed. I also generated about five different walls, one of the walls doesn't have a hole. That was to make sure I can show the collisions no matter what. Finally, I put in some screen overlays for the beginning of the game and one the player collides. I still to add the lives and the score but the Overlay system is already in place.

After the alpha review my to-dos are:
- Polish the game (add score, sound, etc )
- Work on the interactive controller, which should be the bulk of the work from now on.

Overall I am happy on where I am at the alpha stage. My main goal was to have something that could potentially be played, i.e. a rough version of the game, so I can focus my energy on getting the interactive controller.


Friday, March 5, 2010

Crashing Against Walls

Last week I was able to accomplish all of my goals (yay!). This is a summary of it: All of my collisions are working. I was able to do it with the character, so sphereman is able to play the game! And if he crashes into a wall "clashhhh" the wall shatters. I also started making it more like a game, so if yo crash the wall shatters then it resets it and another wall comes at you. If you do not crash walls keep coming. Right now I only have one shape, but it bring the point across.
I also dedicated some of my time in cleaning my code and making it more modular. Here is a video showing the collisions:


For this week and next (ie, before our Alpha Review) this is my to-do list with priorities:
- Be able to load motions with the PhysicX Sphereman (I do not know if I am going to run into some problems...)
- Generate a couple of different walls
- Overlays for score
- Add sound
I might not get to all of them but the main goal for the Alpha Review is to show a functional game without the interactive controller.

Thursday, February 25, 2010

PhysX In

From the plans I last wrote, this is what I got done: I have all my PhysX in place, collisions are working, the wall is moving towards the player and if you collide with it it "breaks." What I need to do now is have multiple walls coming at you, have the wall's PhysX turned of when the wall is moving and turn the on when there is a collision. I worked a little bit on the character but it still seems off.

Here is the game plan: I will have the collision reporter so the PhysX for the walls only turn on when there is a collision. Why is this important? Well, if I have the PhysX on all the time my fractured wall will break before it gets to the player, gravity, and that would be no fun. Another thing I plan on doing is testing the collisions with my Sphere Character. Right now I've been doing it with a cube, not very interesting but useful for making sure the basics are in. Hopefully at the end of this week I will be able to have that and then I'll upload a video showing the progress.

Saturday, February 13, 2010

FSM and Character

First this week's progress:
I was having a little bit of trouble when I was trying to make my Sphere man move. It would go crazy. I realized that the problem was that I had my skeleton hierarchy correctly setup in Maya but once I exported it to a NIF file it would mess it up. After Aline showed me how to prevent Gamebryo of doing this my skeleton looks how it should. I was also able to load a .amc file with a motion and play it. It looks correct, I just need to make sure that the character is not floating in space.
I also setup my Finite State Machine. I took the one Ted and I had for the CIS 564 Bowling game and modified it for what I need. So the game logic is in place and ready to be filled in.
The last thing I did was add PhysX to my scene, my scene has the character, floor, and a wall with a hole, and a cube which I will be using to test for collisions. Every object but the character have Physx. (Below an image of the scene)



For now my plan is to get on one side the character working 100% and on the other get the game mechanics working (collision, moving walls, response to collisions, etc) 100%. Once they are both working I will integrate them. For next week I will start moving the wall forward and will start testing for collisions. Most likely I will have the PhysX turned off while the wall is moving and will turn them on if there is a collision. If there is a collision the wall will break. Once I have this working with the cube I will put a capsule around the character and try that out. On the side of the character I just need to make sure it is moving how it should and not floating and that the rotations are applied appropriately.