18 December 2015 - 19:00 CET
The next build is available for public beta this weekend on the BETA branch of the NS2 client. If you don't know how to get on the BETA branch, refer to this guide. Although many of the hitreg issues are fixed, there still remain known issues so hitreg is not perfect. An important addition in this patch, however is the hitreg tool. This tool is hidden behind one of two barriers (sv_tests or sv_cheats) because it can greatly increase the network usage of a server. I highly recommend that noone fills up a 16 man server with everyone running the command.
To activate the tool, all you need to do is type 'hitreg' in console. Now go shoot stuff. When you open your console, you'll see a ton of spam. This spam can fall into 3 categories, here are examples:
1)
This is the normal thing you'll see. All this is saying is that both the server and the client agree on whether or not the shot hit - (hit=true) means damage was done, (hit=false) means the shot missed.
2)
Here's something different. Note that this is NOT A NOREG. All that is happening here is that the server and client disagree on some data, however this disagreement did not influence the outcome of the shot.
3)
Finally, a noreg. Now this is the most extreme case of differences I could find, in general it will be 4-8 lines of differences, but I thought this would serve to demonstrate how the tool works. The most important two lines in here are the ones that say that this is in fact a noreg - namely:
If these two lines do not appear, then the report falls into case number 2 above. Note that the opposite can occur, the server can report true while the client reports false - this does happen.
The best way to test that I've found is to drill for ~20 minutes, then open your log in 'appdata/roaming/Natural Selection 2' and CTRL+F for 'srv.hit'.
What does this all mean? It means progress is being made. It also means that we need more data. Please try to find time this weekend to do some testing. And if you find noregs SAVE YOUR LOGS by renaming them. If you're feeling extra helpful, pull all of the Case 3s out of your log and put them in a google doc with a short description of the situation where they occurred.
Please feel free to comment in this thread when you do testing about how it feels and if you find frequent noregs or if you have any questions about how this tool or hitreg work.
To activate the tool, all you need to do is type 'hitreg' in console. Now go shoot stuff. When you open your console, you'll see a ton of spam. This spam can fall into 3 categories, here are examples:
1)
Client : 12530.362305 : 19332-8: no diffs found for attack on Fade-9 (hit=false)
Client : 12530.362305 : 19332-9: no diffs found for attack on Fade-9 (hit=true)
Client : 12530.362305 : 19332-10: no diffs found for attack on Fade-9 (hit=false)
Client : 12530.362305 : 19332-11: no diffs found for attack on Fade-9 (hit=true)
Client : 12530.362305 : 19332-12: no diffs found for attack on Fade-9 (hit=false)
Client : 12530.362305 : 19332-13: no diffs found for attack on Fade-9 (hit=true)
Client : 12530.362305 : 19332-14: no diffs found for attack on Fade-9 (hit=false)
Client : 12530.362305 : 19332-15: no diffs found for attack on Fade-9 (hit=false)
Client : 12530.362305 : 19332-16: no diffs found for attack on Fade-9 (hit=false)
This is the normal thing you'll see. All this is saying is that both the server and the client agree on whether or not the shot hit - (hit=true) means damage was done, (hit=false) means the shot missed.
2)
Client : 13118.416016 : 30357-1: Diff found for attack on Lerk-1281 (physTime 13118.32):
srv.entity_anim.pose.move_yaw: 91.58978
cli.entity_anim.pose.move_yaw: 90.76801
srv.entity_anim.pose.move_speed: 3.764574
cli.entity_anim.pose.move_speed: 3.613991
srv.entity_data.angles.pitch: 358.81
cli.entity_data.angles.pitch: 1.8475
srv.entity_data.angles.roll: 0.0000
cli.entity_data.angles.roll: 359.87
srv.entity_data.angles.yaw: 133.37
cli.entity_data.angles.yaw: 133.50
Here's something different. Note that this is NOT A NOREG. All that is happening here is that the server and client disagree on some data, however this disagreement did not influence the outcome of the shot.
3)
Client : 13981.661133 : 13765-1: Diff found for attack on Lerk-1281 (physTime 13981.56):
srv.hit: false
cli.hit: true
srv.entity_anim.l1Start: 13970.32
cli.entity_anim.l1Start: 13978.62
srv.entity_anim.sequence2: 5
cli.entity_anim.sequence2: 2
srv.entity_anim.l1Sequence2: -1
cli.entity_anim.l1Sequence2: 4
srv.entity_anim.pose.move_yaw: 58.39900
cli.entity_anim.pose.move_yaw: 113.5043
srv.entity_anim.pose.bomb: 0.000000
cli.entity_anim.pose.bomb: -
srv.entity_anim.pose.body_yaw: 0.000000
cli.entity_anim.pose.body_yaw: 0.9070362
srv.entity_anim.pose.body_pitch: -26.22709
cli.entity_anim.pose.body_pitch: -7.725853
srv.entity_anim.pose.move_speed: 3.690767
cli.entity_anim.pose.move_speed: 0.4259376
srv.entity_anim.pose.intensity: 0.05000000
cli.entity_anim.pose.intensity: 0.000000
srv.entity_anim.start2: 13980.73
cli.entity_anim.start2: 13981.05
srv.entity_anim.speed: 0.5000000
cli.entity_anim.speed: 1.000000
srv.entity_anim.l1Sequence: -1
cli.entity_anim.l1Sequence: 1
srv.entity_anim.sequence: 7
cli.entity_anim.sequence: 11
srv.entity_anim.l1Start2: 0.000000
cli.entity_anim.l1Start2: 13978.06
srv.entity_anim.blend: 0.4000000
cli.entity_anim.blend: 0.2000000
srv.entity_anim.start: 13981.20
cli.entity_anim.start: 13981.07
srv.entity_anim.l1Blend: 0.09999999
cli.entity_anim.l1Blend: 0.000000
srv.entity: 1281
cli.entity: 3690
srv.trace_fraction: 0.99037
cli.trace_fraction: 0.051802
srv.entity_data.viewAngles.pitch: 26.227
cli.entity_data.viewAngles.pitch: 7.7259
srv.entity_data.viewAngles.yaw: 348.39
cli.entity_data.viewAngles.yaw: 94.823
srv.entity_data.angles.pitch: 364.41
cli.entity_data.angles.pitch: 0.0000
srv.entity_data.angles.roll: 1.9890
cli.entity_data.angles.roll: 0.0000
srv.entity_data.angles.yaw: 348.31
cli.entity_data.angles.yaw: 94.684
srv.entity_data.origin.y: 2.1033
cli.entity_data.origin.y: -1.4847
srv.entity_data.origin.x: -10.4378
cli.entity_data.origin.x: -12.8845
srv.entity_data.origin.z: 43.5452
cli.entity_data.origin.z: 41.3498
srv.entity_data.headAngles.pitch: 26.227
cli.entity_data.headAngles.pitch: 7.7259
srv.entity_data.headAngles.yaw: 348.39
cli.entity_data.headAngles.yaw: 94.823
Finally, a noreg. Now this is the most extreme case of differences I could find, in general it will be 4-8 lines of differences, but I thought this would serve to demonstrate how the tool works. The most important two lines in here are the ones that say that this is in fact a noreg - namely:
srv.hit: false
cli.hit: true
If these two lines do not appear, then the report falls into case number 2 above. Note that the opposite can occur, the server can report true while the client reports false - this does happen.
The best way to test that I've found is to drill for ~20 minutes, then open your log in 'appdata/roaming/Natural Selection 2' and CTRL+F for 'srv.hit'.
What does this all mean? It means progress is being made. It also means that we need more data. Please try to find time this weekend to do some testing. And if you find noregs SAVE YOUR LOGS by renaming them. If you're feeling extra helpful, pull all of the Case 3s out of your log and put them in a google doc with a short description of the situation where they occurred.
Please feel free to comment in this thread when you do testing about how it feels and if you find frequent noregs or if you have any questions about how this tool or hitreg work.