I’ve continued work on my previous topic on ship sensor range, heat signature, stealth, and the broad strokes system of how ships detect one another.
Until this point, every active ship always knew where every other active ship was; this was fairly logical at the time, and required no extra code. Ships would just check the AIManager class to see what other vessels were in the area, and then run their normal checks against them (is this ship an enemy? Is this ship the player, and if so, does my faction hate them? etc)
In order to facilitate some gameplay styles that require the player to be sneaky, I had to come up with a different approach. You won’t be much of a smuggler if the cops always know your exact position, after all. After a great deal of thought and some janky prototyping, I’ve reworked the detection system into something that accounts for the following factors:
Sensor range.
Every ship has a sensor range stat that can be buffed/debuffed by equipment choices. Some ships have better sensor range by default than others. This is the default range at which you can detect other ships.
Heat signature.Every ship has a heat signature stat. This stat governs your detectability radius; similarly, this stat can be buffed/debuffed by equipment choices.
Heat signature grows and shrinks dynamically based on what you’re doing.Using your main engine (maneuvering thrusters are exempt) or firing weapons will both considerably increase your heat signature making you easier to detect.
Stealth Rating.
Every ship has a Stealth rating, but most are defaulted to zero. This is a passive bonus that reduces the effective range of enemy sensors - a ship with a high stealth rating can fly right up to a ship that would otherwise detect you in complete safety. Of course, taking action that increases your heat signature at close range could lead to trouble…
If you have a stealth rating above zero and are undetected, your ship will become transparent. Similarly, undetected enemy ships with non-zero stealth ratings will also be transparent, so keep your eyes peeled!
Once you are detected, you can re-engage stealth (and lose aggro) if you’re able to move outside the sensor range of nearby non-allied ships
Sensor Interference.
This is a stat that is assigned on a per-starsystem basis. This acts as a global sensor range reducer AND heat signature reducer. It also interferes with the player’s radar, making it very difficult to see other ships at all.
The visual on how this will be presented to the player is still being prototyped - it’s a new sort of challenge for me and I also don’t want it to look like garbage, believe it or not!
(A ship with passive stealth hiding above a planet. If another ship gets too close, stealth immediately breaks)
I’m also planning on adding an active stealth mode, better known as a cloaking device, as a piece of equipment you can carry on your ship. This would bypass enemy sensor ranges entirely, allowing you to fly anywhere in safety while the system was engaged. There will likely be some significant downsides to using it - I expect it to drop your shields when its engaged, and be time limited. This will also be a fairly rare and expensive upgrade, and likely story/progression locked (in the 1.0 release, anyway. No meaningful story elements will go in before then).
I expect this system to ship in the 0.3.0 update, which I’m hoping will be ready by the 16th or 17th of March. My task list for it is long, however, and it might get delayed until after GDC if I don’t get it out before then. Thanks for reading, and I’d love to hear what you think!
0 comments