Thursday, May 19, 2011

Bigass dragon invades Broville

The Minecraft world reader used to be a storage module. So instead of the usual Sqlite database, the game would read and write all terrain data to a Minecraft save game. I have upgraded it to be a proper world generator, so I can combine it with other generators (and go back to the much faster sqlite for storage).


This screenshot shows the game running with three generators: infinite flatland, Broville, and the Binvox reader. Now that the basic framework is in place, I can move on to creating more interesting generators, such as a tree planter, a cave digger, rivers, etc. ("Interesting" in the sense that they use the output of the previous modules. The ones shown here just superimpose their data, much like the layers in Photoshop.)

A few major changes under the hood: the world is now 4,294,967,296 blocks in every direction, including height. The old limitation of 65,536 blocks still applies to some terrain generators, though.  

A lot of the code now uses Boost threadpool, a not-yet official library for dividing up work across multiple threads. It works great on my 4 cores, although the code for feeding the results back to OpenGL is still a bit ugly. The result runs very smooth, but glitchy as well. Ergh, concurrency bugs... *headdesk*

Edit:
More screenies, yay.





I just noticed in that last screenie that one of the Minecraft chunks missing. The shadow inside that square hole looks great though. ;P

Had a couple of deadlocks and spontaneous suicides in the client while flying around. Holy shit this needs some serious debugging. Also, a little noclip screenshot to show that there are still caves underneath all this:


4 comments:

  1. This is really impressive. I think I'm speaking for a lot of people if I'm asking if you could spare us one or two more pictures.

    ReplyDelete
  2. @Bob-Rüdiger

    Sure! Like I said, everything went a bit wonky after adding the thread pool, but I'll see what I can do.

    Is there anything in particular you'd like to see? Other levels, other binvox imports?

    ReplyDelete
  3. Ah, thanks a lot for the pictures. I'm tempted to say "show us as many pics as you can" but I for one think I'd really like to see some more pictures that demonstrate the size of the world. Or in short: Big stuff with the view distance as high as possible. And, when you're at it, perhaps some more terrain pictures. The ones from the terrain generation post from a couple of month ago were pretty awesome, too, if it's not too much to ask.

    ReplyDelete
  4. They're up in a new post, enjoy!

    ReplyDelete