Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
No Man’s Sky – Procedural Content (3dgamedevblog.com)
236 points by Impossible on Oct 17, 2016 | hide | past | favorite | 160 comments


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.)


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.


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).


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.


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.


Games are simplified, stylized reality e.g. chess is war. So are some fps: using real locations as maps isn't as much fun as carefully balanced maps, taking sightlines into account, chokepoints, with interesting and complex strengths and vulnerabilities of positions within each section, and all sections close to each other.

Similar to fiction: it's more dramatic and makes more sense than ordinary life.

A simulation is akin to a tech demo, which can be impressive, but usually isn't a game.

Switching gears, I'm interested in how you've done tectonics. I was thinking of doing it as a magma fluid simulation (very slow, only one timestep every few hundred frames) and using convection to move and rotate plates.... though it turns out, the cause of tectonic movement isn't nearly that well understood. My concern is that using a fixed direction/speed will eventually mess up the world. If tectonics really are governed by convection, movement must change at the end of that magma cycle. Maybe a bit over the top! How are you doing tectonics?

One (expensive) solution to the 30% mountain height problem is monte carlo: rerun the simulation til it fits the parameters. What's nice is that you don't distort the generation probabilities, apart from the explicit constraint. Of course, not plausible for very unlikely constraints, esp. combinations thereof!

If you just want the end-produce (not an ongoing, evolving world like mine), some people have used a more declarative approach. e.g. Instead of generating rivers by waterflow and erosion over a terrain, you can generate a hierarchy of rivers and tributaries first, work out the watersheds implied, then generate the terrain based on that constraint.


I'm not doing any tectonics. Sorry if I was unclear, I meant it would be an interesting challenge, but in my game it doesn't make sense to worry about, because one doesn't interact with the world at a scale where you notice how the mountains are laid out.

At a more fundamental level though, doing evolutionary-type stuff in a procedural world is a problem I'm wrestling with. I'm running an infinite world that's generated one chunk at a time, like Minecraft, so you can't, say, "start by generating all the rivers, and then...". Obviously this means everything has to be deterministic, but also it means that whatever macro-sized calculations I do need to be re-done for each chunk, or else cached somehow, etc.

I've looked for articles on such things but not had much luck. Maybe others here have approaches they've tried?


I think you might be able to solve this with certain level of laziness, at a cost that you would sometimes need to generate more than just a single chunk.

I.e. once you encounter a river, you will then generate the whole river, from source, to sink (either you have a sea, or some other already existing, but undiscovered river?)

You would then need to account for 3 states of your world: a) blank canvas b) pre-generated but yet unexplored terain c) already explored terain

The world in state b) would then be the one both cached and available for re-calculating :-)

If I were you I would read up on pen&paper sandbox designs, i.e. Stars Without Number [1] relies on lots of random tables to generate a sector of space with different factions/tech-levels/ecosystems, combined with rules for faction interaction. This gives it a nice "I am just a small ship in a big universe" feel :) You can generate example sector [2]

[1] http://www.drivethrurpg.com/product/86467/Stars-Without-Numb... [2] http://swn.emichron.com/


Perhaps you could try a multi-resolution chunk system - LoD for chunks.

For large scale features like rivers, generate those at coarse resolution on very large chunks. When generating the detailed chunks, take input from the coarser resolution levels which overlap the same spatial region, and add fine scale detail.

A couple of levels of detail might suffice in practice, but if you want to go crazy you can more or less make as many as you like: As long as each level is downscaled by at least some constant factor of the more detailed level below it, you'll only have O(log(N)) overhead for O(N) chunks which is small even for very large N.

Compare mipmapping, which is more or less the opposite of this process.


> Do mountains affect gameplay in a way that gets more compelling if they're placed according to tectonic movement?

One of the supposed problems with No Man's Sky is planetary isotropy (uniformity at a global scale, variation only on a local level). They're all single biomes and once you've seen the local area, you might as well find another planet. But you're right: I don't know that people would be any more impressed with planets if they were more 'realistic' in regards to geomorphology.


imo its not the rules of reality that specifically matter in a game; its that there are rules at all, and that they're interesting ones. Emulating reality is just an "easy" way to achieve that. Games are inherently a challenge to learn, understand, and best an instantiated mini-universe.

when the universe follows simply-governed rules, then of course there's little for the player to do; he wins by understanding, and understanding simple things is, well, simple.

And ofc, the internal rules can very well be trivial to implement. Its the rules to from the players viewpoint that matter. And vice versa; the engine could be infinitely complex, but if all it does is spawn the same mountain repeatedly, then there's not much left once the player bests the first.


To add to my own comment a bit, fundamentally I think this boils down to randomness vs. hidden state. It feels very "emergent" for a game to have lots of subtly interconnected systems, but if they depend on factors the player doesn't know about, or depend in ways the player can't possibly intuit, then they're indistinguishable from randomness, so you might as well have flipped a coin.

For me the canonical example of this is Nethack, which is full of such things - monsters that are slightly more dangerous during a (real-life) full moon, and so on. One can argue that NH is a special case, with its rich tradition of players reading the source code as they play, but in general I think it's an anti-pattern for game developers to beware.


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.

I think the key comes down to basics: Games are media. One of the key attributes of great media is a focus on the audience experience. So if you're going to spend a lot of effort on procedural generation, then this procedural generation had better be "paying rent" commensurate to the resources taken up by it.

If your game is about tactical improvisation and combat, then the procedural generation should be directly contributing to enhancing those experiences; therefore tweak the statistical properties of procedurally generated tactically useful things to enhance the user experience. Likewise if your game is about survival, or managing resources, or what have you.

If your game is about viewing scenery, then good luck to you. People will get "remix boredom." Furthermore, if you've sunk all this energy into producing "interesting" to view scenery, then people are let down by your tactics and combat -- well go figure!


You can create an AI that never makes mistakes and always defeats the player but the point of the AI is to make the game fun not impossible to win.


