First things first, apologies for beating dead horses. Also apologies for stealing people's ideas, where I have.
Also pre-emptive apologies, but I have a feeling I'll be making a few of these threads. Hence the last part of the thread name.
And before anybody says it, yes I know I'm mostly wasting my energy here, and most of this goes against your KISS principle, but oh well. Also, this is a long read, so go make yourself a coffee. Chapter I: Sensor/Stealth Revision
First of all, I propose that the current sensor/stealth system be revised.
Currently we have:
To determine if a detector can detect a target, the target's stealth is subtracted from the detector's range, and the result is compared to the distance between them. If the distance is less than 10*(detector_detection - target_stealth), then the target is seen by the detector. If the distance is larger, then the target is not seen (by that detector; another detector might see it).
If (detector_detection - target_stealth) is less than 0, ie. stealth is greater than detection ability, then the detector can never see the targer, regardless of their distance of separation.
For example, if a detector ship has a detection meter of 30, it can see target objects up to 300 battle map distance units away, depending on the target's stealth. (And unless the target has a stealth of 0, in which case the target can be see anywhere on the map). If a target object has stealth 10, the detector ship can see the target object if it is 200 battle map distance units away or less. If the target object has a stealth of 40, the detector ship can never see the target object, no matter how close or far apart they are.
Now, I don't know about anyone else, but in my opinion, ambushes and reconnaissance are tactically vital. As such, applied in freeorion, stealth and sensors are tactically vital. Or at least, should be. However, things should not be arbitrary, as is the case with the current system, where there is a cutoff, and above it, the ship cannot be detected at all.
My proposal is for an object to have a chance of detecting another object, based on the sensor/stealth values of each, and there would be "levels" of detection.
In addition, parts that subtract from stealth would only do so when in use. For example, an engine would only generate noise if the ship is moving, if it is standing still, it would not reduce from the stealth of the ship, though I believe this is already part of the current system.
Tentatively, the formulae would be:Detection Offset = sqrt(abs(Stealth / Sensors)) x -(sign of(Stealth)) x k
where k is some constant which is deemed appropriate. For this example, I'll use 1.
Minimum value for sensors is 1.
sign of(Stealth) simply means -1 if Stealth is negative, and 1 if Stealth is positive.Distance Offset = -(Distance / c) ^ 2
where c is some constant which is deemed appropriate. For this example, I'll use 250.Random factor = A (pseudo)random number between 0 and 2
The range of the random number will need to be tweaked as appropriate.The three above would then be summed and compared against the following table.
Once again, the values here will need to be tweaked as appropriate.less than -3
: No detection-3 to -2
: Blip detected-2 to -1.65
: Object and velocity detected (speed and heading of object)-1.65 to -1.3
: Rough object characteristics detected (size, shape, allegiance, existence of shield, etc, identified)-1.3 to -1
: Most object characteristics detected (type (no specific details) and number of weapons, engine, armour, approx shield strength, etc)greater than -1
: Detailed object characteristics detected (approx weapon strength, approx armour strength, etc)
These calculation would be taken at intervals. So once per turn, twice per turn, once per two turns, etc. Which could create an interesting choice for sensor parts, high precision but low scanning frequency or low precision but high scanning frequency sensors. But that is a topic for a later chapter/volume.
So lets take an example. For now, we'll assume all sensors have the same scanning frequency.
Ship A has 10 stealth and 5 sensors that, when activated, give -4 stealth, and an engine that, when activated, gives -4 stealth.
Ship B has 5 stealth and 10 sensors that, when activated, give -7 stealth, and an engine that, when activated, gives -7 stealth.
If both ships begin 500 units from each other and (unknowingly) head towards each other at 100 units per turn for ship B and 50 units per turn for ship A at full speed and full sensors:
Ship A scans:
Detection Offset = sqrt(abs(-9 / 5)) x -(-1) ~= 1.34
Distance Offset = -(500 / -250) ^ 2 = -4
(Pseudo)Random Number = 1.55
Summation = 1.34 + -4 + 1.55 = -1.11
Result: Most object characteristics detected.
Ship B scans:
Detection Offset = sqrt(abs(3 / 10)) x -(1) ~= -0.55
Distance Offset = -(500 / -250) ^ 2 = -4
(Pseudo)Random Number = 1.81
Summation = -0.55 + -4 + 1.81 = -1.64
Result: Rough object characteristics detected.
However, for this to work, sensor value must always be above 1. Any value below 1 can be treated as either 1 or not having functional sensors.
Stealth, on the other hand, is unlimited in both directions. It can be said that stealth 0 is an object not making any attempt to disguise itself, a negative value is an object which is radiating an unusual amount of energy, which can be detected, and a positive value is an object which is actively attempting to mask its presence.
Further, blips should be detected every so often that are randomly generated, rather than each blip being an enemy ship for certain.
This would also mean that with early tech sensors, a ship would not be able to see the entire solar system, which is preferable to the earliest ships seeing the entire solar system. This would also lend credibility to the idea of intensive exploration, where a scout ship would need to remain in a system for a specific amount of time in order to discern all available information about it. This time could be a function of it's sensory ability.-----Chapter II: Hulls
I believe it was mentioned somewhere that hulls should be renamed from "Small," "Medium," "Large," etc to "Light," "Medium," "Heavy," etc.
I would say that there should be a number hulls classes. Obviously there should be different shapes and configurations, but they should all fit roughly into the categories.
The categories being: "Destroyer," "Frigate," "Light Cruiser," "Heavy Cruiser," "Battlecruiser,"
and last but not least "Battleship,"
for the combat ships; "Escort Carrier," "Light Carrier," "Heavy Carrier," "Battle Carrier,"
and "Fleet Carrier"
for the carriers; and of course the miscellaneous ones of "Colony Ship," "Troop Transport,"
Ships would then be classed as per those categories. So, for example, if I use a Light Cruiser hull and design a ship and call that design the "Phantom," then produce a ship and that ship is called the "Hammer," the full designation for that ship would be the "Hammer, a Phantom class Light Cruiser." If I were building a ship, I would be building a "Phantom class Light Cruiser."
However, if a ship was using a hull that would normally be considered a Heavy Cruiser, but does not fill all the slots of the hull, thus having it underpowered, it would fall to the category below and become a Light Cruiser.
Further, if a ship lacked weapons, or had a large fighter complement, or met other conditions, it would move to a different category, such as "Heavy Carrier," or "Troop Transport."
It's not much different than using small, medium, large, etc hulls. However, I just prefer military designations. Further, you can look quickly at the name and tell the rough power of the ship from it's class. Ie, a battleship would be more powerful, but generally slower than a battlecruiser.-----Chapter III: All Objects Should Have Basic Stealth Values
Continuing on from Chapter I, all objects should have a stealth value, whether it be negative or positive. Planets would have perhaps between -250 and -1,000 stealth; moons between -100 and -200; asteroids and other small objects between 0 and -50; and stars between -10,000 and -100,000. All of these depend, obviously, on the size of the object, and in the case of suns and gas giants, the amount of energy being released. Some objects would also reflect or absorb more or less energy, and thus that would affect their stealth values.
In the case of ships, I believe destroyers, being smaller, should have a greater in-built stealth value than battleships. It simply makes sense for a larger ship to be detected easier than a smaller ship. Further, it would grant a purpose to smaller ships and hulls even in the late game, as they would still be stealthier than the larger ships.-----Chapter IV: Engine As Parts And Multiple Engines
I know it has already been decided that engines will be integral to hulls, but hey, as you can tell by now, I'm mostly ranting here.
So, I present just one possible scenario where you would want customisable engines.
Let's say you build a scout/spy ship.
Now, because it's a spy, it needs to be stealthy, right? So, if you had the choice, you'd stick on it a stealthy engine, with a slow/moderate speed rating. And also, of course, some stealth part, cloak generators, jammers, and the like.
However, because its purpose is to go into a system, perhaps ahead of your fleet, take reconnaissance, and avoid danger, this slow engine is insufficient if it should be detected.
Thus, you would put on one/two fast, but noisy engines, in case of emergency. So that it can get away from danger fast. You could also use this ship to lure some ships away from the enemy fleet into an ambush, or simply away from their main fleet, as they chase your ship aimlessly, and your ship can cut those two engine and go back to being stealthy.
Speaking of ambushes, you could also possibly design ships specialised for ambushes, with the above configuration of one stealthy engine and one/two fast engines. The stealthy engine can be used to manoeuvre into position and full thrust can be used either to escape of pursue.
The idea being that the ship uses its single stealthy engine to move about a system undetected. But once it has been detected, you've designed the ship so that it's not a sitting duck, with those one/two powerful, but noisy engines. It can use these to escape, or to pursue a fleeing enemy that has realised your strength.-----