So, what do we need?Ship designs consist of a hull, and the parts placed in that hull's slots. Both the hull itself, and the parts placed in it may affect a ship's characteristics in-game.
Hulls
A hull is the base on which a ship is built. A hull is essentially built around an engine, so the engine is a part of the hull and is not separately selectable, and various hulls include engine-type properties.
* Each hull is visually distinct from other hulls.
* Hulls set base or default levels to various ship meters and/or non-metered ship properties. These may include:
o Speed on battle map (fueled and unfueled)
o Fuel capacity and regeneration rate
o "Health" or "Structural Strength"
o Speed on battle map
o Stealthiness and penalties to stealth while moving
Size
* Hulls will be labelled with a "size" that is of some significance strategically or in balancing. Sizes are tenatively: Small, Medium, Large, or Huge.
* Basic characteristics of a ship should be clear from just its size, regardless of the details of its design or its specific hull
* Hulls of a particular size tend to have some common characteristics and uses. The various hulls will be balanced so that all sizes (and all hulls within each size) are useful and an optimal fleet will have a variety of the available sizes, doing different roles.
* Ship size will likely have some relevance to tactical balance. Ships of different size may be differently useful for different jobs in battles, and may be differently useful overall in battles, offset by cost or non-battle considerations.
Parts
* Parts are the means by which players customize ship designs and make them into functional ships.
* Parts include things such as weapons, defenses, stealth enhancements, detection enhancements, extra fuel storage, colony pods, troop pods, and various effects-projecting (in battle and on the map) special mission equipment.
* Parts can have effects that alter ship properties, both statically and depending on what the ship is doing.
o Weapon parts might reduce stealth while firing
o As many static functions of parts as possible should be implimented through effects
Slots
* Hulls have a set number, layout (and possibly sizes) of slots into which parts may be placed to make a ship design.
* Slots are either internal or external.
o External slots are more likely to be damaged by weapons fire hitting the ships.
o Some parts may be restricted to only internal, or only external slots.
* Slots may or may not (TBD) have a "size". If slots are sized, parts would also be sized, and would require an equal or larger sized slot to be placed.
o If slots have a size, it may be possible to place multiple smaller parts into a single larger slot.
Justification
Linking hull sizes indirectly to roles via non-role-specific size-dependent characteristics of the hulls of a particular size is a part-way solution between fully generic hulls with no role-association, and fully specialized hulls, which are each intended for use only on a single role.
There will be several different (sized) hulls on which ships can be designed, which are distinctive in that they are better or worse in ways that affect how well they do various roles, but can be used for roles including ones they aren't partciularly well-suited. Different-sized hulls are also visually distinct and will have obvious associated characteristics, which should be easy to describe, discern and understand for players, rather than fully role-independent generic hulls which have no association to particular roles. In this system, it's not as easy to see what a ship is or can do as it would be if there were easy-to-see roles inherent in the ship's form or appearance, but it's better than having no information such as might occur with fully generic hulls.
Having different slot sizes allows easier balancing and allows greater distinction between different ship shapes of the same size, by allowing a distinction between four small slots and one large slot that could hold four small parts. For example, "large" ships might have two "medium" internal slots, but only "huge" ships would have "large" slots that are required for some parts that it is desired to restrict only to "huge" ships.
By having multiple smaller parts in one larger slot, we can let a design have many parts, without letting the design have many different parts. By reducing the variety of parts in a single design, we simplify the battle UI.
First off, we need a way to create a new design or to choose from a current design(either pre-made, if there are any or previously user created) to modify it. Since there may be quite a lot designs in mid - late game, those could be arranged in some kind of a list, maybe similar in size as the tech queue on the research screen. Once a design is done, it needs to be saved, which in return will make it part of the list. Each item should have a name, a small picture of the hull the design is based on and some additional information like size, role, hitpoints, strength, speed, range etc.
When the Player decides to create a new design, there has to be a way to choose a hull as a base. Hulls are available in different sizes and are always coupled with a certain engine and a certain amount of slots. Once a hull is selected it should be presented in an appropriate size on the screen, perhaps using the 3d mesh used for combat but toned down or perhaps just a render of it. There should be an area holding general information about the selected hull, the engine and perheps the hull's purpose. Most important however is the representation of slots. Are they laid-out on a 2D plane or in 3D space? There is a distinction of internal and external slots, which could be visualized using 2 colors and/or 2 different kinds of frame/slot graphics.
Those slots get filled with certain parts and I guess, there will be quite a lot of them. Parts could be visualized, with a picture(fitting into a slot) and a name. There should also be an area that holds detailed information about the selected part. This changes, as another part is selected.
There are different categories of parts and this should be presented in some way. Availably parts could be arranged in a grid to use the available space more efficiently than a list does.
I think the most straightforward way to assign parts to slots is by using drag and drop. It might also be necessary to do this by selected a slot and then double clicking a part. A 'drop' or 'assign' button should be avoided in my mind.
Ideally the UI should work on 800x600 but a user with a higher resolution should benefit from it, meaning that for example the list of designs and parts should grow, so that there are more items visible without scrolling.
That's all I can think of for now. I'll be back with a sketch soon. Any kind of input(textual or visual) is much appreciated. If you plan to contribute with images, keep in mind, that this is not about fancy looking UI widgets, but about getting a user interface workable with basic elements.