Josh, thanks a lot for your encouragement, it makes me think that this is being worth the effort
The basic user customization has already taken place. It is pending to develop a graphic user interface to be able to easily add and maintain new spaceships, but the system already works by manually editing the text files associated with each spaceship, that allow to describe certain basic parameters that define the behaviour and appearance of the custom spaceship in the simulation.
As stated before, users will be able to load DirectX 3d models (.x file format) to be used as spaceships.
For this to happen, the current basic parametrization includes:
*BASIC PARAMETERS:
Ship name
Mass in tons
Maximum speed
Maximum fuel
*ENGINE PARAMETERS:
Engine power
Retro Engine power
ship engine amount (max 6)
ship engine flame position X[ship engine amount]
ship engine flame position Y[ship engine amount]
ship engine flame position Z[ship engine amount]
ship flame engine size[ship engine amount]
ship retro engine amount (max 6)
ship retro engine flame position X[ship retro engine amount]
ship retro engine flame position Y[ship retro engine amount]
ship retro engine flame position Z[ship retro engine amount]
ship retro flame engine size[ship retro engine amount]
Engine resulting power (ship engine power mass factor, depends on the mass, the number and power of main engines - derived value)
Retro Engine resulting power (ship retro engine power, depends on the mass, the number and power of retro engines - derived value)
*MANOUVER THRUSTER PARAMETERS
in a similar way to the main and retro engines:
Right Up manouver thruster power (ship max RU thrust)
Right Right manouver thruster power (ship max RR thrust)
Right Down manouver thruster power (ship max RD thrust)
Left Up manouver thruster power (ship max LU thrust)
Left Left manouver thruster power (ship max LL thrust)
Left Down manouver thruster power (ship max LD thrust)
ship aux thrust right up amount (Roll Right/Pitch up, max 6)
ship aux thrust right up flame position X[ship aux thrust right up amount]
ship aux thrust right up flame position Y[ship aux thrust right up amount]
ship aux thrust right up flame position Z[ship aux thrust right up amount]
ship aux thrust right up size[ship aux thrust right up amount]
---
ship aux thrust right right amount (Turn Right, max 6)
ship aux thrust right right flame position X[ship aux thrust right right amount]
ship aux thrust right right flame position Y[ship aux thrust right right amount]
ship aux thrust right right flame position Z[ship aux thrust right right amount]
ship aux thrust right right size[ship aux thrust right right amount]
---
ship aux thrust right down amount (Roll Left/Pitch Down, max 6)
ship aux thrust right down flame position X[ship aux thrust right down amount]
ship aux thrust right down flame position Y[ship aux thrust right down amount]
ship aux thrust right down flame position Z[ship aux thrust right down amount]
ship aux thrust right down size[ship aux thrust right down amount]
---
ship aux thrust left up amount (Roll Left/Pitch up, max 6)
ship aux thrust left up flame position X[ship aux thrust left up amount]
ship aux thrust left up flame position Y[ship aux thrust left up amount]
ship aux thrust left up flame position Z[ship aux thrust left up amount]
ship aux thrust left up size[ship aux thrust left up amount]
---
ship aux thrust left left amount (Turn Left, max 6)
ship aux thrust left left flame position X[ship aux thrust left left amount]
ship aux thrust left left flame position Y[ship aux thrust left left amount]
ship aux thrust left left flame position Z[ship aux thrust left left amount]
ship aux thrust left left size[ship aux thrust left left amount]
---
ship aux thrust left down amount (Roll Right/Pitch Down, max 6)
ship aux thrust left down flame position X[ship aux thrust left down amount]
ship aux thrust left down flame position Y[ship aux thrust left down amount]
ship aux thrust left down flame position Z[ship aux thrust left down amount]
ship aux thrust left down size[ship aux thrust left down amount]
Turn manouver factor (ship aux engine power mass factor turn, depends on the mass, the number, the position and power of turn (or yaw) manouver thrusters - derived value)
Pitch manouver factor (ship aux engine power mass factor pitch, depends on the mass, the number, the position and power of pitch manouver thrusters - derived value)
Roll manouver factor (ship aux engine power mass factor roll, depends on the mass, the number, the position and power of roll manouver thrusters - derived value)
*COCKPIT PARAMETERS
ship cockpit positions amount (max 6)
ship cockpit position X[ship cockpit positions amount]
ship cockpit position Y[ship cockpit positions amount]
ship cockpit position Z[ship cockpit positions amount]
ship limb cockpit glass (this limb will become transparent when inside cockpit positions 1,2,3.
ship hud position X[ship cockpit positions amount]
ship hud position Y[ship cockpit positions amount]
ship hud position Z[ship cockpit positions amount]
*APPEARANCE PARAMETERS
ship object filename (path to the 3d .x file of the spaceship)
ship limb amount (number of limbs in the 3d object. External materials are not supported, intead mesh 'limbs' are applied.)
ship limb name[ship limb amount] (name of each limb)
ship limb texture path[ship limb amount] (path to the texture of each limb)
ship limb normal map path[ship limb amount] (path to the normal map texture of each limb)
ship limb normal map base[ship limb amount] (contains the limbs ids with average specularity such as the ship hull)
ship limb normal map specular[ship limb amount] (contains the limbs ids with high specularity such as the cockpit glass)
ship limb normal map mate[ship limb amount] (contains the limbs ids with low specularity such as the thrusters)
ship limb smoothing angle[ship limb amount] (the smoothing angle is very important for a good final appearance, and due to the crispy designs of some spaceship meshes, some parts may need a different smoothing angle than others.)
ship engine exhaust color ramp path (path to the color ramp of the exhausts and flames)
ship engine intake color ramp path (path to the color ramp of the engine intakes)
ship limb inner engine exhaust[ship engine amount] (contains the limbs ids of the inside engine exhausts, for applying a shader)
ship limb inner retro engine exhaust[ship retro engine amount] (contains the limbs ids of the inside retro engine exhausts, for applying a shader)
ship engine intake amount (max 6)
ship limb inner engine intake[ship engine intake amount] (contains the limbs ids of the inside engine intakes, for applying a shader)
Pending to incorporate: Emmisive maps for glowing parts of the spaceship such as windows or any other thing.
*USER OPTIONS
SPACESHIP GRAVITY (The spaceship is attracted by massive bodies, on/off)
SHIP CONTROL AUTOSTOP (The space has friction, and the spaceship stops by itself, on/off)
FAVOUR ROLL CONTROL (Using left/right controls, the spaceship will roll rather than turn, on/off)
INVERT Y AXIS (on/off)
EASY GYROSCOPIC THRUSTERS (Spaceship will pitch/turn/roll only under pilot's request, on/off)
REALISTIC GYROSCOPIC THRUSTERS (Spaceship will pitch/turn/roll only under pilot's request, but the mass and manouver capability of the ship will affect the time taken to stabilize it, on/off)
GYROSCOPIC THRUSTERS OFF (spaceship will keep on any pitch/turn/roll inertia until it is corrected by the pilot, on/off)
ADVANCED FLAME ENGINE SHADER (applies or not an advanced shader on the engine flames, on/off)
SPACESHIP HUD (show hides hud, on/off)
-------------
These parameters should allow to describe most of the 3d spaceships designs out there. There would be pending further parametrization, like engine sound and others, but for now this should be enough to cover the basic spaceship flight mode