Thrive Game Development

Development of the evolution game Thrive.
 
HomeHome  PortalPortal  CalendarCalendar  FAQFAQ  SearchSearch  MemberlistMemberlist  UsergroupsUsergroups  RegisterRegister  Log inLog in  
Welcome new and returning members!
If you're new, read around a bit before you post: the odds are we've already covered your suggestion.
If you want to join the development team, sign up and tell us why.
ADMIN is pleased to note that this marquee has finally been updated.
ADMIN reminds you that the Devblog is REQUIRED reading.
Currently: The Microbe Stage GUI is under heavy development
Log in
Username:
Password:
Log in automatically: 
:: I forgot my password
Quick Links
Website
/r/thrive
GitHub
FAQs
Wiki
New Posts
Search
 
 

Display results as :
 
Rechercher Advanced Search
Statistics
We have 1675 registered users
The newest registered user is dejo123

Our users have posted a total of 30851 messages in 1411 subjects
Who is online?
In total there are 4 users online :: 0 Registered, 0 Hidden and 4 Guests

None

Most users ever online was 443 on Sun Mar 17, 2013 5:41 pm
Latest topics
» THIS FORUM IS NOW OBSOLETE
by NickTheNick Sat Sep 26, 2015 10:26 pm

» To all the people who come here looking for thrive.
by NickTheNick Sat Sep 26, 2015 10:22 pm

» Build Error Code::Blocks / CMake
by crovea Tue Jul 28, 2015 5:28 pm

» Hello! I can translate in japanese
by tjwhale Thu Jul 02, 2015 7:23 pm

» On Leave (Offline thread)
by NickTheNick Wed Jul 01, 2015 12:20 am

» Devblog #14: A Brave New Forum
by NickTheNick Mon Jun 29, 2015 4:49 am

» Application for Programmer
by crovea Fri Jun 26, 2015 11:14 am

» Re-Reapplication
by The Creator Thu Jun 25, 2015 10:57 pm

» Application (programming)
by crovea Tue Jun 23, 2015 8:00 am

» Achieving Sapience
by MitochondriaBox Sun Jun 21, 2015 7:03 pm

» Microbe Stage GDD
by tjwhale Sat Jun 20, 2015 3:44 pm

» Application for Programmer/ Theorist
by tjwhale Wed Jun 17, 2015 9:56 am

» Application for a 3D Modeler.
by Kaiju4u Wed Jun 10, 2015 11:16 am

» Translator to Serbian here
by Simeartherist Sun Jun 07, 2015 6:36 am

» Presentation
by Othithu Tue Jun 02, 2015 10:38 am

» Application of Sorts
by crovea Sun May 31, 2015 5:06 pm

» want to contribute
by Renzope Sun May 31, 2015 12:58 pm

» Music List Thread (Post New Themes Here)
by Oliveriver Thu May 28, 2015 1:06 pm

» Application: English-Spanish translator
by Renzope Tue May 26, 2015 1:53 pm

» Want to be promoter or project manager
by TheBudderBros Sun May 24, 2015 9:00 pm


Share | 
 

 Voxel terrain generation

View previous topic View next topic Go down 
AuthorMessage
TheRabiesGuineaPig
Learner


Posts : 102
Reputation : 10
Join date : 2014-04-22
Age : 15
Location : Somewhere in the World Wide... World

PostSubject: Voxel terrain generation   Sat May 31, 2014 12:50 pm

Ok, so I've been thinking recently and came up with an idea. This would obviously only apply to later stages but what about, hear me out, using voxel terrain for the terrain generator. Not only is it highly customize-able, it is also editable and realistically detailed. Voxel terrain might make you think Minecraft or Cube world, but it isn't only blocky. Just look at this game, Blockscape, for an example: http://www.blockscape.com/v2/  Isn't that just what we need? Also, using voxels would allow for intricate alien landscapes and deep caves. Your civilization would be able to mine. Your creature could burrow! Endless possibilities! Note: I have a Belgium computer with an intel graphics card and the game runs at 10 fps at the worst of times.
                     
Voxel trees.

Asteroid destruction.

Thanks for viewing!

Edit #1: Added a quick example of voxel trees I made in the voxel sandbox 'blockscape':
Big picture:
 


