Light wrote: Thu May 02, 2019 9:20 pm
I'm curious to know if there's any timeframe for release of multiplayer worlds. The idea of everyone starting on their own planet is very enticing for my multiplayer group, with everyone having a different experience from each other for better or worse.
It was pretty low down on the priority list, but as you have a strong interest in this feature I can move it much higher up. I can't really give an estimated date right now because, to be honest, it involve some things I've never had to deal with before so I have no idea what is involved or how long it will take. Also it is often a struggle to find people to help with multiplayer testing.
orzelek wrote: Thu May 02, 2019 9:55 pm
I was working on RSO today to make it compatible with Space Exploration and I have a version that works.
I have run into a bit of a problem with they way that planets are differentiated currently and they way that RSO uses map generation settings.
It seems that you are mainly modifying frequency of resources while only slightly touching size and richness. And since frequency has different meaning in RSO most of planets end up pretty devoid of resources. And for asteroid belts it's like playing lottery - chance for RSO to hit islands is minimal
I think I'd need to somehow translate those changes to map settings for RSO use. And it seems that for asteroid belts I could maybe cheat a bit and spawn asteroid under the resource automatically to get at least some of them up on the map.
I would also be interested in one additional feature - do you have some concept of difficulty/distance for planets that would make resources on them more rich? If something like that exists it could help me to have your mod give some hints to RSO to applly during resource generation.
It would be also pretty useful to know the planet size somehow so that I could potentially automatically reduce region size for smaller planets to make sure that at least few patches will spawn.
I think that spawning asteroid under the resource is a great idea, but there are some considerations that should be taken based on the zone type.
In general size and richness are heavily modified, frequency is standardised in space and scaled with the body radius on planets / moons.
Space:
Non-space resources have a size and richness of 0 so they should not spawn. All resources have a frequency of 4 so that there is a better chance of coinciding with an asteroid.
Asteroid fields: Resources should be relatively high but mainly focused on 1 resource type, the asteroid field extends far in X and Y, so wherever the resources spawn that is fine. The resource values are: size between 3 and 5 for the primary resource, or 1 and 3 for other resources, richness between 1.1 and 2.1 for the primary resource, 0.1 and 1.1 for other resources.
Asteroid Belts: Resources are relatively high and are not specialised to 1 resource type, they have a good mix. Asteroids extend far in the X direction, but quickly falls away in the Y direction. Asteroids are less likely outside of the -200 to 200 range. The resource values are: size between 3 and 5, richness between 1.1 and 2.1.
Orbits: The primary resource is the same as the planet resource if it is a space-valid resource (not coal or oil) otherwise it is a random space resource. The resource values are: size between 1.5 and 2 for the primary resource, or 0.5 and 1.5 for other resources, richness between 0.8 and 1.4 for the primary resource, 0.05 and 0.6 for other resources.
Spaceship space: Should not have any resources.
Other space zones: there is a very narrow band of about 25 units where asteroids can spawn but they are rare. The resource values are the same as asteroid fields, but there are so few asteroids that the values end up way lower.
The asteroid probability penalty is controlled by the formula that is approximately: 1 - math.abs(Y)) / planet_size.size_multiplier
Where Y is the Y position, planet_size is the mapgen setting "planet-size" and size_multiplier is the the control's size.
The real asteroid placement formula is at the bottom of prototypes/phase-3/noise-programs.lua
Planets:
Resource frequency is based on the planets size. Smaller planets (moons) have resource patches closer together. There is some additional variation in the per-resource frequency to mix things up a bit.
Frequency is between 0.6 and 1.5, but this is further lowered for big planets and increased for moons.
Size is between 1 and 1.6 for the primary resource, and between 0.05 and 0.6 for other resources.
Richness is between 0.8 and 1.4 for the primary resource, and between 0.05 and 0.6 for other resources.
Remote Interfaces:
At the bottom of the control.lua there are some interfaces. most of them are for debugging, but there is one for get_zone_from_surface_index. It is not well tested but returns the zone data for the surface (if any). The returned data has the zone type, primary resources, intended resource controls, and other things.