A tale of missiles and countermeasures
Boy, there are a lot of things you have to start taking into account when making a standalone like WoD. There's this plethora of customizable things that I dont always take the time to think about. They simply get lost in all of the other things, like texturing, drawing, modeling, mission design, writing, interface design and so forth. These take up the majority of my brain cycles.
Things like ship behavior, that is of course at the absolute core of the gameplay, have a lot of variables going for them. Like: What kind of damp values should ship have? A universal value or for ship specific? What about the rotational damp? Banking constant? What kind of speed values should the ship have for each direction, its engine overclock value, its afterburner speed, burn time and recovery rate. The list goes on.
The most recent example that I've been running into are Countermeasures. For the longest of time, this has been extremely low on my priority list. Freespace 2's countermeasure system is extremely simple really. Every ship, every race, all use the same 'Type one' countermeasure. It has the default effective radius of 300 meters and a default effectiveness of 1 for heat and aspect seekers.
I was content with this for a long time, you hear a beep and a yellow triangle shows up on your hud, you press the CM button until the beeping stops. Simple!
Then at some point during development, Dragon made a bunch of custom effects for species specific CM (like the cool flares that Terran ships use). I included them, but I still wasn't really aware just what kind of stinkyhole the underlying countermeasure system was, until the scp coders stumbled upon its dark secrets.
So what exactly smells about the CM system you may wonder, allow me to explain:
As I currently understand it, countermeasures are active for exactly 2 frames. You drop one, it checks if it can spoof anything in those 2 frames, it goes inactive. Until any new CM is dropped. Then every CM currently in the mission becomes active again for 2 frames.
What the poopoo, right?
So in addition to the retail code just being silly, the WoD build with multilock code had an additional issue with heatseekers, if there was a CM in sight, they'd 100% go for the CM instead of any other target, even if the CM wasn't active or in effective radius. I blogged about this issue earlier, but bring it up again because after many months and asking three different coders, Dahblount has totally fixedz0red the issue. Many jubiliations.
Now of course, there is still that dumb 2 frame active behavior. But thanks to this feature that AdmiralRalwood has added, it's possible to set 'pulse intervals' for countermeasures. Making CM behave in a sane way, a way you'd actually expect them to behave from the start.
So now I'm looking into how to balance and rebalance missile seeker strength vs the various countermeasures. And how to make the CM's of various species unique in their behavior, giving the player some more loadout considerations to make. For example making Nordera CM's good against aspect seekers but bad against Heatseekers because their ships produce a lot of heat with all their mechanical moving parts and so forth. There's also the possibility of turning CM's into straight up mines, since they are technically just weapons with an additional flag.
There's a lot of unexplored ground in countermeasure country!