rollback-netcode 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +140 -0
  3. package/dist/debug.d.ts +29 -0
  4. package/dist/debug.d.ts.map +1 -0
  5. package/dist/debug.js +56 -0
  6. package/dist/debug.js.map +1 -0
  7. package/dist/index.d.ts +62 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +57 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/protocol/encoding.d.ts +80 -0
  12. package/dist/protocol/encoding.d.ts.map +1 -0
  13. package/dist/protocol/encoding.js +992 -0
  14. package/dist/protocol/encoding.js.map +1 -0
  15. package/dist/protocol/messages.d.ts +271 -0
  16. package/dist/protocol/messages.d.ts.map +1 -0
  17. package/dist/protocol/messages.js +114 -0
  18. package/dist/protocol/messages.js.map +1 -0
  19. package/dist/rollback/engine.d.ts +261 -0
  20. package/dist/rollback/engine.d.ts.map +1 -0
  21. package/dist/rollback/engine.js +543 -0
  22. package/dist/rollback/engine.js.map +1 -0
  23. package/dist/rollback/input-buffer.d.ts +225 -0
  24. package/dist/rollback/input-buffer.d.ts.map +1 -0
  25. package/dist/rollback/input-buffer.js +483 -0
  26. package/dist/rollback/input-buffer.js.map +1 -0
  27. package/dist/rollback/snapshot-buffer.d.ts +119 -0
  28. package/dist/rollback/snapshot-buffer.d.ts.map +1 -0
  29. package/dist/rollback/snapshot-buffer.js +256 -0
  30. package/dist/rollback/snapshot-buffer.js.map +1 -0
  31. package/dist/session/desync-manager.d.ts +106 -0
  32. package/dist/session/desync-manager.d.ts.map +1 -0
  33. package/dist/session/desync-manager.js +136 -0
  34. package/dist/session/desync-manager.js.map +1 -0
  35. package/dist/session/lag-monitor.d.ts +69 -0
  36. package/dist/session/lag-monitor.d.ts.map +1 -0
  37. package/dist/session/lag-monitor.js +74 -0
  38. package/dist/session/lag-monitor.js.map +1 -0
  39. package/dist/session/message-builders.d.ts +86 -0
  40. package/dist/session/message-builders.d.ts.map +1 -0
  41. package/dist/session/message-builders.js +199 -0
  42. package/dist/session/message-builders.js.map +1 -0
  43. package/dist/session/message-router.d.ts +61 -0
  44. package/dist/session/message-router.d.ts.map +1 -0
  45. package/dist/session/message-router.js +105 -0
  46. package/dist/session/message-router.js.map +1 -0
  47. package/dist/session/player-manager.d.ts +100 -0
  48. package/dist/session/player-manager.d.ts.map +1 -0
  49. package/dist/session/player-manager.js +160 -0
  50. package/dist/session/player-manager.js.map +1 -0
  51. package/dist/session/session.d.ts +379 -0
  52. package/dist/session/session.d.ts.map +1 -0
  53. package/dist/session/session.js +1294 -0
  54. package/dist/session/session.js.map +1 -0
  55. package/dist/session/topology.d.ts +66 -0
  56. package/dist/session/topology.d.ts.map +1 -0
  57. package/dist/session/topology.js +72 -0
  58. package/dist/session/topology.js.map +1 -0
  59. package/dist/transport/adapter.d.ts +99 -0
  60. package/dist/transport/adapter.d.ts.map +1 -0
  61. package/dist/transport/adapter.js +8 -0
  62. package/dist/transport/adapter.js.map +1 -0
  63. package/dist/transport/local.d.ts +192 -0
  64. package/dist/transport/local.d.ts.map +1 -0
  65. package/dist/transport/local.js +435 -0
  66. package/dist/transport/local.js.map +1 -0
  67. package/dist/transport/transforming.d.ts +177 -0
  68. package/dist/transport/transforming.d.ts.map +1 -0
  69. package/dist/transport/transforming.js +407 -0
  70. package/dist/transport/transforming.js.map +1 -0
  71. package/dist/transport/webrtc.d.ts +285 -0
  72. package/dist/transport/webrtc.d.ts.map +1 -0
  73. package/dist/transport/webrtc.js +734 -0
  74. package/dist/transport/webrtc.js.map +1 -0
  75. package/dist/types.d.ts +394 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +256 -0
  78. package/dist/types.js.map +1 -0
  79. package/dist/utils/rate-limiter.d.ts +59 -0
  80. package/dist/utils/rate-limiter.d.ts.map +1 -0
  81. package/dist/utils/rate-limiter.js +93 -0
  82. package/dist/utils/rate-limiter.js.map +1 -0
  83. package/package.json +61 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/protocol/encoding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Message type definitions for the rollback netcode protocol.
