Wednesday, March 30, 2011

Arrrgh! Robozombies!!!!



  • Put a lot more work into the conversation system. Now wraps text and has a conversation tree.
  • Added height offsets for each tile. So now the ground doesn't have to be flat. This will prove useful for the outside areas.
  • Added a new grunt-level bad guy - The RoboZombie! You see, our mad doctor is far too mad to have just regular zombies on his island. As a result of his first attempts at making a cyborg, he has these monstrosities...that got loose! They will be found all over the island in numbers.


Friday, March 18, 2011

Liquid Bug Fixed!

This has been driving me nuts. It was a bug that would cause the liquid hazards to stop animating. Turns out to be a bug in XNA.

I was using ElapsedRealTime.TotalMilliseconds to tell me the time between frames. Should be around 16.6 for 60fps. This was all over the place when I had a steady framerate. Then it would go to 0.0, so no animating. I switched to ElapsedGameTime.TotalMilliseconds and it works great. They should be equal, but by outputing them, I can see that ElapsedRealTime is all over the place.

The difference is ElapsedRealTime is the clock time and ElapsedGameTime is from the startup of the code. The games should be the same. I think this may have something to do with throttling in a multicore CPU. I have an i7, which is a quad-core (comes up as octo-core in Task Manager).

Thursday, March 17, 2011

Sound Manager


  • Added a sound manager. Now all sound effects reside in this class. This means that I don't have 100s of actors each loading sound effects. Much quicker and lighter on memory.
  • Added sound effects for push, pull, objects sliding and doors opening/closing.
  • Added particle effects for push and pull. Basically just a stream of smoke puffs. But at random spread and speeds. Surprisingly effective.
  • Added a translation to the starting point of the attack particles. So now they start at DEMII's gun barrel and not at her origin. No more shooting fire from her bully button. LOL!

Monday, March 14, 2011

Camera angles revisited II

  • Added point lighting to actors


This screenshot shows the Tomb Raider style camera in effect ie. you can now orbit around DEMII and see her face. Model is not finalised , yet, but very close to it.

Saturday, March 12, 2011

Camera angles revisited

  • Switches now can be linked to doors, lights and events. This will add a new layer of puzzling to the game.
  • I decided to revisit the camera, as I have never been 100% happy with it. I spent some time doing research, playing other games and seeing what they do. I saw that the cameras seem to fall into 2 styles (I will name them based on the games I saw them in):

    GTA3 -
    Mouse rotates camera AND player. This means you always look at the back of the player's head.
    UP=walk away from camera
    DOWN=Walk backwards

    Tomb Raider/Just Cause 2/Red Faction: Guerrilla -
    Mouse makes the camera orbit the player. Player only changes direction when moving.
    UP=turn and walk away from camera
    DOWN=turn and walk towards camera

    The advantage of the latter method is that you can have action happen behind the player. Even chase the player. I have recoded the camera to work this way. Looks and feels way better. Unfortunately, it highlights an issue with the actors: They still use BasicEffect and not my custom point lighting. Hence, no pictures today...not until I address that.

  • I have rigged DEMII's model up for animation. Hopefully, my Deled3D to MilkShape to XNA animation path will work issue free. Fingers crossed on that.

Tuesday, March 8, 2011

XML Maps

I had an idea to add an attribute to the actors that would link actors together. All actors with the same value in this attribute would effect each other. ie Switch #2 will open door #2...all doors marked #2...could even trigger event #2 for a crescendo or something. An idea with a lot of potential. Plus it will cut down on a lot of code (as in I wouldn't have to put any code behind individual switches as they would all use the same code).
With this came the problem of storing the value. Rather than add a new layer to my binary format maps. I decided to break free of the binary format (which is based heavily on Wolf3D maps) altogether and use XML. So thats what today was wasted spent on. But the end result is much more flexible.

Wednesday, March 2, 2011

Nanoshields

  • Added single tile doors. Can't believe that this wasn't done before. Especially after spending so much time on double doors.
  • Added Nanoshields. These protect DEMII from hazards. She can only have one at a time. There are 3 different types: Aquashield, Heatshield and Bioshield protect against water, lava and toxic waste, respectively. If you don't have the right shield, you take damage. If you do, no damage and you can walk through the hazard. It is a good way to block off areas and add more map based puzzles. Maybe the right shield is hidden, maybe you need to use one to get to the other, etc, etc.
  • Added an in-game menu so you can go back to the level select or end the game.
  • Added in-game notices of events. At the moment, they look like the achievement notices given by Live....a bit too much. So, I will need to change that a bit. :)
  • Started adding terminals. These will act as switches in the game. I am considering having a hacking element, like in Just Cause 2 (type in the random code within the allocated time). Or perhaps, you need to find the code (like in Deus Ex). Yes, they are C64's :)
  • Started a shield training map. Good for testing the shields, as well.