• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GPU-based procedural placement in Horizon Zero Dawn

There wouldn't be any. It's procedural generation not random.
So does this mean the game doesn't store a game map? I would think the map would have to be procedurally generated or hand-crafted with no ability to be in-between.

Or does this just mean they procedurally generated a map, saved it, then touched it up. As it exists now on the game disc/file is a map like any other game.
 

vivekTO

Member
I'm so glad procedural generation is starting to get a better rep. It's all about the implementation behind the tech. A lot of people were mad about procedural generation when TES4: Oblivion was released, and we even saw it crop up again as a bad term last year with No Man's Sky.

The possibilities are amazing though, since our universe is essentially procedurally generated. A bunch of rules defining where things will be, in a nutshell.

True.people got confused it with Random Generation , and i know how much they hate this word.
 

danowat

Banned
it's really impressive tech, am I the only one to be taken aback that they can also proc-gen sound effects too? is this the first game to do it with audiatory elements?

Also, on the same subject, anyone interested in similar tech would do well to read into the 'stellar forge' tech for Elite, that is also proc-gen, but that has generated an entire universe based on proper universal law, and recent cosmological founding have bore out some of their proc-gen engine.
 

Razgreez

Member
There wouldn't be any. It's procedural generation not random.

Technically there would. Resources, grass and certain fauna would likely be placed in random locations within certain parameters but not precisely the same areas nor precisely the same formations every time. Tall grass (hiding areas) are perhaps placed manually for gameplay consistency.
 

Glix

Member
There wouldn't be any. It's procedural generation not random.

I don't get it.

If its always going to be the same for everyone, why bother doing it in realtime, when you can just generate the game with it (No mans sky) beforehand???

Wouldn't you not want to add the load to the gpu if you didn't have to??
 

danowat

Banned
I don't get it.

If its always going to be the same for everyone, why bother doing it in realtime, when you can just generate the game with it (No mans sky) beforehand???

Wouldn't you not want to add the load to the gpu if you didn't have to??

Size (& performance?).

code for proc-gen is smaller than code with pre placed resources.
 
So does this mean the game doesn't store a game map? I would think the map would have to be procedurally generated or hand-crafted with no ability to be in-between.

Or does this just mean they procedurally generated a map, saved it, then touched it up. As it exists now on the game disc/file is a map like any other game.

This is about the foliage and ground details (as I understand it). The map is of course hand crafted.
 

Glix

Member
Size (& performance?).

code for proc-gen is smaller than code with pre placed resources.

I see. Sorry if I'm being dim, but I take it "smaller code" equals "less load"? Therefore this is actually freeing up system resources?
 
So does this mean the game doesn't store a game map? I would think the map would have to be procedurally generated or hand-crafted with no ability to be in-between.

Or does this just mean they procedurally generated a map, saved it, then touched it up. As it exists now on the game disc/file is a map like any other game.

From the OP is just sounds like the game has a system that fills in the environment with objects programmatically, instead of through someone manually putting that entity there in the level editor. Looks like it's just nature assets like trees and ambient sounds.
 

vivekTO

Member
Technically there would. Resources, grass and certain fauna would likely be placed in random locations within certain parameters but not precisely the same areas nor precisely the same formations every time. Tall grass (hiding areas) are perhaps placed manually for gameplay consistency.

No , every thing is Proceduraly placed in the Environment even the Sounds too.
It will be the same Formations as the inputs maps are hand made or generated through world engine.
 

Moosichu

Member
It means the world can be easier to generate than manually placing every asset in the environment. This decreases drastically the time needed to finish an area and this is helpful especially if the game is open world which needs much time by traditional methods.

It also reduces memory footprint massively, as you can have a bunch of unique geometry giving certain affects by only defining a few parameters.
 

danowat

Banned
I see. Sorry if I'm being dim, but I take it "smaller code" equals "less load"? Therefore this is actually freeing up system resources?

I would imagine that is some of it, as well as reduced developer workload.

