
No Man’s Sky – Procedural Content - Impossible
http://3dgamedevblog.com/wordpress/?p=836
======
stcredzero
I say this as someone currently developing a vast space game using procedural
generation: The danger with procedural generation is "remix boredom." The user
can feel, "Oh, this is just a remixed variation of the same stuff."

The reason why we don't feel that way about the real world, is because the
real world doesn't just have "remix procedural." You have to have some player-
significant emergent effects coming out of the procedural generation. You see
this in Minecraft. You even see it in the 1st generation of the original Elite
game. The player's interest in your procedural world is directly dependent on
how deep these emergent effects are. (So the emergent effects can be shallow
or deep, with the corresponding amount of interest from the user.) (Which is
why my procedural generated world primarily exists to support a procedural
generated technology tree.)

~~~
biot
One could take the Dwarf Fortress mechanism of generating a complete history
and take it to the extreme: simulate the formation of entire solar systems
based on seed values that effect randomly generated planetary masses (and
resulting gravity), atmosphere, tectonic events, ice ages, warming periods
that carve valleys/lakes/rivers into the landscape, biological events
influencing the creation of life based on the planet's properties and the
landscape, insect swarms that ravage an area, and so on. Simulate meteor
impacts which might destroy life, visits from alien species, etc. Then
simulate the effects of any emergent properties on the landscape. So instead
of:

    
    
      p(tree_goes_here) > random()
    

And then randomly placing various tree models according to the RNG output,
your random events produce a story. You should be able to look at a series of
mountains and trace it back to tectonic events, then if one mountain has a
patch of trees missing, you should be able to see that there were various
events that either removed the trees (eg: some local civilization) or a
Tunguska-like meteor strike cleared a path and made the soil infertile for
growing more trees.

If one did this, such a game would have value not only from the game itself
but it might open up a whole subculture of archaeologists who go from planet
to planet studying the evidence to piece together the events that led to the
planet's present state.

Otherwise, you're right. Each world would end up being different much in the
same way that listening to static noise is different each time you hear it.

~~~
fenomas
Playing devil's advocate, I think this is a dangerous road to go down. I'm in
my second year of making a procedural game, and I think the existential danger
involved is that of making a game that's more interesting to develop than it
is to play.

That is, it's more challenging and rewarding _to me_ to simulate tectonic
movement than it is to generate terrain from random noise and tweak it until
it feels okay. But the important question is, is the game noticeably more
interesting either way? Do mountains affect gameplay in a way that gets more
compelling if they're placed according to tectonic movement?

There are certainly games where the answer is yes, but there are a hell of a
lot more where it isn't. And if your game is one of the latter, then
complicated simulations are a dangerous trap - not only do you waste time, you
also hinder yourself by making your game's content harder to tune (in that you
can't just, say, make the mountains 30% higher if mountain height is
determined by a complicated process).

~~~
pluma
Introversion (creators of Prison Architect, Uplink, Darwinia and Defcon) made
this mistake with their cancelled game "Subversion". They started creating
elaborate mechanisms and procedurally generated cities only to realize that
the entire intricate "bank heist" missions could basically be solved by
shooting people and taking their keys.

IOW, they tried so hard to make the game realistic that the intended gameplay
was no longer enforceable. Setting up all these intricate puzzles and writing
the procedural generators was fun, but actually playing the game was immensely
dull unless you went out of your way not to take the path of least resistance.

They ended up using some of the lessons learned in Prison Architect by making
the "level design" the actual gameplay. There's actually a very interesting
presentation of how Subversion was intended to be played versus how it would
have actually been played somewhere on YouTube.

As a counterpoint, RimWorld is a game that's largely based on procedurally
generated worlds with heavy inspiration from Dwarf Fortress. But the entire
premise of the game is that you build a colony which the game tries to
actively challenge to create an interesting story for you.

~~~
stcredzero
_IOW, they tried so hard to make the game realistic that the intended gameplay
was no longer enforceable_

Realism is sometimes a misguided goal. Games are media, just like movies. What
you want most of the time isn't realism, but an impression of realism. Robert
Crumb and his son sometimes do "realistic" portraits, but in the biographical
movie about Crumb, he reveals that his "realistic" portraits actually contain
very subtle elements of caricature, to draw the user's attention to the most
interesting aspects of the subject's face.

