martes, 24 de noviembre de 2009

Physics 101

Finally our not-quite-physics engine is complete. I'll be honest, there's still a lot of room for improvement, but for now it's acceptable: our CreepyCharacter can't run through objects, but he can push and walk on top of them, also other objects cant' go through other objects and some of them can be stacked on top of each other.

However, we still have some work to do regarding the creation of our bounding boxes and spheres, since XNA's bounding boxes are axis aligned and hence can't be properly rotated.

lunes, 23 de noviembre de 2009

Push, pull, press, activate

The animation department has been busy these last couple of days, but we finally have all of our main character's animations.
We mixed these animations with a little bit of code so our character can now move boxes around the stage, pull levers and push buttons! The next step is to create certain 'side effects' to activate through the levers and buttons.

jueves, 12 de noviembre de 2009

Did you hear that?

We've added a few sounds to our game, keeping the creepy atmosphere that our main character unintentionally set, we deliberately chose disturbing sounds only. These sounds are played at random intervals at random order, we decided to do it these way for no particular reason other than to mess with people's heads.

By the way, we downloaded all of our sounds from MySoundFX.com, which offers a big library of free sounds, loops and tunes under Creative Commons licenses. We highly recommend it.

Up, up and away!

We've been working on our game's physics engine for a while and I think we're finally getting close. Collisions are always tricky, in our case we aren't aiming at pixel accurate collisions (mainly because our computers would burst into flames trying to run something like that), but just accurate enough so our CreepyCharacter can stand on some objects, but can't run through them. We think that bounding box/spheres collision detection will do the trick.

Luckily XNA already provides us with a property that calculates a model's bounding sphere, unluckily it doesn't have a direct one for bounding boxes (you can however create one based on a bounding sphere, but the result is far from optimal). Furthermore, you would expect the bounding sphere provided by XNA to reflect your model's current state, but this isn't the case. The sphere is calculated on a mesh by mesh basis (you actually have to merge them if you just want one bounding sphere), so if you scale, rotate or translate your model, the sphere won't reflect those changes, you gonna have to make them by hand.

Currently, bounding spheres/boxes have proven to be adequate for stopping our CreepyCharacter from running through objects, however the standing on top of them bit is still a little buggy.

viernes, 9 de octubre de 2009

Main Character's FSM

This is a first approach to the main character's FSM


miércoles, 7 de octubre de 2009

Create Your Character!!!

Name: Unknown

As promised, here is a newer (creepier) version of our main character. Originally he wasn't supposed to be creepy at all, but I really like how it turned out.

domingo, 4 de octubre de 2009

Continue?

We are very glad to report that finally we figure out how to load animated models into XNA (actually we now know two different ways of doing so). It took us far more time than we intended, but we learned a few things in the process. OK, first things first, animated models in XNA come in two flavors: .fbx and .x (as far as we know). If you're using Maya then you will be glad to hear that it already comes with a fbx exporter (just remember to enable it in the Plug-in Manager), however you won't be so glad to hear that it doesn't let you define the start and end frames of each animation (more on this later). If, however you are really passionate about x, we found a good x exporter written in Python (download and install instructions here). This exporter lets you define animations which comes really in handy if you decide to take the SkinnedModelProcessor path. We mentioned before that we found two ways of importing animated models into XNA, obviously the SkinnedModel is one, the other one being using the XNA Animation Component Library.

Each approach has its pros ands cons. The Skinned Model is really simple to use (just remember to change your model's Content Processor to SkinnedModelProcessor after adding it to the project) and it supports both fbx and x, but here's the tricky part, remember how Maya wouldn't let you define different animations on your fbx file? well the SkinnedModelProcessor relies on these animations names to know where to start and stop, so if you just use your Maya generated model you will only have access to one (massive) animation (usually named something like 'Take_001") containing all of the model's animations. One way to go around this is to manually edit the file (provided it is an ascii fbx) or writing a script that does this for you. Another (simpler) way is to just use an x file.

Alternatively, you could choose to use the Animation Component Library, which is just as easy to use, but a little bit trickier to set up. Apparently it only supports x files, and you have to create an XML file detailing the animations. A really cool feature is that it lets you blend different animations together, which saves you some work and helps them look more realistic. However it has its disadvantages. Firstly, for some reason it wouldn't accept my Maya generated x files, so I had to create my model using a combination of MilkShape 3D, LithUnwrap and Character FX (which turned out to be a bit tedious), it seems to use some deprecated methods and I couldn't get it to apply lighting to my model.

Because of all the above, we decided to use the SkinnedModelProcessor for our game. I hope this brief recap of our adventures through the world of XNA and models helped you in case you were stuck.

(By the way, I'm gonna try to make a decent main character model now that we are sure we will be able to use it).

viernes, 11 de septiembre de 2009

Create Your Character!!

Main character: Name Unknown

Some nice rendered views of our 3d model

miércoles, 2 de septiembre de 2009

Create your Character!

Main Character: Name Unknown

Notice the lack of detail and simplistic design as key features of our character.

viernes, 28 de agosto de 2009

Press Start!

Game Details

Name:

Tesseract

Description:


The game consists of a maze of rooms. Every room has a different puzzle, you have 3 chances to solve the puzzle to go to one of the next rooms. If you can't solve a puzzle you'll go back one room and then to a random different puzzle. You'll win the game when (or if) you manage to get out of the maze.

Entity Description:

  • Main Character: A simple man, a 3D stick figure, in a weird place, our hero has no idea how he got into the Tesseract, but hopes to find his way out by using his brains.
  • The Tesseract: A mysterious place filled with mysterious rooms filled with mysterious puzzles. The Tesseract's lack of detail and color only hides desperation.
  • Assorted objects: Inside each room in the Tesseract awaits a different puzzle, each puzzle is even more difficult than the ones before and requires the use of different objects to solve it. (This section will be updated as we design each room)
License:

http://www.gnu.org/copyleft/lesser.html

Choose your character!


Victor Ferman: level programmer, game tester, puzzle designer

Julio Arriaga: character and scenario designer, animator, puzzle designer

Rogelio Ramírez: level programmer, visual and sound effects, puzzle designer