the code would place assets based on a law (postion/elevation/etc) rather than a person having to do it manually.
 

Moosichu

Member
Technically there would. Resources, grass and certain fauna would likely be placed in random locations within certain parameters but not precisely the same areas nor precisely the same formations every time. Tall grass (hiding areas) are perhaps placed manually for gameplay consistency.

No, there is no randomness to this. If the same parameters and seeds are used for the algorithm, and the algorithm is deterministic (which it is, as the slides say so!), then you will always get the same identical results.
 

vivekTO

Member
I don't get it.

If its always going to be the same for everyone, why bother doing it in realtime, when you can just generate the game with it (No mans sky) beforehand???

Wouldn't you not want to add the load to the gpu if you didn't have to??

Check this
gpubased-procedural-placement-in-horizon-zero-dawn-41-1024.jpg

The world is placed by only handful of Artist. it will save a lot of time to manually curate each different environments with this Scale.
 

danowat

Banned
No, there is no randomness to this. If the same parameters and seeds are used for the algorithm, and the algorithm is deterministic (which it is, as the slides say so!), then you will always get the same identical results.

Exactly, everything would be the same, otherwise you'd end up getting resources and assets in different places everytime to visited somewhere more than once!
 


OP. You need to download the ppt presentation, it has videos showing how the feature works. On page 17 from the ppt presentation, Aloy is in that empty desert and using that technique, the world instantly gets instantly generated around here from garss to trees to everything.

On page 19, the big cursor which is used to place assets places random trees and grass, then when it is used a second time on the same place it places something different. Now you get the idea of procedural placement. Even the devs don't know what the program woudl put in a location.

Someone needs to make a gif about that.
 

Glix

Member
Check this


The world is placed by only handful of Artist. it will save a lot of time to manually curate each different environments with this Scale.

So, basically its sorta like Speedtree but at a much grander scale and being done in realtime?
 

Razgreez

Member
No , every thing is Proceduraly placed in the Environment even the Sounds too.
It will be the same Formations as the inputs maps are hand made or generated through world engine.

Are you perhaps responding to the wrong message? I did not state that everything is not procedurally generated I simply stated that there would be differences if people took pictures. Not major differences but differences nonetheless. Like the cars or crowds in GTA.

On page 19, there is something even more interesting: the big cursor which is used to place assets places random trees and grass, then when it is used a second time on the same place it places something different. Now you get the idea of procedural placement. Even the devs don't know what the program woudl put in a location.

This is exactly what I'm referring to in my initial post in this thread
 

danowat

Banned
So, basically its sorta like Speedtree but at a much grander scale and being done in realtime?

pretty much, yes (edit, I am not actually familiar with speedtree, so maybe no?).

think of it this way, elite has 100 billion planets could you imagine how long it would take to program each planet by hand?

the same with NMS's 18 quintillion.
 

Gaz_RB

Member
Geez. It probably is the greatest looking game I've ever played, and I imagine technical decisions like this one contribute to that. I just walk everywhere so I can take in the scenery a little better.
 

vivekTO

Member
OP. You need to download the ppt presentation, it has videos showing how the feature works. On page 17 from the ppt presentation, Aloy is in that empty desert and using that technique, the world instantly gets instantly generated around here from garss to trees to everything.

Someone needs to make a gif about that.

I'll work on that.

So, basically its sorta like Speedtree but at a much grander scale and being done in realtime?

Exactly , also something akin to Substance designer, if you know that software.

Are you perhaps responding to the wrong message? I did not state that everything is not procedurally generated I simply stated that there would be differences if people took pictures. Not major differences but differences nonetheless. Like the cars or crowds in GTA.

I was actually answering about the Difference.Again , No. there will be no difference. Animations are different thing , the example you have given, those are randomly selected clips from a large Subset.
 

Skux

Member
So does this mean that one player's forest is different to another's? Or is it made first using procedural generation then tweaked and "locked in" to the game assets?
 
I'll work on that.



Exactly , also something akin to Substance designer, if you know that software.

