I've taken a bit of inspiration from http://starmadedock.net/threads/procedurally-generated-space-dungeons-or-ssds.1454/ for this suggestion, this thread is focused on implementation of a similar idea.
My idea is to have a set of modules, each of which is the same total size (although they could have various shapes within that size), with airlocks in specific positions, which can be arranged in many ways. Rooms/modules could have one, two, three or four airlocks, which either go to another room, or space.
Starting from a central room, the procedural generation system would work through these (and likely more) aspects of the station, choosing randomly each time:
This is a quickly made, symmetrical, and poorly decorated cross-section:
The green lines show the borders of the modules. Here is the way my highly improbable station would be created by the procedural generation system:
The central module is the starting point, and I'll use up, left, right, down to explain which part I am at.
There could be 20-100+ different modules, with things like factories, plexlifters (to another level of the station), science labs, observation (glass) rooms etc.
The number of possible configurations of a 20 module station is huge, especially considering colors, and there is no reason a station couldn't have thousands of modules (other than looking a bit ridiculous). You would not see the same station twice. As most modules would lack windows, there would be a significant exploration factor for new players, as they get out of their ship to search the station.
To give players more reward for salvaging, and break up the right angles, the walls could be made several blocks thick.
The airlocks give it a far more realistic feeling than the current stations, which are completely open to space.
Any improvements/ideas?
My idea is to have a set of modules, each of which is the same total size (although they could have various shapes within that size), with airlocks in specific positions, which can be arranged in many ways. Rooms/modules could have one, two, three or four airlocks, which either go to another room, or space.
Starting from a central room, the procedural generation system would work through these (and likely more) aspects of the station, choosing randomly each time:
- Primary color
- Secondary color
- Goes to first available airlock (with nothing on other side):
- Select module or airlock to space
- Select orientation of module
- Select module or airlock to space
- Next available airlock
- Repeat previous step
This is a quickly made, symmetrical, and poorly decorated cross-section:
The green lines show the borders of the modules. Here is the way my highly improbable station would be created by the procedural generation system:
The central module is the starting point, and I'll use up, left, right, down to explain which part I am at.
- Primary color: Blue
- Secondary color: Yellow
- First available airlock: Up
- Airlock to space, nothing further to do.
- Next available airlock: Right
- Power generation room, with three airlocks, middle airlock connected.
- Next available airlock (from power room): Up
- Crew quarters, two airlocks, corner configuration.
- Next available airlock (from crew quarters): Right
- Docking module, one airlock.
There could be 20-100+ different modules, with things like factories, plexlifters (to another level of the station), science labs, observation (glass) rooms etc.
The number of possible configurations of a 20 module station is huge, especially considering colors, and there is no reason a station couldn't have thousands of modules (other than looking a bit ridiculous). You would not see the same station twice. As most modules would lack windows, there would be a significant exploration factor for new players, as they get out of their ship to search the station.
To give players more reward for salvaging, and break up the right angles, the walls could be made several blocks thick.
The airlocks give it a far more realistic feeling than the current stations, which are completely open to space.
Any improvements/ideas?