Last edited by NickTheNick on Mon Jun 09, 2014 12:27 am; edited 6 times in total (Reason for editing : Added picture)
Back to top Go down
View user profile
Alexthe666
Newcomer


Posts : 17
Reputation : 1
Join date : 2014-04-23
Location : Westeros

PostSubject: Re: Voxel terrain generation   Sat May 31, 2014 6:12 pm

TheRabiesGuineaPig wrote:
Ok, so I've been thinking recently and came up with an idea. This would obviously only apply to later stages but what about, hear me out, using voxel terrain for the terrain generator. Not only is it highly customize-able, it is also editable and realistically detailed. Voxel terrain might make you think Minecraft or Cube world, but it isn't only blocky. Just look at this game, Blockscape, for an example: http://www.blockscape.com/v2/  Isn't that just what we need? Also, using voxels would allow for intricate alien landscapes and deep caves. Your civilization would be able to mine. Your creature could burrow! Endless possibilities! Note: I have a Belgium computer with an intel graphics card and the game runs at 10 fps at the worst of times.
                     
Voxel trees.

Asteroid destruction.

Thanks for viewing!

Edit #1: Added a quick example of voxel trees I made in the voxel sandbox 'blockscape':
I really like this Idea, but planets are spherical, and all of the "blocks" would have to be curved. Maybe the design could be used for trees instead of landscape?
Back to top Go down
View user profile
MitochondriaBox
Learner


Posts : 188
Reputation : 7
Join date : 2013-01-29
Age : 17
Location : Houston, Texas

PostSubject: Re: Voxel terrain generation   Sat May 31, 2014 7:31 pm

Alexthe666 wrote:
TheRabiesGuineaPig wrote:
Big image, etc.

I really like this Idea, but planets are spherical, and all of the "blocks" would have to be curved. Maybe the design could be used for trees instead of landscape?

Trees are going to be individual organisms, though. Would that have any effect on Voxel?
Back to top Go down
View user profile
moopli
Developer


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 21
Location : hanging from the chandelier

PostSubject: Re: Voxel terrain generation   Sun Jun 01, 2014 12:27 am

Yes RabiesPig, you're absolutely right in saying that voxel worlds need not be blocky. Indeed, there are many ways to avoid seeing blockiness in voxel-based systems. Simplest of all, you can just raise your resolution. That, almost definitely, is not an option for us, as it would involve much much higher memory usage than we can afford. Other tricks include smoothing algorithms like marching cubes to reduce apparent blockiness, and roughening algorithms (fractals, noise, L-systems, etc) to raise the apparent resolution. So we wouldn't need to raise resolution above the current maximum of about 3m per side.

However, there is no way to get around the fact that introducing a new dimension will drastically increase our memory footprint. Even though we'd (definitely) be constraining the altitude dimension to within reasonable bounds (nothing too far from mean surface height), we'd still be increasing several thousand-fold the number of things we'd have to track. And for what? a few caves, mines, and some overhanging cliffs? For those we could do much more localized voxel grids, covering only the areas that need open space beneath rock. Then we would cut out the massive performance penalty, and still get the benefits.

Then, since features requiring voxel grids are always gonna be at scales much smaller than planet size, we can ignore planet curvature for the purposes of voxel geometry, which solves Alexthe666's issue. And yes, trees are individual organisms. Thus, it's quite unlikely we'll use just voxels for those, as what we'll likely be doing is using constrained L-systems, which would probably generate geometry. However, a simple storage and physics optimization is to convert regions of dense foliage into voxel representations; but we'd probably still be treating that as geometry, so yeah, I don't think voxels would work too well here.

Remember guys, "voxel" is not an aesthetic choice, it is a choice in the underlying representation. If we want something to be voxel, we store it as a grid of many bits of stuff, which automatically gives us a way to access certain sub-bits, and rules out certain algorithms. Similarly, storing objects as geometry gives us another set of choices.

