The Phantom "Wallhack"

UPDATE: many things discussed in this post have been tweaked or will be changed in the coming updates. Please refer to the patch notes for more details.

Among all the feedback and player comments about Phantom Doctrine, one topic quickly surfaced as controversial. To many players, the Lines of Sight and Lines of Fire appear bugged or unfair. We hear you, we understand that you don't like it and as of right now, we're almost ready to offer you an alternative. But if you're interested in the ins and outs of the game's combat system, here's an explanation from the Lead Designer of Phantom Doctrine, Kacper Szymczak.

tl;dr We're working on improving the clarity and visualization of the Line of Sight (LOS) and Line of Fire (LOF) system

What are sidesteps and why they matter?

Waaay back in the day, in turn-based, grid-based tactical, you’d often encounter a situation like the one below; there’s a target (T) just around the corner, normally you’d smell their bad breath at such a distance, but your shooter (S) wouldn’t be aware of the danger until you’d run into the enemy.

 Realistic in real life, impractical in turn-based 3D world

Realistic in real life, impractical in turn-based 3D world

The problem is that the old school approach makes the game slightly less tactical; it is once you know where your enemy is, that you can actively think of a way to overcome them. Back in the day you’d just frequently bump into enemies and whoever had the turn - won the encounter.

 Whoever has the turn, moves and wins

Whoever has the turn, moves and wins

Hence, a frequently used solution is a cover-sidestep mechanic: when adjacent to cover, visually shooter would “stick” to the wall, take a peek and the target would be revealed - and shot. Technically speaking, the shooter would check for line of sight both from their actual position, and an adjacent tile at the same time; if either provided line of sight, then the shooter has line of sight.

 Lean out and suddenly there's a Line of Sight

Lean out and suddenly there's a Line of Sight

 This is more realistic by far and allows for a multitude of balancing options

This is more realistic by far and allows for a multitude of balancing options

Having just this would mean that in the example above the Target wouldn’t see the shooter. Hence the system needs to be symmetrical - even if seemingly slightly silly; Target also considers a cover-sidestep - for the sole purpose of getting shot. So Targets are considered to be on the tile they actually stand on, and the one adjacent, where they’d peek in hopes of getting shot in the face.

ffdhs.png

Peeking Out

For clarity, this is presented with peeking animation (see below) where the enemy is peeking and patiently waiting to bite a bullet.

 The target leans out of cover slightly to get into the line of fire

The target leans out of cover slightly to get into the line of fire

We discovered a bug related specifically to peeking out: in some cases, the target would peek the wrong way. The shot still connects - because lines of sight are calculated on tiles instead of 3D geometry raytracing. This has hopefully been fixed in the 1.0.2 patch which is already out in the wild.

 This is what would result from leaning the wrong way: looks like a wall hack

This is what would result from leaning the wrong way: looks like a wall hack

Free Sidesteps

The cover-sidesteps aren’t a perfect solution; the more walls and obstacles, the more cases where you wouldn’t see an enemy. With cover-sidesteps alone, there are still plenty of situations where you wouldn’t see them coming. And the more walls, the less tactical it would get.

Now, with Phantom Doctrine, being a spy game, is predominantly interior-based.

Consider the case below. The more distant Target would not be seen, because not being adjacent to a wall, they wouldn’t sidestep and peek. It would be very unrealistic as despite being almost as close as the closer one and in the same 'line', it would be obscured.

 The greyed-out enemy can't shoot or be shot

The greyed-out enemy can't shoot or be shot

The solution to this is what we call a free-sidestep: for the purpose of calculating LOS & LOF, every character is always considered to be on all adjacent tiles. This is the reason that you can detect and tactically overcome enemies in Phantom Doctrine’s complex environments.

It should be noted that this only works for shooting; AOE effects - say, grenade explosions - only use the Target’s actual position.

 All the Free Sidestep tiles are taken into account for LOS

All the Free Sidestep tiles are taken into account for LOS

The problem, however, is that while characters adjacent to cover can take a peek around the corner making it fairly understandable visually, the free sidesteps aren’t really easily presentable in idle animations. While for the purpose of shooting characters take a step to the side before firing, it still can yield some visually unclear situations, if the characters don’t peek/lean aggressively enough.

If the angles are sharp enough, you might perceive shots being fired through a wall or several walls. Phantom Doctrine isn't the only turn-based tactical game to use this solution. The difference is the amount of interior areas where combat takes place.

 In interiors, such tactical situations are quite common

In interiors, such tactical situations are quite common

 This is how it's calculated...

This is how it's calculated...

 ...but this is how it may end up looking

...but this is how it may end up looking

 Both characters sidestep to our right and through the door and window LOS exists

Both characters sidestep to our right and through the door and window LOS exists

In the example above, if the enemy guard sidesteps to his left, he has a clear line of fire to the tile under the window, which is one tile to the right of agent Stoney. The screenshot is from a Youtube video, but we recreated the exact case in 3D. We understand that it looks anything but clear and the reception of it has been divisive. Hence, one of the tweaks we are implementing right now is to increase the clarity and remove the most controversial or confusing cases.

Any change to this mechanic needs to be very carefully tested and considered and it will likely affect the entire game balance but we're preparing to deploy a major change and will definitely ask for your input. Thank you for all your feedback and support!

Addendum: Tricky Situations and Free Sidestep

Many of you asked about more examples which led us to implement the Free Sidestep the way we did. We're working on solutions which should alleviate many of the confusing or unclear cases rather quickly but in the meantime, below are cases where without the Free Sidestep, the Shooter (S) has no LOS/LOF to the grey Target (T). We hear that some of you don't feel like the current implementation is realistic. To us, the lack of LOF/LOS in those examples felt even more un-life-like. In those cases the square grid becomes very constraining and could potentially turn combat into a pure puzzle of positioning.

 Only the red Target can be seen or attacked

Only the red Target can be seen or attacked

 Now, that felt really silly, to not have LOS/LOF

Now, that felt really silly, to not have LOS/LOF

 Another case solved only by a Free Sidestep

Another case solved only by a Free Sidestep

Thank you for the responses to the original post, both positive and critical. We're reading them all while we test and smoothen out an alternative.