In this topic I will try to explain the problems that a large part of the GW2 community has with the camera and controls, reasons why they are an actual problem, and possible solutions.
Before I begin, I’d like everyone who doesn’t have an issue with the current camera and controls to refrain from posting how they don’t have issues. That’s fine and I’m really happy that you can enjoy this otherwise great game. But dismissing the problem does not contribute to the discussion, since the problem is there, with its roots in the camera algorithm. If you don’t experience the problems present now, I assure you that you wouldn’t notice any changes if they were made later on, or if the camera behaved differently to start with. And that’s perfectly ok.
That being said, the cause of the problem, unless you have problems that would otherwise add to the current one, is not in the hardware / software / network latency. So please, don’t advise people to buy a new computer / mouse, reinstall drivers / game or get a faster connection. It has nothing to do with any of those, and you will end up sounding arrogant and foolish.
So now that we have that covered, let’s get busy.
If you stuck with me so far, you probably experienced some of the effects that the current camera has. Some may say that the camera is slow, or that it feels “floaty”. Some people experience dizziness while playing and some will just tell you that the camera feels “off”. These are all symptoms, and they are all real. But let’s get down to the causes:
1) Input lag
What exactly is input lag? It is the time required from the moment you made an input (mouse movement, key press, etc) to the moment that there is a visible change on the screen.
All LCD monitors have some input lag (response time + signal decoding), so in no circumstances will you have 1:1 movement. Video options such as triple buffering and vsync also add to the input lag.
The problem with the current camera is that it introduces input lag on the camera controls. That means that there is a noticable delay between mouse movement and the camera response. This is probably not an issue in itself, but a consequence of the later issues such as smoothing and inertia.
After a lot of testing in different areas, I came to the conclusion that the camera input lag is tied to the game performance. In the Hall Of Monuments, where I can push 60 fps on any settings, the game does not feature input lag. The problems defined later on are still present, but the camera responds instantly if using vsync with a framerate cap, or if not using vsync at all.
That would suggest that the mouse input processing has lower priority than other processes at the time, which would also explain the unexpected lockups and variable speed. If you take into consideration the big FPS drops the game currently has when turning the camera, it’s probably an optimization issue.
2) Negative acceleration
Mouse acceleration is a relic from the times when we had low DPI mice. It can be turned off for the OS (not the game) in the mouse options, under the cryptic name “Enhance pointer precision”, which will also remove cursor snapping to x/y coordinates (toggling this option in Windows will not affect the game, only the OS).
So, how exactly does mouse acceleration work?
If you move your mouse exactly from point a to point b on your mat and back, you would expect the ingame camera / cursor to come back to the same place. Mouse acceleration works by modifying the distance travelled according to the speed of the mouse movement. So if you moved your mouse a -> b slow, and b -> a fast, even though the distances are the same, the camera wouldn’t end up in the same place.
We have positive and negative acceleration. Positive acceleration increases the distance travelled with speed, while negative acceleration decreases the distance travelled.
This game seems to feature negative mouse acceleration which is most noticable while trying to do a 180° turn. If you twitch your mouse fast enough, you won’t cover the same angle as if you did a slower turn.
Another relic from the past. DPI is an abbreviation for Dots Per Inch. Or you could say Pixels Per Inch. That means that if you have a 1000 DPI mouse, you would move your cursor 1000 pixels in 1 inch. In the past, mice had lower DPI so the mouse moved more than 1 pixel per reported dot. That means it skipped some pixels. To make the movement appear smoother, some games introduced mouse smoothing (UT99 pioneered it) which interpolated the movement, adding the missing positions in between.
However, what interpolation did was introduce input lag, since it needed to capture the first few frames to smooth them out, and prediction, to predict where the game thinks you would move the mouse next. You can already see why this is a bad idea.