On page 19, there is something even more interesting: the big cursor which is used to place assets places random trees and grass, then when it is used a second time on the same place it places something different. Now you get the idea of procedural placement. Even the devs don't know what the program woudl put in a location.

And Substance tools where used in Horizon (like in Uncharted 4) and Allegorithmic confirmed that.
 

Moosichu

Member
I see. Sorry if I'm being dim, but I take it "smaller code" equals "less load"? Therefore this is actually freeing up system resources?

Not necessarily. Think of it this way. Using more traditional methods, if an artist wanted to create a natural forest they would have to manually create each tree (if they wanted them to be unique!), including geometry and textures.

However, this is a lot of work, when really the artist probably just wants there to be "A forest of this density, in this area, with this shape, maybe with a path through it."

What these tools allow, is for artists to simply provide parameters for the latter, as opposed to having to manually create and place things themselves. Saving time.

In terms of system resources, in the former situation, all the assets would have to be stored on disk, which could take a lot of memory. So in order to save memory, you might have to repeat assests like trees, but this is boring.

However, with this tool, the game just needs the artist-defined parameters, along with maybe some kind of definition of a tree which can be used to make many different tree-variants. Saving on disk-space.

However, this probably has a higher run-time cost than the manual method, as the game has to procedurally generate all the assets, and then render them. As opposed to just rendering what is provided from the disk. (However, less data needs to be streamed from disk, reducing that bottleneck and freeing up resources there.)
 

Glix

Member
pretty much, yes (edit, I am not actually familiar with speedtree, so maybe no?).

think of it this way, elite has 100 billion planets could you imagine how long it would take to program each planet by hand?

the same with NMS's 18 quintillion.

KK thanks.

I'm trying not to be too judgey about this. In my mind

Proc generation = hidden random caves/lairs in Skyrim (all basically same-ish)

Handmade = Shrines in Zelda

But I am willing to accept that in some circumstances it is super efficient and can complement a great game.
 

Moosichu

Member
Are you perhaps responding to the wrong message? I did not state that everything is not procedurally generated I simply stated that there would be differences if people took pictures. Not major differences but differences nonetheless. Like the cars or crowds in GTA.

You are wrong though. There wouldn't be any differences in foliage. Zilch.
 

danowat

Banned
KK thanks.

I'm trying not to be too judgey about this. In my mind

Proc generation = hidden random caves/lairs in Skyrim (all basically same-ish)

Handmade = Shrines in Zelda

But I am willing to accept that in some circumstances it is super efficient and can complement a great game.

You're getting confused with random generated maps using block assets, like those you get in roguelikes, with proc gen.
 

Moosichu

Member
KK thanks.

I'm trying not to be too judgey about this. In my mind

Proc generation = hidden random caves/lairs in Skyrim (all basically same-ish)

Handmade = Shrines in Zelda

But I am willing to accept that in some circumstances it is super efficient and can complement a great game.

I wouldn't be surprised is artists used proc-gen tools for populating the world of BoTW.
 
I like how on page 22, in the fly-through they insist on displaying the sound to show that even sound is procedurally generated according to the assets and mesehes generated.
 

Toni

Member
Engine of the year.

No. actualy engine of the forever.

It loads an entire open world map bigger than The Witcher 3's Velen, in probably 9 seconds. With rock solid framerates while outputting graphics equivalent to ultra settings on PC, on a closed box with limited hardware.

Horizon on base PS4 looks like The Witcher 3 pre-downgrade.

I shit you not.
 
No. actualy engine of the forever.

It loads an entire open world map bigger than The Witcher 3's Velen, in probably 9 seconds. With rock solid framerates while outputting graphics equivalent to ultra settings on PC games these days. on a closed box with limited hardware.

Horizon on base PS4 looks like The Witcher 3 pre-downgrade.

I shit you not.

2oAqBOr.gif


This is a poor hill to die on.
 
No. actualy engine of the forever.

It loads an entire open world map bigger than The Witcher 3's Velen, in probably 9 seconds. With rock solid framerates while outputting graphics equivalent to ultra settings on PC games these days. on a closed box with limited hardware.

I was amazed how the draw distances in this game (especially on the PS4 PRO) are really very extended for a console game.
 

Moosichu

Member
This is a good read. The game is a good example of how the Procedural generation is changing the video game development. We can look forward to similar tech in big AAA games likes Star Citizen as well.

The power point has presenter notes as well, giving a lot more context to the slide. :)
 
So does this mean the game doesn't store a game map? I would think the map would have to be procedurally generated or hand-crafted with no ability to be in-between.

Or does this just mean they procedurally generated a map, saved it, then touched it up. As it exists now on the game disc/file is a map like any other game.

Procedural means as long as the starting values are the same the result will also be the same.
 

vivekTO

Member
I was amazed how the draw distances in this game (especially on the PS4 PRO) are really very extended for a console game.

I can't figure out the Video from the presentation , its not working for me. Could you help on that , i will update it in the OP.
 

Moosichu

Member
I see. Sorry if I'm being dim, but I take it "smaller code" equals "less load"? Therefore this is actually freeing up system resources?

Just to follow up even more, the slides have the follwing:

We started off with the more traditional procedural workflow of using procedural definitions and off-line bakes place our hand-authored assets from our procedural definitions.
We had already experimented a bit with this idea during Shadowfall, but the bake times were a big problem and iteration was slow.

Looking for a solution, we tried moving our procedural placement OVER TO GPU, in an effort to reduce bake times.

When we were looking at the placement speed of our first GPU prototype, we quickly realized that this was the way to go.
In fact, the results were looking so good, that we decided to try to make the system fully REALTIME, as this would not only remove bakes altogether, but it would also help reduce the amount of data we would have to store, and stream from disk.

So, it does use more computing power, but saves on storage data and disk streaming.
 
I can't figure out the Video from the presentation , its not working for me. Could you help on that , i will update it in the OP.

You need to download the powerpoint presentation and download and isntall PowerPoint Viewer to,open it and read it. Then go to the pages I mentioned or any black page that appears and click the play button.
 

LilZippa

Member
So does this mean the game doesn't store a game map? I would think the map would have to be procedurally generated or hand-crafted with no ability to be in-between.

Or does this just mean they procedurally generated a map, saved it, then touched it up. As it exists now on the game disc/file is a map like any other game.

If you seed a generator then you get the same thing each time.
 

Mubrik

Member
Sl3WjYS.png


Hehe, I guess they liked our screenshot threads :D

lmao. came in here to post this.

man, i can barely understand what i'm seeing in those slides, but from the tools one in particular it seems it was a risky move rebuilding the engine and all during production (one that paid off),

anyone at GG reading this, grab the guys that worked on that shit and buy them a huge bottle of vodka, they deserve it!. GG GG
 

vivekTO

Member
You need to download the powerpoint presentation and download and isntall PowerPoint Viewer to,open it and read it. Then go to the pages I mentioned or any black page that appears and click the play button.

For me its Static :p can't figured out to save it anyhow.

This is a poor hill to die on.

People are discussing Horizon tech here , if they are using hyperbole than let it be.There opinion, may be they are delusional.
and if you want to discuss on the tech , please feel free to do so.

Regarding this "This is a poor hill to die on" , you can create your own Thread about this
Not a nice words to use. I always like when people just the reaction comment instead of the Topic in hand.
 

shandy706

Member
No. actualy engine of the forever.

It loads an entire open world map bigger than The Witcher 3's Velen, in probably 9 seconds. With rock solid framerates while outputting graphics equivalent to ultra settings on PC, on a closed box with limited hardware.

Horizon on base PS4 looks like The Witcher 3 pre-downgrade.

I shit you not.

Haha, woah now, calm down LOL...the game is gorgeous, but it doesn't push textures or LOD close to "Ultra" on what a high end PC would be capable of. I'd love to have this game on my Rig, but my PS4 will do.

It certainly is purty and nice to look at though.
 
Top Bottom