Edit: Oh also, the giant picture has stretched the page -- RabiesPig (and whoever's quoted his picture), could you spoiler it?


Last edited by moopli on Sun Jun 01, 2014 12:28 am; edited 1 time in total (Reason for editing : pagestretch aiya)
Back to top Go down
View user profile
TheRabiesGuineaPig
Learner


Posts : 102
Reputation : 10
Join date : 2014-04-22
Age : 15
Location : Somewhere in the World Wide... World

PostSubject: Re: Voxel terrain generation   Sun Jun 01, 2014 3:18 am

Yea, I can already see where problems with voxels come up. Do we have a memory usage budget? What would the computers of the future be like when we start work on the creature stage? (Windows 9. anyone?) but that was just a thought that randomly sprung into my head.
Back to top Go down
View user profile
moopli
Developer


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 21
Location : hanging from the chandelier

PostSubject: Re: Voxel terrain generation   Fri Jun 06, 2014 10:37 am

I was just reading about an efficient method to store and work with sparse voxel data. It's really cool, and gets around a lot of the problems with storing large amounts of voxels.

While we probably don't have the memory to use it for entire planets (or even just a shell at the surface), we could use it for other things

Edit: Come to think of it, VDBs would be really useful for mines, caves, cliffs, and so on -- since those sorts of things are likely to be sparse, and will generally have interesting shapes that don't fit nicely in rectangular prisms.
Back to top Go down
View user profile
TheRabiesGuineaPig
Learner


Posts : 102
Reputation : 10
Join date : 2014-04-22
Age : 15
Location : Somewhere in the World Wide... World

PostSubject: Re: Voxel terrain generation   Sun Jun 15, 2014 5:08 am

Sounds great! Could this be used to randomize static objects like rocks, lamps and buildings?
Back to top Go down
View user profile
moopli
Developer


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 21
Location : hanging from the chandelier

PostSubject: Re: Voxel terrain generation   Sun Jun 15, 2014 8:08 am

It isn't a method for generating things, it's a method for efficiently storing and accessing the data.

What we would need to look at is voxel-based object generation to create things, and we would just use a VDB instead of the standard 3D array to hold everything.
Back to top Go down
View user profile
TheRabiesGuineaPig
Learner


Posts : 102
Reputation : 10
Join date : 2014-04-22
Age : 15
Location : Somewhere in the World Wide... World

PostSubject: Re: Voxel terrain generation   Sun Jun 15, 2014 3:06 pm

Oops! My bad :P Didn't read it properly. Is there an alterante link you could use? I can't seem to open this one.
Back to top Go down
View user profile
moopli
Developer


Posts : 318
Reputation : 56
Join date : 2013-09-30
Age : 21
Location : hanging from the chandelier

PostSubject: Re: Voxel terrain generation   Sun Jun 15, 2014 4:27 pm

Does your computer block PDFs? Because so far, all the links you've been unable to open have been PDFs.

Anyway -- the thing you can't access is a research paper, very technical -- the author describes a datastructure, the VDB, which, in a nutshell, is a tree of voxel grids. It stores voxel data very efficiently, because it uses some tricks to avoid needing any memory for areas that don't have anything in them. Naive voxel grid systems have to store a 0 in every place where there is nothing, wasting space, but the VDB contains a bunch of much smaller voxel grids. These voxel grids only take up memory if there's something inside them. Massive space savings. And since any algorithm that works with voxels basically goes through each voxel one by one, and since most voxels containing unimportant data in a VDB don't take up memory, then a VDB can skip those, meaning you get great time savings too.

Oh, you might be confused because the D in VDB stands for dynamic -- that just means 1) the VDB was designed to make it easy to change its contents efficiently, and 2) the VDB does some trickery behind the scenes to make things efficient (it is a dynamic datastructure -- it doesn't just sit there, more or less).

Anyway -- enough about VDBs. I've talked to the other devs, and it seems VDBs are a good idea we'll be using later for stuff like this, so we can turn our attention to the actual procedural generation now.

So if anyone finds stuff on generating caves, cliffs, and so on, that would be awesome.
Back to top Go down
View user profile
TheRabiesGuineaPig
Learner


Posts : 102
Reputation : 10
Join date : 2014-04-22
Age : 15
Location : Somewhere in the World Wide... World

PostSubject: Re: Voxel terrain generation   Tue Jun 17, 2014 7:24 pm

Oh ok, so VDB is a good thing for us? That's cool. 8) 
Back to top Go down
View user profile
Sponsored content




PostSubject: Re: Voxel terrain generation   Today at 11:55 pm

Back to top Go down
 
Voxel terrain generation
View previous topic View next topic Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Thrive Game Development :: Development :: Programming :: Technical Discussion-
Jump to: