Get rid of the "grid" of systems.
Galaxy generation process:
Galaxy generation process:
- Phase 1: Position galaxy centers
- Phase 2: Stars, black holes, wormholes
- Phase 3: Form star Systems as spheres of sectors around stars
- Phase 4: When someone enters the system, generate planet and asteroid orbits and stuff
- Phase 5: When someone enters the sector, generate blocks. Don't save them if nothing is edited.
- Fewer/weirder planets in multi-star systems
- Jump drive range affected by gravity (longer jump range in deep space)
Starmade's universe is composed of a grid of sectors. This is a basic characteristic of the engine that will not change; it will only be debugged. That's fine. What isn't fine in my opinion is that star systems are treated the same way. Stars can only be offset slightly in their system blocks, resulting in a visibly grid-like galaxy. You can see it - just look at the sky from within the galactic core. Stars are lined up in neat rows. The galaxies are the same way. This could be fixed by scattering star systems and galaxies further apart on the grid, but I have an idea that will serve better by allowing more varied star system and galaxy sizes and spacing.
Now don't go screaming at me that the Schema is focusing on other areas of development right now. Thanks, Captain Obvious-and-Obnoxious. I know that. Don't let that stop us from coming up with ideas for later.
Also, don't scream at me about adding a lot of computational overhead to galaxy generation.
1. A lot of this only happens once per galaxy.
2. None of us, including the council and most Schine staff, know the inner workings of Starmade's engine. If you don't have experience with Java, don't even comment on this. Ignorant objections make me angry.
3. Schema is smart - he will figure out how to do what he wants to do with a reasonable amount of computing. Let him handle it.
Generation phase 1: Galaxy placement.
The game should decide the placement of the centers of galaxies, and the sizes of said galaxies. This may be fairly uniform, or it could follow the actual structure of the real life universe with clusters, superclusters and ultimately walls and tendrils. Starmade's universe is plenty big enough if Schema has that kind of attention to detail.
Config options include:
- Average, minimum, and maximum galaxy sizes
- Galaxy density (how close together galaxies are)
Generation phase 2: Stars and black holes.
The game only needs to generate the spawn galaxy to begin with, until someone goes out and explores to find another galaxy. Generate the positions and masses of stars, and throw in wormholes here and there. The mass of a star is used in the next step.
Config options include:
- Density of stars
- Density of black holes
- Average number of wormhole connections per black hole
Generation phase 3: Form star systems
- For each star, check for other stars within a radius based on its mass.
- If a star is within a certain radius, flag the two stars as a binary star system.
- If two or more stars are found in proximity, reduce check radius and check again until only one "buddy" star is found. (I guess you could do trinary star systems, but IDC.)
- For single-star systems, flag sectors in a sphere around it as part of the star system. Radius of the sphere is based on the star's mass.
- For binary star systems, calculate the star system's center of gravity and form a sphere around that based on the mass of both stars.
- This might be a good time to place stuff like interstellar nebulae as well.
Much like now, generate planet orbits around star systems within their boundaries. One thing needs to change, however. Orbits should be able to generate at different angles, not just in a flat disc. They may trend toward a disk, but shouldn't be exactly a disc.
Hopefully by the time Schema gets around to a major generation overhaul, we'll have additional planet types and some other celestial bodies.
Generation phase 5: Generate structures
When someone enters a sector, generate any structures that belong there. This works just like it does today. If none of the blocks change, the blocks don't need to be saved.
Additional mechanics: some random things I thought of while writing this.
- In multi-star systems, planets are less likely to be present (especially close to either star) because orbits would be goofy around two stars. Speaking realistically, those that do exist would have major climate swings.
- Since jump drives have to bend space, it makes sense that being near a gravity well would affect their function. When in a star system, jump range could be reduced somewhat. Conversely, jump range is longer outside of star systems, making interstellar voyages shorter and less boring than they would be otherwise.
Last edited: