We've heard this same claim so many times before. Procedurally generating each atom? Come on, this is just a marketing gimmick. These never turn out to be decent games, usually it's just running around a world with randomly appearing enemies who all act the same and you're bored within 10 minutes. I'd be more optimistic if this exact thing hadn't been claimed before every year for the last 20 with no results.
First, I want to say how amazingly cool I think "No Man's Sky" looks -- as an enjoyer of scifi content and indie games, I will certainly be among the first in line to buy/play it when it comes out.
That said, I agree with this criticism of "procedural content" completely. A while ago I created a little toy WebGL tech demo featuring "a vast virtual 3D universe containing billions of unique stars and planets" (it's open-source on github if anyone's interested) -- so I encountered this issue first-hand (and saw it come up many times elsewhere in the past, of course).
IMO, the fundamental problem lies in a subtle distinction between "infinite variation" vs. "infinite novelty". Most procedural generation amounts to not much more than random noise passed through a variety of hand-tuned filters and/or custom code. In most cases it's how you tune that filtering and custom logic that leads to any amount of interesting results, not the underlying random noise generator (from which the too-good-to-be-true claim of "infinite variety" is derived).
I don't think it's completely impossible to derive interesting variation from a combination of mathematics and randomness, but I think the degree to which we find something interesting or "novel" is at least somewhat related to the amount of computational complexity put into its derivation (at least, that's my intuition on the matter).
I've encountered the problem as well (2d side scrolling game with procedurally generated infinite universe, enemies, etc). It was boring.
I think theproblem is with Kolmogorov complexity. No matter how much variation there's in your game if the algorithm to create it is simple people will quickly develop intuition about what to expect, and get bored.
The only game that I've seen doing procedural generation right is Dwarf Fortress, because it's too complex to model it in your brain as you play.
I'd argue that Minecraft has it down pretty well too. You get an intuition about what to expect, but then there's always that little thing here or there that keeps it interesting.
I think grammars are a way to formalize this intuition of novelty (NB: grammars can be use to generate as well as to parse). Noise is like a stream of random symbols from an alphabet - anything is possible; most all of it boring. A grammar carves out a subset of the possible streams, only those with certain relationships between the symbols.
Regular expressions are a simple kind of grammar (aka "Regular Grammars") - you can see generation as choices made for explicit choice operators ("|"), and choices of whether to loop ("∗") or continue. Although limited, they can be surprisingly expressive. Context Free Grammars allow you to generate things that have the basic structure of xml, json and source code. And you can have Turing Equivalent grammars that, in describing a subset, can compute anything.
Of course, grammars aren't restricted to the Chomsky Hierarchy, but can include any way of describing the subset of streams (or generating an instance of them) - for example, the recent HN travesty/markov generators.
You can search for the right grammar (machine learning), by taking a corpus of instances of what you want to generate, and test out your grammar, by seeing how well it compresses them. This shows whether it is capturing regularities within them and between them - the rules or laws that are the essence of a grammar. In doing this, you should also take into account the size of the grammar itself: consider the extremes of one grammar that factors out deep regularities; versus one that is simply a choice between each instance, verbatim (this compresses real well: it just needs to encode which instance. i.e. log2(1/N) bits, e.g. 8 bits to encode which of 256 different instances, assuming uniform probability). Accounting for the complexity of the grammar avoids this.
This comes down to the length of the description of the instances + the length of the description of the grammar.
( "Model" is probably a better term than "grammar", since it doesn't imply a sequence. )
Re: your last point, there's no theoretical reason that an extremely accurate model must be computationally expensive to execute (e.g. flocking behaviour was simpler than expected; and Occam's Razor gives us hope) - but it might well be computationally expensive to discover in the first place. e.g. require many great leaps of intuition by humans. (Even if it's obvious in hindsight.)
The trailer looks a little repetitive to me - esp the yellow underwater plants; and the trees seem to be random blocks of foliage - like minecraft trees or github icons, just rendered nicer. I don't want to criticize, as they probably have some cool innovations hidden away in there.
What I'd like is gameplay-significant procedural generation. e.g. trees you can climb, so their shape affects where you can reach and how. Terrain - mountains, streams - naturally has this effect. Then, developers have to make it work right! So far, only the minecraft/dwarf fortress genres do this. Because generation is fundamental to their concept, their gameplay, and why people like the games, I suspect that that genre is where we'll eventually get the hi-res breakthroughs - whereas for every other genre, including "No Man's Sky", if their gameplay isn't 100% dependent on generation, whenever there's a conflict between the two, generation will lose (crunch time! what must be finished to ship?). Servant of two masters etc.
FWIW I still think FarCry2 (not 3) creates the most immersive world so far. Hopefully something even better will be done for nextgen consoles/PCs, as opposed to just higher resolution and higher gamification.
One of the difficulties in creating novelty is in creating the "relationships between symbols" as you say.
Take a sword in an RPG for example. It can be a weapon, it can be sold, it can be used as a crutch for a wounded person. It can be used to signal to others by reflecting the sunlight off it. Each of these aspects add new systems of gameplay.
but these additional relationships don't seem like things you can predict without presupposing the existence of the whole sentient world. And we've said nothing about where the sword came from in the first place!
I agree with you on gameplay-significant procedural generation. After playing and loving Noctis and Frontier: Elite II, I wanted to create an arty space exploration game where you took control of a mysterious alien being who roamed the universe in search of "knowledge". You'd do this by exploring and scanning features of the universe with different tools that took skill to use.
For example, to scan a mountain range, you'd have to land several probes around it, maybe in difficult conditions. "Knowledge" would be things like "tallest mountain range","largest ocean","oxygen atmosphere","binary system with habitable planets". I thought this was a good way of having distinct goals, but remaining open ended and unpredictable. "biggest","tallest" etc being things which are easy to specify but could be anywhere in the universe.
I thought you could fly a "living ship" a bit like Moia in Farscape. This ship would develop according to how much knowledge you accumulated, along with resources you extract from the universe.
My goal was to make the procedural world itself as something of concern for the player, to encourage the player to actually get out there into the depths. Maybe I'll start on it someday, I don't know. Everyone seems to be making space games at the moment!
That doesn't really explain why some models are interesting and some aren't. Novelty is more than just an arbitrary pattern. Randomly generating models wouldn't really be interesting PG, at least I don't think.
It's true. Speaking as a gamedev, more people should really study how Notch was able to make procedural gen so interesting to look at. It's rather involved, and took a lot of testing to get right. And even that starts to get boring after awhile.
This lot being Brits of the right age it blatantly follows from the tradition of Elite and Exile, two old 8-bit titles where everything was procedurally generated in order to fit into the machines of the era.
Everybody knows Elite, so I won't say much about that. But Exile really was a spectacular game for the time. Actually, I didn't realise it was procedurally generated - which probably explains why I spent many hours as a teen trying to work out how on earth they made it all fit in ~20k of RAM.
I don't think that the word atom here refer to the usual physical object (which shouldn't be called that way btw), but rather to indivisible objects (ie. the original meaning of atom) in the game data model, iow every actors (passive or active).
Yeah I think it has potential but the abuse of the term procedural for blatant marketing purposes is a bit overboard. Procedural down to the "atom" yet when you watch the trailer, you see the same old trees, rocks, 2-jet engine spaceships and an extremely Earth-like world..
The only thing that looked procedural are the seemingly random colors. Everything else looks like they modeled a bunch of 3D assets.
Maybe they're procedurally generating the terrain like Minecraft but they're definitely building the world from pre-modeled assets.
No, my point is that your complaint above doesn't make sense.
Trees are trees: if anything, the fact that you've correctly identified 'the same old trees' shows that the designer has done a good job in this respect.