Experiment: landscape generation

Help bring our custom Ages to life! Share tips and tricks, as well as code samples with other developers.

Experiment: landscape generation

Postby Sirius » Thu Mar 26, 2015 3:02 pm

Hello everyone,

I'm releasing a test Age that you might find interesting.
It's one of those weird experiments of mine, which means: not much to do in it, but you may find it interesting if you have nothing better to do.

Here !
https://www.dropbox.com/s/f5u0v46zjk8n5 ... n.zip?dl=1


What it is
This Age is the result of an algorithm for procedural terrain generation - hence it's name, Protergen (I'm lazy when it comes to names ! :P )
Meaning Blender was only used to import the ground mesh and re-export it to Plasma, along with a light source. Nothing else.


Exploration and performances
To explore it, simply extract the files in the ZIP to Uru's DAT folder, and the Age will appear in the Nexus.
Beware, though: this test Age is HUGE - I really pushed Uru to its limits. I can't notice any lag on my PC, but due to the sheer density of the place I suppose older machines may lag horribly in the Age, or Uru might crash outright - I don't know.
(at worse, you can try deleting Protergen_District_horizon.prp - it will make the Age smaller, which should help with performances).

I recommend using flymode quite often, though - I'm quite aware exploring on foot is too slow and not really convenient due to the number of pits.


Why do this ?
I was thinking of how cool terrain generation in Minecraft was, so I googled the subject of procedural generation further. Then I came across an article from GPU Gems. At first I was doubtful I would be able to code a world generator, but after reading for a while I decided I might give it a try.
And in the end, it's not as complicated as it sounds - even though it requires a lot of coding :)

About the general shape of the terrain: I know it's not realistic, but I find flat hills depressing. So I tweaked it a bit more to add more caves, cliffs and huh... floating rocks ! Yeah ! 8-)


What for ?
Now that's a good question :roll: I just coded this for the challenge, and to explore an entirely random terrain. I was also interested in knowing if Plasma could handle it (answer: it does. It just screws up my UV mapping, which looked better in Blender).
I will probably reuse it in other projects, but maybe it could be useful to builders here too. It does need some serious modifications first, though - easier import in Blender, better lighting, Level of Detail system to bring more details while increasing performances...


As always, I'm interested in any remarks or opinions you may have about it :D
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Experiment: landscape generation

Postby janaba » Thu Mar 26, 2015 5:12 pm

Impressively vast with interesting mountain shapes and structures, and tightly packed as you've already said ... this might be something to play with for Annabelle or so, though there is really nothing to explore other than sheer vastness ... :P

I didn't experience any lag either, Sirius, despite the density and all in all I'd say, it seems you've created sth worth to look into and experiment with esp. for age builders and maybe as a training ground for skydivers etc. ... :)
Image
User avatar
janaba
 
Posts: 918
Joined: Sun Feb 05, 2012 3:27 pm
Location: Berlin, Germany

Re: Experiment: landscape generation

Postby Ainia » Sat Mar 28, 2015 2:01 pm

Shorah Sirius!

Short response: WOW!! :shock: :o :lol:

Longer response: Exploring ProTerGen makes me think of how the first Maintainer must have felt when visiting a brand new raw Age... It's like being the first person to see what the Tree of Possibilities "picks" out of all the infinite Ages across the multi-verse, before the Age has begun developing past its early geology or has become "civilized".

What a view! Show Spoiler

I love how this place is so climbable; there are plenty of bear traps and hills too steep to climb head-on, but considering how *huge* this place is and how much variety in terrain, I'm greatly impressed that all the nooks and crannies are so accessible. :D I also like how all the floating rocks are solid and there are no panic-link zones! I can jump from the heights to the depths and remain in the Age (and not break my neck!). :lol:

Floating with the rock Show Spoiler

For a while, I was wondering if this was a spherical Age and if I would find myself eventually circling it completely... but no, it definitely has "edges". ;)

End of the Age Show Spoiler

The only nit I have to pick is how laggy it gets when one reaches one of the "edges", as if the engine is attempting to manage the entire Age rather than only the parts relatively nearby. I can see why you most likely have the initial link land us in the middle. :)

Laggy view Show Spoiler

I could definitely see this script becoming a vital tool for Age builders, especially if there are options for such things as Age size, steepness and angularity of terrain, and even overall shape of the Age. (And it would be really fun if one *could* create a spherical Age, like an asteroid or planetoid!)

A few interesting geologic features on ProTerGen:

A series of natural arches Show Spoiler

A double pyramid Show Spoiler
ImageImage
User avatar
Ainia
 
Posts: 186
Joined: Sat Dec 10, 2011 2:39 pm
Location: The Cleft, New Mexico

Re: Experiment: landscape generation

Postby Sirius » Sat Mar 28, 2015 4:13 pm

Thank you both for your great reviews ! :D


Yes, indeed, it's just a huge empty playground, but the view is quite stunning the first time you link there... Especially if you're unaware of what to expect, I guess.


