Ship Construction

Ships are designed by dragging modules onto a hull made up of boxes (squares are probably easiest, but I'm like hexes more and want to make them work if I can). Modules can gain/give adjacency bonuses to other modules. Some modules may be based purely on this bonus. Like maybe some sort of stabilizers for weapon accuracy or something like that. There are various requirements for a valid design and the design may not be submitted until the requirements are met. It might be nice to have some sort of draft function though.

When building a ship, the production center builds the hull, than all the modules onto the hull. Most of the time the result is the same as a typical production based game. However, this means that if you change projects part way through, you may have some modules that overlap and let you start with some "free production" similar to Stars in Shadow. It could also be expanded to allow the player rush ships by building them with less modules than normal in emergencies. In addition, when a new iteration of a design is approved, this system allows it to be applied to all existing construction projects by adding any new modules to the build list and removing any redundant modules. By default the build menu will show a simple progress bar as is typical. But the player can expand the build menu to see the ship itself very similarly to the ship design screen. All unbuilt modules will be greyed out.

Ideally this allows for a situation like being mid research project for a new laser and still getting the new laser out as quickly as possible. To do this the player would drag the lasers to the bottom of the designs module list so each production center builds the lasers last. Than when the research is complete, go back into the design and replace the laser module with the newer design and click a button to apply this to all existing designs. Now the ships currently in construction will be able to swap laser modules without losing any efficiency on any modules they haven't already begun constructing.

If the player tries to change construction part way through, a warning will display if any modules from the previous design are in the way. The player will be presented with two options, to replace the modules in the way at a deconstruction cost, or to simply build around them. The player may set the game to "always replace" in the options, which will prevent this options window from ever popping up and let the player play as they it were the default build system present in most 4x games. When building around the existing modules, the construction menu is expanded to show you what the ship will look like. If the ship would be invalid during ship design, the player cannot submit and must deconstruct the modules in the way. Ideally there would be a way to let the player make some edits in this menu such as deconstructing one module in the way and leaving the others, or manually building the missing components in any empty space. If there is a cost to approving new spaceship designs, than each change made to this ship should have an additional cost to represent the engineers working "off script" and trying to make it work regardless.

I may change it to modules > parts. This means you would simply build a list of the modules without worrying about position, than weld them onto the ship for the finished design. Anytime you swap designs it simply stores any unused components and adds new ones to the build list. Using old components would just cost a little bit for installation. And I don't have to worry about whether there is a ship design cost or not because you can't ever go off book. This would also allow construction of just modules and maybe introduce some sort of separation between planet side and space construction. But that last bit would require me changing away from a simple, planet have build list system which means thinking my way through that.

When designing a ship, you place modules into a grid representing the hull. Some of these modules can then be filled with other things. Such as station being able to build things with the right module. You're building that inside of said module. Weapon modules are similar, you build a weapon mount module and than decide which weapon to actually mount onto said mount. This means that changing to similar sized weapons is easier as it is the same sized mount and it means that some weapon tech may apply to many different weapons because it is mount based tech that applies to all weapons that can fit inside of that mount. Or having a general engine room you fill with a specific type. This also makes it easier I feel to swap components when unlocking new tech because you just change what is in the module, not the module itself. This also lets me have much more mount variety. Like forward facing mounts versus turret mount and the like. This also creates a good space for the Metallurgy field of research to fit in without stepping on the toes of other fields of research.