Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change ship signatures based on system states #726

Merged
merged 2 commits into from
Jan 20, 2020

Conversation

oznogon
Copy link
Contributor

@oznogon oznogon commented Jan 14, 2020

Ship signatures can change based on their heat, power level, and
usage.

  • Systems that generate heat increase the biological band; coolant
    offsets this effect even if the system maintains heat.
  • Systems that use energy increase the electrical band.
  • Ships that are jumping or warping spike the gravity band.

This allows Science to predict when a ship is going to warp/jump,
and in stealth missions can give away the positions of ships that
run hot.

CPU ships do not manage heat/energy but still exhibit jump/warp
spikes.

Example of a jump spike before and after:

jumping
jumping2

Progress toward #14

Ship signatures can change based on their heat, power level, and
usage.

- Systems that generate heat increase the biological band; coolant
  offsets this effect even if the system maintains heat.
- Systems that use energy increase the electrical band.
- Ships that are jumping or warping spike the gravity band.

This allows Science to predict when a ship is going to warp/jump,
and in stealth missions can give away the positions of ships that
run hot.

CPU ships do not manage heat/energy but still exhibit jump/warp
spikes.
@tdelc
Copy link
Contributor

tdelc commented Jan 14, 2020 via email

@daid
Copy link
Owner

daid commented Jan 14, 2020

Dont think it will effect performance at all. But it does break setting custom signatures from scripting i think.

@oznogon
Copy link
Contributor Author

oznogon commented Jan 14, 2020

Ah, good point @daid — I'll revise.

@oznogon oznogon changed the title Change ship signatures based on system states Change ship signatures based on system states [WIP] Jan 14, 2020
@daid
Copy link
Owner

daid commented Jan 14, 2020

I also think this causes unneeded network traffic. As the signature is calculated on clients now as well as send to clients.

@oznogon
Copy link
Contributor Author

oznogon commented Jan 14, 2020

If I understand correctly, it should be straightforward to move the loop into an if (game_server) condition to fix the network redundancy?

@daid
Copy link
Owner

daid commented Jan 14, 2020

Yes and no. It would remove the redundancy. But there is no reason to only calculate on the server and replicate it. Clients have all the info to calculate this.
Moving this calculation code to the function that gets the signature info would solve most things i think.
(On mobile. So a bit hard to lookup the specific code exactly)

@oznogon oznogon changed the title Change ship signatures based on system states [WIP] Change ship signatures based on system states Jan 17, 2020
Uses the object already passed to RawScannerDataRadarOverlay to
calculate the signature on the client side only.

Refine how states and actions affect signatures.

- Coolant can no longer result in negative bio band values.
- Jump drive grav spikes start small and grow closer to the jump.
- Jump drive recharge causes an electrical spike that drops
  while recharging and scales to the system's power level.
- Electrical signature can be reduced by underpowering systems.
@oznogon
Copy link
Contributor Author

oznogon commented Jan 17, 2020

Updated the branch to move the logic to the RawScannerDataRadarOverlay component and changed the behavior on further testing.

  • Coolant use can no longer result in negative bio band values.
  • Jump drive grav spikes start small and grow larger closer to the jump.
  • Jump drive recharge state causes an electrical spike that drops
    the closer the system gets to being fully recharged, and scales to the
    system's power level.
  • A ship's electrical signature can be reduced by underpowering its systems.

The baseline radar signature is also slightly lower now to add some contrast between an idle and active ship.

@daid daid merged commit 5515686 into daid:master Jan 20, 2020
@daid
Copy link
Owner

daid commented Jan 20, 2020

I was thinking this logic could also be moved to the "getRadarSignatureInfo" function, which could have been made virtual then and overloaded in the spaceship. However, that would mean the set and get functions would return different data, which is odd. So I've accepted this solution.

@oznogon oznogon deleted the dynamic-signatures branch February 2, 2020 06:54
olivier-vm pushed a commit to olivier-vm/EmptyEpsilon-Clones that referenced this pull request Jul 10, 2021
Change ship signatures based on system states
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants