Destructible Terrain Prototype
Posted 22 February 2013 - 03:15 PM
some months ago, some friends and I had the idea to create a Minecraft-like game with destructible terrain, but without blocks. We made a prototype and it worked pretty well. It features an infinitely large procedural world and correct physics interaction with the terrain. Everything is written from scratch in plain OpenGL, currently supporting Linux and Windows. Here is some footage:
For an overview of the technical details, have a look at this post on our blog.
We are currently rewriting the whole engine, with a long-term goal to create a game engine that allows easy creation of mods and games based on our terrain technology. The mid-term goal for the next year is to release a sandbox game with Minecraft-like gameplay.
We recently set up a blog where you will find regular updates on our progress and some technical devblog articles that might be interesting to you: http://upvoid.com
We are working on this for some time now, so we are grateful for any feedback. Let us hear what you think!
Posted 22 February 2013 - 06:15 PM
Posted 22 February 2013 - 06:19 PM
Nice work you've done. It's not often I see devs reference academic material, nice I only heard very little about dual contouring, but marching cubes I would say is not that complex. You just need to wrap your head around the idea of 256 possible combinations and how that can be condensed into 15 sets with their own variations in rotation. I've had quite good success with the algorithm, but it's good to see alternatives being used out there. Are you still able to get good data compression with that algorithm?
The grass is nicely done too, but by using a geometry shader you are requiring your users to support OGL 3.X. You will also run into fillrate issues, so if not already it's a good idea to set a maximum range and limit the number of grass blades (billboards) you render.
Nonetheless, nice stuff.
Posted 23 February 2013 - 12:21 AM
Yup, our new engine already contains soft, dynamic shadows. Expect some screenshots soon. We'll probably also add some kind of SSGI or at least SSAO, but at the moment we are focusing on the terrain and the overall architecture of our engine.
While the idea behind marching cubes is simple (and of course it has proven to work well in many situations), I think it's not as elegant to implement when it comes to all the cases you have to handle. With dual contouring, we only have two possible cases in each cell.
In the prototype you see here, absolutely no data compression is used, we simply have chunks of float arrays containing density values. In our new system, we have a more sophisticated approach for the terrain data, allowing sharp edges and shapes like arbitrarily rotated cubes by directly saving intersection planes btween different materials. We'll post a devblog article about this soon.
Yes, we require OpenGL 3.1 plus geometry shaders. The Intel HD3000 card is the minimum configuration we currently plan to support. If there ever will be enough users with older cards, writing fallback solutions for those geometry shaders might be an option.
The grass is currently a very primitive implementation. Of course, when you have a really high viewing distance, you don't want to render grass billboards everywhere. We are currently experimenting with blending into grass textures smoothly. Turned out to not be that easy.
I'll post updates here whenever we have something new to show. If you have any further questions, don't hesitate to ask. We also try to post technical articles in our devblog section on a regular basis, so if there is anything you would like to hear about in detail, we are open to suggestions!
Posted 23 February 2013 - 12:29 AM
In case you're not already aware, there is some academic work on this - Kevin Boulanger's thesis talks in detail about blending seamlessly between mesh and texture versions of grass.
Posted 23 February 2013 - 10:00 AM
I can only use Opengles 2, so I don't have the ability to use geometry shaders or render to texture.
I like the idea of the dual contouring approach though, time to play.
Posted 27 February 2013 - 06:33 PM
Thanks, that will come in handy. In case anybody is interested, we wrote an article about the grass rendering in our prototype: http://upvoid.com/de...rototype-grass/
Posted 27 February 2013 - 11:00 PM
Posted 15 March 2013 - 08:24 AM
Posted 15 March 2013 - 09:49 AM
Also at 43 seconds in there seems to be a glitch at the top left corner, looks like you have a thin terrain section that hasn't been erased properly.
Otherwise looking interesting, I would like to see a world created with alien textures. Blue grass, purple water, green sky.
Think the sculpted look you already have will look beautiful as an alien world
Posted 15 March 2013 - 11:11 AM
The world is infinitely big. The mountains in the background are actually quite far away from the camera. I think this will become better visible when there will be more details in the scene (trees and other stuff).
I think what you mean are the transparent debug boxes that show up whenever the geometry has changed. Everything is still so work in progress that we didn't remove them for the video.
The alien world sounds like a cool idea, I will try this.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users