Commit graph

121 commits

Author SHA1 Message Date
a0481ed867 Route gameCommand traffic through WebRTC unreliable DataChannel
Socket.IO (TCP) holds back later packets while it retransmits a lost
one, which stalls worldUpdate delivery on lossy long-distance links —
exactly the pattern game state suffers worst from. WebRTC DataChannels
in unreliable mode (ordered:false, maxRetransmits:0) drop late packets
instead of queueing them, which is what we want for high-frequency
state sync.

Adds a per-user WebRTCTransport on top of the existing Socket.IO
connection. Socket.IO stays in charge of bootstrap, signaling
(SDP/ICE exchange), and control messages — only gameCommand payloads
get routed onto the unreliable channel once it's open. If WebRTC
fails to negotiate, gameCommand transparently falls back to
Socket.IO, so the game keeps working unchanged.

A new StatsLogger writes per-session JSONL events (session_start,
webrtc_ready with negotiation time, per-second stats with transport,
RTT samples, recv/send rates, seq gaps) so we can compare real-world
runs (e.g. Germany server <-> Korea client) instead of guessing.
URL flag ?webrtc=0 forces fallback for A/B testing.

scripts/webrtc-browser-test.js spins up a headless Chromium against
a freshly-started server and asserts the unreliable channel opens
and gameCommand traffic actually rides it.
2026-05-11 00:38:18 +00:00
logsol
ce01c8888e Makes singleton variable name of PointerLockManager lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 22:42:22 +02:00
logsol
3cb2e39a18 Makes singleton variable name of NotificationCenter lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 22:11:55 +02:00
logsol
ffc55a204a Makes singleton object variable names of DomController first letter lowercase
When we require a singleton, its instance name should be named
by lowercase, since it is not a class.

Relates to #128
2016-10-10 21:50:03 +02:00
logsol
c87997c774 fixes #147, fixes #136, is related to but doesnt entirely complete #144 2016-08-28 22:40:25 +02:00
logsol
502cf72a7e fixes #157 2016-08-28 13:24:27 +02:00
Jeena
a8adbcf140 fixes position state update and removes dev graphs for better fps 2015-08-02 16:06:32 +02:00
logsol
f1197b3045 added swapMeshes method to swap textures of 2 meshes 2015-05-11 11:10:30 +02:00
logsol
8e70eedbce added setting to switch off pointer lock filter 2015-05-11 11:10:30 +02:00
logsol
fb3ac40d17 implemented rubedoll direction flip and added meshIndex (z) swapping capability. #151 2015-05-11 11:10:30 +02:00
logsol
97da7770d0 repaired debug view (offsetting) 2015-05-11 11:09:24 +02:00
Jeena
a66a327386 fixes the sending and rendering of game stats 2015-04-19 17:31:41 +02:00
Jeena
cad112419d fixes initial level positioning 2015-04-19 16:06:23 +02:00
Jeena
aaa1db4468 hides default layers while loading level 2015-04-19 12:33:45 +02:00
Jeena
0592e2524d added gangsta level and tried to fix on new level 2015-04-12 18:08:11 +02:00
Jeena
aff23e8de0 better handling of dangerousnes, etc. fixes #107 2015-04-02 22:49:43 +02:00
logsol
f9d97c5a47 trying a new approach to calculating damager 2015-04-02 19:35:10 +02:00
Jeena
16826b174a fixed debug view and ragdoll start positioning 2015-03-16 01:50:41 +01:00
logsol
feca76f677 #79 added possibility to add non-colliding tile layers from tiled editor 2015-03-12 11:11:16 +01:00
logsol
5f5fec5b10 added optimizer scripts and some code style improvements 2015-03-09 04:56:28 +01:00
logsol
67507333c4 added ping histograph and made disconnect clear with page reload. fixes #104 fixes #122 2015-03-03 15:34:43 +01:00
logsol
5007ab5b02 better feedback on killing. fixes #109 2015-03-02 00:13:21 +01:00
Jeena
9f32562a8d cleaning up after #36 2015-03-01 16:35:22 +01:00
Jeena
f4c7d9edeb cleanup debug canvas #36 2015-03-01 15:09:14 +01:00
Jeena
8dacc83f7a fixed #36 debug draw working 2015-03-01 14:54:56 +01:00
logsol
20a974124e added new debug draw 2015-02-28 21:27:42 +01:00
logsol
13af9ecb9c worked a bit on menu top bar 2015-02-28 19:57:05 +01:00
logsol
60eae208a2 Added PointerLockManagement, Fixed layer positioning, added fps chart. fixes #120, fixes #121, fixes #123 2015-02-27 18:44:30 +01:00
Jeena
e452399caf added menuBar 2015-02-22 18:39:35 +01:00
Jeena
550d14fbef fixed #110 rewrite of tab-view and better fonts 2015-02-22 17:36:06 +01:00
Jeena
b6d67a0581 fixes #98 revisit throwing 2015-02-14 19:28:52 +01:00
logsol
93680e3286 fixed movieclip speed/fps bug. fixes #35 2015-02-07 15:37:40 +01:00
logsol
dbde25f76e Added SpriteSheet support to chuck animations 2015-01-14 17:31:38 +01:00
logsol
4f3a53ca53 fixed #91 crash after round end 2014-12-27 22:35:26 +01:00
logsol
b152053d18 fixed fullscreen swiper 2014-12-26 23:53:44 +01:00
logsol
1f8f0ef6e1 merged from master (use strict) 2014-12-22 02:00:40 +01:00
logsol
2b186be8af use strict; fixes #83 2014-12-22 01:43:21 +01:00
logsol
58b83f7297 updated pixi to v2 2014-12-21 23:16:35 +01:00
logsol
f02230c50c updated pixi to v2 2014-12-21 19:32:18 +01:00
logsol
1e233efbea Added Swiper drawing 2014-12-08 19:36:14 +01:00
Jeena
6d9d02615a added pointer locking and viewport moving 2014-12-06 20:20:49 +01:00
logsol
072e984215 fixed health bar 2014-11-30 15:19:02 +01:00
logsol
c1a756050f added ghost layer, fixed arrow 2014-11-30 15:06:02 +01:00
logsol
81ccdaa127 cleanup 2014-11-30 13:43:22 +01:00
Jeena
85867f92af working paralax (not for zoom) 2014-11-15 23:28:03 +01:00
Jeena
357ef181d9 centered images in image layers 2014-11-15 17:37:16 +01:00
Jeena
9c9db8ca8c loading graphic layers works with right order 2014-11-15 17:02:27 +01:00
logsol
a70ca6d8fb working layers - still needs parallax support 2014-08-31 17:50:55 +02:00
Jeena
222fd09f3f non working layers 2014-08-30 16:27:05 +02:00
Jeena
57135f3acc more layer work 2014-08-30 16:02:41 +02:00