chuck.js/app/Game/Client
Jeena 71e4b4e847 Replace cheat-detection teleport with server reconciliation
The old PUNKBUSTER check compared client-reported position to server
position and snapped the player back when latency made them diverge,
which felt like getting teleported under any real network conditions.

Replaces that with proper client-side prediction + reconciliation:
client tags each input with a sequence number and keeps an input
buffer; server tracks the last processed sequence and reports its
authoritative position via a per-user inputAck alongside each
worldUpdate. The client only corrects when the actual disagreement
exceeds what the unacked input time can explain — so steady-state
movement runs purely on local physics, and only genuine unexpected
events (collisions, being hit) trigger a smooth blend toward the
server state.

Includes adaptive threshold scaling so high-latency sessions don't
false-positive corrections during normal running.
2026-05-11 00:37:42 +00:00
..
Collision use strict; fixes #83 2014-12-22 01:43:21 +01:00
Control Replace cheat-detection teleport with server reconciliation 2026-05-11 00:37:42 +00:00
GameObjects Makes singleton variable name of NotificationCenter lowercase 2016-10-10 22:11:55 +02:00
Loader Makes singleton variable name of NotificationCenter lowercase 2016-10-10 22:11:55 +02:00
Physics Makes singleton variable name of NotificationCenter lowercase 2016-10-10 22:11:55 +02:00
View Makes singleton variable name of PointerLockManager lowercase 2016-10-10 22:42:22 +02:00
AudioPlayer.js fixed #91 crash after round end 2014-12-27 22:35:26 +01:00
GameController.js Replace cheat-detection teleport with server reconciliation 2026-05-11 00:37:42 +00:00
InputBuffer.js Replace cheat-detection teleport with server reconciliation 2026-05-11 00:37:42 +00:00
Me.js Replace cheat-detection teleport with server reconciliation 2026-05-11 00:37:42 +00:00
Networker.js Makes singleton variable name of NotificationCenter lowercase 2016-10-10 22:11:55 +02:00
Player.js Makes singleton variable name of NotificationCenter lowercase 2016-10-10 22:11:55 +02:00
PointerLockManager.js Makes singleton variable name of QuerySelector lowercase 2016-10-10 23:17:16 +02:00
User.js changed modes 2014-01-12 16:59:16 +01:00