Dungeon Demo

I’ve decided to take a brake from the rendering enhancements in order to implement something a little bit more fun. So I ended up spending the last days writing a demo project which helped me to understand what features where missing on the engine up to this point.

The demo itself is quite simple: the player takes control of a Dark Knight who has to escape from a randomly generated dungeon killing all zombies in his way (spoiler alert: I haven’t implement the exit doors yet, so our hero is not going to success on his mission).

Here are some screenshots taken from the desktop version (and iPhone/iPad version is on the way too):

Game mechanics are quite simple. You use the mouse to command the knight. Left click on the floor and the knight walks. Left click on an enemy and the knight attacks. But beware that enemies will attack too!

This video shows the demo in action:

Creating the dungeon was pretty simple (specially considering that I haven’t implement any collision detection mechanism). For the animations and AI (yes, there is a little AI in the game) I’m using a component based design. Components are something that I added to Crimild recently following some well known design patterns. And I even develop a small messaging system using C++ templates, avoiding all those strings IDs and annoying casting on the way. I’m considering writing more about both components and the messaging system once I finish this demo.

Finally, I’ll be publishing the demo as a binary package during the weekend so everyone can try it out. And the source code is available on the “examples/Dungeon” directory as usual.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s