Halo 1 & 2 for PC
This topic has moved here: Subject: Self-Hosted Server Discussion
  • Subject: Self-Hosted Server Discussion
Subject: Self-Hosted Server Discussion
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Hi guys,

Trying to tackle performance issues server. Standard Halo, latest version (1.08) Not a single person is saying they are getting stuttering, frame decreases until there is collisions calculated, getting hit by weapons, or objects.
It is most noticeable when crashing two warthogs together (even with 2 people on server). The clients will not agree with the server on the effects of the collision and warping always occurs.

Not sure what is causing it, here is some info:

-----------------------------------------------------------
Hardware:
Dell 2950
2 2.4 Xeon Duo Core [ 4 procs to Windows]
8 GB Ram
15k SAS Drive
1066 FSB/Ram speed
2 BCOM 1gbps teamed NICs
Windows Server 2003 R2 x64

Server is connected directly to a Nortel core switch [416Gbps Switching Capacity] that is connected to our PIX 515E [allows the ports and RDC to the server only] that connects to our Cisco 2621 Router. Our internet connection is dedicated 5mb.

-------------------------------------------------
Observations:
While running haloded.exe (single processor only?) it is using less that 1% cpu usage.
Memory is not an issue, we have gigs free still.
Network monitoring shows very little (as would believe, with specs of how much bandwidth each client takes up/down) with up to 16 people on server. It should not even take 2mbs of data being transfered. Our latency are all 66-133 or so.
perfmon doesn't show an increase in harddisk access time or such while running haloded with no people, or when a bunch join.
--------------------------------------------------

Anyone got some ideas?

[Edited on 10.25.2008 4:10 PM PDT]

  • 10.25.2008 4:06 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Going to test an internal (lan) load.
I found out that modifying the digitalid registry will allow multiple clients to connect to each other in LAN or Direct IP mode IF the dedicated server is set to sv_public 0. If it is set to 1 then it must check for valid CD Keys.

This test will not be completely inducive, as two elements are being changed, the latency (going from 100-200, to <30) and the gateway devices are removed.

Will see if the collision issues are resolved though.

  • 10.31.2008 10:27 AM PDT
  •  | 
  • Exalted Legendary Member
  • gamertag: Btcc22
  • user homepage:

The collision issues will never be resolved sadly since that's part of the game.

I wrote quite a long piece on the Gearbox forums ages ago with some fairly detailed info about how the netcode worked in an attempt to better understand it and fill in some blanks which had some interesting answers that I suppose are relevant here.

Anyway, the short version is that movement instructions are sent in each update the server sends to the client which is why people don't warp around much, however, actual co-ordinate updates of where everyone is and where objects are get sent far less frequently (I can't remember exactly how often). The co-ordinates are basically sent as an error check which will correct any player/object locations which the client has lost sync with, and this is why you notice warping.

The effect is most obvious in anything collides at a high speed and has 'bouncy' physics (can't think of a better term sorry ;)). When you drive a vehicle into another vehicle, the physics you see on your screen are being calculated by your game based on the position you are actually at, however, the position the server sees is slightly different since it doesn't see everything until after, and the position the other players see is different again. The result is this warping effect where the objects will suddenly snap into a different position as their co-ordinates are corrected and the physics are recalculated on your end. Let's say you hit a parked vehicle with 500ms latency to the server. You'll hit the vehicle on your screen and straight away the physics move the vehicles around, but the server doesn't see this collision happen until quite a bit later, and when it does, the physics it has calculated aren't exactly the same as the ones your game has. Cue the correction and warping.

Another example is if you fire a rocket at a vehicle that's going in a straight line. As soon as you fire the rocket, you'll see it on your screen. You see it clip the back of the vehicle and it goes flying. But wait, a split second later you see the vehicle suddenly snap back into position and carry on driving. Pretty annoying and a common way of losing a game. What happened there is the vehicle was slightly ahead of the position you saw it on your screen in reality, and thus there was never really any collision, or it may have hit a different part of the vehicle from what your game saw, and again, cue collision.

That's pretty much accurate from what I understand since Halo's netcode isn't exactly the most well documented (as in, there isn't anything that explains it officially pretty much).

Hopefully that'll help you out and put your mind at rest about it being the fault of your machines, and sorry if it was a wall of text (I blame it on being 3AM). =)

  • 10.31.2008 7:56 PM PDT
  • gamertag:
  • user homepage:
  • last post: 01.01.0001 12:00 AM PDT

Thanks, this puts my mind at ease about the network/hardware aspect.

  • 11.03.2008 7:27 AM PDT