Understanding Lag and its Effects on Aces High
by Hammer
When you are flying on-line in Aces High, your plane exists in multiple
virtual realities. The one you are aware of is the one you can see on your
screen. You know where your plane is and where other planes within visual range
are. What you might not realize is no two players' reality is exactly the same.
Each player playing the game sees every plane, including yours, in a slightly
different place from every other player. These differences occur
because of the way lag affects the game. Lag is the time it takes for
information from one player’s computer to reach another player’s computer.
Lag
For you to see what another player is doing, information must pass from the Aces
High software (called the front-end) on his computer to the server (called the
host), be processed by the host, and then pass from the host to the front-end on
your computer. At the same time, information from your front-end is being passed
to the host, processed by the host, and then passed from the host to other
players. The time it takes for information to move from your computer to the host
is the ping time indicated on your clipboard when you bring up the on-line arenas.

The time it takes for information to pass between players is the sum of the ping
times of the 2 players and the Host queue time. This total time is commonly
referred to as lag.
In the illustrations below, the bright Green and Red icons represent what Player
1 sees on his computer while the faded Green and Red icons represent what Player
2 sees on his computer.
Let’s say
each player has an identical ping time of 50 milliseconds. That means
information from Player 1’s front-end reaches Player 2’s front-end in about 100
milliseconds, or 1/10 of a second. If Player 2 is sitting in the tower watching
Player 1 fly past at 360 mph, Player 2 will see Player 1’s plane at point B while
Player 1 sees himself at point A. The distance (x) between A and B in this example
would be 52.8 feet – more than the length or wingspan of most fighters! (360mph =
528 feet/sec; x = 528f/s x .1s = 52.8 ft) Note that the result would be the same
if one player had a ping time of 60ms and the other 40ms. It is only the total time
that matters, not one or the other.
Now
let’s say Player 1 and Player 2 are opponents and flying in opposite directions
at 360mph. Again, both have an identical ping time of 50 milliseconds. In this
case, the distance between the two realities remains the same 52.8 feet but,
because of lag, Player 1 sees the two planes passing each other at point A while
Player 2 sees both planes passing at point B. Because both plane's speeds are
identical, they pass at the same time, but not the same place.
The
results are a bit different if speeds are not the same. If Player 1 is
moving at 360mph but Player 2 is moving at only 180mph, x remains 52.8 ft but y
is only 26.4 ft. When Player 1 is even with Player 2 on his (Player 1's)
front-end, Player 2 is still in front of Player 1 on Player 2's front-end. Now
not only will the place where Player 1 and Player 2 pass each other be
different, but so will the time. While we are only talking 1/100s of seconds and
a few extra feet of maneuver room, it is still a difference that can and does
lead to confusion, misunderstanding, disbelief, and sometimes hostility in the
arenas.
Collisions
Collisions and how they are modeled is one of the most misunderstood, and
therefore most contentious, issues in the game. The usual question is
how 1 player can suffer catastrophic damage in a collision while the other
player suffers no damage at all. The explanation is in the understanding of
how lag affects the reality on the two front-ends and how HiTech mitigates
collisions.
The
first thing you must understand is that a collision can occur on one front-end
but not on the other. The reason for this is the different realities caused by
lag. Player 1 can see himself safely past Player 2 at point A while at exactly
the same time Player 2 sees himself colliding with Player 1 at point B. Whether
through maneuvering to avoid the collision or just plain luck, Player 1 did not
collide on his front-end. Player 2 did.
Since a picture is worth a thousand words, take a look at the images below.
They are from films of a duel between Bronk and Tangle. The first picture is
from Bronk's film and clearly shows Bronk colliding with Tangle.

The second picture is from Tangle's film and shows Tangle's view at exactly
the same instant. Notice the "Bronk has collided with you" message
in the text buffer. In Tangle's view, though, there is almost two plane lengths
of separation between him and Bronk.

The second key to understanding collisions is knowing how HiTech mitigates
collisions. It's really very simple: If a collision occurs on your front-end,
you suffer damage from the collision. If a collision does not occur on your
front-end, you do not suffer damage. Looking at the two images above, it is
pretty clear that this is the only way to do it. How would you like to be Tangle
in this scenario and receive damage from a collision you were obviously not
involved in?
There
are lots of scenarios where a collision can occur on 1 front-end and not the
other. You may not even see the collision (i.e. you were looking a different
direction) and suddenly suffer collision damage. You may see the collision, but
the other guy maneuvered out of the way. The bottom line, though, is in your
front-end's version of reality, a collision occurred. If a collision did not
occur on the other front-end's version of reality, the other player's plane will
not suffer damage.
Warps
Warping is usually caused by extreme variations of lag. Your front-end is
constantly updating the position of the other planes you can see based on the
data sent to you from the host. Before it can be sent to you, though, the host
must get it from the other planes' front-ends. If no update is received, the
other plane continues on the path it was following until an update is received.
Once that update finally arrives, the other plane is moved to its new position
almost instantly. In other words, it warps there. Usually, this is caused by
variations in lag - either yours or theirs. If lag is consistently bad enough for
warping to occur between each update, the offending player is going to get a
beacon or be disconnected completely.
If you see everybody warp, it is probably your connection causing the
problem. You can quickly check to see if your connection
has taken a hit by bringing up your clipboard, right clicking on the map, and
clicking "Net Status" on the pop-up menu. This will show two graphs. The
"Variance in Delay" graph should be flat and close to center. If there is a
spike in it, you have taken a hit on your internet connection. While you can
live with an occasional hiccup in your connection, you will want to isolate and
fix anything that causes constant spiking on this graph.
"Impossible" Shots
Another phenomenon caused by lag is taking hits from "impossible" angles or
even after the attacker has already passed you. While more of an annoyance
than a contentious issue, understanding how it happens can help you defend
against it.
As
already discussed, lag causes a different reality on different front-ends. This
difference in reality can allow an attacker to shoot when the defender thinks he
is safely outside the attacker's line of fire. Unlike collisions, if you
opponent scores hits on your plane on his front end, the damage caused by those
hits is assessed against your plane. Again we are only talking 1/10’s
of seconds and a few extra feet of maneuver space, but it still may be the
difference between having a shot opportunity and not having one. This is also how
you can get shot after you have passed. Once the host receives hit data from
Player 2's front-end, it sends the pings and damage to your front-end - all after
you saw your opponent pass you!
This has been described as being like you are towing a target behind you. You
can't see it but the enemy can and, if the enemy shoots the target, you take the hits!
You can defend against this, though, by paying attention and getting a feel for
the angles that people can get hits on you. Once you know this, you adjust your
thinking accordingly.
So What?
So how does this apply to how you fly? There are a few things you need to
take with you:
Offense - Aim based on what you see on your screen. If your bullets hit your
target on your front-end, that damage is assessed against your opponent.
Defense - Keep in mind that, on your opponent's front-end, he is a bit ahead
of where you see him and and you are a bit behind where you see yourself. If your
opponent can hit what he sees, you will take damage. Think about preventing
him from being able to shoot that target sleeve you are towing behind you!
Collisions - While you may not be able to prevent someone from flying through
you and causing a collision on your front-end, remember that he may not have
seen a collision on his front-end and, as far as he is concerned, a collision
did not occur. While it may be frustrating to watch the other guy fly away while
you tumble to the ground with damage from a collision, it beats the alternative
of you tumbling to the ground when you know for a fact that you were not part of a
collision.
Hope this helps your understanding of how lag affects Aces High! |