Half Life 2 - Black Mesa Modification - Networking Part 2

Arne Olav Hallingstad
14th January 2009
Updated 14th January 2009
Home

Black Mesa is a mod that recreates the single player Half Life experience in the Half Life 2 source engine, with updated levels, textures, models, sounds and graphics. The gameplay experience is kept the same as much as possible. There will be support for co-op in Single Player, but there are several technical challenges that needs to be overcome before players can fully enjoy the co-op experience.

Goal

Find cause for and fix the jitter found in this graph:

x-axis: Frame number


y-axis: Velocity in units per second
blue line: Velocity of the platform on the client.

In essence we'll look more closely at the noticeable stutter when changing direction. It does look like the stuttering on linear movement when the player is not standing on the platform is dues to FPS issues, this might be the case, and might be more noticeable when it changes direction which is why we'll take a look at that now.

We're on the same map as in part 1, looking at the deterministic and linear movement of a func_movelinear on a client. Tests were run on an E6600 Core 2 DUO, 4GB memory and Nvidia 8800GT. Unfortunately there does not seem t be a way of running multiple instance of half life 2 as it's tied to the steam account. Therefore a client was simulated by running a game with the cvar maxplayers set to 2 which simulates a server/client. The players is still just standing on the sideline looking at the platform, not moving the position or view throughout each test.

Console Variables

Looking at the data again

Let's create some graphs again to make sure the data just weren't completely wrong. We'll collect new data samples and from the same sample data create graphs for the platform velocity, position, client FPS and server FPS. This will give us a good indication of where the problems lies and narrow down the debugging. Also I won't be graphing the data over frame numbers (x-axis being the frame numbers in the graph above), but over frame time which will show us if the interpolation is wrong, or if the FPS issues is the issue.

x-axis: Frame number


y-axis: Velocity in units per second
blue line: Velocity of the platform on the client.

The position of the platform

x-axis:


y-axis:
blue line:

The position of the platform

x-axis:


y-axis:
blue line:

The position of the platform

x-axis:


y-axis:
blue line:

Part 3


Tweet

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.