Heatseekers, whyyyyyyyy?

    Joined
    Jun 27, 2013
    Messages
    38
    Reaction score
    108
    • Community Content - Bronze 1
    • Legacy Citizen 4
    So I recently began fooling around around with heatseeking missiles again as an offshoot of developing a new fighter. My objective was to make a fast strike fighter that could stand up to a destroyer-class vessel, and to do this, it needed to kill the turrets ASAP. How better than to do it with HEATSEEKERS! Stripped out the clunky and rather inefficient beam missiles, strapped on the cluster pods, spawned a destroyer and went at it. Boom ba-boom BOOM kabeewwwmmm! All turrets offline on the second pass, hell yeah! That was awesome.

    My ultimate goal was to make a light fighter that could be deployed en masse against an enemy, so it was time to see how well these ships fought in formation. Spawned an air wing, spawned some hostile destroyers 1.5 km out and then watched with growing excitement as the two forces went full throttle into the merge and HUNDREDS of missiles erupted from my fighters. My excitement turned to horror as the missiles armed, pulled a hard 180 and slammed into the friendly fighters immediately next to them, turning them into molten balls of 'oh god the pain.'

    The destroyers emerged unscathed.

    "... what the f**k!?"

    All I could do was listen to the screams of my imaginary comrades as the destroyers hunted down those that survived and dealt a decisive defeat to my air wing. I left the area in a huff. Those fighters were designed for that mission, and in controlled test runs could take down a destroyer on their own if given enough time. They were incapable of fighting in a combined force because of the heatseeker mechanics.

    So what went wrong? The missiles cannot identify friend or foe, and target indiscriminately. Of course, "these are heatseekers, they're after the hottest thing in the sky, no matter what it is." Okay, I'll give you that, but why are they able to target something immediately behind them? There's supposed to be a huge-ass cloud of superheated exhaust back there, how could they see through that? On top of that, how come the missiles sometimes think an object 5 km in the distance is warmer than something 50 m in front of their face? Also this far into the future, wouldn't missile tech have advanced far enough that heatseekers could still perform IFF checks? The problems I see are:

    1. Missiles have no IFF
    As I've already said, this just leads to total frustration when used in a fleet setting, and we're probably far enough along that completely dumb heatseeking missiles are no longer viable.

    2. Missiles have 360 degree vision
    The missiles can target anything, anywhere on the battlefield, making them unwieldy and difficult to use without damaging or destroying friendly vessels, and also horrendously immersion-breaking. A missile relying on IR guidance should not be able to see through its own exhaust plume.

    3. Missiles have no concept of range
    Not only can they target something directly behind them, they can target things vastly outside their range. You launch a swarm of heatseekers with several stations a few KM away, be prepared for some of the missiles to race to kill a target they have no hope of reaching. This also breaks immersion because there's no good reason that object should even have registered on the missiles' sensors.


    How things could be fixed:

    1. Give missiles IFF. Problem solved (if still unrealistic). This presents the issue that there is no downside to using heatseekers anymore, and they allow you to attack multiple targets indiscriminately, turning them into a skill-less weapon. So, all in all this is the simplest and least-effective solution.

    2. Make missiles perform an FOV check upon target acquisition. This means that even without IFF, the missiles will target what you're aiming at and not go veering off to try and kill the guy behind you. If you're right up close to something, all of those missiles should hit that target. But say you're a bigger ship and fire a cluster of heatseekers into a dogfight from range and you can see all of the ships involved, there's a good chance you're going to hit every ship in the dogfight, regardless. This means the weapons will be more effective to use, but also present a downside in the indiscriminate nature of heatseeking weapons, forcing pilots to wield them with precision unless they want to hurt friendlies.

    3. Make missiles prioritize closest targets first. This may seem unnecessary, but in the real world, objects that are nearer appear brighter through the inverse square law of power dispersion. Just another part of making the missiles more reliable to use while not sacrificing their inherent indifference to faction.
     
    Last edited:
    • Like
    Reactions: Unnamed25
    Joined
    Jan 22, 2014
    Messages
    1,047
    Reaction score
    299
    On top of that, how come the missiles sometimes think an object 5 km in the distance is warmer than something 50 m in front of their face?
    There was a bug that caused that, I'm not sure if it hit the public release yet.
     

    jayman38

    Precentor-Primus, pro-tempore
    Joined
    Jul 13, 2014
    Messages
    2,518
    Reaction score
    787
    • Purchased!
    • Thinking Positive
    • Legacy Citizen 4
    Conceptually, I think proper heatseeking can be emulated with a system that uses 2 hitboxes.

    The first hitbox would be a narrow 5x5x(max range) hitbox extending out from the front of the missile (adjusted for beam-slave altered range). The game could then find everything that falls in that first hitbox and look for thruster blocks and pick the nearest one. If it can't find a thruster block, it then looks for some other heat source, such as a reactor block. It continues on through some (server configurable?) list of potential heat-source blocks which might include lava too. (It might need to counter-intuitively include ice crystals as a possible heat source due to so many people using them in structure designs, especially engines.) If a suitable target is found for tracking, the second hitbox would not even need to be checked. Looking for heat-producing individual blocks would be computationally expensive, so it may be better just to look for live structures and aim for the core/center-of-mass. (With the new HP system, I don't know if the ship core will still be considered the "middle" of the ship.)

    If no suitable heat sources are found in the first hitbox, the game next checks a second hitbox. This hitbox is also extends out in front of the missile. However, this hotbox is much bigger at roughly (max range x2 -1 ) x (max range x2 -1) x (max range), with x and y dimensions centered on the missile's nose. It does the same check within this larger hitbox. That way, it has a wide side-to-side forward target area without finding targets behind it.

    If there is still no suitable heat source, it continues straight ahead as a dumb-fire missile. Maybe add a clock to re-run the double-hitbox check every 10 seconds or so, so it can suddenly lock onto heat sources that wander or warp into its sensor range.

    To keep this from being computationally overwhelming with dozens and maybe hundreds of missile launch groups in a single firing tick, maybe you could split up the initial hitbox into a series of shorter hitboxes, checking them sequentially in each tick. That way, in the first tick, maybe the missile would have a chance to lock onto something within 100 m. The next tick, it could check for a heatsource up to 200 m away. The next tick after that, 300 m, and so on until it checks its maximum range (minus the flight ticks so far multiplied by missile speed, which equals the distance the missile has flown so far).
     

    Lecic

    Convicted Lancake Abuser
    Joined
    Apr 14, 2013
    Messages
    5,115
    Reaction score
    1,229
    • Thinking Positive Gold
    • Purchased!
    • Legacy Citizen 11
    Missiles should be able to tell the difference between friend or foe at this point. I agree, it's ridiculous.
     
    Joined
    Feb 3, 2014
    Messages
    41
    Reaction score
    3
    it totally agree with this, im sick of my heatseakers to go after friendly ships, one time i had a gigant ship with heatseakers and a load of docked ships, and the heatseakers think the docked ships are hotter than the target they were ment to destroy -.-'' .

    i would REALLY love that missiles have a FOV of around 180 to 90 degrees so they wont attack you own or you fleets ships that are hiding behind you, and because i love to put them on fighters, i think they should know to identify friendly fighters and NOT shoot them, since the only way to effectivly play with fighters is having multiple ones swarming an enemy.
     

    NeonSturm

    StormMaker
    Joined
    Dec 31, 2013
    Messages
    5,110
    Reaction score
    617
    • Wired for Logic
    • Thinking Positive
    • Legacy Citizen 5
    Maybe:
    Heat seakers with more than x damage have a friendly-detection (prevents CPU-killer spam)
    -- everything above the sweet spot where they take more CPU time during killing blocks than during flight.

    A fixed fov of 90 or 180 degree may be easier to calculate. Math details:

    Ship - Missile distance (human //--// computer )
    => distance.{x, y, z} == ship.{x, y, z} - missile{x, y, z} //- // x,y,z = m.x-s.x, m.y-s.y, m.z-s.z
    => distance^2 == sum( distance{x, y, z}^2 ) //- - - - - --// xyz2 = xx+yy+zz = x*x + y*y + z*z
    => distance == sqrt( distance^2 ) //- - - - - - - - - - - - - // d = xyz2**0.5
    => distance

    Missile in Ships boundary box
    => yesX == ship.xMin < missile.x < ship.xMax //// calculations for the computer: yesX = (y&y) = (s.x < m.x) & (m.x < s.x2)
    => yesY == ship.yMin < missile.y < ship.yMax
    => yesZ == ship.zMin < missile.z < ship.zMax
    => yes == /( yesX & yesY )/ & yesZ
    => yes = collision

    Field Of View (FoV) check 180°
    -\-b-/-
    -a-X-c-
    -/-d-\-

    => relativeObject.{x,y,z} = object.{x,y,z} - missile.{x,y,z} //// similar to first distance calculation line above
    => rotatedRelativeObject = relativeObject.rotation + missile.rotation
    => object in range == rotatedRelativeObject.z >= 0
    => missile.heading = rotatedRelativeObject.position / sum( relativeObject.position{x*x, y*y, z*z} ) * missile.velocity

     
    Joined
    Jul 20, 2013
    Messages
    603
    Reaction score
    203
    • Legacy Citizen 2
    • Community Content - Bronze 2
    • Purchased!
    I've always been amused by the heat seekers, but even I can agree we need some form of IFF. Just recently I was doing some testing and the missiles decided to fly off and attack an unshielded project of mine along with the initial target.
     
    Joined
    Oct 24, 2014
    Messages
    226
    Reaction score
    97
    • Legacy Citizen
    • Purchased!
    Improvements in the heat seeking missiles probably go together with general AI improvements since they are basically making a decision about what to attack. Perhaps the AI should seek out a viable target within a 45 deg. cone in front of the missile, if no target is found the cone could widen to 90 deg. I am just thinking how I would pick a target. I would look for something basically in front of me before turning around. I think the missiles in the game have too tight of a turn radius and should be adjusted so the missile needs to be shot pretty much toward the target anyway, or at least make the turn radius change depending on the "size" of the missile.
     
    Joined
    Jul 3, 2013
    Messages
    181
    Reaction score
    11
    • Legacy Citizen 2
    IFF must be a thing before they can be used in fleets, and they should consider faction relations aswell, going after hositlefaction ships rather than unalinged ships rather than neutralfaction ships and ignoring alliedfaction ships tottaly
     
    Joined
    Sep 9, 2013
    Messages
    44
    Reaction score
    3
    Personally I think heat-seekers should react closer to lock-on missiles but very differently.
    Lock-on missiles lock onto a specific target, acquiring a target lock over a specific amount of time before launching.
    Heat-seekers in my opinion should be similar, they should lock onto a specific target and ruthlessly engage that target BUT and this is a big but, the missiles do not discriminate which targets they lock onto.
    Comparing the two in what I would like to see.

    Lock-On missiles strengths
    - Easily to see which target is being targeted
    - Can launch numerous missiles onto a single target
    - Have control over what is being targeted.
    - A long ranged weapon.

    Heat-Seeker missile strengths
    - Fires multiple missiles
    - Large lock-on window
    - Fast lock-on
    - A close range weapon

    Lock-on missile weaknesses
    - Narrow lock-on window
    - extended lock on time
    - Not the best at close ranged engagements.

    Heat-Seeker missile weaknesses
    - Can not see which ships are being targeted
    - indiscriminate in which ships are targeted (friendlies can be hit by mistake)
    - Long ranged engagements are hit-miss

    If heat-seekers become a IFF missile, then in fleet battles they become the missile to use. Spam IFF missiles and watch as the enemy is swarmed. Torpedos, Lock on missiles, and even rockets would be useless in a brawl.
     
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    Ways of balancing heatseekers:
    slow speed: this gives them good maneuverability, but they can be outrun)
    short range: along with above, gives them an identifiable role of taking out fighters near you, while making them useless at long range. And by long range, I mean "standard beam range." That's right, beams should get a longer range than heatseekers. (Note that standard beam range needs to go up, while swarm missile range of 1km should probably work once larger sectors are common.)
     
    Joined
    Jul 3, 2013
    Messages
    181
    Reaction score
    11
    • Legacy Citizen 2
    Ye, something like that, Heat seekers IMHO should still be fire and forget missiles however the lock on counterpart should be generally better considering the lock on time, making it so heatseekers are shorter range a lower damage and allowing lock on missiles to get a lock long before the heatseekers are in range
     
    Joined
    Aug 14, 2013
    Messages
    2,811
    Reaction score
    960
    • Councillor 3 Gold
    • Wired for Logic
    • Top Forum Contributor
    If heat seekers were capable of only attacking enemy ships then they for sure would be OP. No lock on time and tracking ability plus the swarms are also more capable of overwhelming point defense. If the tracking mechanics were updated I imagine we would need some kind of counter such as the ability to launch flares to confuse the heat seekers.
     
    Joined
    Aug 28, 2013
    Messages
    1,831
    Reaction score
    374
    • Legacy Citizen 2
    • Top Forum Contributor
    • Legacy Citizen
    IFF blocks. You can mount these on any of your ships, and it will prevent swarmers from attacking your own ships. However, if you know your enemies code, you get your swarmers to fire only at their ships.