Building a space station is a huge job, but luckily there’s a lot of repetition. The space station modules are all similar in shape, and the components that make up the equipment on the station are all standardized. This seemed like an ideal opportunity for some procedural generation!
My plan was to build a system that would generate an ISS module, and then let me dive deep into the system to make it accurate. I wrote several editor scripts to help me out. The first was a component selector node, which basically just takes a list of ship components and picks a random one. The system allows for nesting. For example, I could have a an equipment rack selector that picks between different equipment rack geometries. Each rack has sub-nodes representing equipment mounts, so once a rack geometry is picked, the system could then fill in equipment from another list. The second is an array node that I use to stack equipment racks together into modules. And that’s really it! Here it is in action:
My time to build a module has gone from hours to minutes. Really good stuff! Next up, I need to make meshes combine into batches for better performance, and make prefabs within the nodes reflect changes so I can update space station components without having to rebuild.