• 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

epmode

Member
Wait, so this means I'm getting different placement of shrubs, trees, and rocks from other players?

In this case, the procedural generation was used by the level designers to quickly, er, generate areas of the game. It's much faster than hand designing every square inch of the map. As far as I know, Zero Dawn doesn't do any significant procedural generation at runtime.

And yeah, Star Citizen is being developed with similar tools. It's the only way they'll be able to map out all of those planets.
 

Pancake Mix

Copied someone else's pancake recipe
I plan to get this for my OG PS4 later. I hope it's still up to the task.

Guerrilla truly are amazing.
 
I plan to get this for my OG PS4 later. I hope it's still up to the task.

Guerrilla truly are amazing.

Have you seen SunhiLegend's gifs of the game? They're all from the standard PS4

IP28y6R.gif


hqxfsR2.gif


V1YDYKF.gif


jfrBjlw.gif


g2ERUTC.gif
 

poodaddy

Member
Extremely interesting read, thanks for the thread OP. I had no idea that procedurally generated games could actually support amazing art directions and still look like they have quite a lot of personality. The technology for this stuff is just mind blowing, and it seems like artists are using more sophisticated tools than ever to substantiate their imagination to the limits of an engine. Really interesting stuff.
 

Moosichu

Member
In this case, the procedural generation was used by the level designers to quickly, er, generate areas of the game. It's much faster than hand designing every square inch of the map. As far as I know, Zero Dawn doesn't do any significant procedural generation at runtime.

And yeah, Star Citizen is being developed with similar tools. It's the only way they'll be able to map out all of those planets.

You're correct, except the bolded. The procedural generation does happen at run time but will always produce the same results. It doesn't need to be "baked". Saving on-disc data.
 

Trace

Banned
GOAT engine. I hope Sony consolidates engines at some point, they have a ton of good engines but none of them have the complete package. Horizon facial animation for instance doesn't touch Naughty Dog's work.
 

tuxfool

Banned
You're correct, except the bolded. The procedural generation does happen at run time but will always produce the same results. It doesn't need to be "baked". Saving on-disc data.

In this case it is baked, What is procedural is object placement, which is interpreted off texture height/distribution maps. It isn't generating new tree models or foliage textures. However where procedural enters into the picture is the ruleset it uses to populate and paint objects. Such as:

You had the ground foliage tool, on the dirt it populated with grass, but once the brush moved on top of the rocks the same layer instead populated it with moss. On the same distribution texture it would all be a black blob, but because the layer underneath was a rock it can tell what type of texture/object should go on the layer above.
 

Moosichu

Member
In this case it is baked, What is procedural is object placement, which is interpreted off texture height/distribution maps. It isn't generating new tree models or foliage textures. However where procedural enters into the picture is the ruleset it uses to populate and paint objects. Such as:

You had the ground foliage tool, on the dirt it populated with grass, but once the brush moved on top of the rocks the same layer instead populated it with moss. On the same distribution texture it would all be a black blob, but because the layer underneath was a rock it can tell what type of texture/object should go on the layer above.

Yeah, all the objects are fixed in place and "baked" in that sense. The analogy I was trying to make was the difference between a real-time and baked Global Illumination system, where you don't actually change any of the parameters at run time.

Just clarifying that I do understand and agree with you.
 

Shin-Ra

Junior Member
It'd be great to see quick-start environment-generation tools like this make it into Dreams at some point.
 

vivekTO

Member
I wonder if the day/night cycle is screwed up though? Dusk/Dawn don't last long and the shift to night and day is jarring cause it happens so quickly. I was hoping they would address this in a patch.

I think that is done to prevent the Dull moments in between the Transition of Lighting.
That's why we don't have dark nights as there is no lights in the Open environment except for the towns and tribal city.

The videos in the slide that show it in action.

https://www.youtube.com/watch?v=t258ePDlxtQ


Thanks.
 

Razgreez

Member
I read all those posts before posting and still don't get it. Is it something that the devs used to build the world more easily or will the world have random assets here and there every time you play?

There are conflicting posts:

After reading a little I think I agree with PLASTICA-MAN.

Watch the 6 videos in the ppt presentation and you will get it.

I think the confusion arises due to some misunderstanding regarding deterministic values. However, deterministic random number generators are used extensively in most procedural generation engines as it allows for "controlled randomicity"
 
Imagine if Horizon had a map editor or a modkit to generate quests.
This is not impossible since many games had that on consoles like Far Cry.
Now imagine the ease to create maps and new quests for the game to increase its length like many rpgs.
 

wapplew

Member
I was going to praise GG environment artists, now I want to thank programmer too for awesome tightly crafted environments.
Also, I think Cryengine also have something similar where you "brush" random generate asset to fill the scene.
 

Apt101

Member
Man, GG are wizards (this goes back to their temporal reprojection which I thought was a genius move). Between them, Naughty Dog, and the ICE team, Sony has some muscle for years to come.
 

vivekTO

Member
Imagine if Horizon had a map editor or a modkit to generate quests.
This is not impossible since many games had that on consoles like Far Cry.
Now imagine the ease to create maps and new quests for the game to increase its length like many rpgs.

If only its on PC :p
 
Who knew making video game is so easy. :p

I feel the pain of the programmers who coded this feature to make such ease possible to generate landscapes.
I also feel sorry for the programmers Cory Barlog forced to code Krato's axe to be thrown and kept on a tree or rock then continuing the whole game with punches or other weapons, then when you reach the middle of the game and you want to call it back, it doesn't just magically appear, but instead you can see it coming from where you left it especially if you are on a higher grounds. :/

Programmers are hidden soldiers behind the successs of many games.
 

Dabi

Member
Man, GG are wizards (this goes back to their temporal reprojection which I thought was a genius move). Between them, Naughty Dog, and the ICE team, Sony has some muscle for years to come.

Aren't the ICE team and ND one and the same?
 

Putty

Member
Knew it...i just knew it! There was no way this was hand crafted in the traditional sense...just because of the scene complexity and of course game world size...

GG ...wizards indeed...
 

Fredrik

Member
Ah, so that's why some medicinal herbs spawns under a rock and Aloy wasn't able to harvest it.
Sounds like randomized item placement, not procedurally generated terrain like we see in the OP. Odd that they didn't have a check if there are any terrain at the same spot when placing the herbs though.
 

mrklaw

MrArseFace
flipping through it makes me wonder how this stuff can easily lower the burden on hardware while still pushing for such detail heavy graphics

no wonder the game has a stable frame rate

I don't think it does. It might be *more* of a burden on the hardware because the GPU has to generate the landscape in realtime as you move around. If that was predefined geometry etc that was loaded in, it would be less effort because you just have to draw it.

The benefits would seem to be memory saving - less memory needed for storing level data because you generate it on the fly, which can mean faster loading times and/or more memory free for other things like textures and models
 

EvB

Member
Sounds like randomized item placement, not procedurally generated terrain like we see in the OP. Odd that they didn't have a check if there are any terrain at the same spot when placing the herbs though.

Usually with vegetation placement that is done algorithmically, it will he random in the first case, but then the artists work on the areas that need it the most. Any changes that have been manually made then go back into the math and are then present within the next procedural run.

Do it will have been "random" but the randomness is based upon known variables , such as altitude , angle of the ground, proximity to water and those types of things. All to ensure a realistic distribution of plants and plant types
 
From the presentation, it just seems to be a faster editor tool to automate placement of authored assets while retaining some artist agency with its placement. Editors have been doing this (albeit mostly for just foliage) since the early ue3 days.
We really need some form of videogame-tech literacy thread so people dont get carried away by buzzwords such as "procedural".
 

Wollan

Member
Hopefully they can put out sequel in less than 2.5 years due to these tools.
Hopefully they will take their time. Spring 2020 or later, I don't want to see it sooner. ;)
I would think the project and mental model changes a lot between 2.x years and a 3 year plan.

Let's not have another Killzone 3 (while Good, it wasn't quite at the level of KZ2).
 

Vintage

Member
From the presentation, it just seems to be a faster editor tool to automate placement of authored assets while retaining some artist agency with its placement. Editors have been doing this (albeit mostly for just foliage) since the early ue3 days.
We really need some form of videogame-tech literacy thread so people dont get carried away by buzzwords such as "procedural".

Yes, but this procedural generation is done real-time on gpu instead of in editor on developers pc. I'm pretty sure other games also do it, but maybe on cpu instead of gpu (I may be wrong).

I wonder, what's the advantage of this? Is generating placement info realtime faster than just loading it from disc? I imagine geometry doesn't take that much data.
 

vivekTO

Member
Hopefully they will take their time. Spring 2020, I don't want to see it sooner. ;)
I would think the project and mental model changes a lot between 2.x years and a 3 year plan.

I think it will be the same case like Tlou , it will release on ps4 and then remastered on ps5
so i think its safe to say this game will be out in 2019 holiday/2020 march and then Ps5 version 2020 fall.

Yes, but this procedural generation is done real-time on gpu instead of in editor on developers pc. I'm pretty sure other games also do it, but maybe on cpu instead of gpu (I may be wrong).

I wonder, what's the advantage of this? Is generating placement info realtime faster than just loading it from disc? I imagine geometry doesn't take that much data.

Maybe , and i am just making a guess. they don't need to load the whole map in one go. the just generate the map around you for the first time and as you play they will generate the rest of the map. that's why it is so much quicker to load the maps and saving it.
 
I think the confusion arises due to some misunderstanding regarding deterministic values. However, deterministic random number generators are used extensively in most procedural generation engines as it allows for "controlled randomicity"

Dude, you are completely off the mark. Reading your posts in this thread it sounds to me like you aren't a software developer, so I can see how this could get confusing, especially since random numbers on computers aren't random at all but merely pretend to be. Let me explain:

A computer needs a seed to start creating a series of "random" numbers, and this seed is usually derived from the current time (down to a ridiculously exact moment). However, if you provide the seed manually you will always get the same series of random numbers with absolutely no variation. It doesn't matter which computer you're running this on, the numbers will always be the same, with no exceptions

I can pretty much guarantee you that Guerilla uses a manually created seed for Horizon's procedurally created content, which means that anything created using this will always be in the same exact spot no matter what. There is no variation, not even for the smallest details, because there's no need for there to be. The placement of the tiniest little tuft of grass is determined by a specific seed, and when you play the game on your PS4 using that same seed, that very same tuft of grass will be "randomly" generated so that it's in the exact same spot.

The only thing that would feel random with this kind of approach is the drawing of these assets on the terrain in the level editor. Once the assets are drawn they will never change unless the procedural generation algorithm is modified or the seed is changed.

In other words, if two players take a screenshot of the same location, they will see every tree, bush, rock and tuft of grass in the same spot. There is no variation, however small.

Edit: To clarify, I'm mostly responding to your earlier posts in the thread and not specifically to the one I quoted. I just quoted it since it was the last one.
 
Top Bottom