And yeah, the world has a limit - it's just freaking huge (3.6 square kilometers, to be accurate. EDIT: meh, I don't even know what a square kilometer is. 3.6 is the length of one of the four edges of the terrain. So the actual surface is 13.4 square kilometers).
It would be possible to teleport the avatar back to the other end without the player noticing, but I don't think that's required due to the time it takes to walk from one side to the other.


Ainia wrote:I can see why you most likely have the initial link land us in the middle. :)
Putting the link-in-point in the middle has a few advantages: less lag, you can't see the world's edge, which also means you get to see a seemingly endless landscape.
But there is also the fact that the middle part is much more detailed than the outer ones are - you can notice a seam where the mesh goes from "relatively high detail" to "low detail".
This is because I liked the very far horizon, but also because neither Blender nor Uru can handle that many vertices - Blender and PyPRP kept crashing when they were too close to their memory limit.


About the lag: keep in mind that at the edges, your PC has to deal with 1.3 MILLION triangles, and has to blend 8 different textures together :twisted: I was quite impressed to see Uru could handle it relatively fast - faster than Blender does anyway.
That's where the fancy Level of Detail system would be perfect - this means replacing objects far from the avatar with simpler ones using only half or a quarter of the polygons.
Problem is, PyPRP doesn't have this option, and this means having multiple versions of the terrain loaded in Blender and Uru - meaning more loading time and possibly easier crashes.



Randomly created environments are interesting to create something new and very big in just a few minutes, and thanks to the randomness of geometry, you end up with interesting paths, caverns, and so on.
To be honest, this terrain is nice, but to my eyes it's not as good as the previous one, which had even more caves, canyons and archs :P But the last one didn't have any of the UV-mapping required for the textures, which means it was only grey-shaded (this resulted in moon-like, alien landscape).
Show Spoiler



Unfortunately, even though it is fun at first, random terrains become boring quite fast. They require having more "unique places", meaning place lakes, forest and grassy hills in flat places, and arid rocks in mountainous areas (along with manmade villages and constructions to explore, that is). Part of it can be done automatically, but the rest requires an artist's creativity.

As for customization: because of how the underlying algorithm works, absolutely any type of landscape can be generated, from the arid mountains in Mexico's deserts to asteroid fields, including huge cavern networks such as D'ni - no kidding.
The hard part is knowing how to configure the whole damn thing to get what you want :shock: really, the program is just a basic, generic framework for you to experiment any combination of mathematical functions.
Last edited by Sirius on Sat Dec 12, 2015 3:29 pm, edited 1 time in total.
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Experiment: landscape generation

Postby JanB » Mon Mar 30, 2015 12:06 am

Quite a challenge to explore this stunning asteroid like landscape Wow!! :!: :!: :!: :)
JanB
 
Posts: 74
Joined: Tue Mar 22, 2011 7:44 am
Location: Netherlands

Re: Experiment: landscape generation

Postby Seppolo » Tue Mar 31, 2015 8:36 am

Wow! This is a very beautiful landscape! :) Unfortunately, the still lacks a little atmosphere. But for a test Age quite well. ;) The shades give the whole a really strange twist. For many existing fan-made Ages could thus achieve a thoroughly optical enhancement.

I was so taken with it that I've made the same linking Book from the Nexus into my Relto bookshelf.
:D
Show Spoiler


Then we look at it a time.
Show Spoiler

Arrival on rough terrain.
Show Spoiler

What a view!
Show Spoiler

Just do not crash! Here you will find none. :?
Show Spoiler

Then I sit down but even better.
Show Spoiler


Nicely done quietly just a bit. :D
THX!

greeting
„Myst will never forgotten“

Image
User avatar
Seppolo
 
Posts: 43
Joined: Thu Aug 26, 2010 11:51 am
Location: Germany

Re: Experiment: landscape generation

Postby Sirius » Tue Mar 31, 2015 10:35 am

Glad you both like it as well !

Yeah, there really isn't much here yet - hopefully I will add more things like grass, water and trees later. This was mostly just a performance/design test, and I'm quite happy you like the visuals already. However it wasn't intended to be a "real" Age.
That said, I would love to make a real Age out of it with more interesting visuals and things to do in it ! (although probably smaller).
It's just going to take some time. I barely scratched the surface, and yet I'm already mad at how PyPRP/Plasma handles my fancy multitexturing.


Anyway, there is still much to do - especially on customization of the terrain. I'm working on the program's interface.
Show Spoiler

The right part will contain a node graph much like the one used by Blender's cycles render - this is the only efficient way to provide full customization, and yet I barely know where to begin to code it.
I'll figure it out with time, but I have some RL work to attend to...


Seppolo: Nice linking book, by the way - did you create the cover yourself, or does it come from another Fan-Age ?
User avatar
Sirius
 
Posts: 1506
Joined: Mon Jul 26, 2010 4:46 am
Location: France

Re: Experiment: landscape generation

Postby Seppolo » Tue Mar 31, 2015 4:46 pm

The cover is from a fan-age. Just something changed in color. I just had nothing else at hand. :D
„Myst will never forgotten“

Image
User avatar
Seppolo
 
Posts: 43
Joined: Thu Aug 26, 2010 11:51 am
Location: Germany


Return to Scripting

Who is online

Users browsing this forum: No registered users and 5 guests

cron