Awhile back, I wrote a library[1] to wrap a hex grid around a sphere (technically, there are 12 pentagons so it isn't a true hex grid, but close enough) and perturbed the elevation via perlin noise and then wrote some cellular automata-type vegetation simulations.

Several types of plants would grow, and randomly catch on fire and burn half the planet to the ground, and so on. I had a primitive water cycle, too; water flows to low points or gets absorbed by plants or evaporates. When plants burn, they release their moisture into the air, which rains back down on the ground. It's interesting how small changes to the cellular automata logic can cause major changes in emergent behavior.

That was a very fun experience and I could imagine it being the basis of a game. And being a finite world (unlike Minecraft's practically infinite expanse) it's computationally tractable to simulate a complete ecosystem that's constantly changing; even the parts you haven't explored yet.

[1] https://wiki.haskell.org/IcoGrid


You've given me flashbacks to SimEarth, which I spend a good deal of time playing with as a kid. It was a weird "game", but a modern version I could play on current hardware would be a lot of fun, I think.


One could take the Dwarf Fortress mechanism of generating a complete history and take it to the extreme

I'm going to do something like this, but for one specific class of enemies: The dire "it's time to do your best to survive" encounter. Specifically, I'm going to see if I can't use genetic algorithms to evolve "kill the crap out of the player" combat groups. You can't write a fitness function for fun or player involvement. But you can write a fitness function for "kill the crap out of a player" -- even equalized for level. So the trick is to hand-balance the timing/opportunities for a player to encounter the dire situation.

I'm going to let players post-mortem the genetic algorithm tuned AIs and ship/item configurations. So instead of archaeologists, there would be hackers and xenobiologists.


Random brainstorm: Introduce a Dark Souls type async-community aspect: Players can come across the wrecks/corpses of other players and are rewarded somehow for figuring out what happened and why; their analysis becomes feedback/evaluation function output.


Do you mean that the detective player's analysis would be, say, an input to the fitness functions of a genetic algorithm? That sounds super interesting. Would you care to elaborate on what form the analysis would take, in order to be both parsable by the system and writable by a player?

I have an idea for a fairly simple possibly: The user just declares that certain features of the scene are interesting and relevant, maybe by "taking a sample", so that the algorithm can boost the weight of inputs that have a relationship to those features. But, I suspect that you have something much more interesting in mind...


So the question is how to complete the feedback loop. The Adversary needs something causally coupled to its victory or defeat that it can use to improve its monsters.

I think that the most straightforward way to do this is to have the Archaeologist player indicate features of the combatants or the scenario that led to victory/defeat, like you said. The Adversary then uses those to guide its optimizer. For example, you might indicate something like "The Monster won because: Monster had high armor, Player had low jump height, this platform in the middle of the room". The system then knows to put those features together more often.

Hmm, now that I think about it, there's actually a metagame issue here: Players will tend to support each other by trashing the AI. It'd be more effective to set players against each other somehow. Or we need a better way to reward players.

So what we want to do is tie the monster's success to the player's success. A simple answer is "I want this": The player gets to choose something to take from the monster's ship and add to their own. The Adversary might be able to use that somehow, but there's a little bit of a mismatch there because the player's ship and style will be different than the monster's, and a feature might be selected to shore up something about the player's ship rather than to point out a useful bit of the monster.

Maybe have the investigator player redo the fight with tweaks. The player's job might be to change the monster until it loses a rematch. Could do this by having the player take over the past player's ship and fight "in simulation", or could just do it automatically. Player gets a better reward the less they have to change the enemy to win, which encourages efficient changes. The Adversary then changes the monster in the opposite direction and sends it back out.

Could split things up into teams and set players against each other on a grand scale? The player's job is to find battlefields where their team's monsters lost and then optimize the allied monsters. You never actually see another player - might do something asymmetric here, with a dimensional boundary or something that prevents players from interacting with other players except via salvaged guncam footage from allied monsters.


Maybe have the investigator player redo the fight with tweaks.

Now that I've had some hours to think, this'd actually work better in a single-player format: The player can only advance by tweaking enemies until they can defeat them, knowing that the next time they encounter that enemy it'll be stronger in exactly the wrong way. Then it becomes a complex game of managing how the enemies grow and balancing tactical concerns ("how do I beat this one enemy") versus strategic concerns ("I could beat this one by decrementing its dex, but then it'd be unstoppable in the future.").

EDIT: this feels a little bit like "warning forever" but maybe with more depth and a clearer focus?


Or we need a better way to reward players.

So what we want to do is tie the monster's success to the player's success.

One thing I've played with is to let Players take "contracts" to build security drone warships. The players will get paid a small royalty, plus a sizeable bonus for combat success.

To keep players from trying to rig the system in their favor too easily, the AI scripting language can be processed by the genetic algorithm. The players will still be able to exploit the system by nefarious means, but they will have to create bots that are tough on the surface, and hope that not too many others will discover and also exploit their backdoors. (I would love it if players started doing this!)


That's pretty neat! Reminds me a little bit of the old terrarium game that microsoft used to demonstrate .NET, or maybe of a version of spore that doesn't suck, or even a little bit of the nature of open-source: build something, send it out into the world, see it grow and develop from where you started it.

Genius nefarious builds could definitely be flavored as a reward, and I agree that that's one of the big draws of this system: if you manage to build something that's good enough to survive and spread but still flawed in a way that you can exploit, kudos to you! Reward: you get to break into anything that's guarded by your creations. :P Just good luck building something that you can exploit that not enough other people can for it to not succeed.

(I think I'd love to check this game out when it's further along, BTW. Do you have a news list I could throw an email address at?)


Actually, I have ship corpses right now. All I have to do is to make them persistent past the player "logging out." Of course, this seems rife for griefing.


"Reassembly" does this well-- you build ships with prices for every component and roam the galaxy, fighting a variety of built-in and player-created enemy ships.

Getting destroyed encourages you to try new tactics to counter the superior designs and build more efficiently.


Coincidentally, this is exactly how Minds from Iain M. Banks's Culture books spend much of their free time: https://en.m.wikipedia.org/w/index.php?title=Mind_(The_Cultu...


Have you ever heard of 'space engine'[0]? It is not a game, more something like static a simulation. But the generation of random planets works kind of like you just described. There are no rocks or living objects on the surface (yet) but I think the generated geography is pretty and rich in features.

[0]: http://en.spaceengine.org/


> remix boredom

A sentiment captured perfectly by: https://www.penny-arcade.com/comic/2016/08/17/infinite-and-i...


Right, but if that gooey puke colored special snowflake was the only source of a power coupling compatible with a laser amplifier that could work with your rare Blatovian power generator that only has the 0.025 inertial penalty and enables your new fighter's super hit and run tactic, then you would totally give a bunch of !@$%&#.

EDIT: That sounds snide but I'm actually being sincere. I'm planning on including items in my game from a procedurally generated tech tree with location-dependent item availability.


Right, but if that gooey puke colored special snowflake was the only source of a power coupling compatible with a laser amplifier that could work with your rare Blatovian power generator that only has the 0.025 inertial penalty and enables your new fighter's super hit and run tactic, then you would totally give a bunch of !@$%&#.

No, I still don't. Games to me are about interesting choices. I don't care about rare "loot", or about finding yet another key to open this lock, or about improving some score by 0.35 angstroms. I care about "do I castle kingside or queenside? Because if I castle queenside then my rook will be opposite his queen and blah blah blah but if I castle kingside then I won't have to worry about a quick a5 strike with the potential to undermine my b pawn." These choices (with chess only as an example) are interesting because they have serious consequences that can be reasonably foreseen but are not totally obvious.

It's sometimes the case that the space between reasonably foreseeable and totally obvious is a very fine narrow one, but then your game might be lacking in depth. Adding procedural puke special snowflake enemies doesn't add any more depth than "rare Blatovian power generators" does, unless the tradeoff over using a "Snargglemoofian power generator" is that your ship can no longer turn left or something.


Star wars galaxies was a game with some rather complex economic models that truly did effect your outcome in battle. For example only certain players in the galaxy (it was an MMO) had the skills to craft the very best items. They could do that because they knew where to mine or buy the very best materials (randomly generated in those areas).

So I as a budding star ship pilot had to seek out the best vendors in order to buy the right equipment to competitive.

There was a lot more to it but it was the complexity of the emergent gameplay that gave the psuedo randomness of some aspects a real role, and drove your personal story.

"I managed to find a vendor who has access to large amounts of high grade titanium, and he crafted me this engine with 10kj/s faster recharge time, which allowed me to escape that bounty hunter.." was a story that emerged and happened to me in the game, for example.

In some ways the randomness was abstracted away enough to not be obvious, and I think that helped sell the feeling.


For example only certain players in the galaxy (it was an MMO) had the skills to craft the very best items. They could do that because they knew where to mine or buy the very best materials (randomly generated in those areas).

I am going to have a procedurally generated tech tree in my MMO. I'll only know statistically that certain powerful combinations in crafting are possible, but even as the dev, I won't know precisely where they will be, what they look like, or exactly how to get the components for them.


No, I still don't. Games to me are about interesting choices. I don't care about rare "loot", or about finding yet another key to open this lock, or about improving some score by 0.35 angstroms.

That's totally not what I was getting at. It's more like, "do I castle kingside or queenside? Because if I castle queenside then my rook will be opposite his queen...?" The low inertial penalty is probably the rare (actually statistically, as opposed to "rare") quality of that particular item -- and it would still come with some other form of penalty. (Like a really PITA set of compatibility requirements and high fragility.)

unless the tradeoff over using a "Snargglemoofian power generator" is that your ship can no longer turn left or something.

I hadn't thought of "your ship can't turn left." It might be a great tradeoff for something that would otherwise be an overpowered weapon, combined with another kind of movement penalty. I have thought of things like a shield upgrade that gives you really high resists across 120 degrees of arc, but which isn't configurable. "Your ship can't turn left" might be a really good penalty for a high resist/partial arc shield augment that mostly covers your right side.

EDIT: An even better idea: you get high resists over a 120 degree arc, but then you also get a susceptibility penalty over the rest!


My point about chess is that the benefits and tradeoffs of a particular move are not always immediately quantifiable. I think too many computer games have this habit of presenting a whole bunch of quantitative information to the player and then letting them go nuts with comparisons. In a lot of these cases, it comes down to the player deciding "I prefer to maximize armor at the cost of cold resistance because none of the enemies in this area use cold attacks" and then all equipment choices are no longer meaningful, they're merely a continuation of that original choice which in itself was fairly obvious once the player had access to the data.

With chess, on the other hand, the choice of 1. d4 vs 1. e4 is a huge one with TONS of implications, none of which are immediately obvious at a glance, but which are so rich and diverse that you have players literally identifying themselves as "d4 players" or "e4 players".

I hate to keep leaning on chess examples but they're the easiest since almost everybody knows about chess. I'd have slipped in a Battle Line example but almost nobody knows about that!


I think this is a really good example of "Calculation" vs "Choice", as defined in this Extra Credits video.

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

TL;DW

"Calculations are decisions based solely on reason, with a clear correct answer." That'd be the decision to chose armour instead of cold resistance.

"Choice is overcoming internal conflict. Without conflict, there is no choice, only decisions." This actually is a good example for the "only turn left" gun, as there's a conflict between maneuverability vs firepower, which are rather incomparable.


So basically, you want the challenge of dealing with highly nonlinear, even chaotic, emergent effects. I'm all about such emergent effects. Hell, my project is called "Emergence Vector." The specific point is to see how many emergence fostering features you can workably combine into one massively multiplayer online game. The point being: that I find most MMOs insulting to my intelligence. Their power seems to come more from variable schedule of reward than from any genuinely intellectually interesting complexity. I really want to change that.


How does making rare item combinations available based on willingness to grind them out become intellectually complex? The original Star Wars MMO had some cool crafting mechanics, but I don't know enough about them to really explain.

Eve Online has emergent gameplay but most of that is space politics and metagaming - almost despite the game itself rather than because of it.

Heck, vanilla minecraft has incredibly complex outcomes from basic rules - vis a vis redstone and automation and so on.

I've played hella grindy Korean MMOs, they were just a case of spend x time get y thing. No real challenge, just a willingness to keep trying until complete. I'd strongly suggest highly complex systems restrict player innovation and emergence, in a way simpler rulesets do not.


How does making rare item combinations available based on willingness to grind them out become intellectually complex?

One ethos of my game is going to to be "work smarter, not harder." The kind of player who feels entitled to succeed just because they've spent enough time mindlessly grinding resources, so feels entitled to have awesome stuff dropped -- I hope those people spend their time elsewhere.

The player will be able to find very pointed capabilities that come with big disadvantages. The point will be to improvise around those weaknesses while exploiting contextual advantages. Others may choose to exploit in-game scripting and manufacturing capabilities to automate the search for certain technology combinations, but this will entail maintaining installations and the combat force to defend them.


Sounds like a really cool project. Can you share what your tech stack look like? (Assuming you've gotten beyond conceptual planning.)


I'm writing the game servers in Golang, with the client in Javascript in browsers. I have a cluster of server processes that currently runs on the same AWS EC2 instance, but which could easily run on different instances. I currently have the procedurally generated universe up. If you are interested, I can let you log on. It is very much a work in progress. (My email is in my HN user profile.)


Remember randomness doesn't add content. It just spreads it out. You still have to create good base content yourself.

A lot of games basically have useless 2%-5% modifiers. Nobody cares about the difference between 0.025 and 0.027 inertial penalty. It just wastes the time of the player checking their loot. In the real world a weapon or armor is either effective or useless. Nobody takes down tanks with a glock.

I would recommend you to have several types of items even if that means the items have fixed statistics instead of having one item type with flexible statistics.


Nobody cares about the difference between 0.025 and 0.027 inertial penalty.

I was thinking more along the lines of the difference between 0.025 and 2.5. There's also stacking.

I would recommend you to have several types of items even if that means the items have fixed statistics instead of having one item type with flexible statistics.

Darn. I was going to have just one type of item, called "Object." Everything would be a variation on that, and inherit behavior from it.

But seriously, I am going to have very specific functions for a set catalogue of items. The procedural generation is all about their potential for interaction when incorporated into a crafted item.


You are right sir. Playing in procedurally generated world is like going for a walk in the forest. Trees you see are unique and rich in detail but since they have no use for you you don't care about how different they are.

If you ware a primitive man from long ago when those different kinds of trees were unique resources to craft the specific things that your existence depends on then you'd notice the difference between them and you'd care.


That kind of assumes that trees can't be resources for other kinds of value than tooling. For example, aesthetic appreciation, healing contact with nature, etc. These things are subjective - I certainly don't necessarily seek forests for those exact reasons, but they, and others, do exist. Pretty much none of these values is extractable from a fecking random polygon.


Joerg Sprave of the "Slingshot Channel" might be interested in how the grain is formed in the crooks of certain branches, because those might make for good slingshots. Most of us wouldn't even notice.


So, how do you create benefits that stack like that, without making the game too easy? With a procedural generator, it's difficult to determine what accomplishments will be hard and what will be easy.

All those components you mentioned could appear right near the users spawn point, or they could all be impossibly hard to gather, due to procedural randomness.


So, how do you create benefits that stack like that, without making the game too easy? With a procedural generator, it's difficult to determine what accomplishments will be hard and what will be easy.

There are geometrical properties that let me tune how hard certain combinations will be to find, statistically.

EDIT: Also, almost all benefits will come with some kind of penalty or incompatibility. It will be impossible to build a perfect ship that does everything well. Instead, you will be able to easily build a ship that does one very narrow thing rather well, one thing badly, but generally sucks otherwise. Also, you should be able to make something that does 2 things above average, one thing non-sucky, but otherwise sucks.


I was going to suggest some form of automated testing during development and monte-carlo simulation of games to run a batch of "10,000 playthroughs a night", paired with a cost-function to "evaluate" the strength of a character-build (it can be as simple as "total damage" or "total DPS") and see if some outlier(s?) appear.


That's probably a good idea.

But you can also pre-empt a lot of problems by designing the system around physical limitations. Many games have done that for a long time. E.g. I believe Terminus included things like mass for components, so adding all kinds of extras had a cost in fuel usage and maneuverability. So if you did build a ship loaded with the most powerful weapons, you could, but it'd also be a slow, hard to control, big target.

Mass, volume, energy expenditure, waste heat - there are lots of factors you can add to make it hard to exploit. Of course, you need to tune those factors, but it makes it less likely for really extreme effects.


Yes, but even well designed games (from a gameplay pov) can have unexpectedly powerfull builds, like what happened with Starcraft 2 and the genetic-algorithm build order[0]. So simulating builds/gameplays can give you another edge at detecting strange/powerful scenarios.

I also think you should rely on player feedback and community to spot this kind of things, but that could become time consuming if you're a lone developer.

[0] http://lbrandy.com/blog/2010/11/using-genetic-algorithms-to-...


Absolutely - you can't get away without testing, and I agree simulation is probably a necessity given the complexity no matter how much the design tries to counter it.


I totally want players to have extremely powerful effects -- but coupled with really big penalties.


Yeah, that makes sense. Powerful is fun, but not if it becomes unbeatable.


If you go too far into that direction you might end up with the same problem as "Inside a star filled sky".

If you have three attack upgrades you are very powerful but only have one live. If you die one of your upgrades will be replaced with a health upgrade ruining your build. Therefore if you want a three attack upgrade build you need to make sure that you don't die. The only reliable way is to just have two range upgrades and a bounce upgrade. Most enemies can't get into your range but it's still possible to get hit by being overwhelmed from too many enemies. If you die you get a health upgrade which also happens to solve this weakness of the build. It turns out if you want to get good at the game this is the only viable build despite there being thousands of possible upgrade combinations.


Even random lock/key puzzles become boring quickly. Procedural tools is a great way of amplifying artist creativity, but don't generate fun games on their own. Not until we solve "hard" AI, at least. Once we do, I expect that will be what they do to keep us pets happy.


Borderlands is another good example of this. Procedurally generated guns, but they fall into buckets of terrible->ok->good->amazing, and the particular uniqueness of that weapon becomes stale after a few minutes. I enjoyed about the game until about halfway through until it started turning into a slog. (Although this is probably a matter of MMO mechanics not meshing well with FPS).


Definitely agree. Binding of Isaac does procedural generation great because of its mass amount of items. Seeing the "same room" and enemies doesn't bother most people since there will be something different gameplay-wise when encountering that again and again.


Same thing with Spelunky. Its impressive how much emergent behavior you can get by putting some mario-style platforming on top of the procedural generation.


Speaking of procedurally generated platformers, there's Cloudberry Kingdom.

I can see how you could experience remix boredom in Cloudberry Kingdom. However, every so often it produces novel gameplay that actually feels new. And it's so good at tuning the difficulty to gradually escalate that it manages to achieve flow quite effectively.


Cloudberry Kingdom actually did feel like it created new stages every single time. It did a great job of mixing up gameplay just by tossing in little modifiers every few stages.

Unfortunately, it's fairly rare for people to beat that game. The difficulty becomes basically absurd right up to level 320. At that point you essentially have to turn on all the powerups because there's no way you can get through without them.


If you liked spelunky, then try rouge legacy. I liked it a lot.


I played through that game so many times that I got to New Game + + and all enemies were minibosses. Remix boredom set in at that point though, since with the majority of enemies gone things got a little samey.


Beyond New Game + + it's just about finding the bosses with your invisible ninja and teleporting with your favorite class to defeat them.


I definitely know what you mean by remix boredom. Can you elaborate a bit on specific instances of what you mean by "player-significant emergent effects" for example in Minecraft?


For minecraft: finding a cave or a trench that results in easy mining of "valuable" resources is often pretty exciting, especially for new players. No Man's Sky sort of just had everything everywhere so special features didn't seem so special.


I'll instead answer you in regards to the original Elite. In the original elite, there was a simple emergent effect with regards to highly profitable but short "milk run" trade routes. Pretty shallow. (I may add to this answer later.)


And if it wasn't for them, you couldn't improve your ship and be able to explore the galaxies.


Could you expand on the (1) player-significant (2) emergent effects in Minecraft and in Elite?

One review damned NMS for lack of player-significant effects, but appreciated the prettiness of some of the results.

There's a property I enjoy, of a kind of global dependence (though mediated locally), instead of isolated randomness. e.g. instead of trees appearing randomly, they are dependent on rain, sunlight, latitude, altitude, soil coarseness and nutrients. And they are dependent on other trees.

This is surely includes under "emergent", but that term seems unnecessarily broad to me.

Rainfall in turn depends on local and wider topography (mountains, evaporation water sources), and wind patterns... which in turn depend on local topography and latitude etc.

Even a river's path is affected by its watershed (and rainfull etc), and all the preceding terrain, especially steepness (higher velocity carries more sediment, which abrasively erodes even faster) and soil finer-grained erodes more than coarser). River change course from time to time due to erosion.

It seems iteration is the only way to capture these dependent effects, but its computationally very expensive. NMS already has very long planet-generation times ("travelling"), so it's probably not feasible for that style of game.

Earth is a computer after all.


One thing that springs to mind for me in vanilla Minecraft: encountering a cool cave. It might have a mob spawner in there, or a lava pool maybe with some diamonds that will require careful mining, or an "old" mineshaft. The emergence here I guess is that the cave feels "real", with lava in the depths and coal/iron higher up as rewards. I imagine that caves originally were an emergent factor from the world generation, then got their own hard coded cave-specific generation paths added to make something much more playable. Much like rogue-like games that have hard-coded rooms in them that are randomly spread through the dungeon, the caves have hard-coded set-pieces that can join together in new and interesting ways.

Elite is really primitive compared to today's games, but it had a huge galaxy to explore (even if all the systems were essentially the same 1-star-and-planet), then eventually you find out there are 8 such galaxies. It was fun to find good trade routes between the worlds, risk going to a slightly more lawless planet to beef up your credits or ranking. The emergence here would be the fact that the economic type of a planet was dependent on its seed value, and together with other nearby generated planets created "trade routes". These routes were not coded into the game, they emerge as a property of the way the procedural generation works out.

I think the problem with making so much procedural is that it misses the point that the game should be fun to play. What's the game-play difference in having random trees or dependent on sunlight and rain? In the end, they are just a bunch of trees :-P


> I think the problem with making so much procedural is that it misses the point that the game should be fun to play. What's the game-play difference in having random trees or dependent on sunlight and rain? In the end, they are just a bunch of trees :-P

Because when things "make sense," players pick up on it and use it to their advantage (and feel very clever). Given a procgen survival game where you are in a desert, trees might only grow near water, so if you are thirsty, you might look for vegetation.


>The reason why we don't feel that way about the real world, is because the real world doesn't just have "remix procedural."

Coming from a non-game developer this may be completely out of reason, but it occurs to me, what if you could determine the fit of creatures and evolve them in accordance with their environment? Perhaps not a lot of generations would be required to get a plausible, not completely random-looking scenario. Granted, we might still be talking about thousands of iterations, and so this would be too computationally demanding for a game design such as No Man’s Sky. But perhaps for a pre-computed (vast) world it would be viable.


The issue is mainly generating the different creatures automatically in a way that doesn't look repetitive.


I remember reading that in the original Elite they artificially limited the procedural content. They could have had more but worried that people would get bored or just see it for what it was.


It was the number of galaxies. Braben and Bell wanted a huge number (something like 2^48) but AcornSoft thought it'd make it too obvious that the content was generated, so they settled for "just" 8.


I think it's really about the appropriate scale and density. It doesn't matter if there's only 4 or 5 distinct areas of you only need to visit those 4 or 5 to have a complete experience. That's really what minecraft got right. You have a fun game even if you never leave the first biome. You don't have to necessarily move around enough that you get bored.

NMS, otoh forces you to go from planet to nearly identical planet.


Procedural generation still depends on how many game elements are designed by hand. If you have X game elements and add a layer of random noise, given enough measurements you will arrive back at X game elements. It's kind of like adding a random delay to an algorithm that is vulnerable to timing side-channel attacks.


Naive question: one of the things that makes a game like Dark Souls so strong is how tightly-integrated the map is. It feels crafted. How difficult would it be to procedurally create something like that (I assume it would be very)?


Something I wish they would have done with minecraft: let players structure across the world influence each other games.

Players are already constructing crazy structures in the game. Why not implement that in the game for everyone?


Because of the huge logistical challenge of filtering out all the swastika penises spelling out "kill urself"

Minecraft has a very young demographic, and griefing is a common pastime among bored kids hungry for attention and relevance.


If you can't enforce against it, then as an MMO dev, the transcendent move is to co-opt it!

Everything offensive can be flagged, and if it's a legit flag, then that item or location will become "infected" by one of the most hated, but most profitable to kill, enemies in the game. But my plan is to rig the spawning of player installations, such that players will only be able to do this by their own creations. So young people making penises in my game? Inevitable and co-opted to be a mechanic!


> the transcendent move is to co-opt it!

…which is a large logistical challenge that most game devs can't fit into their game or don't want to spend resources dealing with. Specifically "if it's a legit flag" is a requirement that implies a large team of people working around the clock.

But I completely agree with you - figuring out a way of working with the grain would be so much better. I would love to see more attempts toward it.


Also. I think young people find penis and swastika funny. This is mostly us grown up who start finding that offensive for "reasons".


You could have had a webpage were users would have upvoted structures : o


What do you think about using Gaussian distribution for random generation to make it possible to discover rare species (or whatever you generate randomly)? Could a Gaussian distribution "spice things up"?


Well if you are going to do that you may as well give them a reward every 10th planet they reach.


> The danger with procedural generation is "remix boredom." The user can feel, "Oh, this is just a remixed variation of the same stuff."

aka no man's sky.


> The danger with procedural generation is "remix boredom."

Surely AI could solve that problem...oh wait, there is no such thing yet.


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

edit: grammar fixes


The utterly stupid thing is that the hype is what killed the game. Of course, then I guess they wouldn't have been able to charge AAA price for it and get away with it :/

I'm a fan of the space sim / massive universe concept and pretty much ignored most of the NMS hype, so I had no expectations going in. What I found when I did go in was an immediately recognizable game that I'd describe as Elite + Noctis with modern graphics. Which is fine, really. Particularly, anyone that loved playing Noctis would love playing NMS.

The problem is that price tag and the hype though. The game just doesn't have the staying power. I'd feel a bit better about the price tag if the studio communicated what they're doing more. I don't mind paying that price for a game in and of itself - games are expensive to make and I kinda hate the race-to-the-bottom that gives us things like freemium. However at this point, NMS feels abandoned by the studio and that's disappointing.

Jim Sterling did two excellent videos exploring the gaming hype culture and what everyone's roles were in this mess (the studio, Sony, the games press at large and the gaming public). They're worth watching in order for anyone that hasn't seen them:

Sky Hype (The Jimquisition): https://www.youtube.com/watch?v=l_HEI8ZfDbM&t=847s

A Video Discussing Whether Or Not Hello Games Lied About No Man's Sky (The Jimquisition): https://www.youtube.com/watch?v=w2qKAX_QaoI&t=72s


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.


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


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


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.


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.


It's almost surreal reading this. I've been mostly out of the gaming scene for years, just sporadically playing some Kingdom Hearts and Final Fantasy.

I just recently got a gift card and bought myself the PS4. Got No Man's Sky for an OK price, and had absolutely no expectations since I haven't followed game news whatsoever.

The result is I really love NMS. Its pace is perfect for me (I usually hate FPS, or first person games in general). It's about exploration and seeing new things and getting that sense of freedom to travel wherever you want in a massive space. I think they do that very well.

Yet, it's apparently a "clusterfuck". So weird.

To be critical, there is mostly two things that is somewhat of an annoyance, and that is too limited inventory space, making inventory management a too large part of the game, and the apparent lack of variety in buildings and structures. I say apparent, as I haven't explored that much of it yet, but until now all spacestations have had the same entrance interior, which is a bit boring. So yes, some things are repetitive.

But, still a good game. If anyone has skipped it due to negative reviews based on hype, please take another look and make up your own mind. Maybe your expectations will be more appropriate now.


I was like you, and at first I enjoyed it a bit. But then I realized that the game only has one goal: get resources to fly to the next planet. That's it. Nothing else. And then you start to see how 90% of your time is simply getting resources to the fly to the next planet to get resources to fly to the next planet to get resources to fly to the next planet, etc. Its a procedural terrain generation tool with heavy-handed resource gathering. Your ship can only lift off the ground a few times before needing to be refueled. Its absolutely ridiculous. All of my time spent was getting fuel to get more fuel. The creatures are a joke. The weapons and gear are a joke. There's no point to bothering with that. The ships are a joke. You don't really fly it so why bother? If you could really fly through the planet on your own and not have to worry so much about fuel, I could totally see your point. But the game is just so heavy that I can't take time to enjoy anything. They literally put your ship on rails when you get to a planet.

If anyone has skipped this game because of negative reviews, be grateful that you didn't waste your time or money. Its a terrible game after a few hours. The dev team absolutely lied about it.

Oh and as a side note, before the first patch, you could use your "afterburners" to fly quickly over a planet from place to place. But then Hello Games shut that down so you have to either take your time or fly out into space and then fly back down. Its a time sink.


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/

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


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.


You're right, D1 was procedural as well.


Roguelikes too, but there it seems to work fine. The corridors by themselves aren't that interesting, but combined with the chance of encountering monsters that can be weak or life-threatening, and loot that can be either junk or something truly spectacular that you don't find every game, that's what makes it interesting. The unique environment combines with the chance of something truly memorable. But if there are Holy Avengers all over the place, they become less interesting.

So I suppose NMS would work better if most planets have either no life, only sea life, or only really tiny life. That makes the occasional encounter with large animals a lot more memorable.


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.


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.


One interesting means of doing this is grammar induction[0]. NMS's appears to have a defined pattern for say a spacecraft IE wings go here, cockpit goes here, engine goes here and then choosing a block for each of them. With grammar induction one can learn more interesting designs by learning the relationship between parts. IE cockpit A tends to connect to hull C, wings N tend to connect to hull C. This lets us make spacecraft that have different topologies that still follow the same sort of style defined by some exemplars.

[0]http://hci.stanford.edu/publications/2012/Talton12LDPBG.pdf


> (i.e. buildings where the rooms have purpose and their interconnections make sense).

This is a big deal. E.g. Minecraft have underground mine complexes that can be a lot of fun to explore, but they don't make any structural sense. The thing is it'd be quite easy to design them in a way that makes much more sense:

Record how human players dig tunnels, which generally tends to involve either starting with a cave system, and then divert in where there is ore, or starting to dig at a downwards angle until you're at a depth where ores are likely, and then start branching it out in search, and then expanding. Add some collapse shafts etc.. Creating rules from that should not be too hard.

I think you could improve a lot of these algorithms by modelling them based on how a human would plan or pick placement instead of relying so much on pure chance.

E.g. if generating a village, don't randomly dump buildings. Consider that you want a water source, and various purposes (mining, farming, trading) that has would depend on the surroundings, and that roads must connect locations, and that certain types of buildings will be in certain locations in relation to each other. I think a lot could be done by creating rules that aim to simulate what would make a village grow, and iterate it.

E.g. place a few simulated NPCs and "fast forward" through exploring the surroundings. Have one try farming. Have one try mining. The miner hits a cave with lots of ore? Have it lead to trade, and generate a mining complex, and place a blacksmith. The farmer find large fertile areas? Have the farms expand, and population boom. And so on. Run a simplified model through a suitable number of iterations to place various features, and you'll get villages that make a lot more sense than when Minecraft e.g. place a village in the middle of a desert with no apparent purpose (to get villages in the desert that makes sense: make the generator place a few trees around lakes, have it place soil under the trees; have it place villages around those; lead roads to these oases; place houses near the water and road)


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.


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


Not to undermine the work, which is really impressive, but also as someone that's reverse engineered a lot of different proprietary model formats, they all follow a very similar structure. You could do it too if you knew

You have your vertex buffer data, your index buffer data telling you how vertices are connected, and a list of commands telling you where in the index buffer to start/stop.

It might take you a bit, but after a while you notice the telltale signs of model data (e.g. 0x3F800000 being 1.0 in floating point), and you can usually make a first pass at it pretty quickly.

It's definitely a lot of fun if you haven't done it.


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.


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.


I don't believe this. Far more likely is that like almost every software project in history they underestimated the time to finish and finish well.

And a small team means far fewer testers so that exacerbates the problem.


Given what I've seen from them in the press and online, it looks like they bolted a simple hand crafted game on top of their procedurally generated world. The only question is why they thought they were doing that.


I suspect Sony paid them a boatload of money, then took a look at the $20 tech demo toy they had on their hands and said "we can't sell this for $60," so they had to tack on the resource grind minigame in order to call it a "game." Hence the delays and lackluster final game.


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?


I don't really view balance in single player games any differently than I do a multiplayer game. A well balanced game has a wealth of options open that promotes dynamic gameplay. A poorly balanced game degenerates into stagnant gameplay because one or two options are much more powerful than the rest.

A good example of a well balanced single player game is tetris. All the pieces are useful. It may be easier to complete a line with the straight piece, and in a tight pinch a less skilled player might hold out for it while placing down other pieces willy nilly, but if every piece was as easy to use as the straight piece then the game would have less variety and tension! At certain points in the game you may not want a straight piece because of the way you have laid down your previous pieces, the game is dynamic because the optimal strategy is changing all the time because of how you played the game, this adds even more strategy because you can also influence how the optimal strategy will change.

A good example of a poorly balanced single player game is... well in my opinion most single player games are poorly balanced. Either the game is so easy that it really doesn't require you to strategize at all or the game is easily cheesed by using one overpowered technique. This is especially evident in many RPG's, although they try to hide it with a huge skill tree (of which almost invariably a large number of skills are useless and a couple are ridiculously overpowered) or by having you learn a whole bunch of enemy weaknesses and resistances (IMO this is cheating, the challenge isn't dynamic as these stats are unchanging and typically only serve as an overwrought color matching exercise). Pokemon is a good example of this, although you have hundreds of pokemon to collect and train and it seems a variety of enemy types should force you to have a varied party yourself, the easiest way to beat the game is to overlevel your starting pokemon by giving them all the experience points and grab one or two other pokemon along the way to cover your weaknesses in the end stages of the game and load up with necessary non-combat moves.


I don't really view balance in single player games any differently than I do a multiplayer game

This is a great approach to take. When you let the computer "cheat" it tends to result in less intellectually satisfying enemies. The computer should pretty much be playing by the same rules as the player.


>I guess balance in single player is about difficulty?

In a sense balance is always about difficulty. But it's also about not ruining all the depth your game offers. If one of the easiest paths becomes objectively the best to achieve a goal, there's no reason for the player to explore or use any of the other paths.

This appears in all kinds of systems: if there's one class that's just the best, your class system is unbalanced and most players will barely play the other classes. If there's this "one simple trick" to earn lots of money (e.g. mine that one very common ore, like in No Man's Sky), an interesting economy becomes a boring timesink due to being unbalanced. If one of the early weapons is the best, everyone will use it and all the time you spent designing other weapons was just a waste.


One of the things that I'm going to do in my game, is to make entire categories of items unusable or gimped across entire bands of space. So as you progress (the leaderboards are mainly based on how far in "the direction of difficulty" you can get) you will eventually get to a point where you have to abandon your favorite strategy and come up with a new one.

Even without this, due to the rarity of items that have little penalty for benefit, you will often have to improvise, as your required item will likely not be available with exactly the right combination of compatibility and stats.


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.


Balance is a two edged sword. Sure, you don't want singular dominant strategies, especially in a multiplayer environment, but in many modern games I get the impression that all my decisions as a player are completely irrelevant, because the magic of careful balancing will make sure that every immediate advantage/disadvantage will be countered by some precisely equivalent disadvantage/advantage somewhere down the road. If the answer to the question has no consequence, why even bother asking?


tldr; Good overall balance means momentary imbalance!

Extra Credits covers this. What you actually want in an overall well balanced game is occasional contextual imbalance. Cue someone mentioning "Rock, Paper, Scissors" here. That game is perfectly balanced, but in any given iteration, all the power is with the winner. Another example: Chess. The moment your opponent promotes his queen, in the context of that particular game, things are massively skewed against you -- which is immensely satisfying for your opponent.

If answering the question has immediate consequence for the situation you are in, then the task of the devs is to give the player the tools to see if they can improvise their way out of the pickle they are in, or exploit the advantage they have stumbled onto.


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


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.


>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?


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.


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.


yeah, i think this was a mistake made under obvious pressure.

you are right about a lot of the claims seeming to be straight up BS, but it was all understandable imo. people had unrealistic expectations because the devs didn't take care to manage them well.

there are space battles, and there are things you could call factions and economy, they are just woefully underpar compared to expectation and marketting material.


I think it was more than community hype. Sean, for whatever reason, made claims that turned out to be objectively false.

https://www.google.com/amp/s/amp.reddit.com/r/Games/comments...


My game is just as vast, practically speaking, and it has 70 client multiplayer, worst case. (That is, all directly interacting in the same spot. If 1000 clients were in the same star-system instance, but not interacting, that would be fine.)


Progression rate mainly. Simple Minecraft example (imagine it had more game bolted on, because I can't think of many proc-gen worlds off the top of my head)... Diamond is only available below X depth and at Y rarity. The depth is a hard limit, because it would screw with the intended progression of player crafting if a diamond vein had spawned a block or two under the surface. (Although this example is slightly flawed because you need to craft better equipment to mine diamond, blah blah blah)


I recently dusted off Minecraft for the first time in a few years and was surprised, in retrospect, at how little effort the game makes at any semblance of balance or progression. One world might start you right next to a village with a chest full of diamonds, while another might start you in a vast desert - with no trees, meaning no wood, tools, or torches, meaning a long walk (and probably many deaths) before progression per-se can begin.

MC is best considered as a sandbox simulation rather than a game. (Not that that's a criticism of course - it's just something I'd forgotten after a few years of not playing.)


My favourite start was on MCPE - island of about 9 blocks, no trees, no other land in sight. Took 15+ minutes of swimming to find land.


This reminds me: as fun as the sandbox nature of the game is... I enjoy the crafted adventure maps more. Or the challenge maps where you are just on a floating island and need to figure out the correct progression without wasting resources.


I had a moment like this when I first played Factorio (an excellent game, by the way) and it started me out on a tiny island. It was a much bigger challenge there, considering that Factorio doesn't have swimming or boats!


I've always been a little disappointed that water is a hard barrier in factorio. Off-shore processing rigs or bridges would be a godsend.


A recent (few months ago?) update added a landfill item, which is made from stone and can be used to convert water to land. I think I'm playing the beta channel, so I'm not sure if it's in the default version of the game or not.


you need to craft better equipment to mine diamond, blah blah blah

More example of balance.


Hah, yes! Except it's more directly influenced (creating the recipes and what pickaxes can mine which ores) than the indirect influence on the procgen world by defining ore distributions.


I suspect it's actually more about pattern recognition and how humans compress data in our memories. People will recognized and remember the major components of objects, and see that they're being repeated. If you've were to spend a few minutes looking around each of the ships (for example), then shown a bunch of ships from a mixture of NMS's possible designs and all other ships designed or designable in other space videogames, you're nearly instantly recognize the style and get 90+% accuracy if asked to say if it came from within NMS or without. But here's the real kicker: I don't think you'd have any luck telling if there's one that you'd already seen before or not. The distinct features merge together, and you see one ship with a bunch of possible parts - much like how the article says it's stored! Humans are great at pattern recognition and those groupings are intuitive. If you take a dozen variations on one part, a dozen variations on another part, and show only a small smattering of the possible combinations to someone, they'll be able to deduce the existence of the rest of the square, pretty much as soon as they see three combos making an L on the two axis.


I don't think it's that the variety doesn't translate to the game, I think it's more just that this kind of mix-and-match approach doesn't generate anything that creates a strong perception of variety. Once you see one stegosaurus-headed thing, anything else with a stegosaurus head looks familiar even if this time it's got painted toenails or a floppy tail.

The result invariably looks about as exciting as one of those mix-and-match flipbooks: https://s-media-cache-ak0.pinimg.com/236x/de/a7/7d/dea77dbbf...


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.


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


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

http://chrishecker.com/images/c/cb/Sporeanim-siggraph08.pdf


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".


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).


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.


> 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.


Content in Dwarf Fortress is generated. It does not make a difference when we talk about the term "content" whether it was written by hand or was generated by a function. The emergent behavior is the most interesting part of "content" in DF which is just a generalization really. The concrete type of content which DF is based upon is "story" and Tarn Adams is working on a story generator (which he hopes to achieve by simulating the narratively interesting parts of our world).


The gameplay is the content. You are confusing plot with content which isn't necessarily the case for videogames.


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.


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.


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.


> 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.


I agree. I don't think the point is that generated content is boring, but that HG's generated content depth was quite shallow.

As stated in the article, if they doubled the size of the art team, they could have had hundreds of times more models from which to generate creatures.

The possibilities could be near-endless but the execution in NMS was poor because clearly not enough effort was spent on building up the assets. The author believes that it would be madness to create such a full-featured engine and then abandon it so soon. I'm inclined to agree, until HG or ASA say otherwise, and then folks will probably start knocking out the NMS clones.


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.


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.


Minecraft


> Only useful lesson NMS gave us - generated content is pretty boring.

Buddy, you need to play some Dungeon Crawl - Stone Soup.


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


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.


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!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: