1. If you're looking for help-related things (for example, the key rebinding tutorial), please check the FAQ and Q&A forum! A lot of the stickies from this forum have been moved there to clean up space.
    Dismiss Notice

Planet Seeds: How do they work?

Discussion in 'Starbound Discussion' started by Katzeus, Jul 26, 2013.

  1. Xander

    Xander Spaceman Spiff

    Currently:

    There is one "set" universe in the core game. (Mods may change this by altering variables.)
    If you both type in x:1234 & y:1234 you'll end up at the exact same place, single or multi-player.
    Cords are basically the rng seed of the planet. It tells the game what should appear at place X.
    Planet generation will be the same for everyone. Loot may be randomized, they are looking into it.
    "12.667 quadrillion planets in the game currently. 422.22 quadrillion planets expected for release."

    Take it with a grain of salt, its just my understanding of it.
     
  2. TheLoanArranger

    TheLoanArranger Ketchup Robot

    I don't think I can do this like you're 7, but you seem to mostly get it already, so I'll give clarification a shot.


    Procedural generation: starts with a seed, applies an algorithm, gives a result. It is not "random" in the sense that the result is unpredictable. It's just like any other math formula- 2x + 5 is going to equal 15 every time x (the seed in our case) is 5, just as a grossly simplified example. The part that people confuse to be "random", is that we do not know ahead of time what that formula is (or how the result will be interpreted).

    So- everything that uses an algorithm based on the planet's coordinates will be the same. Things that do not (assuming there are some) will be different (such as loot locations/contents as has been suggested to be a possibility- these may be seeded with some number that can't be predicted ahead of time, such as 'time of first visit to planet', 'name of first player to visit converted to binary' or some such unlikely to be repeated number).
     
    PSS and Rookee like this.
  3. Rookee

    Rookee Big Damn Hero

    Ok, I get what what your saying. But, everyone's Starmap will be different as to how the planets are graphically represented, correct? meaning, planets won't be in the same place visually on the starmap for different players.:unsure:

    I assumed this as well; seeds within seeds. So question: will the solar system be the same for a planet or can a planet spawn in different solar systems? Is there a solar system seed?
     
    Mianso likes this.
  4. Mianso

    Mianso Black Hole Surfer

    Seeing what omni has stated, each universe will have the same system in the same place. So i guess the system coordinates are the seeds of all the planets of that star system.
     
  5. Miss Andry

    Miss Andry Cosmic Narwhal

    you're not understanding what I am saying either it looks like

    but whatever
     
  6. jason2li

    jason2li Aquatic Astronaut

    Think of it like our universe... there is only one. Our scientists have already mapped lots of stars/planets/etc. So, because of them, I could send you their coordinates.

    The same goes for Starbound, we all have the same universe to play in (from the start). But anything you change in your universe will only be affected in your universe, because your computer only stores anything that you have changed (if you are playing on a server, the server stores the changes). And anything your friend changes in their universe, is only affected in their universe. But we all start with the exact same universe, with the exact same planets in the exact same location, with the exact same hills/valleys/dungeons/ore/etc (excluding possibly loot).

    This allows us, as fans, to share some cool dungeon/landscape/planet/etc with the rest of the community.

    That is my understanding, correct me if I am wrong.

    Also, I would like to throw my vote in for the option of a universe seed, so each time we play could potentially be within a new universe.
     
    yellowmonkeys and PSS like this.
  7. Mianso

    Mianso Black Hole Surfer

    Yes. Yes the planets are the same.
     
  8. aangthenomad

    aangthenomad Void-Bound Voyager

    I'm wondering how the 'infinite' planets will work with the seed system. I might be wrong, but i remember reading somewhere that Tiy confirmed there will be planets that continue to generate in either direction as you explore. Will be interesting to see...
     
  9. Rookee

    Rookee Big Damn Hero


    It doesn't make sense that the Universe is the same for every player. A players "universe" will consist of 10 sectors each of which has a different seed. If they were the same for each player, what would be the point of giving them a 64 bit seed? The whole point of procedurally generation is to make it different every time you play. A planet's coordinates is just a seed that tells the engine to generate a specific planet.

    (sorry, I'm not trying to contentious. What you're saying just doesn't make sense to me)
     
  10. TheLoanArranger

    TheLoanArranger Ketchup Robot

    Procedural generation doesn't mean the game changes every time you play it. It just means that the content is generated based on a set of guidelines rather than handmade. (In this case, it will change every time you play it, unless you deliberately go to the same coordinates each time. Find Random Planet has a damn near 100% chance of giving you a planet that no player in the entire world has ever seen, due to the insane(ly awesome) number of total worlds).

    The seeds for the sectors you'll get in the base game are preset (not editable without mods). The sector seed tells the starmap where to place systems. The systems' coordinates then determine what planets are there. Each player who goes to Alpha sector will find the same systems in the same locations as each other player who goes to their own Alpha sector (if they are looking in the same places on the map).

    The point of this (sector seeds being preset) is so that players can share their discoveries of particularly interesting worlds. This would not be possible if every player didn't have the same universe.
     
    PSS and Rookee like this.
  11. Rookee

    Rookee Big Damn Hero


    Ok, Thanks. I was under the impression that the sectors were not preset, however, after re-reading omn's post I think you may be right. (I will pridefully remain skeptical, however :))

    Not necessarily, two sectors would not need to be the same in order to generate the same planet at the same coordinate. If each planet has a seed it could be generated in any sector and thus shared with anyone.
     
  12. TheLoanArranger

    TheLoanArranger Ketchup Robot

    Well, the planet coordinate wouldn't work if there isn't a planet at that position in that sector. It's not "generating" a planet, it's finding one that the sector says is already there. And I'd imagine the sector seed influences it as well, so the same coordinate wouldn't generate the same world if it happened to be in the same place, but that's just an assumption, they'd be identical if the sector seed isn't used in that way. [edit: I'm pretty sure it would have to be, at least in some aspect, since sectors seem to be grouping planets by level ranges as far as I've noticed in streams so it would have to at the very least contribute to determining the planet's level.]
     
  13. Rookee

    Rookee Big Damn Hero

    Hmmm...you may be right. However it is done, I'm sure it will be great!

    I am going to unwatch this thread now as my brain is starting to hurt.
     
  14. SpiroExDeus

    SpiroExDeus Cosmic Narwhal

    I guess it all depends on how the seeds are used.

    Is everything (the planet, it's inhabitants, etc.) all generated from a single seed or could it be more like:

    A seed based on planet co-ordinates selects Biomes, rough layout of mini biomes, roughly what creature types there will be etc.

    Then other 'random' seeds could be generated in other ways to control other factors within that framework. You can easily pick a 'random' seed by, for example, seeding a number for creature spawn from the millisecond that someone enters a particular mini biome. So, technically it's not random - if a player visited a planet at alpha 10528,12301 on 15th July 2014 10:45:25 and 325 milliseconds and another player visited a planet at alpha 10528,12301 on 21 August 2015 11:35:18 and 325 milliseconds they'd be able to visit the same minibiome and see exactly the same creatures but functionally there'd only be a 1/1000 chance of that happening and that would be after the coincidence of the planets in one game having the same co-ordinates as in the other.

    I'm just using this as an example to say that you can't assume what level the pseudorandomness is taken to. I mean I'm pretty sure it's a given that the time an individual monster spawns is probably an extra pseudorandom generated instance on top of the information seeded from the planet's initial co-ordinates and it's pretty clear from what's been said that the biome and minibiomes ARE determined from the co-ordinates but what's determined between those factors is up to Chucklefish and, I might suggest, anybody's guess otherwise.

    Also, not sure if they're using a Z or not. There's no z on planet so I'm guessing there's no z in space....
     
  15. TheLoanArranger

    TheLoanArranger Ketchup Robot

    There's no reason for most of that to need to vary. The only things that would have any real usefulness to making random independent of the planet's seed would be loot chest locations and/or contents (mostly contents, so people couldn't use outside info to find the "best" gear too easily- knowing where chests are isn't that useful in itself). The whole point of the 'sharing interesting worlds you find' would be moot if another player didn't get virtually the same world.

    Besides, given that save files don't save the entire block layout of the world but rather the changes, it would have to generate the same exact world every time. It could save additional info to do what you describe, but I don't see a benefit in it. There are enough worlds already, don't need to worry about individual ones varying.
     
    PSS likes this.
  16. SpiroExDeus

    SpiroExDeus Cosmic Narwhal

    I guess my point was that the whole thing isn't JUST predetermined by the xy & galaxy locations of the planet. A planet will (probably) be procedurally generated from its seed and other routines when first visited. When you save game or move from a planet the extra info will be saved on top of the seed - even if that's only your location on the planet or what you've mined. This means that there'll always be extra information to be saved so adding a tiny bit to that wouldn't matter much. If, say, a planet has it's biomes and minibiomes and a large set of creatures potentially available it wouldn't take that much savespace for a separate pseudorandomly generated number to determine which smaller (but still massive) subset of the large set of creatures will actually exist on that planet. This would actually increase playability because, even though in a wiki/ forum someone could say "You may meet a fire spitting Lotharian Gumbo on Planet Xenfodutius which will be found on co-ordinates Alpha 24031,33705" it's possible that actually that creature may take a long while to discover on an indentical planet in someone else's universe. A different player, however, due to the similarities, might discover that instead he has an acid spitting Lotharian Gumbo. This would somewhat mirror the real world as we are discovering new species every day and there are plenty of species people have heard of but never actually met. For instance, I have never encountered a Dumbo Octopus but I know they exist. Of course, I don't own a spaceship with teleport abilities. I would argue that knowing that Fire spitting Lotharian Gumbos always generated in the small above ground cave minibiome of the Forest biome of Alpha 24031,33705 would take all the mystery and therefore some of the fun out of the game.

    Similarly things like weather, treasure, ore distribution could easily be different per planet instance whilst still making it similar enough to share pertinent information with friends/ forum or wiki readers.

    So I guess I'm just saying that although each planet with the same seed will be very similar they won't be identical.

    Also I'm fairly sure that Starbound will have both fixed planets and randomly generated ones. It just fits the ethos of the whole game which is a mix of predetermined and procedurally generated factors. Having starter planets and a few others in fixed positions and then a pseudorandom generated number for the rest would add to the long term play value. The argument that each universe must be the same for the sharing of information to be worthwhile misses the fact that in multiplayer games (I assume) people will be visiting each other's universes thus making the potential for the usefulness of that information much more likely without needing each player to have the same planets in their universes.

    I'm also fairly sure that players won't be able to add in planets until modding/director mode is more fully implemented. This isn't a reply to your bit but to the someone who posted about cutting and pasting seeds in minecraft. Can't be bother to find and quote though so...
     
    yellowmonkeys likes this.
  17. TheLoanArranger

    TheLoanArranger Ketchup Robot

    It would be pointless and counterproductive to make most of that vary. Also, I don't think you really understand procedural generation- changing anything usually necessitates changing other things, and if I can't go to a planet, say 'hey, the starting location has a really awesome cliff formation covered in weird flower-trees, I want my friend to see it too' and have them see the exact same formation, then the sharing is meaningless.
    They've only ever said they will be identical (but mentioned that they might make loot vary). I don't know why you're so sure they won't be.

    edit;
    You assume incorrectly. You aren't "visiting another player's universe" you are sharing one instance of the same universe. With the same planets that you would encounter in your single player game.
     
  18. SpiroExDeus

    SpiroExDeus Cosmic Narwhal

    If you read a former post I wrote with an explanation on procedural generation where I cite fractals as an example you'll see that I TOTALLY understand the concept of procedural generation - a seed which produces predictable content from a relatively simple beginning. My argument is not on what procedural generation entails but to what extent it will be used in the game. You basically have three factors that can be put into play in programming (in the area of content generation): pseudo-randomness, procedural generation, and hard coding. So there are certain weapons, items, abilities etc. which are hard coded - for instance the construction of the original player character, certain big bosses, some weapons, the locations of at least some planets etc. Working backwards through my list is procedural generation. Planet seeding is the known example of this from Starbound, the planet grows from the 'seed' and at the very least, what biomes and what mini-biomes exist are generated by this. Lastly, pseudo randomness. I mean you COULD put true randomness in a game but only by including input from, for example, a webcam shot of a lava lamp, the input from a digital camera with the lense cap on or a digitised version of the minute electrical signals generated by a houseplant - not really practical for a game (even if you connect it to a random number server like lavarnd do you really want your game dependant on the load placed on such a server? I think not) so true random isn't possible but via a number of techniques, one example being a complex psuedorandom algorithm seeded by a number captured by the current realtime clock info from a computer (essentially we're talking another form of procedural generation but using the human factor. The time at which a human launches a program or executes a command will always vary - especially at the millisecond level so using this as a seed is a good way of producing something which appears totally random). The pseudorandom element will almost certainly be present in terms of what spawns (out of a subset of what is available on a given planet) when and probably in terms of weather as well.

    I think you're reading too much in - both to what I have said and to what Chucklefish have said. They said that two planets in THE SAME LOCATION would be identical - but obviously not totally identical as things like the time that creatures spawn will be different, also I assume weather patterns (when lightning appears, for instance) will also be more "random" but I guess it might be a procedurally generated pattern instead. There are some things that MUST be "random" for the game to remain fun. The level of randomness on top of the seeding process is entirely in the hands of the programmers and can't really be predicted by us. If you read my example carefully you'll notice I was talking about the things like the animals that spawn and distribution of ores. I think those are things which would be better randomised, along with the contents of containers and breakables. Saying "hey, the starting location has a really awesome cliff formation covered in weird flower-trees, I want my friend to see it too" is cool and adds to the feeling of sharing discovery. Being able to say "This planet has around 20% gargantium ore around 200 km underground in the middle of the planet" would also be cool, but if it gets to the level where you can say "at location 200, 315 alpha section at location 231, 203 of that planet you will find an ore deposit of predictium then I think that'll break it a bit. I'll try not to go into too much detail here but there's a case for procedurally generated ore distribution percentages without there being identical ore placement on any planet with the same x,y galaxy coords. So you have a planet seed that sets certain factors like biomes, mini biomes and percentage of ore then you have a seperate procedure which takes all squares labelled, um, "soil", for example and replaces them with a set percentage of coal, gold ore, iron ore, etc. etc. - this in itself would have to be some kind of seeded procedural generation to ensure that all that needs to be saved would be the planet seed, ore distribution seed and any changes physically made by the player.


    and you are making an assumption based on what has been shared in the forums and blog posting, which isn't nor can be the whole story. I'm just suggesting that as there are factors which WILL be random (unless you actually think that it'd be possible to say to someone turn up at planet bobo at [insert coordinates here], wait 5 seconds and shoot the sumatran tigerflea that appears) and that it would be too much to assume that, just because a planet is largely generated from a single nonrandom seed you can assume the level to which that makes it predictable because certain aspects may be more randomised than you initially thought. I guess I'm saying that people are making assumptions based on what has been said whereas what HASN'T been said leaves quite a lot of margin for error. Show me the post where Tiy or Omni or one of the other developers actually says "All the planets in every playthrough and instance of the game will be exactly the same" and I will both bow to your wisdom and be slightly dissappointed.

    To summarise, I'm NOT saying that any of the concepts put forward by myself are the case I'm actually arguing the opposite. That if Chucklefish say things are "procedurally generated" we can't assume that anything and everything will be procedurally generated. We already know that certain weapons etc. will be hard set and that the player's character design is determined by the player. This is a known case where things are MORE hard set than algoritmic (for instance the design of the level 1 boss). I'm arguing the case that we don't know to what extent other things wil morel be "randomly" generated based on a procedurally generated rough template at the time of planet generation. I'm arguing for less certainty - not for more certainty on my terms.
     
  19. TheLoanArranger

    TheLoanArranger Ketchup Robot

    I'm assuming the devs weren't lying about how the world generation works, true. 'each world will be generated the same for each player, and the save file only records the changes made' doesn't leave a lot of wiggle room for moving bits around, though yes, there's admittedly a chance that that was misworded or has simply been changed since then. I see no reason to assume that's the case, though.

    (Incidentally, the species of creatures that appear on a planet has also been stated to be tied to the seed. In one of the posts about world generation- not in the last week so I don't recall exactly where. But that again ties into the 'share your worlds' concept- check out this weird ass bug centaur thing, bro. Go kill some, they sound like sarah palin when they die.)


    Also, I'll repeat an earlier point- there's no good reason to randomize any of the actual world layout. There are enough worlds already. Knowing where one node of a particular ore is on one particular world is not valuable information, unless that ore only appears once per star system or something as obscenely rare. Anyone trying to chart out this stuff is facing a pointless task- with 400 quadrillion or so worlds, useful mapping is futile. So what if I can find some predictium on this world? That other one might have a huge undiscovered cache of unpredictium! Which everyone knows is way more valuable.
     
  20. SpiroExDeus

    SpiroExDeus Cosmic Narwhal

    I copied and pasted your quote into forum search so I could find where it was originally posted as I remembered no such declarative statement being made.

    The only result I got was your post in this thread. I'm quite open to the fact that what you said may be the case but it's not the only interpretation of what has been said.

    When you read the posts on procedural generation you heard 'each world will be generated the same for each player, and the save file only records the changes made, all the coordinates are hard set'

    and I heard 'each world at a given XY coordinate planet will be generated the same for each player, and the save file only records the changes made'. I don't actually recall anyone anywhere saying that all of the coordinates were hard set. In fact the posts from Omni quoted earlier in this thread would, to me, suggest otherwise.

    There are two main reasons for using procedural generation, one is saving space, the other is for enabling the setting of random seeds to produce a new, complex and workable game every time a completely new game is played. You assumed only the first. I assumed the first and the second.

    I guess finding the original post and seeing how definite it is would clear this up, but I can't actually be bothered to do this myself. I'll not bother posting any more of this as I feel we've both made our points as far as we can take them. If you want to find the original post and link it here then the only other post I'll make is to vaguely apologise for getting my facts wrong. Otherwise we'll end up with a progressively navel-gazing argument which would be interesting from the point of view of programming technique and the implementation of procedural, random and hard set factors but otherwise ultimately pointless. Arguably I may have already allowed this to happen.... ;)
     

Share This Page