Phase Cloaking – a Deep Dive

As usual, after a major release there’s some time to polish up some things that there just hasn’t been time for up to that point. In fact, a lot of the upcoming 0.7.2a is turning out to be about “paying off” technical and design debt – things that are “good enough for now”, but do have to be addressed at some point.

doom_vs_enforcer

One such is phase cloaking. There’s a post from a while back on how the current mechanics came to be if you’re interested in the details, but let’s summarize:

Way, way back, the original idea for phase ships was something submarine-like, being able to hide on the battlefield and deliver surprise attacks. That sounds like fun but didn’t turn out to be practical, so phase cloaking changed to become a way to avoid damage instead – shift to another dimension, let enemy fire pass through/over your ship, uncloak, and fire back. That essential concept remains unchanged in this new iteration; the changes are looking to address some specific issues with the implementation.

What, then, are the issues?

First off, phasing and unphasing are instantaneous. This creates a responsive feel when you’re in control, but it’s frustrating when facing the AI, which is untouchable until it runs out of flux capacity. But, if another ship is able to follow and keep pressure on a phase ship, it becomes an easy kill once it runs out of flux to keep cloaking.

This is binary – either another ship is faster and has weapons (usually beams) that allow it to sustain pressure, or it can’t do that. Defeating a phase ship involves waiting it out; a shorter wait until it runs out of flux capacity, or a much longer wait until it runs out of peak time and then runs through its combat readiness and breaks down. In either case, you’re not doing much except waiting.

New mechanics

Phasing/unphasing is still instantaneous, but there’s a 2 second cooldown after unphasing

This is straightforward at first glance. Unphasing (i.e. coming back into normal space) leaves the ship vulnerable for two seconds, giving other ships an opportunity to do damage. Burst damage is, of course, more effective here.

One issue, easily resolved (but not to be overlooked!) is that there needs to be a visual indicator for this cooldown time. I’d really rather not stick another progress bar somewhere in the UI, but fortunately, phase cloaking already has dedicated graphics for the phase coils, so we can make use of those to convey the duration of the cooldown.

The bigger issue is that this change, taken by itself, would make phase ships completely unreliable in AI hands. Unphasing in front of an antimatter blaster is just fine if you can fire a quick shot and phase out – but add in a delay, and it becomes suicidal.

Resolving this required a lot of AI work; evaluating the “worst case” of how much damage the phase ship can take during the window of vulnerability (considering things like projectile speeds, the burst damage of weapons, current weapon facings and turn rates, the missiles currently in play, etc) and then deciding whether it’s safe to unphase or not.

This computation isn’t perfect, but it requires some pretty finely-tuned execution to nail a phase ship – outside what other AI ships can pull off. The net result is that phase ships are forced to take some damage to deal their damage (reducing the “untouchable” feel when facing them), but they do get to pick their spots so that the exchanges favor them.

Phased ships experience time at 3x the normal rate

This is the big change. It’s also a huge buff to phase ships, and comes with increased deployment costs.

Lining up a perfect torpedo or blaster shot, flanking an enemy, or waiting out a long weapon cooldown without giving an enemy the chance to recover, are all very powerful and feel great, and there are a myriad more tactical uses.

But what does it do to address the actual problems we’ve outlined earlier?

First of all, this (once again, combined with some heavy AI work) makes phase ships dangerous. You’re not so much trying to wait out an annoying enemy as you are trying to avoid getting shot to pieces, like this:

The flip side of faster subjective time is that peak time and combat readiness run out faster for phase ships, as far as an outside observer is concerned. Keeping up pressure and increasing the time an enemy has to stay phased is an effective way to make it go even faster – making a ship stay phased is dealing indirect damage to it, if you will.

Combined, the increased danger, the reduced time a phase ship can stay on the field,  and the ability to deal it a bit of damage along the way makes fighting against phase ships feel a lot better. Except for the part where you’re likely to take an antimatter blaster shot in your engines, that is.

After peak time runs out, phase ships lose combat readiness at an increased rate

The goal here is to keep the length of time a phase ship can be deployed down to a more manageable level. Without this change, fighting phase frigates felt like it was taking a bit too long.

Ships can’t use phase cloaking or shields when their combat readiness drops to 0%

This makes a phase ship that does finally run down on peak time and combat readiness a sitting duck. As a side effect, it also resolves a stalemate that could occur if two ships fighting each other for a long time suffered enough permanent weapon malfunctions that they couldn’t punch through each other’s shields.

Missiles can’t track phased targets

In playtesting, missiles were a bit too good at keeping phase ships suppressed. (A modding side note: this is done through the missile AI, so any mods providing custom missile AI and wishing to adhere to this will need to make corresponding changes.)

The AI will try to “suppress” phased phase ships by firing a small number of weapons at them

Generally, this means that an autofiring weapon – preferably a beam – will keep firing at a phased enemy ship. This also works for the player-controlled ship. This is a good idea to do, usually, and so both helps the AI deal with phase ships, and helps the player by automating a chore.

Overall effect of changes
Fighting a phase ship can still boil down to waiting them out. However, due to the changes, this isn’t as much of an issue because:

  • The wait is much shorter. For example, if you’re fighting a phase frigate and some other ships, chances are it’ll be losing combat readiness already by the time you’ve dealt with its allies.
  • … unless it’s managed to blow you up during that time. It’s not so much “waiting” as it is “frantically defending yourself”.
  • Bigger phase ships, which would take longer to wait out, are quickly countered by  multiple faster ships once their allies are gone

Flying a phase ship, on the other hand, is (if I’m allowed to say so, myself) a ton more fun than it was. The fast-time effect has a way of making the piloting feel very “skillful”, and there are lots of ways to take advantage of the fast-time mechanics.

close_call

Ship systems
Going along with the new feel of phase ships as being “dangerous” (and “weird”, due to the fast-time stuff and phasing being “weird” in general), it felt appropriate to take another look at their active systems.

Most ship systems affect the ship they’re installed on, but phase ship systems will affect a targeted enemy ship instead. This post is already getting a bit long, so to keep it manageable (and to fuel rampant speculation), let’s just note the names of the new systems:

  • Afflictor, frigate: Quantum Disruptor
  • Shade, frigate: EMP Emitter (same as before, the one existing system that directly affects an enemy)
  • Harbinger, the new phase destroyer: Entropy Amplifier
  • Doom, cruiser: Interdictor Array

Actually, let’s go into the details for one of these. The idea is that the effect of the system should initially feel a bit unfair (see: dangerous and weird) but, on consideration, offer some opportunity for counter-play.

For example, the Doom’s Interdictor Array flames out half of the target ship’s engines, and can’t be blocked by shields or by any other means. However, it’s set up so that it can’t cause a full flameout unless some engines are already damaged. So, one can minimize its impact by prioritizing engine defense, and also by staying away from the Doom, since the range of the array is limited.

Other new systems follow the same design approach – a bit unfair, but not to the level of, say, dealing unavoidable damage, and with at least some opportunity to minimize the impact.

 

Comment thread here.

 

Tags: , , , , ,

This entry was posted on Friday, January 29th, 2016 at 3:59 pm and is filed under Development. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.