Wednesday, January 26, 2011

Happy Australia Day!

Happy Australia Day to all Aussies both at home and abroad!

Just to catch the blog up on my current state of affairs...

  • Actors now use a lookup class for their models. Previously, each actor had a copy of the model, which was OK for a handfull of instances. But, once you get hundreds, you start reaching memory limits, etc. The tiles have always had a lookup class.
  • Area15 is now completable. I would like to add enemy respawning when they die, though...and maybe a few more graphical niceities, but apart from that, the logic is all there and playable.
  • When you complete a level, it is marked as complete on the level select map...plus you get a prompt to say "Map complete" and you then return to the level select map.
  • Level select map now have 3 types of nodes: Locked, Open, Complete.
  • Fixed a bug where if 2 actors where in the same square (say an enemy and a health pack), then the enemy wouldn't take damage if shot.
  • DEMII can now PUNCH! This is a form of her contextual 'Metal' power that is always available as an alt-fire. It deals a random about of damage that is less than quarter of her current SP power. I need to add a delay to the punch (and animation...eventually) because now DEMII can deliver 60 punches per second = LMAO!


While randomly searching the net for inspiration, I came across a game from a few years back that is similar to what I am trying to achieve with DEMII. Though, a vastly different game, in practice, both are tile based and therefore the game engines are similar and face the same challenges. I downloaded the demo, and the game looks great. I can tell I am on the right track for a lot of things. The one thing that looked way better than what I am doing is the lighting. I have come to the conclusion that tile-based directional lights, while a great technical work-around, just dont cut it when compared to point lights.

The major pro of point lights: they look way better.
The major con of point lights: they require me to write a custom shader effect. Having multiple lights will mean more processing...a way to beat that slippery slope is deferred rendering, but how does that work with alpha materials, etc?

Anyway, I NEED to focus more on getting levels made, functional, and finishable, rather than tweaking the graphics.

Monday, January 17, 2011

Enemy AI

  • Added enemy AI, in so far as path finding. Seems there could be a whole branch of maths that could be assigned to this. But I found a very efficient way of getting the enemy to find the shortest path around a maze to get to the player.
  • When player dies, game now returns to the level select screen.
  • Game now uses one floor model and changes the texture, as opposed to having multiple models that only differ in texture. As a bonus, this will facilitate having animated textures!
  • Player can now pick up certain actors. This is crucial in the ability to pick up health, etc.
  • Menus now have music.

Saturday, January 8, 2011

We have top men working on it...top...men...

Level select - Unpolished, but working!

  • The level select is now 90% coded. Just need to lock/unlock maps as maps get completed and change how locked/unlocked/completed maps look on the map. Also need to design select maps for the other 2 areas.
  • Started adding sound/music. Makes a HUGE difference to the feel of the game. It now feels like I am playing a game, not just running code (if that makes sense).
  • Started work on a new map called "Area 15". Its my version of Area 51 from the Indiana Jones movies. With a little surprise for the observant player.
  • Started fleshing the story line out a bit more. This led me to put a bit more thought into the goal of each map...
    • LABS - Tutorial maps. Map goal: Puzzle solving. Ultimate goal: Escape labs.
    • VILLAGES - Put skills learnt in LABS to practice. Map goal: Collect all the idols. Ultimate goal: Get into volcano.
    • VOLCANO - Map goal: Find pass cards (ala Impossible Mission, perhaps?) Ultimate goal(s): Revenge? Escape island.



On a more personal note: My confidence is building. I still have a metric crap load to do, but I can see the light at the end of the tunnel. I have enough of the game engine done that I can concentrate on level design and worry about the nice-ties (animation, enemy AI, sound, etc) later. 


Area 15 - High view angle.


Area 15 - Low view angle.

Tuesday, December 28, 2010

Big Update

A long time between blog updates due to the festive season. Rest assured that a lot of progress has been made!

Creating an ice cube with circle burst snowflakes

  • Light sources have been added to the editor. Each square can have up to 3 directional lights plus ambient light. This takes the look of the game to a whole new level.
  • Dynamic in-game lights. So far, I am only using this for doors. They have a red light when locked and a green light when unlocked.
  • Circle-burst particle effect. Rather than have a 100 random particles, which looked like crud, I now use expanding rings of particles, such as fire for explosions and snowflakes for ice. Looks a million times better in my opinion. Plus it gives the game that retro look that I am after, rather than being uber-realistic.
  • High friction tiles. Nothing can be pushed/pulled onto them, and anything on them cannot be pushed/pulled. I use them to surround my push puzzles to stop cheating (by pushing blocks off the puzzle).
  • Player now takes damage and dies.
  • Village levels are now starting to take shape.
  • Doors are now unlocked by push puzzle triggers, where appropriate and relock when appropriate.
  • Ice now melts over time
  • Ice can be pushed into enemies for massive damage
  • About a bazillion things under the hood

The development is starting to transition from game engine development to level design. Having said that, there are still quite a few things on the to do list for the game engine.

This morning work started on a 3D map selection map (for want of a better name). It something that requires little effort, but will look brilliant and will add that extra layer of polish.

Multiple light sources but still using BasicEffect

Circle burst explosion of an eyeTank

Friday, December 10, 2010

New enemy units: eyeTanks I & II



  • New enemy unit - eyeTank : Stands its ground and fires a plasma ball at you. Slow rate of fire, but large damage and infinite range.
  • New enemy unit -  eyeTank II : stands its ground and fires machine gun at you. Fast rate of file, but less damage. Range is infinite.
  • Better looking fire particles
  • Enemies now explode on death.
  • Explosions cause damage to other enemy, allowing for chain reactions.
  • Preliminary explosion particle effect with 100 random particles.




Tuesday, December 7, 2010

First enemy unit: eyeBomb


  • New enemy unit (actually the first, thus far)...the eyeBomb! Basically, its a big floating eye that follows you around or should that be "chase". Either way, when it gets too close....BOOM! When you kill it, it also goes BOOM! They don't go BOOM, yet, but it is quite fun running from them and trying to make ice cubes to block them. They need a bit of path finding AI to get around things. Another possibility: Chain reaction explosions!
  • Added better flame texture for Fire.

Saturday, December 4, 2010

Ice, pull, doors, lighting, first real map


  • ICE: Ice cubes can now be pushed. They don't decelerate until they hit something. If its an actor, they injure it with their current hp and destroy themselves. A formidable weapon!
  • PULL: Objects can now be pulled from 2 squares away to 1. This is, of course, the opposite of PUSH. handy as an "undo" in the push puzzles.
  • Doors can now be locked. Meaning they cannot be opened with USE. I use this in the test chamber to only allow you into the next room once the current puzzle has been solved.
  • Test Chamber A is about 80% complete! this is  new map consisting of 5 push puzzle rooms and an observation room. This will basically acts as a tutorial.
  • Played around with lighting a bit more. namely, the per-tile lighting. It works as well as I hoped! Even with one light, affecting blocks and actors, it is much better looking. Today's screenshot shows one yellow spotlight in a corridor. It is very light on FPS, as all of the calculations are done at design time, not run time.