It's time for another project update.
I just uploaded a new version of the SilverTile sample application. The new version has four areas that you can move between freely and lots of monsters you can hunt. The monsters have different AI, the blue ones will try to hunt you while the red ones will move randomly.
Lots of dangerous monsters!
Since my last update I have added some features to the game engine:
- A simple keyboard input handler
- Improved area transitions
- Improved collision detection
- Layering of sprites (z-index)
- Improvements to the monster spawning process
All the changes I have done are based on the needs of my sample game. A more structured keyboard input was needed as the complexity of the game grew.
Area transitions needed to be directional so that you can transition into a tile with an area transition back without being stuck in an endless loop.
I found some bugs in the collision detection algorithm that I fixed (Yay for TDD!), but my implementation is really naive. I would be grateful if anyone could help with a better algorithm. :-)
Layering of sprites was something I really wanted the engine to have, but I didn't need it until I was to render the players sword. The sword is drawn underneath the player sprite when the attack animation starts, and I needed to make sure the sword wasn't draw on top of the player.
The monster spawning process was modified so that monsters can be spawned immediately when a level is loaded. The classic The Legend of Zelda spawns enemies this way, so I need to support it.
All game levels were drawn using the editor application I wrote. The application is really simple, but it allows me to draw the game levels and export them as Xaml easily, so I am happy with it.
With a more complete game engine I think it is time to build a better user interface for the game. I have added hit points to the player, but I need to display them as hearts as in the classic Zelda.
I also need to build more game levels and start adding items to the game. Monsters should drop coins that you can use to buy stuff.
And then I need to add text rendering and an intro screen and a game over screen!
... So there is still lots of work to do.