Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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)




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

Search: