A Quick Explanation on How Procedural Generation Works in No Man's Sky

  Рет қаралды 58,801

TheHappieCat

TheHappieCat

Күн бұрын

Пікірлер: 285
@Copier777
@Copier777 8 жыл бұрын
You want a massive random procedural generator? Take a look at Dwarf Fortress. This game generates a very wide world, its whole entire HISTORY. You can literally check it and see what was done and when according to your world's lore.
@RussellTeapot
@RussellTeapot 8 жыл бұрын
oh my. just started learning how to play a few weeks ago, it's _amazing_. But it's a little daunting, to say the least
@DustinRodriguez1_0
@DustinRodriguez1_0 8 жыл бұрын
The stuff the Dwarf Fortress creator is doing with procedural generation of literature and history is really astounding. And he's the only one I've ever heard of who is even working on such things! I know others are doing it, just never hear of them. The more recent game Rimworld has a lot of this sort of thing, and results in similar type of play with much unpredictable emergent behavior.
@xvi1921
@xvi1921 7 жыл бұрын
DF is awesome! The history generation is pretty intense... and it also includes cities, buildings, roads, etc. Over time, you can see how the cities age, or get over-taken by other empires, or destroyed. Almost everything is procedurally generated... your characters even have preferences on color, they have moods, and dwarves they like, dwarves they hate, etc. It's really a unique game. Plus, I think it's only being created by 1 or 2 dudes. Crazy!
@TheNunakun
@TheNunakun 3 жыл бұрын
Thanks for the mention. I don't play many games, but I like to explore them.
@Donmegamuffin
@Donmegamuffin 8 жыл бұрын
No Gameplay's Sky Devs just seemed mroe interested in the algorithms than the gameplay by the end, which I don't blame them, because there's some damn interesting maths going into that game
@meatthepyro
@meatthepyro 8 жыл бұрын
The reason I'm subscribed to you is because the topics you upload about are so interesting and set your channel apart from other techie channels
@nipungupta8846
@nipungupta8846 8 жыл бұрын
I am really happy to hear her views of the game. It is the vision that matters the most. It was us, the people, who had unrealistic expectations from the game. exploring the universe doesn't necessarily entail great monsters and life forms!! Great work HappieCat!! You really inspire me!! Keep up the good work!!
@Adraria8
@Adraria8 8 жыл бұрын
I've found the "Diamond-Square algorithm" and the "Value Noise algorithm" work well for procedural terrain generation
@Markhainen
@Markhainen 8 жыл бұрын
How about Minecraft? Does it use procedural generation?
@TheHappieCat
@TheHappieCat 8 жыл бұрын
Yep! Actually, Minecraft's probably a better/simpler example to look at in the future.
@kiramoth2766
@kiramoth2766 8 жыл бұрын
yes it does, that'w why the maps are infinite and you can use seeds (keys) to regenerate the same terrain.
@wfmg7235
@wfmg7235 8 жыл бұрын
Well, the world stops functioning normally if you venture too far, but that's by design. Technically, it's not infinite, but it is at the same time.
@wfmg7235
@wfmg7235 8 жыл бұрын
Yeah. Minecraft uses 1m^3 blocks, chunks, a simple aesthetic, and fairly straightforward set of parameters. :) I hope you make such a video.
@snaawflake
@snaawflake 8 жыл бұрын
yes it uses random noise(modified perlin i guess?)
@hanniffydinn6019
@hanniffydinn6019 8 жыл бұрын
Flat earthers are Burning this game, they think it's the work of the devil.
@ar_xiv
@ar_xiv 8 жыл бұрын
that's kind of amazing
@Cara.314
@Cara.314 8 жыл бұрын
why, cause the planets look flat once you land on them? lol
@hanniffydinn6019
@hanniffydinn6019 8 жыл бұрын
***** because they really have zero critical thinking. The ancient greeks worked out the size of the globe by comparing length of shadows in different cities. Also, very accurately. without computers etc.. Flat earthers are literally a bit nuts.... I mean it's basic science to work out. The curved shadow of the earth on the moon gives it away also. It's bizarre the internet is making people dumb.
@Cara.314
@Cara.314 8 жыл бұрын
Hanniffy Dinn internet makes dumb people dumber.
@Zarala2010
@Zarala2010 8 жыл бұрын
Very accurate choice of words :)
@Beatsbasteln
@Beatsbasteln 3 жыл бұрын
i was also a no man's sky player from the first day and loved the fractalness of the game immediatly. there are so many interesting patterns to explore in these worlds. it's sad that the community harassed them so much for not fulfilling all the multiplayer desires. i think the complexity of the biomes alone was already worth the money
@krele14
@krele14 8 жыл бұрын
It's just handling a global scope seed which is influenced by x,y,z positions, then quantizes the value. Basically minecraft with many worlds connected through a loading screen, and global x,y,z of the player serve as every world's seed.
@Zarala2010
@Zarala2010 8 жыл бұрын
I know this is a general request, but could you talk about one (or more if can) these: 1) an overview of how (using what software) does procedural generation work 2) to what extent does procedural generation allow formula usage in defining 3D models 3) how do you imagine Metal Gear Solid: Revengance/Rising slicing mechanic works from a 3D developer/scripting perspective Thanks a bunch for your work, great content, learning tons on how to apply my unique concepts as an aspiring Game Designer/Developer. Keep it up! :D
@senhorcorvo
@senhorcorvo 8 жыл бұрын
We're close to the "Make Game" button!! I've been working with games and movies for about 8 years now(mainly games) and i found your channel some months ago and following it since. I must say that i love watching your videos, because i saw that you really love what you're doing. Made me fall in love too, keep it up!
@miguelpereira9859
@miguelpereira9859 8 жыл бұрын
May I know what do you do exacly?
@senhorcorvo
@senhorcorvo 8 жыл бұрын
At the moment this: www.unrealengine.com/showcase/rio-olympics-coverage-gets-unreal-via-globo-tv
@polg1725
@polg1725 8 жыл бұрын
To add some info about the objects on the game. From what I've found the game uses parametric modeling which is used more in architecture and industrial design. Basically the models are created from some basic template models defined by variables like front legs length, tail spikes... and then the system chooses randomly a number between two extremes which in combination with other variables quickly produces lots of combinations. So, like Anne said, despite the big number of possible variations form 0.0, 0.1... to 1.0 in the front legs for example, actually we don't perceive 0.1 and 0.2 as different. What I find even more interesting in this game is that this concrete variables depend on more abstract parameters. Example: hostile planet translates to more red color, creatures with spikes, longer tails... I would like to know how they implemented that, every feature had a hostile, friendly, blobby... grade? More info: www.gdcvault.com/play/1021805/Art-Direction-Bootcamp-How-I Also interesting: L-Systems.
@thisisdemeaning
@thisisdemeaning 8 жыл бұрын
Have you played or looked at dwarf fortress? DF has some complex procedural generation, with certain limits, but is able to apply it to natural histories, events, and even story telling as well as terrain in ways that are sometimes hard to see the limits of. I think it often gets dismissed because it was the 'minecraft progenitor' and because few talking heads have actually devoted the time to play it so that the people that might truly be impressed by it often just talk about it as though it were already a part of history. What is really impressive with it though, is how engaging, fun, and nail-bitingly stressful it can be despite such an obtuse interface, and how much depth and emergence there can be in each embark.
@captainkarma2974
@captainkarma2974 8 жыл бұрын
I really like what she said at the end. I noticed the patterns also but still in the end this game is literally well.. A game changer and I can't wait to see what comes after this.
@jenwilson6904
@jenwilson6904 8 жыл бұрын
This reminds me of how the galaxies in that early 80s game Elite works. To fit in very little memory, they made a subroutine which took a magical number and generated all the planets in that galaxy and their names and descriptions, apparently all from that number. So they could then create any number of galaxies at a very small cost each.
@balijosu
@balijosu 2 ай бұрын
Using planet (or whatever) coords to generate a key is a good way to avoid needing to store a key per planet.
@jonsnow8543
@jonsnow8543 6 жыл бұрын
Nice video, Happie Cat. I think your intuition that it's fractal-like structures is correct. However, I'm fairly certain they use Lindenmeyer Grammars (L-systems) which have fractal properties but are quite different from what we'd normally expect of fractals such as Iterated Function Systems (IFS) or complex dynamical equations such as the Mandlebrot and Julia sets. I'd love to talk to you more about this and some other stuff (the Night King is coming and he brings the Winter). How do I reach you?
@DummyLooks
@DummyLooks 8 жыл бұрын
Not yet a game, but Space Engine dwarfs this in size of procedurally generated content. It was first released a long, long time ago. As a bonus it has all of the known stars and planets in it. (it generates the rest of the universe)
@thelaw3536
@thelaw3536 7 жыл бұрын
This fractals were amazing.
@MarzioCuello
@MarzioCuello 8 жыл бұрын
This reminds me the first time I saw a video called "deepest Mandelbrot Set Zoom Animation Ever". I was so amased by the infinity within... Or that time I read a post claiming that if you take the endless digits of Pi and choose series of the digits to convert them into RGB colors to form a pixel with that color, then the infinit resulting image would contain every single picture the universe could generate... Every one! A picture of your death, one of you right now, even one of Pikachu (why not?). The trick must be a selective algorithm similar to the Backtracking technique choosing the possible candidates that fit the aesthetics of the game. So, thank you. Now I've got another member to my MindBlowing.Infinity.Stuff.
@abx_egamer4874
@abx_egamer4874 4 жыл бұрын
wow this is really out of the box game. this video made me like this game a lot more than I used to. I mean using the procedural generation to this extent is really amazing. I wish we could have said the same for real numbers. I mean they have infinite decimal digits so they can be procedurally generated. but unfortunately I cannot procedurally generate everything in math. like all of calculus ,etc. I mean it is possible but no one has found out what exactly is the algorithm of differentiation.
@tiagotiagot
@tiagotiagot 8 жыл бұрын
It would make sense if the position of the planets in space (or, I guess, their parent star), was used to generate the key. That way you always find the same thing when you go to the same location.
@liquidnode1874
@liquidnode1874 8 жыл бұрын
I actually made a similar engine in c++. I also used fractals for terrain generation. as you said, the problem with them is the repeating pattern of these functions that get boring after a while. currently I work on a possible solution for this problem involving simulations to create realistic enviroments. maybe those will introduce non-repeating features to the terrain
@EhmJB
@EhmJB 2 жыл бұрын
(I recognise this is a five year old video, so the "I read all the comments" thing may now be completely out of date, but just in case...) Only just started playing NMS and the question that's been bugging me is around where the seed for a galaxy comes from. It started when I noticed a rock and a cactus glitching through the floor of a base I'd built. I dutifully removed them, but when I next logged back in, they'd popped back up somehow - but in the exact same spot, facing the same direction. I'd not really thought about how the game works until that moment, and this starts me thinking, as I brush them away again: "So this cactus must be deterministically generated, on a big, lumpy, planet-sized fractal; which is a relatively flat landscape actually, not many mountains, so I guess some variables in some recursive terrain equation somewhere are defined by some other variable, maybe the name of the planet (maybe - you can generate a lot of pronounceable strings, but 2^64 unique ones? Hm - Google that later); but the planet's name is also procedurally generated, so that must in turn pull variables from something, and each star system has not just planets, but space stations, freighters, multi-tools, starships, mountains, tress, and weird dogs with crab legs. And when I play in multiplayer, the limitations I see seem to infer that when I go to a star system with another player, we're not seeing the same galaxy, so much as both running the same calculation and therefore generating the same landscapes and sending data to eachother's games like 'I destroyed a cactus at location -0.0047472, +12.48498234', and maths is cool enough to go 'Oh, the cactus at location -0.0047472, +12.48498234? Yeah, I know that one. Consider it deleted'. So... does all of that... stuff - all that universe pull from a single string somewhere? I can't imagine there are independent systems involved that just layer over eachother this seamlessly, surely that would be insane." But I'm no mathematician - my inner monologue seems to think it is sometimes, but I'm really not. So my long-winded question is: Do you think that all these layers of simulation pull from a single string somewhere, and are all dependent on one another, or is it more likely that there are multiple different interlocking systems? So if we hacked in to the No Man's Sky servers and changed a number so the planets generate with a 20cm radius variation, would the space weevils all change colour and grow an extra head as well? As a side note, I also feel like No Man's Sky's now-legendary launch issues were all problems with the way the simulation was shown to us pesky humans. UI, gameplay, that sort of the stuff - the simulation itself was great right from the get-go. If only it had been released as a database that people could log in to and go "Coooooool", it would have all run fine from Day 1. Creature animations bugging on the terrain? Pah. Output a spreadsheet - creature type 4 on planet 41D7FA002005 is a snow leopard with six legs. That means it uses walking animation 97. There's one currently at -49.76, -36.21 snuffling around a user-defined building that looks a bit like a willy.
@kbg12ila
@kbg12ila 8 жыл бұрын
I'd rather have a game with 1 planet that's interesting and built with complete care and detail than 18 quintillion planets that don't mean anything.
@bluehousevideos2438
@bluehousevideos2438 8 жыл бұрын
Fair enough, whether you like the game or not though this is a milestone for the gaming industry.
@kbg12ila
@kbg12ila 8 жыл бұрын
Blue house videos Definitely I've said that before.
@SianaGearz
@SianaGearz 8 жыл бұрын
Is it though? It's almost a step back from 1984 Elite i'd say.
@Soulsphere001
@Soulsphere001 7 жыл бұрын
That's probably one of the main reasons I prefer Terraria over Starbound.
@JMFSpike
@JMFSpike 6 жыл бұрын
@kbg12ila Yeah, many people hate random generation because of it's huge flaw that is very well explained in the T-shirt part of this video. You think there are a ridiculous amount of possibilities, and technically there are, but it's really just a small handful of possibilities with a plethora of minor(some VERY minor) variations.
@thomasparker7305
@thomasparker7305 8 жыл бұрын
I want to thank you for the video. I'm in school right now to learn game programming and always wanted to do a space game but didn't have a way to do the systems with out a huge data base. But your video got me thinking on how to do it more a less guided me one how to make the program that would do it. Now I have a program that I can enter in a seed, x, y, and z cords and I get back a 6 digit number that I am using to figure out what the star, planets, black holes and the like are in it. It can have 1999999994000000005999999998 differnt systems at least with it. Hope you have a great day and ty again.
@DustinRodriguez1_0
@DustinRodriguez1_0 8 жыл бұрын
The technique No Man's Sky used is actually similar to this: www.nature.com/news/2003/030402/full/news030331-3.html In fact, Hello Games got into a bit of trouble and accused of violating a patent on this use of the 'superformula' involved. I'm not sure how the issue was resolved. It's possible that the parties involved aren't permitted to discuss it, but Genicap, the company which owns the patent covering application of the superformula, and Hello Games were in conflict over this before NMS was released. In any case, the superformula is quite interesting.
@michaelbooser970
@michaelbooser970 8 жыл бұрын
Would you do a video of how procedurally generated games are made? It's something I would really be interested to see! I know a little bit about what makes it difficult to produce over hand made environments, but I'm sure its only a drop in the ocean of what can be done with it! Like Minecraft seems like an easy enough game to have made, compared to "No Man's Sky" anyways. Every game I see it in either uses some sort a room system, Warframe and various Rouge-likes, or its grid based, minecraft. I grew up on Diablo II, and other then some of the pre-generated areas the randomness is simple, granted the game is as old as I am basically. But I'd really like to see an episode on how games like this are made! I understand if you cant snag the source code to No Man's Sky, but anything you could tell us about building games like this would be AWESOME!
@yakov9ify
@yakov9ify 7 жыл бұрын
Wait so each planet is described by one 64bit integer! that just makes no mans sky so much more impressive
@gopro2027
@gopro2027 8 жыл бұрын
For people wondering how keys/seeds work: So say the algorithm to generate the planet was 2x+5 x is where we put in the seed since a different numbers give us different results. Now to explain the seed, it would be like aabb123 so to turn aabb123 into a number a simple example of one way to do that is to take the ascii values (computer values if you will) for each character. So a is 97, b is 98, c is 99, 1 is 41, 2 is 42, 3 is 43 and add those number together and plug it in for x.
@hearmeroar6175
@hearmeroar6175 8 жыл бұрын
Seeds are just objects, no one ever really uses strings/char pointers, especially in games where hundreds of operations might be done each frame on the seed, the overhead of casting (probably) wouldn't get out hand but it's just unnecessary, and even if you cache the result, the string is just meaningless.
@lewisb8634
@lewisb8634 8 жыл бұрын
Yes, and the player's coordinates are also input :) Everyone seems to think that 'The Seed' is some incredible magic formula that generates everything, when really it's just a number tied into a formula somewhere: as long as it's involved in the formula, the ouput will always be the same as long as the input is always the same.
@peterhieuvu
@peterhieuvu 8 жыл бұрын
Are you kidding me? In a comment where a user is explaining for people who might ask to "ELI5" you criticize it for impracticability? Even more so, you chose to criticize the use of a string as a seed instead of something like the possibility of integer overflow or just simply extremely low entropy? It doesn't even matter because chars in C++ promote to integers anyway.
@george_763
@george_763 8 жыл бұрын
I don't see how this has dragged over... I think both of you and hear me are making silly points. Hear me is talking about performance, which like he says doesn't even matter in the end. And in c++ chrars will cast to integers but if you want a string you would have to indivually cast each char in an array and add the ASCII values, which to be fair doesn't make much sense and like you say could yield undefined behaviour but again it's easy to guard against integer overflow. And the level of entropy probably wouldn't linearly correspond to the seed. In conclusion it's a not a good argument to have, you can use whatever you want as a seed :)
@peterhieuvu
@peterhieuvu 8 жыл бұрын
+George _ I was talking about the entropy of the PRNG, not the seed. After all you don't care about the entropy of what is going in, but what you get out. Anyway, my point to him was not that he was targeting the wrong thing, but more that he was criticizing in the first place. Of course a kid friendly example is not going to look like what it is in the real world. When you are showing someone the basics of how programming works, are you going to demonstrate using the entire code of a full AAA game? About the string seed, it's not about efficiency really. It can be fun to chose a string seed. You can just convert it to an integer and use that integer. You shouldn't be reseeding often anyway.
@paxdriver
@paxdriver 7 жыл бұрын
Can you please do a video on incorporating fractals into, say, making a repeating texture, monster model, mountain map or something? More detail would be great!
@EstebanGaeteFlores
@EstebanGaeteFlores 8 жыл бұрын
I'm really happy to have found this channel! You have earn a new subscriber! very good channel :) keep it up!
@Flacosann
@Flacosann 8 жыл бұрын
building off this, it would be awesome to see a video on how 3d planets are rendered / created. Further, how gravity is simulated / mathematically implemented! thanks for this video, you have a new huge fan!
@FlameRat_YehLon
@FlameRat_YehLon 8 жыл бұрын
This game doesn't seem to be simulating gravity. In most games that simulates celestial gravity, they usually would consider each celestial body as a mass point and calculate the gravity between them on the fly.
@pockethousevr9388
@pockethousevr9388 6 жыл бұрын
I really should have studied more about mathematics, good job !
@movAX13h
@movAX13h 8 жыл бұрын
No fractals required. 3D noise is all that's needed. Imagine a volume of fog where a planet is generated where the density of fog is above a certain threshold. An unique ID of a planet can then be calculated from the location in space and then be used as random seed for that planets surface and entities. Geometry is not procedurally generated in No Man's Sky (except terrain/caves/asteroids) - premade models are altered and combined procedurally.
@sparax7870
@sparax7870 8 жыл бұрын
happie cat you're so awesome you make all these hard concepts sound fun and easy , i wish i had you as a computer science teacher . please tell me what's your fav game besides dark souls.
@SianaGearz
@SianaGearz 8 жыл бұрын
I think you're almost entirely wrong here. The problem with fractals is that their self-similarity pokes you in the eye rather quickly! So all the "fractal landscapes", "fractal clouds" etc, while sharing the property of recursivity, are actually no true fractals, they are recursively randomized structures. The constraint is of course that you need the "random" numbers to come out the same every time you look at them, so there's a few possibilities. A smart-arse possibility is to have some kind of index space that enumerates all possible elements, and then you just hash that index, and there you go. You can for example have a few digits of your index to pseudo-coordinates inside universe to locate a galaxy, a few more to locate a star within galaxy and a planet within the star system, and a bunch more to map out the surface of the planet. Or you can just do it 1984 style and just recursively manipulate the seed of the random number generator, starting with a constant. Curiously, the 1984 game was supposed to have 2^48 galaxies. The publisher decided that that would just be rubbing it in, and asked to limit them to 2048. At least according to the book "Backroom Boys: The Secret Return Of The British Boffin", because the actual game code doesn't seem to contain that. There's still more planets than you'll ever explore!
@Cara.314
@Cara.314 8 жыл бұрын
i was kind of expecting you to cover how voxels and how meshes are basically wrapped around the voxels to give the players something to interact with.
@DrBernon
@DrBernon 8 жыл бұрын
I thought that games like minecraft created the worlds by mixing some basic elements. I mean, by placing randomly in the map premade mountains, valleys and rivers. I once made a terrain generator in Unity that worked that way and it generated very convincing terrains.
@lewisb8634
@lewisb8634 8 жыл бұрын
Nothing in the terrain generation is premade in Minecraft. It uses multiple layers of Perlin Noise and possibly multi-fractal noise, the height of which is calculated based on the players position and the seed which are both incorporated into the complex code that makes up noise :)
@enderbreton8136
@enderbreton8136 7 жыл бұрын
Procedural generation was present back in daggerfall, and the lack of its success should have been something to take notice of for the developers of no mans land when them decided to create their version
@maamiimii
@maamiimii 8 жыл бұрын
Your channel makes me so happy. You hit some really interesting topics! Please keep it up!
@TokYY1337
@TokYY1337 8 жыл бұрын
I absolutly love your videos! really understandable , interesting, educational! keep up! :)
@riccardo_7450
@riccardo_7450 8 жыл бұрын
"Never seen before technology"? What??? Generative stuff is everywhere. NMS is just a good extensive implementation with a cool gameplay on top.
@notiashvili
@notiashvili 8 жыл бұрын
Great video! Please could you make more videos about procedural generation as well as the specific ways and algorithms that many games use to create randomized terrain and environments, for example Minecraft, Terraria, NetHack... Thanks!
@Tridona
@Tridona 7 жыл бұрын
Those 3D fractals triggered my trypophobia >_
@simmo9710
@simmo9710 8 жыл бұрын
HOLY SHIT THAT'S AMAZING!
@aion3232
@aion3232 8 жыл бұрын
Good Work, interesting. Would love to know how many assets they used to combine the iterations of the planets.
@MaximusPrimusKay
@MaximusPrimusKay 8 жыл бұрын
You'd make a very good teacher.
@Optimus6128
@Optimus6128 8 жыл бұрын
I wouldn't think just only fractals when thinking of procedural generation. Unless you mean what is called Octave Image Synthesis (I try to find the Hugo Elias tutorial now but it's down), where basically you add data from a function of ever higher frequencies and lower amplitudes. These could be generated with perlin noise or any other way, and perlin alone wouldn't look as good without adding all these frequencies (I found another link, it's like adding smaller and bigger frequencies of curves like in those images flafla2.github.io/2014/08/09/perlinnoise.html ) maybe because it looks like fractal with self similarity repeating at smaller levels. But anyway, fractals are procedural too, but I am not sure this is what NMS uses rather than adding layers of perlin noise. Then it interests me how the animals and plants were done, they are pretty good for procedural. I also heard people talking about voxels for the land. But I guess they mean voxel data that are later polygonized with marching cubes or something. That explains why you can destroy the ground everywhere you go. p.s. I am not happy of the shitstorm NMS got btw, I want to see more procgen in games, and I think they did a really good job at that. I liked the game, didn't expect much and knew what to expect from the procgen (in fact I got more).
@Juke172
@Juke172 8 жыл бұрын
+TheHappieCat you're pretty much right true with your guess.. Only the keys have been pre-generated so that everyone gets the same keys if they happen to go to same place. I do wonder if anything will stay there changed after first player has been digging landscape through though.. I get these visual presentations of columns of minerals, that I have mined down if I go far enough and come back it shows them up in lower LOD before you get close enough and shows how it really is. I saw few videos where Sean Murray explains how it works. Search in KZbin: "sean murray behind the scenes"
@designwithphoenix
@designwithphoenix 8 жыл бұрын
good video :) thanks for the time to make this.
@nuttygold5952
@nuttygold5952 8 жыл бұрын
Could you show us a small example of procedural generation?
@teknoman117
@teknoman117 8 жыл бұрын
Space Engine? Forget procedural Galaxy, it's a procedural universe. Even has some known astronomical objects in it.
@pradyumnabilagi7661
@pradyumnabilagi7661 4 жыл бұрын
well I think this no verity problem is being solved slowly by the devs of the game . it can be seen in the latest update. but that being said there must be at least something that is randomly generated like the small things like the leaves.
@MikkoSimila
@MikkoSimila 7 жыл бұрын
I still rely on regular old Terrain and world machine to create worlds. But everything else, i generate procedural method. Because procedural is lighter than static mesh.
@MaeBlythe
@MaeBlythe 8 жыл бұрын
Pamagester on DeviantArt was big on all of this stuff! Check out his panoramas sometime, man.
@rollinpace4lyf
@rollinpace4lyf 4 жыл бұрын
Awesome explanation! Thanks:)
@iamthatiam4637
@iamthatiam4637 3 жыл бұрын
This is a good example of quantum psychic. So is the game different for everyone. Like the planet you visit only exist to you unless u bring a friend but once you leave. it disappear and wont exist the same ever again. So in that case the who universe is the same but yet not the same for everyone.. Like its different for every player. Thus making it like quantum psychic. The world only exist to the self. Mind over matter.
@AirKiter
@AirKiter 8 жыл бұрын
next dev challenge procedural generation?
@toreole5831
@toreole5831 5 жыл бұрын
Well there is a GDC talk on how they did it. They generate it once and then store most of the data about the height of the planet on a "sphere" and then do all the other stuff after that: www.gdcvault.com/play/1024265/Continuous-World-Generation-in-No
@Snijele
@Snijele 8 жыл бұрын
Hey, nice video! Love your content! Cheers!
@amacias2012
@amacias2012 8 жыл бұрын
If your theory of how it works is correct and some sort of key is generated then maybe in a future patch we will be able to visit an specific planet using that key, and maybe even create a database of the more interesting ones. Also I hear the game is being data mined maybe the source code too? If you are interested some people at the newgaf forums are doing the gutting.
@chriswolfe351
@chriswolfe351 8 жыл бұрын
Isn't that how it works? My understanding was that all planet generation stuff was done server side, and so everyone experienced the same universe.
@SparseSparse
@SparseSparse 8 жыл бұрын
No, the planets are not generated server side. That would be INSANE for any server to handle. The "key"s that were talked about in this video are also the result of another algorithm that takes in the location of the player. If two people are at the same location, the planets nearby will get the same key and thus the same planet will appear. Every computer generates the same planets in the same places because they all use the same algorithm. The only thing the servers handle is the naming and discoveries of things. The way this works is by sending the server the "key" of the planet/creature/plant/etc. and the desired name. It gets stored server side, then whenever another computer comes across that "key" it asks the server "What is the name of the object with this key?" If someone had previously discovered it, it will quickly send back the name.
@FlameRat_YehLon
@FlameRat_YehLon 8 жыл бұрын
The whole galaxy is generated with an algorithm too. So... Even though in theory you can generate the same planet out with the same key, it's super hard to know where that planet originally was anyway. It's just like RSA encryption, easy to crack one way but not another. As for source code, reverse engineering a game is illegal. Minecraft players habe less issue since Mojang hired the MCP team and allows them to release part of the source code of the game, but I don't think HelloGames is going to release the source code, at least not any time soon.
@SparseSparse
@SparseSparse 8 жыл бұрын
野龍 Why would you want to find the key/seed of an already generated planet through the planet data. If anything the seed/key would be stored with the planet in memory.
@FlameRat_YehLon
@FlameRat_YehLon 8 жыл бұрын
TomHazRedstone What I mean is, it's easy to generate the exact same planet/star, but it's almost impossible to find where that planet/star actually is. So, even if they allows you to teleport to a specific star system, you won't know the location of that system and what's near that system unless you actually went there via the galactic map.
@XanderHDD
@XanderHDD 8 жыл бұрын
Great video, thanks.
@TrainersToLeaders
@TrainersToLeaders 8 жыл бұрын
While I agree with your views, this game is not the first in anything, PC games in the late 80's early 90's were using procedural generation regularly but besides that great video :)
@manamaster6
@manamaster6 8 жыл бұрын
I made a very dumb-down explanation of how procedural generation works based on the publications the dev team published on the official PlayStation blog.
@33shin33
@33shin33 8 жыл бұрын
Why would I want some random kitchen knife, when I could buy handcrafted Japanese Katanas.
@tdc22a
@tdc22a 8 жыл бұрын
Cool Video! I really like the images and videos you've shown in the video. VERY minor point of criticism: If you have an equation with c and z, don't pronounce z as "zee", instead use "zed" (afaik the british pronounciation) to make it easier to differentiate the two. (Or just use different letters entirely...) Procedural generation is certainly an interesting topic and I should look deeper into it at some point. But one thing I'm always curious about is how to render massive structures like entire planets. In your rendering video you already talked about the projection matrix which usually has a zNear and a zFar to determine the near and far clip planes. If one now tries to push the far plane back to - let's say the size of a planet - that generally leads to inaccuracies and fragements close to the camera because the depthbuffer just isn't big/precise enough... one possible solution is to use a non-linear depth buffer or splitting up the depth buffer into multiple parts for different distances, but that stuff can get complicated pretty fast. I believe there was a really interesting talk or article by the devs of Kerbal Space Program about exactly that problem and how they handled it in Unity, but I can't find it right now. Anyway, great stuff as always. :) Also, I can't participate in the current gamedev-challenge due to exams but I'll probably be back for the next one.
@elbroder995
@elbroder995 8 жыл бұрын
your channel is so amazing
@Freezee42
@Freezee42 8 жыл бұрын
Interesting video, but I would loved if you talked of other ways to create random things in games, not only for terrain generator like No Man's Sky or Minecraft, but also random entities placements (spawn point for example), loots in dungeons, and on and on... but also you could have explained how "seeds" works, because now a lot of games are working with seeds. Also, I don't agree with the fact that every planet in the game should have their own kind of seed, because it's more ressource intensive to generate a random seed for every planet that we reach, once we reached a planet, the seed must be saved on the save file, and that's it. But that's not problematic for one planet, buuuut, for a ton of different planets, this is different. Why not having only ONE seed, the seed of the save like in Minecraft. With this seed, all of the random is related to this seed, to make it looks random, but also to have the possibility to have the same environment by sharing the seed. Also, with the system of having only ONE seed, this could also be used to randomly generated planets with their positions. You take the seed, you take the position of the planet, mix it with a randomizer, and you have the unique seed to generate the planet, and it doesn't need to be saved because it will be generated the exact same way the other time! The only thing you need to save is all the modifications you made on this planet, and that's all. Anyway, still a great video, it's always interesting for people who doesn't know anything about procedural generation and how powerful this system is ^^
@snaawflake
@snaawflake 8 жыл бұрын
the seed IS that "key" in the video
@george_763
@george_763 8 жыл бұрын
I don't want to sound obnoxious but, what do you mean? It wouldn't really be resource intensive at all to generate a key for a single planet, and realistically even though it will obviously be more complicated, it's pretty easy to imagine a planet manager class that acts as a container for a bunch more classes that decide a planets 'origin' state based off some number thrown to the planet manager class. That way the 'origin' state stays the same, this does mean that modifications to the planet wouldn't be stored but there is no way to realistically log the modifications and change the state of a planet accordingly upon regeneration.
@Freezee42
@Freezee42 8 жыл бұрын
***** Here the problem is not the generation of the seed, but if the game worked as explained in the video, this mean that every seed for every planet should be saved, and this could take with time a little bit of useless space that we can avoid So the idea is to make one unique seed that is used to "get" seed of any planet by just having them positions (because it's the first obvious and light thing that changes with different planets) so it doesn't have to be stored, but it'll be generated each time we need
@george_763
@george_763 8 жыл бұрын
+Freezee I kind of took that as what was said in the video, a unique 'key' used to generate a planet isn't necessarily a seed, just n output or set of outputs.
@gopro2027
@gopro2027 8 жыл бұрын
A seed is essentially a number. And it is used in the equation to generate it. So if the equation was 4x+5 where x was the seed, we could put different seeds in to get a different result. A simple example of how a seed it a number: seed = "abc123"; What we do is take the ascii value of each character and add them together. a is 97, b is 98, c is 99, 1 is 41, 2 is 42, 3 is 43 and add those numbers together and we have our seed. note: I may have gotten the ascii values wrong. sorry.
@GothaBillsAndDeath
@GothaBillsAndDeath 8 жыл бұрын
I mean, that really wasn't the only reason they were angry. What determines a technological feat does not determine what's in a great game. Promised space battles, variety in enemies, animals, and plants, little to no diversity in AI interaction with one another from a predator prey standpoint, no real game goals, a confusing explanation of Dark Souls-esque online system that wasn't implemented at all. Honestly, I think while it will become an engine for future game developers, it's a lesson in not over-promising your backers things you physically cannot do.
@GameMovieStudios2000
@GameMovieStudios2000 3 жыл бұрын
what a disapoitment that was. its good that they improved it though
@padiengel
@padiengel 8 жыл бұрын
My question is, how the game keeps track of things the player destroys during mining for instance. Does it have to save every bit i destroy because the world is different than the generated one? Then the save would get bigger and bigger for every rock i destroy.
@lewisb8634
@lewisb8634 8 жыл бұрын
It saves all the changes you make - there would be no other way to preserve modifications/updates to terrain. They will probably be saved in chunks or regions, so that only changes that occur on one chunk are saved in one chunk - there is no point saving the data regarding the WHOLE planet, if only two rocks were broken. But yeah, you're right - the world save will get a bit bigger everytime you break a rock! The same thing can be seen in Minecraft - very old worlds that people have played on for years have a very large storage size. With HelloGames handling the servers, the amount of space taken up by changes is not your problem, but have you ever wondered why we cannot modify ALL the aspects of the world and all the terrain? Millions of players all doing that would be very expensive to store on a server!
@Optimus6128
@Optimus6128 8 жыл бұрын
Yes, I guess that's why they run into problems and never implemented multiplayer. The planet, land, items, area in their initial state are described by procedural generation algorithm, unaltered. These are much smaller functions and equations in memory, generating the visuals on the fly. But if the player starts arbitrarly breaking stuff, changing the shapes, it cannot predict a matching equation/function for the alterations of the player digging ground. So now it has to start saving regular chunks of non-procedural data that the player's gameplay creates. So, now from few kbs of defining equations, we end up with much more kbs or MBs of added land destruction data saved in memory. If two players where in multiplayer together, I guess they would see the same original planet, but their alteration in the environment would be much harder to be synchronized and transfered through the network. And if they wanted to somehow keep in a big server, the little changes players do on gazillions of unique planets, this wouldn't work well. That's what I think is the reason they scrapped the multiplayer or it doesn't really work (two players see the same planet but they can't see their interactions/alterations, it's like the same planet in two parallel dimensions). Also, I think I was making some holes in the cave to visit later, then went to a save point to save, came back and all my alterations dissapeared after the save :P
@Something_-_Else
@Something_-_Else 8 жыл бұрын
TheHappieCat there is something else going in your upper part while you're making this video
@flint2368
@flint2368 8 жыл бұрын
isn't it more reasonable to store a planet with a seed? so if you want to revisit the planet, it just uses the seed in the same generating program so you get the same planet but the computer only has to remember the seed.
@Piezac
@Piezac 8 жыл бұрын
great vid!
@jamespogg
@jamespogg 8 жыл бұрын
haha just got a dark souls ad on your channel :)
@joebazooks
@joebazooks 8 жыл бұрын
procedural generation is so fascinating. can't pg be described as an elementary form of ai?
@nBoxes
@nBoxes 8 жыл бұрын
Nice explanation. You might have mentioned L-systems for specifically generating Botany. If you have the time take a look at the ebook "Algorithmic Botany" here: algorithmicbotany.org/papers/#abop There also is a ton of other information on this site too, even current research into algorithmic modelling.
@superpachin
@superpachin 8 жыл бұрын
You say that this hasn't been done... but have you checked Space Engine? It's not a "game", but...
@pauliusthehandsomebaby5838
@pauliusthehandsomebaby5838 8 жыл бұрын
i still dont completely get how a world is generated by a seed. what does the code do with the seed.
@DefoxxGaming
@DefoxxGaming 8 жыл бұрын
As far as I know the world is built by the code based on specific arguments. Not arguments like 'tree density' or how much water there is, but one single argument: the seed.
@pauliusthehandsomebaby5838
@pauliusthehandsomebaby5838 8 жыл бұрын
+Defoxx Gaming i know that. but i want a more practical explanation.
@DefoxxGaming
@DefoxxGaming 8 жыл бұрын
Can't personally help you with that, but I would assume there are plenty tutorials on random world gen on the internet, they could answer your question.
@pauliusthehandsomebaby5838
@pauliusthehandsomebaby5838 8 жыл бұрын
+Defoxx Gaming i know. im not trying to make procedural generated worlds/levels just want to understand it enough that i could.
@pauliusthehandsomebaby5838
@pauliusthehandsomebaby5838 8 жыл бұрын
+Defoxx Gaming also thanks
@SToddyMr
@SToddyMr 8 жыл бұрын
Video about fractos(?) please
@philipschloesser
@philipschloesser 7 жыл бұрын
Fractals are not necessarily self-similar
@sumsar101711
@sumsar101711 8 жыл бұрын
This doesn't really explain how they are able to save changes made by other players - and how they are able to simulate how a planet has changed sins the last player was on it.
@nesh319
@nesh319 8 жыл бұрын
maybe the things players do changues the formulas or something like that
@Cara.314
@Cara.314 8 жыл бұрын
it works a lot like minecraft actually, basically they just store the changes. so instead of saving the entire planet, you just save what the players changed about it. then reapply those changes the next time the planet is generated. so if you dug out a cave for example, they only need to store where the negative space is.
@FlameRat_YehLon
@FlameRat_YehLon 8 жыл бұрын
The basic idea is incremental backup and restoring.
@lewisb8634
@lewisb8634 8 жыл бұрын
As someone below commented, the changes made are stored. There would be no other way to save modifications. The planets/solar systems/galaxies will be broken up into chunks - regions of different sizes that are independent to each other. If a player changes this rock, on this planet, in this solar system, the location of the change in each chunk would be stored and then the modified actual data would be stored. This way, only stuff that is being changed has to be stored, because everything else can just be generated as it was normally again. I'm guessing that before the terrain generation phase of each chunk, there are checks to see whether this chunk has been modfied. If it has, then the modified saved chunk is loaded straight in, otherwise is it generated like normal. Ever wondered why the developers couldn't have added modification of everything? Like being able to shape the whole of the planet's terrain, and cut bits off trees and dig holes anywhere etc. Wouldn't that be good! Well, as mentioned earlier all changes have to be stored, so for one company (because they handle all the servers themselves) to store ALL those changes and constantly being created by millions of people, would be crazy. It's different in Minecraft, because a) servers can be payed for by anyone and b) blocks are a fixed type and position. Imagine what would have to be stored if a player dug a hole - all the new vertex coordinates of the terrain at that specific point etc... This is why possible modfications are limited.
5 жыл бұрын
Something technically incorrect in this video is cleared up in this video: kzbin.info/www/bejne/nXOcn2Wdfdh7hJY ("Fractals are typically not self-similar") Also, the "3D fractal" you showed is pretty clearly at least a 4D fractal or something else animated, because it changed over time.
@viktorn8487
@viktorn8487 8 жыл бұрын
Keep up the good work! Greetings from germany! :)
@bobanaut
@bobanaut 8 жыл бұрын
Fractals are not relevant to procedural generation as we see it now, they would be too slow and they would result in too much similarity, neither is desired.
@TheHappieCat
@TheHappieCat 8 жыл бұрын
I'll be talking about applying these ideas in practice in my next video. For example, fractional brownian motion is a simple process with fractal self-similarity we can use to generate and regenerate maps.
@Optimus6128
@Optimus6128 8 жыл бұрын
They are still used in some realtime demoscene 4k intros, raymarched amazing stuff, but in games everyone is using perlin noise of course :)
@RussellTeapot
@RussellTeapot 8 жыл бұрын
"fractal" doesn't necessarly means "perfectly self similar", only "mathematical" fractals tend to that definition. Indeed, Benoit Mandelbrot referred to natural structures (rivers, trees, mountains, lightnings) as fractal, despite _not_ being perfectly self similar. I believe the key concept here is that the "feel" of the structure stays more or less the same, regardless the magnitude of the features. What's more important here is the recursive applications of the same steps, over and over, on different scales (think about the midpoint generation algorithm, for instance)
@paxdriver
@paxdriver 7 жыл бұрын
Bobanaut Awesome fractals are the only reason 3d maps are possible, actually. Watch hunting the hidden dimension, it shows exactly how the first 3d sims used fractals specifically to make 3d rendering as a whole, possible. Fractals are responsible in code for rapid vectoring on the chip level of circuits, they're many times faster than standard sequential processing.
@memsom
@memsom 8 жыл бұрын
Ho does this differ from Elite? Elite did this on an 8-bit micro computer in the 1980's. Take a look at www.elitehomepage.org/text/index.htm where there's a text only version of the game that generates the universe using the same algorithm.
@hodgkinsstuff3766
@hodgkinsstuff3766 8 жыл бұрын
How did you get so smart like, im Jelous
@RAFMnBgaming
@RAFMnBgaming 8 жыл бұрын
how would you say the procedural animals work?
@lewisb8634
@lewisb8634 8 жыл бұрын
Its all just input and output. The planets would be generated with properties based on positions from nearest stars etc and other environmental characteristics. These would function as the input for the code that determines what species of animals should inhabit the planet. Numerical ouput can directly be mapped to anything you want eg With an output between 1 and 10, if the number is less than 4 then it should be green or if it is exactly 5.476 then it should be this rare animal model etc. Considering the developers did model the basic animal 'blueprints' they may be grouped into habitats or temperatures. Then the ouput of the previously mentioned algorithm can be used to select a model to use and then further pseudo-random outputs through more iterations can extend legs, shrink tails, add scales, change colour, make longer, increase in size, make faster etc - all these different properties couod be changed from one original base animal to create millions of different ones. This is just my guess though. What they do is probably different, but you get the idea ;)
@igornowicki29
@igornowicki29 7 жыл бұрын
I'm not sure if discussing anything about No Man's Sky is a good option. I would rather describe procedural generation in Minecraft, this game seems to be much less controversial :)
@soulmaster9481
@soulmaster9481 Жыл бұрын
(laughs in mob votes)
@igornowicki29
@igornowicki29 Жыл бұрын
@@soulmaster9481 Yeah, reception of the game changed due to great updates. Good for them.
@balsm964
@balsm964 8 жыл бұрын
#SuperFormula
@Masfugo
@Masfugo 8 жыл бұрын
02:53 *trypophobia intensifies*
@fess3932
@fess3932 8 жыл бұрын
Judging based on how many lies this game is based on, I would guess that they made the 18 quintillion planets themselves and nothing is actually procedurally generated.
@dangerousish7837
@dangerousish7837 8 жыл бұрын
I get the joke but you couldn't even count to 18 quintillion within your lifetime if you counted up a number every second.
@fess3932
@fess3932 8 жыл бұрын
Novel Keeper I definitely did not know that obvious and well known fact, my knowledge has been exorbitantly expanded thanks to you!
@kim15742
@kim15742 8 жыл бұрын
Well, sadly the procedural Generation didn't save it from all the developers' undheld promises
@kim15742
@kim15742 8 жыл бұрын
Is holding a promise even English?
@SianaGearz
@SianaGearz 8 жыл бұрын
Your prior usage makes total sense (barring a little typo), even if it's not entirely what you meant. Holding a promise means that something makes an impression or seems potentially rewarding, although a promise per se cannot be committed to at present. e.g. "animal cloning held promise for medical research". So unheld promises are expectations that may have not been promises per se but didn't come true. If they were instead actual promises (not "we're working towards this" but "this is what you're going to receive"), that's "promises not upheld". Then again. please take this with a grain of salt, i'm not a native English speaker.
@kim15742
@kim15742 8 жыл бұрын
Siana Gearz Thank you very much for this elaborate explaination. The phrase I was looking for was actually "keep a promise", it just is "hold a promise" in German, my mother tongue.
@kim15742
@kim15742 8 жыл бұрын
Siana Gearz Okay, so "hold a promise" is like put a "promise on hold", correct?
@SianaGearz
@SianaGearz 8 жыл бұрын
The only proper usage of "on hold" that i am aware of would be in telephony, so i'm not sure what you mean. I can see what you mean now with language confusion... "Versprechen halten" as a short form of "Versprechen einhalten". It somehow hasn't occurred to me prior, even though i guessed you were German speaking. Which is equivalent to "uphold a promise". But "hold a promise" is a short form of "hold out a promise".
@edgarazaky8256
@edgarazaky8256 8 жыл бұрын
What do you think of the game? I don't get all the hate going about it
@sechmascm
@sechmascm 8 жыл бұрын
Some of the players are having problems/crashes on pc and sometimes ps4. Note that I dont have these problems so is a small fraction of gamers that do have them
@Imetral0
@Imetral0 8 жыл бұрын
horrible PC port and generic early access survival game gameplay
@CogniVision
@CogniVision 8 жыл бұрын
What game? It's just a shitty survival simulator.
@tiagotiagot
@tiagotiagot 8 жыл бұрын
I haven't played it myself; but I heard that things start getting interesting after many hours of play (I think you eventually do something that unlocks more interesting areas or features or something, I'm not sure). Also I've heard more than one person say it had a philosophical effect, making people think about stuff they don't usually think about etc; positive stuff.
@CogniVision
@CogniVision 8 жыл бұрын
***** If anyone gets a philosophical effect from No Man's Sky, they should rethink their life... maybe go read a book.
@skipperbentdk
@skipperbentdk 8 жыл бұрын
No Mans Buy
@RussellTeapot
@RussellTeapot 8 жыл бұрын
HA! shots fired
@proxbayu2375
@proxbayu2375 7 жыл бұрын
oh i know now how it work thanks you very much. nc video :)
@Vashlor91
@Vashlor91 8 жыл бұрын
NMS is a cool concept but a "not so good" game. I believe it's a very good framework, just not worth $60 in it's current state. Hopefully the devs have considered mod support and the game will get it latter down the line.
@DefoxxGaming
@DefoxxGaming 8 жыл бұрын
I don't believe that the debs will add mod support, simply due to the fact that mods could severely screw up the galaxy-wide dynamic economy they have created. I do agree on the fact it's not worth €60, more like €30 or even €25. The game is still in a content-lacking almost early access state imo
@samlovescoding
@samlovescoding 8 жыл бұрын
I thought the game had super long but limited map. Anyways it just froze my Pc for 15min causing too much lag.
@grrr1351
@grrr1351 8 жыл бұрын
You and your friends, not with your friends
How does procedural generation work? | Bitwise
13:48
DigiDigger
Рет қаралды 388 М.
Good teacher wows kids with practical examples #shorts
00:32
I migliori trucchetti di Fabiosa
Рет қаралды 13 МЛН
Kluster Duo #настольныеигры #boardgames #игры #games #настолки #настольные_игры
00:47
Это было очень близко...
00:10
Аришнев
Рет қаралды 6 МЛН
버블티로 부자 구별하는법4
00:11
진영민yeongmin
Рет қаралды 23 МЛН
A simple procedural animation technique
8:31
argonaut
Рет қаралды 433 М.
No Man's Sky Lore Explained - Everything You Need To Know
12:29
Chukieman
Рет қаралды 177 М.
Minecraft’s Most Famous Map is Being STOLEN… by Microsoft...
16:57
I programmed some creatures. They Evolved.
56:10
davidrandallmiller
Рет қаралды 4,2 МЛН
Building Worlds in No Man's Sky Using Math(s)
53:52
GDC 2025
Рет қаралды 100 М.
How One Programmer Created Gaming's Most Complex Ecosystem
28:29
ThatGuyGlen
Рет қаралды 1,7 МЛН
Starfield vs No Man's Sky
17:56
Dirt The Gamer
Рет қаралды 189 М.
Good teacher wows kids with practical examples #shorts
00:32
I migliori trucchetti di Fabiosa
Рет қаралды 13 МЛН