Synthetic World: Roads and Dungeons

Hello and welcome back to our development blog. The topics today:

  • Dungeon generator
  • Road generator
  • Plugin support improvements
  • Manual
  • LOD of the meshes
  • 3 different dungeon template editors
  • 60 fps our new goal
  • Faster world generation
  • SDL2

Dungeon Generator

We worked very busy on the new dungeon generator. Here are some screenshots of a automatically generated dungeons:

screenshot29

screenshot31

 

The dungeons are generated in way that there is only one path to the finish room (with treasures). Aside from the main path there are small feature rooms which you can also explore too. We plan to include several types of dungeons depending on how much space there is on top of the landscape and in the underground.

CoFCVkmWEAAwxKQ

Making cities with the dungeon generator

We not only want to create dungeons with it, we also want to be able to create cities, settlement, castles and so. We have implemented half of the city generation algorithm.

Road Generator

  • First version is implemented
  • Creates a complete road network over the landscape
  • Creates also potential city positions
  • Fast A* Star Algorithm
  • The roads look really nice:

screenshot35

Plugin Support Improvements

  • Exposed more classes to java
  • Added support for hooks
  • Added 50 new hooks
  • Own entity moduls can be made in Java (An entity in the game is composed out of moduls)

Manual

  • We started to write a manual in English for the current version
  • With description of all game elements
  • It already contains 400 pages (although most of them were automatically generated by the game)

LOD for the meshes

We finally found a good solution to create the level of detail meshes for our models. We are using Blender and then import it into the game.

This will allow us to place many NPCs into the game world!

3 different dungeon templates editors

For the dungeon generator we need templates (small building elements which then make up the complete dungeon). I wrote the first one, I didn’t like it. The second one was not really finished (but we are using it now as a dungeon previewer). And finally I created the third one, which allows the creation of dungeon templates in a 3D environment. I should have started with the third one at first. What a mess!

60 fps is our goal

And last but not least we want to achieve 60 fps in our game. We already did a lot of improvements. The main game loop is now independent of the voxel stuff. These things are now calculated in separate thread. This allowed us to already reach 60-70 frames when there is not much in the world. In a dense forest we have 30-40 fps. The bottleneck in the later case was the GPU not the CPU. The next step is now to improve the GPU speed.

Faster world generation

And we also increased the speed of the world generation algorithm. This was done by improving the source code, by adding a new memory manager and by speeding up the compression / uncompression algorithm. It is now nearly twice as fast.

Multiplayer

And we also worked on the multiplayer code. The first objects can now be transported over the network. And we made the final design for the multiplayer mode.

SDL2

As some of you had problems with the game under Windows 10 we switched to the newest version of SDL. This will improve the fullscreen support under Windows 10. And we will update to the newest version of the Bullet Physic Engine

Dungeon Name Generator

And finally we made a cave name generator:

screenshot40

What’s next?

As I mention above I want to improve the GPU speed. I had some great ideas. Will test it in the next week.