Let us drag the racing stripe around, choose what angle it goes over the ship, what part of the ship its applied to, etc.
Let us use the colors from one skin, combined with the texture from another skin.
It deosn’t have to be perfect. Just letting us plop textures/features on there, and slide them around would be enough. Doesn’t matter if most of the creations look like trash. People will find ways to make it look cool af.
this would dramatically increase skin sales, since people will be buying skins just to use certain features & colors of that skin with other skins
People who didn’t want the Snowline skins will buy them so they can have a Purple & Black version of the Headhunter skin
They could combine the green Marshlight color with the headhunter skin with the Chainbreaker skin’s potleaves and call it a Pothunter skin
Maybe break up t the ship into sections. Each section can be edited independent from others. Change color or add a portion of a skin. Corporations can have their own skins.
What you propose is not that simple to implement. The game server would have to send to every instance of game client every custom skin and every custom texture for every ship - that’s a nightmare.
There is another possibility that’s easier to implement - custom colour palette. The design team can create skins that have a small number of colours (e.g. 2-4) - a skin colour palette, as well as a global colour palette with the available colours (e.g. 32).
It would be similar to how you select the skin or eyes colour at your character’s creation.
Corporations could define their own colour palettes as well.
edits - I really should have prepared for this post before I first made it
What the OP and you are both describing is pretty similar to how ships and skins are constructed ingame - except players can’t do it themselves (yet). Most skins don’t use custom uv’d textures and the patterns you see on some of them use small black and white images that are easily reused. Eve’s space object factory makes skinning a ship pretty easy with a low performance and storage cost (see bottom of post)
Space Object Factory
Defines what a space object looks like (including asteroids but excluding planets).
It has lots of cool stuff, but the 3 relevant to this post are:
Space object components/attachments are paramatised and can be easily configured at an individual (e.g. a single decal) or group (e.g. changing the colours of a set of sprites) level.
Visually distinct space objects can be created using a string of text (called DNA)
Low cost to customisation and textures and components are reusable
We’ll ignore the fact that quite a bit of effort is required to create some of the fancier skins that have child effects and focus on what you’ve mentioned and relates to point 2 above.
Space Object Factory DNA
A string of text which describes a space object (including a ship that has been skinned).
These strings are contructed from information stored in eve’s database.
typeID → graphicID
skinID → skinMaterialID → graphicMaterialSetID
Hull (Compulsory)
Defines all the physical things (geometry, attachments and children) for a hull and their possible combinations, and default colours and textures. (Lights, Materials, Sprites, Spotlights, Decals, Effects, Hazesets, Banners, Locations for things like turrets, damage, audio and boosters etc)
Faction (Compulsory)
Defines which of the above are used and what colours, textures and pattern overrides they use.
Race (Compulsory)
Defines what boosters, heat, trails, armour and sheild effects look like.
examples:
{hullName}:{factionName}:{raceName}
gb1_t1:gallentebase:gallente = Dominix
adn_fn:amarrnavy:amarr = Revelation Navy Issue
Material layers (Optional)
Overrides the base material colours of a hull.
Each ship has four base materials which display in areas defined in a material texture. These textrues are relatively small as they’re grey scale, with one shade for each material layer (white, light grey, dark grey and black)
Each material has the following properties:
Diffuse Color (vec4)
Fresnel Color (vec4)
Gloss (float)
Dust Diffuse Color (vec4)
Dust Fresnel Color (vec4)
But instead of having to define these values, CCP has over 500 premade materials that can be used instead.
examples:
{hullName}:{factionName}:{raceName}:material?{material1Name};{material2Name};{material3Name};{material4Name}
gc3_t1:gallentebase:gallentebase:material?black_deadstar_matt;black_obsidian_metallic;white_snow_coated;asteroid_rock_04a = Vexor with custom colours
gc3_t1:gallentebase:gallentebase:material?black_deadstar_matt;black_obsidian_metallic;none;none = Vexor with some custom colours
Resource Path Inserts (optional)
Selects what material texture should overrides the hull’s default one.
Some factions already override the base material texture so defining them isn’t necessary (like the last aliastra example below)
examples:
{hullName}:{factionName}:{raceName}:respathinsert?{resPathInsert}
gc3_t1:gallentebase:gallente:respathinsert?aliastra = Vexor with aliastra materials and gallente colours
gc3_t1:aliastra:gallente = Aliastra Vexor
gc3_t1:aliastra:gallente:respathinsert?aliastra = Aliastra Vexor (aliastra faction already defines a resource path insert)
Patterns (optional)
Skins can use patterns which ccp have to constructor per hull.
Each pattern can have up to two layers, with one black and white texture and material each.
Pattern layers can be mirrored, rotated, scaled and positioned as you’d expect but this be fiddly and result in undesired stretch effects due to them being projected on to the hulls rather than textured with uv cooridates. (I think this is an acceptable cost)
examples:
{hullName}:{factionName}:{raceName}:pattern?{patternName};{material5};{material6}
gc3_t1:gallentebase:gallentebase:material?black_deadstar_matt;black_obsidian_metallic;white_snow_coated;asteroid_rock_04a:pattern?glacialdrift_gallente;orange_ginger_matt;black_uranium_metallic = Vexor with custom colours and glacial drift pattern with custom colours