Contrast this with films of war vs. actual war. Head-cam movies of modern
soldiers in combat look like people in battle gear taking cover while yelling
at each other about people you can't see or barely see, then calling in air
support. There's nothing cinematic or easily parseable by the viewer. If
you're on a modern battlefield, and you're posing for the cameras in a nicely
composed scene laid out by the "Rule of Three" you're likely to get shot in
the very next second.

Documentaries and action films are very different things. Both of those are
very different from documentary-styled fictional films. Analogies to
sandboxes, various other game genres, and sandboxy games apply.

------
danso
It speaks to the clusterfuck that NMS became that this detailed blog post is
written by a _fan_ reverse-engineering the code/content, rather than someone
from Hello Games doing a post-mortem on Gamasutra who can speak with more
authority. I'm not knocking the author's attempt at reverse-engineering -- in
fact, it's awesome on a geek level because reverse-engineering is an
additional technical hoop to understanding a game's core. It's just that when
a game has as much hype and sales as NMS does, usually the creators would be
the ones to do a technical post about how clever they were.

But the mention of the diplodocus is just one example of how much of a
clusterfuck NMS is: The diplodocus and other beautiful dinosaurs were part of
the E3 demo that was presented to fans as NMS's procedural code in action.
And, as the author notes, it doesn't appear to be something that actually was
procedurally generated, but was hand-designed to make the E3 demo footage look
good (and, to Hello Games's shame, they used this footage as the official
advertising for NMS, even after release).

