Tuesday, September 27, 2011

Dungeon generation

Poks!

As I finally finished GameDirector I was able to continue on more of the content side. This time it was resuming work on dungeon creation and how to actually make player move within those dungeons, aka "stairs".

RoA has basically two types of dungeons; those which are saved and those which are not. Saved ones usually are important places for main storyline, like Astacia. Non-saved dungeons are more or less ways to develop the character and to get to event/storyline places. Hmm.. When said like that it would seem that these non savable dungeons are not important nor interested but that is soooo far from truth. They are as important as the event places since majority of the gameplay happens in these dungeons.

And to point.. I added feature that GameDirector keeps track of entrances of dungeons ( Acts, from earlier post ) and integrates entrances directly into terrain as a feature of terrain, not object. It seems to work perfectly, all data can be saved and retrieved and GameDirector tells the engine what to do next and how.

I added four main dungeon types: scatter, maze, caves and mines. Appearance of those can be further tweak within generation to make them look more random. I am still creating regular dungeon type and single/double room shop generator but those have to wait for now.

Screenshots below are as they are seen without FOV restrictions nor shadowing. When playing the game the dungeons appear, in my opinion, even better but for the sake of showing screenshots I have eliminated FOV and shadow from the game.

So here are the screenshots:

Cave dungeon, Lights are indicators of entrances

Maze dungeon

Still somewhat experimental mine dungeon. I am not 
too happy about it yet but at least it has rooms and 
shafts which connects them :)

Scatter type

1 comment:

  1. Keeping my eye on this project for sure! It seem to have some very interesting features and I like the style as well. I am looking forward to a release, keep up the good work!

    ReplyDelete