The creation of the thread was motived by this post in the Cost and Build Time design thread:
Tortanick wrote:How flexible will "upgrade existing parts" be, will you for example be aloud to replace an engine with any other engine, including speed optimised engines to stealth engines. Or will every component have direct successors you can upgrade to, or something in-between?
P.S. if you have direct successors, can we give them more imaginative names than mark1, mark2
When trying to answer this, I realized we haven't had an official discussion about it and there's nothing in the design pad.
I've had two ideas for how upgrades should work:
1) A ship design lists the general "class" of a part, and each specific ship using that design could have a different version of that part. A design might specify that a ship has a "laser" in slot 1. The design doesn't specify which refinement of laser to use, but newly built ships generally have the most up-to-date / best version available put into them. (We could allow the player to override this and put in older parts if they want, perhaps for export purposes or to hide their tech level?)
When upgrading a ship, the versions of all its parts are generally updated to the newest versions available (though again, we could allow upgrades to newer but not newest versions, or upgrades of only some of the parts). The newest versions always cost the same or less than earier versions and are equally good or better at whatever they do, so there's no reason to want to build a ship with an earlier version of a part. (Upgrading still costs and takes time, though)
Individual part versions could be called "Mark I", "Mark II", etc. or "basic laser", "repeating laser", "super laser", etc.
Parts wouldn't be upgradable forever; there would be a limited number of versions of each part, after which you couldn't upgrade any more and would have to make a new ship design to use newer parts.
The advantage to this method is that to upgrade a ship, you don't need to create a new ship design. You can have ten ships, all with the same design, but with different versions of the parts in the common design. The disadvantage is that you have many ships of apparently the same "design" with different capabilities due to different versions of their parts with the same class.
2) A ship design lists specific parts. Players can specify an earlier part that is obsolete if they so choose.
There may be part classes like "beam", "shield", etc. but these are mostly for sorting / ease of use. Parts have an "upgrades to" field, which specifies another part that can replace the part when upgrading (vaguely similar to how techs have prerequisites, but in reverse). Upgrades could skip parts and upgrade directly to the upgrade of the current part's listed upgraded, etc.
Newer parts may cost less or cost more, but should always be better than the earlier parts.
More than one part can upgrade to the same other part, so there could be a "gatling laser" and a "heavy laser" that both upgrade to "gatling heavy laser" that combines the advantages of both. Each part has only one upgrade, however.
There would be no built-in restriction about the "class" of part that a part can upgrade to, although in practice we'd only include upgrades to better versions of parts that do roughly the same thing.
Like system 1, parts won't upgrade forever, as eventually you'll reach a part that has no upgrade, requiring building a new ship to use newer parts.
Part names would be less likely to be "Mark I", "Mark II", etc. than system 1, and names could be anything more easily without the need to make the straight-line upgrades clear as with system 1.
This system has the advantage that there's more flexibility in upgrades. The main disadvantage is that every time you upgrade a ship to a combination of parts you don't already have, you'll probably have to make a new shipdesign. You'll also have to update your old shipdesigns to use newer parts, making a new ship design every time you research an upgrade to a part for which you've made a design and/or built a ship. This could lead to many similar ship designs to keep track of, which could be a big pain and get very tedious and confusing.
Thoughts? Is there another option I'm not thinking of?