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 (comments). 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!