Here's one of the canonical parodies of the shady shit Hello Games pulled:
[https://www.youtube.com/watch?v=RvAwB7ogkik](https://www.youtube.com/watch?v=RvAwB7ogkik)

edit: grammar fixes

~~~
gambiting
As someone who works in the games industry - what is shown at E3 usually
doesn't even exist in the game yet, and is usually directed by hand, unless
the release of the game is like a month away(in which case, the game was
already sent to submission some time before). In some cases whole features
only exist as a design draft, but are still in the E3 demo because that's what
we want to achieve in the end. So showing "procedural content" that was
assembled by hand is not really dishonest if that's what you want your
procedural code to generate after you are done with the game. It's a bit like
showing a new model of a car, but cars shown at car shows are almost always
assembled by hand, because the factories are not set up to build them yet -
which means that once the actual assembly process kicks in, the final product
might look different than what you saw at a car show. Doesn't change the fact
that the model shown at a car show is what the manufacturer wants to achieve.

~~~
supercoder
The 14 year olds on Reddit have really been struggling with this fact

~~~
ClassyJacket
No, it's a perfectly valid criticism. Saying "well we intended to make that!"
isn't an excuse for not delivering what you advertised.

~~~
gambiting
I don't know if it is. If something is shown on the box or TV ad, but isn't
actually in the game, then yeah, fair enough. But a presentation at E3, which
is basically saying "hey, this is the game we are working on" is not really an
advertisment.

It's the same as watching early trailers of any film - some scenes are
removed, some changed, sometimes dialogue is re-recorded, effects added, and
the final film looks differently to the trailer. It's not false advertising -
it's just that either technical or political reasons get in the way.

~~~
shepardrtc
You're absolutely correct for 99% of games, but for this one they really
talked it up at E3 that that was exactly how the game was going to be. They
repeatedly and pointedly said over and over again that everything you saw was
legit and randomly generated. I'm almost 100% positive they even said
specifically that it wasn't scripted.

------
kabdib
Douglas Crockford, in Atari days, remarked on some procedurally generated
content:

"Never once the same. Never twice very much different."

The Diablo 2 / 3 franchises do procedural dungeon generation, as does
Spelunky. They have written rather thoughtful articles on some of their
techniques.

[http://tinysubversions.com/spelunkyGen/](http://tinysubversions.com/spelunkyGen/)

(Hmmm, can't find anything concrete about Diablo. I'll keep looking).

~~~
wodenokoto
Why do you write "Diable 2/3"? Diablo 1 was also procedurally created levels,
based around a set of constraints that allowed the story to unfold.

~~~
kabdib
You're right, D1 was procedural as well.

------
boardwaalk
Unfortunately Hello Games didn't go in the most interesting direction I think
procedural generation has to offer, which is to, however it is accomplished,
create content that is actually interesting to the human player. We're way too
smart to not recognize the random planets and creatures and so on as samey and
pointless rather then something to be discovered and learned and overcome.

Also, using procedural as a "force multiplier" for content developers is
really interesting: Letting them make snippets or "mad libs" and have
algorithms mix and match and adjust under constraints that make the content
make sense (i.e. buildings where the rooms have purpose and their
interconnections make sense).

I know this has been explored in some games, particularly rogue-likes like
Spelunky and Rogue Legacy.

What about shipping a trained neural network with your game taught with human-
made levels to create even more levels? How neat would that be?

I just hope procedural generation doesn't get a bad name and is explored even
more.

~~~
flashman
I think procedural generation needs an AI editor: a second layer that assesses
the generated forms and selects only the most interesting and pleasing ones.
This could be informed by real-world animal body ratios, and subsequently
trained by humans ('silly', 'cool', 'scary' etc) until it mostly stops making
awkward shit. And a dictionary of 'what creature types has this player already
seen' might go some way to alleviating boredom over the span of dozens of
hours (planet types need this too - many people were annoyed at never finding
an archetypal paradise planet, myself included).

A third layer would allow players to rate cool creatures so that they show up
in others' games. No Man's Sky already has the "scan creatures and upload
discoveries" mechanic; with a rating system the good ones would have an
increased chance of showing up in someone else's game.

Procedural generation obviously has legs, but developers need to move beyond
the 'infinite monkeys at infinite typewriters' stage, and artificially ensure
player enjoyment is less at the mercy of randomness.

------
chamakits
A bit of an aside, but WOW. I am amazed both by the dedication and skill
needed to reverse the format and protocol of some undocumented binary files
without even having access to the code that processes it, and on top of that,
the dedication of building a UI to help along.

I know it's not the main topic of discussion, but sometimes I find it
overwhelming and frustrating to analyze things that I have full access to the
codebase, and it's really quite humbling to see this level of success and
dedication.

Really impressive work.

~~~
coldpie
It's tough, but very fun and rewarding. I dipped my toes into it a while ago
and reverse-engineered the data formats for an NES game[1], including their
data compression format. You start out knowing nothing, then start slowly
putting the pieces together as you figure out what each bit of code does, what
this piece of memory holds, how the tile and level map data is stored...
Obviously a 6502 hooked up to the NES graphics chip is much simpler than a
modern graphically intense video game, but it was a fun and intense experience
all the same :) Give it a try sometime.

[1]
[https://gitlab.com/mcmapper/mcmapper/blob/master/main.c](https://gitlab.com/mcmapper/mcmapper/blob/master/main.c)

------
grenoire
It's interesting how the level of variety of the assets does not translate
directly to the game. I do actually suspect that there might be some sort of
prefabrication going on with the creatures, or maybe some bug with the
generation code is simply not using all the available asset combinations.

~~~
stcredzero
I'm willing to bet a small amount that the leader of the "No Man's Sky"
project either "lost the battle" with his subordinates or was unable to fully
get his vision across to his team. To _meaningfully_ create an interesting
procedurally generated world, you need to approach certain things one step
removed. For example: Game Balance. If you're not going just bolt a simple
hand-crafted game on top of your procedurally generated world, you might want
factors that affect game balance to be significantly affected by the
procedural generation, which means you can't directly game balance the game
anymore. Instead, you have to indirectly balance the game.

~~~
oelmekki
I thought balance was a multiplayer thing (it's the only domain I've heard
about it, but I'm a casual gamer).

I guess balance in single player is about difficulty? Or are there other
aspects of single player games that are considered balance?

~~~
stcredzero
_I thought balance was a multiplayer thing_

No Man's Sky was supposed to be multiplayer, originally. There can also be a
notion of balance in single player games. For example, in a 4X game or an RTS
in single player mode, you can still have issues of balance with regards to
the relative effectiveness of ECM versus weapons. Missiles vs. beams. Fighters
vs. small units.

~~~
jheriko
It was never meant to be multiplayer in real time afaik... just that you would
see the impact of other players in the world... however confused the marketing
became

~~~
EpicEng
That is not true. It was said that you could run into other players and
interact with them in real time, but that it would be exceedingly rare due to
the size of the galaxy. Well, happened on day 1 and, nope, not true.

Now it was never supposed to have a large focus on multiplayer, but they also
mentioned things like a galactic economy, big space battles, a faction
system... all BS.

~~~
xamuel
>you could run into other players ... it would be exceedingly rare

This should've tripped everyone's BS detectors. Why would a studio do the huge
work to add a multiplayer mode if it would be so rarely seen?

~~~
yankyou
It _did_ trip a lot of BS detectors.

The sound was drowned out by the overwhelmingly non-technical consumers of the
game's PR. It's the modern day version of selling snake oil.

Technology progresses, but human nature doesn't.

~~~
EpicEng
And much of the expectant player base didn't want to hear anything negative.
Reddit was a complete echo chamber, praising the devs in every post. I suppose
it's still an echo chamber, but the conversation has... drifted the other way.

------
jheriko
It's a shame there is nothing much about animation. The rest is pretty much
the simplest possible approach you could take, and nothing special at all...
but the animation seems genuinely interesting.

~~~
Keyframe
Procedural animation is tough as fuck (to get right). I would love to read
more about it too.

~~~
jheriko
there is an interesting, but quite old, paper here from the spore guys

[http://chrishecker.com/images/c/cb/Sporeanim-
siggraph08.pdf](http://chrishecker.com/images/c/cb/Sporeanim-siggraph08.pdf)

------
edem
This is in stark contrast with Dwarf Fortress which has literally no graphics
but indefinitely more rich in content. My favorite statement about No Man's
Sky is: "One feet deep ocean".

~~~
mentalpiracy
This may be pedantic, but I wouldn't say DF is _content_ rich exactly. Dwarf
Fortress (and similar games, like Banished and RimWorld) shine because you can
execute an infinitely different number of stories/scenarios/playthroughs
without changing any the fundamental systems of the game. The content there is
emergent from the actual gritty gameplay mechanics (rather than the reverse,
where the mechanics exist solely to propel an overarching plot).

~~~
adamrezich
In my opinion, it's not so much about the "content" as much as it is about the
number of interacting systems that cause unexpected and emergent gameplay
situations.

One of my first Dwarf Fortress runs had me embarking to a cold area in the
middle of winter. The lake had frozen over and that's where my caravan landed.
As I was still learning the basics of the game, I forgot to make beds for my
dwarves. They fell asleep on the iced-over lake, and while they were sleeping,
spring came, the lake thawed, and seven very surprised dwarves suddenly found
themselves struggling to swim. I think one or two died and I laughed my ass
off and started over.

In No Man's Sky, this one time, I went to a planet and saw some cool stuff and
mined some minerals and made some stuff... oh wait, that was every planet,
every time. Once I found a neat spaceship! Then a few miles later I found
another one. Then I realized that the distribution of procedurally-generated
content meant that there was a random, abandoned spaceship every few dozen
miles. On every planet. That's around the time when I stopped playing No Man's
Sky.

Obviously the two games are extremely dissimilar in many ways, but this just
goes to show how "shallow" the procedural elements of NMS end up being. Yes,
the technical details of the underlying systems are super cool to explore from
a programming standpoint... but design-wise, the procedural systems don't
really lend themselves to interesting or emergent gameplay. There's like three
different AI routines for fauna, or something, the different planetary hazards
all amount to different bars with different flavor text that affect gameplay
in the exact same ways, etc. etc.

The bottom line is, if your procedurally-generated world has enough
interacting systems that leads to interesting and emergent gameplay, you'll
have your players recounting stories of interesting, unique things that
happened to them for years to come. If your procedural generation systems just
generate different visuals for the exact same gameplay, it will get very old,
very fast.

Not every game with procedural generation has to be Dwarf Fortress, of
course... but if you're going to hang your game's proverbial hat more or less
entirely on its procedural generation systems and sell it for sixty bucks a
copy, you should probably make sure that all that work you put into your
procedural generation code is going to do more to your game than generate
different skins of paint on top of the same mundane gameplay.

~~~
Rapzid
> In my opinion, it's not so much about the "content" as much as it is about
> the number of interacting systems...

Right on. I'll give a concrete example from one of the most immersive games I
recall, Ultima VII. Now, this may or may not have been intended as a
possibility by the developers, but I think it's important to consider this
could have been emergent gameplay non the less. Why is this important? Because
it should serve to inspire the pursuit of future emergent gameplay of course!

So here it is -> The Bank Robbery.

The Setup:

Lord British will resurrect dead people you bring to him(you can put dead
people in your sack!). NPC's have daily schedules(go to work, the pub, home to
sleep, etc), and resurrected NPC's will find their way back into their
schedule. The bank/mint in Britain has a banker name Cynthia. She has the keys
to all the locked doors and chests that have tones of gold bars and coins..
There are powerful guards in lobby.

What you do:

Grab powder kegs from the castle and bring them to the lobby. Ignite the kegs
to kill the guards and Cynthia. Loot her corpse to get the keys, then place
the corps in a party mates bag. Now start making your way through the mint
with the keys while locking the doors behind you. More guards will arrive and
be blocked by you locking the doors. Loot every room and exit the back of the
mint. Flee town until the heat is off. Return and take Cynthia to Lord British
asking him to resurrect her. Cynthia will go home and return to her routine.
Go back to the mint the next day and Cynthia will be at work! Sell her all the
gold bars and nuggets you stole for coin. Profit :D

Systems interacting in unforeseen ways is totally the way to go with this
stuff. Ultima VII has given me a lot of inspiration for creating a multi-
resolution whole-world AI system that can make more of these sorts of stories
possible. One day perhaps.

------
partycoder
If you like procedurally generated stuff, a good exercise is to render a basic
Lindermayer system, or L-system for short. You can render some trees and
stuff. Very didactic and entertaining.

------
Cozumel
I think maybe assets are related to regions of space, at first I got no snow
or water planets, then I got loads of them, purely anecdotal though, I don't
know one way or the other.

------
achr2
This game would be lauded as one of the greats if each player was given a home
planet where they could configure the flora and fauna as they see fit.

------
EugeneOZ
It will not save this extremely boring game. It will not return trust to the
team after lie about multiplayer. Only useful lesson NMS gave us - generated
content is pretty boring.

I hope there will be games for future generations of computers, maybe quantum
computers, where world will be generated on the molecular level. Maybe very
small world, but it will be interesting just to increase time speed and bring
some action there - just watching of micro-world evolution will be
interesting.

~~~
placeybordeaux
> generated content is pretty boring.

Why not let the lesson be that space content is pretty boring, or that
resource management is boring. Just because they did it poorly doesn't mean
that the type of content they made was the problem.

Procedurally generated content has been around for a long time and has been
done waaaaay better than NMS did it. There are plenty of rougelikes that have
interesting procedurally generated content.

~~~
EugeneOZ
I also don't understand why your second sentence is controversial to first.
I'm not talking about space content, but about generated content in general.

Could you please provide an example of the game where generated content is
interesting enough to explore? Where it's not just decoration.

~~~
placeybordeaux
Of the console based rouguelikes my personal favorite is probably cataclysm
DDA. It is a survival zombie apocalypse game. One of the most common features
of the world is small to medium towns that have a handful of building types
consistently available, various wrecked cars all over the place and a wide
variety of building layouts, building types, street layouts, loot on bodies
and distrobution/strength of zombies. Not to mention all of the other special
places it has. That being said I am obviously bias as I was a contributor to
the game.

It seems like the emergent story in dwarf fortress continually draws people in
(you might find this a stretch, but I'd argue that the game was explicitly
made to procedurally generate a story).

It sounds like Ultima Ratio Regum is aiming to have deep procedural content.

------
t0mst0n
The huge hype. Awful game but 3d and rendering game is great!

------
compute_me
I've been saying from day one of the "debacle" (release day) that it would
likely lead to AWESOME mods if the engine was opened to the community for
tweaking and the integration with more rich game mechanics with a good chance
of something big like counter strike (originally a half-life mod) emerging...
A universe builder builder so to say. I'd love that!