3
+ */
4
+ import type { PauseReason, PlayerId, PlayerRole, PlayerTimeline, Tick } from "../types.js";
5
+ /**
6
+ * All possible message types in the protocol.
7
+ */
8
+ export declare enum MessageType {
9
+ Input = 1,
10
+ InputAck = 2,
11
+ Hash = 16,
12
+ Sync = 17,
13
+ SyncRequest = 18,
14
+ Pause = 32,
15
+ Resume = 33,
16
+ LagReport = 34,
17
+ DisconnectReport = 35,
18
+ ResumeCountdown = 36,
19
+ DropPlayer = 37,
20
+ JoinRequest = 48,
21
+ JoinAccept = 49,
22
+ JoinReject = 50,
23
+ StateSync = 51,
24
+ PlayerJoined = 52,
25
+ PlayerLeft = 53,
26
+ Ping = 64,
27
+ Pong = 65
28
+ }
29
+ /**
30
+ * Per-tick input broadcast. Sent unreliably every tick.
31
+ * May include multiple ticks of input for redundancy.
32
+ */
33
+ export interface InputMessage {
34
+ type: MessageType.Input;
35
+ /** Sender's player ID */
36
+ playerId: PlayerId;
37
+ /** Array of (tick, input) pairs, newest first */
38
+ inputs: Array<{
39
+ tick: Tick;
40
+ input: Uint8Array;
41
+ }>;
42
+ }
43
+ /**
44
+ * Acknowledgment of received inputs.
45
+ * Allows sender to know which inputs have been received.
46
+ */
47
+ export interface InputAckMessage {
48
+ type: MessageType.InputAck;
49
+ /** Player ID whose inputs are being acknowledged */
50
+ playerId: PlayerId;
51
+ /** Highest consecutive tick that has been received */
52
+ ackedTick: Tick;
53
+ }
54
+ /**
55
+ * Periodic hash broadcast for desync detection.
56
+ */
57
+ export interface HashMessage {
58
+ type: MessageType.Hash;
59
+ /** Player ID of the sender */
60
+ playerId: PlayerId;
61
+ /** Tick the hash was computed at */
62
+ tick: Tick;
63
+ /** State hash at that tick */
64
+ hash: number;
65
+ }
66
+ /**
67
+ * Full state synchronization (for desync recovery or late join).
68
+ */
69
+ export interface SyncMessage {
70
+ type: MessageType.Sync;
71
+ /** Tick the state was captured at */
72
+ tick: Tick;
73
+ /** Serialized game state */
74
+ state: Uint8Array;
75
+ /** State hash for verification */
76
+ hash: number;
77
+ /** Timeline of all players */
78
+ playerTimeline: PlayerTimeline;
79
+ }
80
+ /**
81
+ * Request for state sync (sent by client that detected desync).
82
+ */
83
+ export interface SyncRequestMessage {
84
+ type: MessageType.SyncRequest;
85
+ /** Player ID requesting sync */
86
+ playerId: PlayerId;
87
+ /** Tick where desync was detected */
88
+ desyncTick: Tick;
89
+ /** Local hash at desync tick */
90
+ localHash: number;
91
+ }
92
+ /**
93
+ * Pause the game.
94
+ */
95
+ export interface PauseMessage {
96
+ type: MessageType.Pause;
97
+ /** Player ID who initiated the pause */
98
+ playerId: PlayerId;
99
+ /** Tick at which to pause */
100
+ pauseTick: Tick;
101
+ /** Reason for the pause */
102
+ reason: PauseReason;
103
+ }
104
+ /**
105
+ * Resume the game.
106
+ */
107
+ export interface ResumeMessage {
108
+ type: MessageType.Resume;
109
+ /** Player ID who initiated the resume */
110
+ playerId: PlayerId;
111
+ /** Tick at which to resume */
112
+ resumeTick: Tick;
113
+ }
114
+ /**
115
+ * Request to join a room.
116
+ */
117
+ export interface JoinRequestMessage {
118
+ type: MessageType.JoinRequest;
119
+ /** Player ID requesting to join */
120
+ playerId: PlayerId;
121
+ /** Requested role (defaults to 'pilot' if not specified) */
122
+ role?: PlayerRole;
123
+ }
124
+ /**
125
+ * Accept a join request.
126
+ */
127
+ export interface JoinAcceptMessage {
128
+ type: MessageType.JoinAccept;
129
+ /** The player being accepted */
130
+ playerId: PlayerId;
131
+ /** Room ID */
132
+ roomId: string;
133
+ /** Current session configuration */
134
+ config: {
135
+ tickRate: number;
136
+ maxPlayers: number;
137
+ };
138
+ /** List of currently connected player IDs */
139
+ players: PlayerId[];
140
+ }
141
+ /**
142
+ * Reject a join request.
143
+ */
144
+ export interface JoinRejectMessage {
145
+ type: MessageType.JoinReject;
146
+ /** The player being rejected */
147
+ playerId: PlayerId;
148
+ /** Reason for rejection */
149
+ reason: string;
150
+ }
151
+ /**
152
+ * State sync message sent to newly joined players.
153
+ */
154
+ export interface StateSyncMessage {
155
+ type: MessageType.StateSync;
156
+ /** Current tick */
157
+ tick: Tick;
158
+ /** Serialized game state */
159
+ state: Uint8Array;
160
+ /** State hash */
161
+ hash: number;
162
+ /** Timeline of all players */
163
+ playerTimeline: PlayerTimeline;
164
+ }
165
+ /**
166
+ * Broadcast when a player joins.
167
+ */
168
+ export interface PlayerJoinedMessage {
169
+ type: MessageType.PlayerJoined;
170
+ /** The player who joined */
171
+ playerId: PlayerId;
172
+ /** Tick at which they joined */
173
+ joinTick: Tick;
174
+ /** Player's role */
175
+ role: PlayerRole;
176
+ }
177
+ /**
178
+ * Broadcast when a player leaves.
179
+ */
180
+ export interface PlayerLeftMessage {
181
+ type: MessageType.PlayerLeft;
182
+ /** The player who left */
183
+ playerId: PlayerId;
184
+ /** Tick at which they left */
185
+ leaveTick: Tick;
186
+ }
187
+ /**
188
+ * Ping message for RTT measurement.
189
+ */
190
+ export interface PingMessage {
191
+ type: MessageType.Ping;
192
+ /** Timestamp when ping was sent */
193
+ timestamp: number;
194
+ }
195
+ /**
196
+ * Pong response.
197
+ */
198
+ export interface PongMessage {
199
+ type: MessageType.Pong;
200
+ /** Original timestamp from ping */
201
+ timestamp: number;
202
+ }
203
+ /**
204
+ * Report that a player is lagging.
205
+ * Sent by peers to the host when they detect a player falling behind.
206
+ */
207
+ export interface LagReportMessage {
208
+ type: MessageType.LagReport;
209
+ /** The player who is lagging */
210
+ laggyPlayerId: PlayerId;
211
+ /** How many ticks behind they are */
212
+ ticksBehind: number;
213
+ }
214
+ /**
215
+ * Report that a peer has disconnected.
216
+ * In mesh topology with host authority, guests send this to host
217
+ * instead of handling disconnects locally.
218
+ */
219
+ export interface DisconnectReportMessage {
220
+ type: MessageType.DisconnectReport;
221
+ /** The peer that disconnected */
222
+ disconnectedPeerId: PlayerId;
223
+ }
224
+ /**
225
+ * Countdown before resuming the game.
226
+ * Sent by host to give players time to prepare.
227
+ */
228
+ export interface ResumeCountdownMessage {
229
+ type: MessageType.ResumeCountdown;
230
+ /** Seconds remaining before resume */
231
+ secondsRemaining: number;
232
+ }
233
+ /**
234
+ * Drop a player and optionally replace with AI or transfer control.
235
+ * Sent by host to all players.
236
+ */
237
+ export interface DropPlayerMessage {
238
+ type: MessageType.DropPlayer;
239
+ /** The player being dropped */
240
+ playerId: PlayerId;
241
+ /** Game-defined metadata (e.g., AI config, replacement info) */
242
+ metadata?: Uint8Array;
243
+ }
244
+ /**
245
+ * Union of all message types.
246
+ */
247
+ export type Message = InputMessage | InputAckMessage | HashMessage | SyncMessage | SyncRequestMessage | PauseMessage | ResumeMessage | JoinRequestMessage | JoinAcceptMessage | JoinRejectMessage | StateSyncMessage | PlayerJoinedMessage | PlayerLeftMessage | PingMessage | PongMessage | LagReportMessage | DisconnectReportMessage | ResumeCountdownMessage | DropPlayerMessage;
248
+ export declare function isInputMessage(msg: Message): msg is InputMessage;
249
+ export declare function isInputAckMessage(msg: Message): msg is InputAckMessage;
250
+ export declare function isHashMessage(msg: Message): msg is HashMessage;
251
+ export declare function isSyncMessage(msg: Message): msg is SyncMessage;
252
+ export declare function isSyncRequestMessage(msg: Message): msg is SyncRequestMessage;
253
+ export declare function isPauseMessage(msg: Message): msg is PauseMessage;
254
+ export declare function isResumeMessage(msg: Message): msg is ResumeMessage;
255
+ export declare function isJoinRequestMessage(msg: Message): msg is JoinRequestMessage;
256
+ export declare function isJoinAcceptMessage(msg: Message): msg is JoinAcceptMessage;
257
+ export declare function isJoinRejectMessage(msg: Message): msg is JoinRejectMessage;
258
+ export declare function isStateSyncMessage(msg: Message): msg is StateSyncMessage;
259
+ export declare function isPlayerJoinedMessage(msg: Message): msg is PlayerJoinedMessage;
260
+ export declare function isPlayerLeftMessage(msg: Message): msg is PlayerLeftMessage;
261
+ export declare function isPingMessage(msg: Message): msg is PingMessage;
262
+ export declare function isPongMessage(msg: Message): msg is PongMessage;
263
+ export declare function isLagReportMessage(msg: Message): msg is LagReportMessage;
264
+ export declare function isDisconnectReportMessage(msg: Message): msg is DisconnectReportMessage;
265
+ export declare function isResumeCountdownMessage(msg: Message): msg is ResumeCountdownMessage;
266
+ export declare function isDropPlayerMessage(msg: Message): msg is DropPlayerMessage;
267
+ /**
268
+ * Returns whether a message type should be sent reliably.
269
+ */
270
+ export declare function isReliableMessage(msg: Message): boolean;
271
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/protocol/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Message type definitions for the rollback netcode protocol.
3
+ */
4
+ // =============================================================================
5
+ // Message Type Enum
6
+ // =============================================================================
7
+ /**
8
+ * All possible message types in the protocol.
9
+ */
10
+ export var MessageType;
11
+ (function (MessageType) {
12
+ // Input messages (unreliable)
13
+ MessageType[MessageType["Input"] = 1] = "Input";
14
+ MessageType[MessageType["InputAck"] = 2] = "InputAck";
15
+ // Sync messages (reliable)
16
+ MessageType[MessageType["Hash"] = 16] = "Hash";
17
+ MessageType[MessageType["Sync"] = 17] = "Sync";
18
+ MessageType[MessageType["SyncRequest"] = 18] = "SyncRequest";
19
+ // Session control (reliable)
20
+ MessageType[MessageType["Pause"] = 32] = "Pause";
21
+ MessageType[MessageType["Resume"] = 33] = "Resume";
22
+ MessageType[MessageType["LagReport"] = 34] = "LagReport";
23
+ MessageType[MessageType["DisconnectReport"] = 35] = "DisconnectReport";
24
+ MessageType[MessageType["ResumeCountdown"] = 36] = "ResumeCountdown";
25
+ MessageType[MessageType["DropPlayer"] = 37] = "DropPlayer";
26
+ // Room management (reliable)
27
+ MessageType[MessageType["JoinRequest"] = 48] = "JoinRequest";
28
+ MessageType[MessageType["JoinAccept"] = 49] = "JoinAccept";
29
+ MessageType[MessageType["JoinReject"] = 50] = "JoinReject";
30
+ MessageType[MessageType["StateSync"] = 51] = "StateSync";
31
+ MessageType[MessageType["PlayerJoined"] = 52] = "PlayerJoined";
32
+ MessageType[MessageType["PlayerLeft"] = 53] = "PlayerLeft";
33
+ // Ping/Pong for RTT measurement (unreliable)
34
+ MessageType[MessageType["Ping"] = 64] = "Ping";
35
+ MessageType[MessageType["Pong"] = 65] = "Pong";
36
+ })(MessageType || (MessageType = {}));
37
+ // =============================================================================
38
+ // Type Guards
39
+ // =============================================================================
40
+ export function isInputMessage(msg) {
41
+ return msg.type === MessageType.Input;
42
+ }
43
+ export function isInputAckMessage(msg) {
44
+ return msg.type === MessageType.InputAck;
45
+ }
46
+ export function isHashMessage(msg) {
47
+ return msg.type === MessageType.Hash;
48
+ }
49
+ export function isSyncMessage(msg) {
50
+ return msg.type === MessageType.Sync;
51
+ }
52
+ export function isSyncRequestMessage(msg) {
53
+ return msg.type === MessageType.SyncRequest;
54
+ }
55
+ export function isPauseMessage(msg) {
56
+ return msg.type === MessageType.Pause;
57
+ }
58
+ export function isResumeMessage(msg) {
59
+ return msg.type === MessageType.Resume;
60
+ }
61
+ export function isJoinRequestMessage(msg) {
62
+ return msg.type === MessageType.JoinRequest;
63
+ }
64
+ export function isJoinAcceptMessage(msg) {
65
+ return msg.type === MessageType.JoinAccept;
66
+ }
67
+ export function isJoinRejectMessage(msg) {
68
+ return msg.type === MessageType.JoinReject;
69
+ }
70
+ export function isStateSyncMessage(msg) {
71
+ return msg.type === MessageType.StateSync;
72
+ }
73
+ export function isPlayerJoinedMessage(msg) {
74
+ return msg.type === MessageType.PlayerJoined;
75
+ }
76
+ export function isPlayerLeftMessage(msg) {
77
+ return msg.type === MessageType.PlayerLeft;
78
+ }
79
+ export function isPingMessage(msg) {
80
+ return msg.type === MessageType.Ping;
81
+ }
82
+ export function isPongMessage(msg) {
83
+ return msg.type === MessageType.Pong;
84
+ }
85
+ export function isLagReportMessage(msg) {
86
+ return msg.type === MessageType.LagReport;
87
+ }
88
+ export function isDisconnectReportMessage(msg) {
89
+ return msg.type === MessageType.DisconnectReport;
90
+ }
91
+ export function isResumeCountdownMessage(msg) {
92
+ return msg.type === MessageType.ResumeCountdown;
93
+ }
94
+ export function isDropPlayerMessage(msg) {
95
+ return msg.type === MessageType.DropPlayer;
96
+ }
97
+ // =============================================================================
98
+ // Reliability
99
+ // =============================================================================
100
+ /**
101
+ * Returns whether a message type should be sent reliably.
102
+ */
103
+ export function isReliableMessage(msg) {
104
+ switch (msg.type) {
105
+ case MessageType.Input:
106
+ case MessageType.InputAck:
107
+ case MessageType.Ping:
108
+ case MessageType.Pong:
109
+ return false;
110
+ default:
111
+ return true;
112
+ }
113
+ }
114
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/protocol/messages.ts"],"names":[],"mappings":"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"}