@woosh/meep-engine 3.46.0 → 3.47.0

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 (230) hide show
  1. package/editor/actions/concrete/TransformModifyAction.d.ts.map +1 -1
  2. package/editor/actions/concrete/TransformModifyAction.js +10 -2
  3. package/editor/ecs/component/FieldDescriptor.js +15 -0
  4. package/editor/ecs/component/createObjectEditor.js +41 -12
  5. package/editor/ecs/component/editors/ecs/Transform64Editor.d.ts.map +1 -1
  6. package/editor/ecs/component/editors/ecs/Transform64Editor.js +77 -70
  7. package/editor/tools/TransformToolV2.d.ts.map +1 -1
  8. package/editor/tools/TransformToolV2.js +4 -0
  9. package/editor/tools/v2/TransformControls.d.ts.map +1 -1
  10. package/editor/tools/v2/TransformControls.js +7 -0
  11. package/editor/view/ecs/EntityEditor.d.ts.map +1 -1
  12. package/editor/view/ecs/EntityEditor.js +4 -2
  13. package/package.json +1 -1
  14. package/src/core/collection/array/array_insert_at.d.ts +16 -0
  15. package/src/core/collection/array/array_insert_at.d.ts.map +1 -0
  16. package/src/core/collection/array/array_insert_at.js +32 -0
  17. package/src/core/collection/array/array_remove_at.d.ts +15 -0
  18. package/src/core/collection/array/array_remove_at.d.ts.map +1 -0
  19. package/src/core/collection/array/array_remove_at.js +30 -0
  20. package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts +37 -0
  21. package/src/core/geom/3d/quaternion/quat3_look_rotation.d.ts.map +1 -0
  22. package/src/core/geom/3d/quaternion/quat3_look_rotation.js +172 -0
  23. package/src/core/geom/Quaternion.d.ts +1 -0
  24. package/src/core/geom/Quaternion.d.ts.map +1 -1
  25. package/src/core/geom/Quaternion.js +12 -48
  26. package/src/engine/Engine.d.ts.map +1 -1
  27. package/src/engine/Engine.js +9 -4
  28. package/src/engine/ecs/storage/populateEngineSerializationRegistry.d.ts.map +1 -1
  29. package/src/engine/ecs/storage/populateEngineSerializationRegistry.js +10 -0
  30. package/src/engine/ecs/transform/t64_look_rotation.d.ts +4 -4
  31. package/src/engine/ecs/transform/t64_look_rotation.d.ts.map +1 -1
  32. package/src/engine/ecs/transform/t64_look_rotation.js +7 -18
  33. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.d.ts.map +1 -1
  34. package/src/engine/graphics/ecs/camera/topdown/TopDownCameraControllerSystem.js +30 -1
  35. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +6 -0
  36. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  37. package/src/engine/graphics3/GPUParticleEmitterSystem.js +72 -29
  38. package/src/engine/input/devices/KeyboardDevice.d.ts +1 -0
  39. package/src/engine/input/devices/KeyboardDevice.d.ts.map +1 -1
  40. package/src/engine/input/devices/KeyboardDevice.js +7 -6
  41. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.d.ts.map +1 -1
  42. package/src/engine/navigation/ecs/path_following/PathFollowingSystem.js +15 -2
  43. package/src/engine/network/CONGESTION_CONTROL.md +9 -9
  44. package/src/engine/network/MESSAGE_TRANSPORT.md +364 -0
  45. package/src/engine/network/NetworkSession.d.ts +31 -11
  46. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  47. package/src/engine/network/NetworkSession.js +453 -286
  48. package/src/engine/network/README.md +77 -27
  49. package/src/engine/network/SMOOTHNESS_DESIGN.md +13 -5
  50. package/src/engine/network/diagnostics/BandwidthMeter.d.ts +1 -1
  51. package/src/engine/network/diagnostics/BandwidthMeter.js +1 -1
  52. package/src/engine/network/orchestrator/HostJoin.d.ts +111 -0
  53. package/src/engine/network/orchestrator/HostJoin.d.ts.map +1 -0
  54. package/src/engine/network/orchestrator/HostJoin.js +271 -0
  55. package/src/engine/network/orchestrator/NetworkPeer.d.ts +151 -112
  56. package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
  57. package/src/engine/network/orchestrator/NetworkPeer.js +450 -499
  58. package/src/engine/network/orchestrator/PendingSlices.d.ts +30 -0
  59. package/src/engine/network/orchestrator/PendingSlices.d.ts.map +1 -0
  60. package/src/engine/network/orchestrator/PendingSlices.js +83 -0
  61. package/src/engine/network/orchestrator/ReliableFrames.d.ts +34 -0
  62. package/src/engine/network/orchestrator/ReliableFrames.d.ts.map +1 -0
  63. package/src/engine/network/orchestrator/ReliableFrames.js +96 -0
  64. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts +77 -10
  65. package/src/engine/network/orchestrator/ServerAuthoritativeClient.d.ts.map +1 -1
  66. package/src/engine/network/orchestrator/ServerAuthoritativeClient.js +236 -61
  67. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +20 -6
  68. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  69. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +33 -8
  70. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  71. package/src/engine/network/replication/Replicator.js +7 -1
  72. package/src/engine/network/sim/ActionLog.d.ts +32 -5
  73. package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
  74. package/src/engine/network/sim/ActionLog.js +47 -5
  75. package/src/engine/network/sim/SimActionExecutor.d.ts +42 -2
  76. package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
  77. package/src/engine/network/sim/SimActionExecutor.js +100 -4
  78. package/src/engine/network/sim/Snapshotter.d.ts +12 -0
  79. package/src/engine/network/sim/Snapshotter.d.ts.map +1 -1
  80. package/src/engine/network/sim/Snapshotter.js +43 -0
  81. package/src/engine/network/state/Baseline.d.ts +1 -1
  82. package/src/engine/network/state/Baseline.js +1 -1
  83. package/src/engine/network/state/FrameBufferRing.d.ts +25 -6
  84. package/src/engine/network/state/FrameBufferRing.d.ts.map +1 -1
  85. package/src/engine/network/state/FrameBufferRing.js +51 -6
  86. package/src/engine/network/state/InputRing.d.ts +4 -0
  87. package/src/engine/network/state/InputRing.d.ts.map +1 -1
  88. package/src/engine/network/state/InputRing.js +7 -0
  89. package/src/engine/network/transport/DeferredTransport.d.ts.map +1 -1
  90. package/src/engine/network/transport/DeferredTransport.js +1 -0
  91. package/src/engine/network/transport/LoopbackTransport.d.ts.map +1 -1
  92. package/src/engine/network/transport/LoopbackTransport.js +4 -2
  93. package/src/engine/network/transport/Transport.d.ts +7 -0
  94. package/src/engine/network/transport/Transport.d.ts.map +1 -1
  95. package/src/engine/network/transport/Transport.js +8 -0
  96. package/src/engine/network/transport/adapters/NodeUDPTransport.d.ts.map +1 -1
  97. package/src/engine/network/transport/adapters/NodeUDPTransport.js +20 -5
  98. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.d.ts.map +1 -1
  99. package/src/engine/network/transport/adapters/WebRTCDataChannelTransport.js +8 -0
  100. package/src/engine/network/transport/adapters/WebTransportTransport.d.ts.map +1 -1
  101. package/src/engine/network/transport/adapters/WebTransportTransport.js +6 -0
  102. package/src/engine/network/transport/connection/Connection.d.ts +191 -0
  103. package/src/engine/network/transport/connection/Connection.d.ts.map +1 -0
  104. package/src/engine/network/transport/connection/Connection.js +1262 -0
  105. package/src/engine/network/transport/connection/RangeSet.d.ts +94 -0
  106. package/src/engine/network/transport/connection/RangeSet.d.ts.map +1 -0
  107. package/src/engine/network/transport/connection/RangeSet.js +260 -0
  108. package/src/engine/network/transport/connection/RxStream.d.ts +48 -0
  109. package/src/engine/network/transport/connection/RxStream.d.ts.map +1 -0
  110. package/src/engine/network/transport/connection/RxStream.js +211 -0
  111. package/src/engine/network/transport/connection/TxStream.d.ts +90 -0
  112. package/src/engine/network/transport/connection/TxStream.d.ts.map +1 -0
  113. package/src/engine/network/transport/connection/TxStream.js +243 -0
  114. package/src/engine/network/transport/connection/bytes_copy.d.ts +17 -0
  115. package/src/engine/network/transport/connection/bytes_copy.d.ts.map +1 -0
  116. package/src/engine/network/transport/connection/bytes_copy.js +34 -0
  117. package/src/engine/network/transport/connection/varint.d.ts +46 -0
  118. package/src/engine/network/transport/connection/varint.d.ts.map +1 -0
  119. package/src/engine/network/transport/connection/varint.js +107 -0
  120. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  121. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts +38 -7
  122. package/src/engine/sound/ecs/audio/AudioEmitter.d.ts.map +1 -1
  123. package/src/engine/sound/ecs/audio/AudioEmitter.js +35 -7
  124. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.d.ts.map +1 -1
  125. package/src/engine/sound/ecs/audio/AudioEmitterSerializationAdapter.js +5 -1
  126. package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts +18 -0
  127. package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.d.ts.map +1 -0
  128. package/src/engine/sound/ecs/audio/AudioEmitterSerializationUpgrader_0_1.js +48 -0
  129. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts +12 -2
  130. package/src/engine/sound/ecs/audio/AudioEmitterSystem.d.ts.map +1 -1
  131. package/src/engine/sound/ecs/audio/AudioEmitterSystem.js +173 -9
  132. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts +9 -3
  133. package/src/engine/sound/ecs/audio/LiveEmitterSet.d.ts.map +1 -1
  134. package/src/engine/sound/ecs/audio/LiveEmitterSet.js +28 -8
  135. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts +8 -0
  136. package/src/engine/sound/ecs/trigger/AudioEventTrigger.d.ts.map +1 -1
  137. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.d.ts.map +1 -1
  138. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationAdapter.js +5 -1
  139. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts +18 -0
  140. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.d.ts.map +1 -0
  141. package/src/engine/sound/ecs/trigger/AudioEventTriggerSerializationUpgrader_0_1.js +51 -0
  142. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.d.ts.map +1 -1
  143. package/src/engine/sound/ecs/trigger/AudioEventTriggerSystem.js +15 -1
  144. package/src/engine/sound/sopra/README.md +768 -644
  145. package/src/engine/sound/sopra/SopraEngine.d.ts +104 -8
  146. package/src/engine/sound/sopra/SopraEngine.d.ts.map +1 -1
  147. package/src/engine/sound/sopra/SopraEngine.js +327 -12
  148. package/src/engine/sound/sopra/definition/EventDescription.d.ts +28 -2
  149. package/src/engine/sound/sopra/definition/EventDescription.d.ts.map +1 -1
  150. package/src/engine/sound/sopra/definition/EventDescription.js +55 -5
  151. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts +10 -0
  152. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.d.ts.map +1 -1
  153. package/src/engine/sound/sopra/definition/EventDescriptionSerializationAdapter.js +77 -55
  154. package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts +31 -0
  155. package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.d.ts.map +1 -0
  156. package/src/engine/sound/sopra/definition/EventDescriptionSerializationUpgrader_0_1.js +75 -0
  157. package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts +38 -9
  158. package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.d.ts.map +1 -1
  159. package/src/engine/sound/sopra/definition/effect/AbstractAudioEffect.js +34 -5
  160. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts +7 -2
  161. package/src/engine/sound/sopra/definition/effect/CompressorEffect.d.ts.map +1 -1
  162. package/src/engine/sound/sopra/definition/effect/CompressorEffect.js +137 -122
  163. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts +3 -1
  164. package/src/engine/sound/sopra/definition/effect/EqEffect.d.ts.map +1 -1
  165. package/src/engine/sound/sopra/definition/effect/EqEffect.js +146 -131
  166. package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts +1 -0
  167. package/src/engine/sound/sopra/definition/effect/ReverbEffect.d.ts.map +1 -1
  168. package/src/engine/sound/sopra/definition/effect/ReverbEffect.js +6 -1
  169. package/src/engine/sound/sopra/runtime/BusGraph.d.ts +44 -2
  170. package/src/engine/sound/sopra/runtime/BusGraph.d.ts.map +1 -1
  171. package/src/engine/sound/sopra/runtime/BusGraph.js +83 -43
  172. package/src/engine/sound/sopra/runtime/EffectChain.d.ts +96 -0
  173. package/src/engine/sound/sopra/runtime/EffectChain.d.ts.map +1 -0
  174. package/src/engine/sound/sopra/runtime/EffectChain.js +286 -0
  175. package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts +123 -0
  176. package/src/engine/sound/sopra/runtime/EffectParamOverrides.d.ts.map +1 -0
  177. package/src/engine/sound/sopra/runtime/EffectParamOverrides.js +320 -0
  178. package/src/engine/sound/sopra/runtime/EventInstance.d.ts +55 -5
  179. package/src/engine/sound/sopra/runtime/EventInstance.d.ts.map +1 -1
  180. package/src/engine/sound/sopra/runtime/EventInstance.js +201 -26
  181. package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts +2 -1
  182. package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.d.ts.map +1 -1
  183. package/src/engine/sound/sopra/serialization/populateSopraSerializationRegistry.js +6 -1
  184. package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts +15 -0
  185. package/src/engine/sound/sopra/serialization/sopraSerializationHarness.d.ts.map +1 -1
  186. package/src/engine/sound/sopra/serialization/sopraSerializationHarness.js +32 -0
  187. package/src/engine/sound/sopra/util/MockAudioContext.d.ts.map +1 -1
  188. package/src/engine/sound/sopra/util/MockAudioContext.js +3 -0
  189. package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts +13 -3
  190. package/src/engine/sound/sopra/util/fadeOutAndStop.d.ts.map +1 -1
  191. package/src/engine/sound/sopra/util/fadeOutAndStop.js +25 -13
  192. package/src/shade/RENDERER_CONTRACT.md +6 -3
  193. package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts +24 -0
  194. package/src/shade/device/SHADE_DEVICE_FLOOR.d.ts.map +1 -0
  195. package/src/shade/device/SHADE_DEVICE_FLOOR.js +34 -0
  196. package/src/shade/device/ShadeDeviceFailure.d.ts +12 -5
  197. package/src/shade/device/ShadeDeviceFailure.d.ts.map +1 -1
  198. package/src/shade/device/ShadeDeviceFailure.js +17 -8
  199. package/src/shade/device/ShadeDeviceFailureReason.d.ts +1 -1
  200. package/src/shade/device/ShadeDeviceFailureReason.js +2 -2
  201. package/src/shade/device/shade_device_floor_unmet.d.ts +13 -0
  202. package/src/shade/device/shade_device_floor_unmet.d.ts.map +1 -0
  203. package/src/shade/device/shade_device_floor_unmet.js +32 -0
  204. package/src/shade/renderer/Renderer.d.ts +2 -0
  205. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  206. package/src/shade/renderer/Renderer.js +29 -55
  207. package/src/shade/renderer/buffer/GPUBufferAllocator.d.ts.map +1 -1
  208. package/src/shade/renderer/buffer/GPUBufferAllocator.js +9 -0
  209. package/src/shade/renderer/buffer/buffer_pool_ops.d.ts +21 -12
  210. package/src/shade/renderer/buffer/buffer_pool_ops.d.ts.map +1 -1
  211. package/src/shade/renderer/buffer/buffer_pool_ops.js +18 -19
  212. package/src/shade/renderer/gpu_primitive/test/gpu_test.d.ts.map +1 -1
  213. package/src/shade/renderer/gpu_primitive/test/gpu_test.js +8 -11
  214. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  215. package/src/shade/renderer/pool/TransientResourcePool.d.ts +24 -0
  216. package/src/shade/renderer/pool/TransientResourcePool.d.ts.map +1 -1
  217. package/src/shade/renderer/pool/TransientResourcePool.js +41 -10
  218. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  219. package/src/shade/renderer/shader/ComputeShader.js +18 -2
  220. package/src/shade/renderer/shader/ImageShader.d.ts.map +1 -1
  221. package/src/shade/renderer/shader/ImageShader.js +230 -218
  222. package/src/view/graphics/GraphicsContextFailureView.d.ts +1 -2
  223. package/src/view/graphics/GraphicsContextFailureView.d.ts.map +1 -1
  224. package/src/view/graphics/GraphicsContextFailureView.js +1 -2
  225. package/src/engine/network/transport/Channel.js +0 -336
  226. package/src/engine/network/transport/ReliableCommandPipeline.js +0 -335
  227. package/src/engine/network/transport/fragments/FragmentAssembler.js +0 -350
  228. package/src/engine/network/transport/fragments/FragmentRetention.js +0 -191
  229. package/src/engine/network/transport/fragments/fragment_send.js +0 -157
  230. package/src/engine/network/transport/fragments/packet_size.js +0 -107
@@ -9,9 +9,7 @@ export namespace NetworkPacketType {
9
9
  let RECOVERY_REQUEST: number;
10
10
  let STATE_BURST: number;
11
11
  let AUTH_STATE: number;
12
- let FRAGMENT: number;
13
12
  let RELIABLE_COMMAND: number;
14
- let NACK_FRAGMENT: number;
15
13
  let TIME_DILATION: number;
16
14
  let INITIAL_SYNC: number;
17
15
  let RESUME_HELLO: number;
@@ -20,6 +18,21 @@ export namespace NetworkPacketType {
20
18
  let DISCONNECT: number;
21
19
  let FRAME_MARKER: number;
22
20
  }
21
+ /**
22
+ * Flags of an INITIAL_SYNC page.
23
+ */
24
+ export type InitialSyncPage = number;
25
+ /**
26
+ * Flags of an INITIAL_SYNC page.
27
+ * @readonly
28
+ * @enum {number}
29
+ */
30
+ export const InitialSyncPage: Readonly<{
31
+ /** The first page of a join: it issues the session token, and replaces the receiver's world. */
32
+ FIRST: 1;
33
+ /** The last page: every entity's state at its frame is now with the receiver. */
34
+ FINAL: 2;
35
+ }>;
23
36
  /**
24
37
  * Reason codes for {@link NetworkPacketType.RESUME_REJECT }.
25
38
  */
@@ -51,39 +64,20 @@ export const ResumeRejectReason: Readonly<{
51
64
  */
52
65
  NoSessionToken: 5;
53
66
  }>;
54
- /**
55
- * One outbound action-stream send, awaiting confirmation.
56
- *
57
- * A send occupies one transport seq when it fits the MTU and N consecutive
58
- * seqs when it has to be fragmented. All of those seqs map to the SAME record:
59
- * the receiver reassembles a fragmented message all-or-nothing, so the frame
60
- * range is confirmed only when `unacked` reaches zero without `abandoned`
61
- * having been set by a loss along the way.
62
- *
63
- * A tick may make several sends to one peer, each carrying the next slice of
64
- * the owed range (see {@link NetworkPeer#flush_outbound}). They confirm
65
- * independently, and the baseline advances only through slices confirmed in
66
- * order — a later slice landing says nothing about an earlier one still in
67
- * flight. `head` marks the first slice of a tick, whose start is the pack
68
- * start itself; see {@link NetworkPeer#__credit_confirmed}.
69
- *
70
- * @typedef {{frame_start: number, frame_end: number, head: boolean, unacked: number, abandoned: boolean}} PendingAck
71
- * @property {number} frame_start first frame in the packed range
72
- * @property {number} frame_end last frame in the packed range
73
- * @property {boolean} head this send began at the pack start, so nothing
74
- * sendable lies before it and its confirmation credits outright
75
- * @property {number} unacked seqs of this send not yet acked or declared lost
76
- * @property {boolean} abandoned at least one seq was declared lost, so the
77
- * message is forfeit and must never advance the baseline
78
- */
79
67
  /**
80
68
  * Per-tick orchestrator that wires the action infrastructure to one or more
81
69
  * peers over a Transport.
82
70
  *
83
71
  * Holds a single world (`EntityComponentDataset`) plus the action machinery
84
72
  * (executor, replicator, action log). For each connected peer it owns a
85
- * `Channel` and a `seq` → {@link PendingAck} map so that ack notifications
86
- * advance the `Baseline.last_acked(peer_id)` watermark.
73
+ * {@link Connection} and the action-stream slices sent on it and not yet
74
+ * resolved ({@link PendingSlices}), so that their acknowledgements advance the
75
+ * `Baseline.last_acked(peer_id)` watermark.
76
+ *
77
+ * Every `send_*` queues; nothing reaches a transport until {@link send_queued}
78
+ * (or {@link flush_peer}), which {@link end_tick} calls last. One tick's
79
+ * traffic to a peer thereby leaves together, packed into as few datagrams as
80
+ * fit.
87
81
  *
88
82
  * Use as both server (many connected peers) and client (one peer = the server).
89
83
  * The asymmetry is in *who* connects — the orchestrator itself is symmetric.
@@ -94,9 +88,9 @@ export const ResumeRejectReason: Readonly<{
94
88
  * - `begin_tick(frame_number)` — open the action log for this frame.
95
89
  * - User code runs game logic, calling `executor.execute(action)` for each
96
90
  * replicated state mutation. Inbound actions from peers also flow into
97
- * the executor automatically (via the channel.onPayload wiring).
91
+ * the executor automatically (via the connection's onMessage wiring).
98
92
  * - `end_tick()` — close the frame and dispatch outgoing packets to every peer.
99
- * 3. `disconnect_peer(peer_id)` — release the channel + baseline state.
93
+ * 3. `disconnect_peer(peer_id)` — release the connection + baseline state.
100
94
  *
101
95
  * @author Alex Goldring
102
96
  * @copyright Company Named Limited (c) 2026
@@ -115,9 +109,20 @@ export class NetworkPeer {
115
109
  * mutation_ledger_retention_frames?: number,
116
110
  * changed_set_capacity?: number,
117
111
  * max_packets_per_tick?: number,
112
+ * clock: function(): number,
113
+ * tick_period_ms: number,
114
+ * send_rate_bytes_per_second?: number,
115
+ * max_message_bytes?: number,
116
+ * receive_window_bytes?: number,
117
+ * max_queued_bytes?: number,
118
118
  * }} options
119
+ * `clock` returns milliseconds and never runs backwards: every network timer (loss, probe,
120
+ * pacing) runs on it, and nothing in the stack reads a clock of its own. `tick_period_ms` is
121
+ * how often this peer sends: the longest it sits on an acknowledgement, and the resolution
122
+ * of its timers. The remaining four configure every {@link Connection}; see there.
123
+ * `max_message_bytes` and `receive_window_bytes` must be the same on both ends.
119
124
  */
120
- constructor({ world, binary_registry, replicated_components, action_classes, scope_filter, frame_capacity, initial_buffer_size, mutation_ledger, mutation_ledger_retention_frames, changed_set_capacity, max_packets_per_tick, }: {
125
+ constructor({ world, binary_registry, replicated_components, action_classes, scope_filter, frame_capacity, initial_buffer_size, mutation_ledger, mutation_ledger_retention_frames, changed_set_capacity, max_packets_per_tick, clock, tick_period_ms, send_rate_bytes_per_second, max_message_bytes, receive_window_bytes, max_queued_bytes, }: {
121
126
  world: EntityComponentDataset;
122
127
  binary_registry: BinarySerializationRegistry;
123
128
  replicated_components: Function[];
@@ -131,6 +136,12 @@ export class NetworkPeer {
131
136
  mutation_ledger_retention_frames?: number;
132
137
  changed_set_capacity?: number;
133
138
  max_packets_per_tick?: number;
139
+ clock: () => number;
140
+ tick_period_ms: number;
141
+ send_rate_bytes_per_second?: number;
142
+ max_message_bytes?: number;
143
+ receive_window_bytes?: number;
144
+ max_queued_bytes?: number;
134
145
  });
135
146
  /** @type {EntityComponentDataset} */
136
147
  world: EntityComponentDataset;
@@ -153,17 +164,9 @@ export class NetworkPeer {
153
164
  * fit one packet; past that the owed range grows until it meets the
154
165
  * ring floor and frames are lost.
155
166
  *
156
- * It is also the bandwidth ceiling under catch-up — this many MTUs per
157
- * tick per peer — and it has to stay inside the channel's ack window.
158
- * A peer's ack header covers its latest 33 seqs, so with a peer that
159
- * replies once a tick, `33 / max_packets_per_tick` consecutive lost
160
- * replies leave a delivered packet outside the window and it is
161
- * declared lost: a wasted re-send rather than a defect, since the
162
- * receiver skips frames it has already applied. Eight tolerates three
163
- * such losses in a row (one tick in sixteen at 50% loss, one in ten
164
- * thousand at 10%), and lets a 60 Hz stream at 100 ms RTT carry a full
165
- * packet of actions per frame. Lower it for peers that reply less often
166
- * than every tick.
167
+ * It is also the bandwidth ceiling under catch-up — this many datagrams
168
+ * of actions per tick per peer. Eight lets a 60 Hz stream at 100 ms RTT
169
+ * carry a full datagram of actions per frame.
167
170
  *
168
171
  * @type {number}
169
172
  */
@@ -203,6 +206,24 @@ export class NetworkPeer {
203
206
  * @type {Signal}
204
207
  */
205
208
  onMalformedPacket: Signal;
209
+ /**
210
+ * The connection to a peer is no longer whole: `(peer_id, reason)`. Its connection said so
211
+ * (Connection.onProtocolError: a reliable lane broke its limits and stopped, or the peer
212
+ * acknowledged a packet never sent), or more of the peer's action stream arrived during
213
+ * {@link hold_inbound} than may be held. Nothing more can be trusted to arrive whole on it:
214
+ * give the connection up.
215
+ * @type {Signal}
216
+ */
217
+ onProtocolError: Signal;
218
+ /**
219
+ * An action-stream frame larger than any message the connection may carry
220
+ * (`max_message_bytes`) was given up rather than sent: `(peer_id, frame_start, frame_end,
221
+ * bytes)`. It can never be delivered, so it is stepped over — the peer never applies it —
222
+ * and the stream goes on behind it. Raise `max_message_bytes` on both ends for frames that
223
+ * large.
224
+ * @type {Signal}
225
+ */
226
+ onFrameTooLarge: Signal;
206
227
  /**
207
228
  * Fired when an inbound packet is a `RECOVERY_REQUEST` (peer is asking
208
229
  * which entities mutated in a tick range so it can request their state).
@@ -233,7 +254,8 @@ export class NetworkPeer {
233
254
  onAuthState: Signal;
234
255
  /**
235
256
  * Fires on TIME_DILATION packet arrival.
236
- * Args: `(peer_id, buffer_depth)` — signed int16.
257
+ * Args: `(peer_id, buffer_depth, frame_number)` — signed int16, and the sender's sim frame
258
+ * as it sent it: the freshest word of where the host is, every tick.
237
259
  * @type {Signal}
238
260
  */
239
261
  onTimeDilationFeedback: Signal;
@@ -243,10 +265,11 @@ export class NetworkPeer {
243
265
  */
244
266
  onFrameMarker: Signal;
245
267
  /**
246
- * Fires on INITIAL_SYNC packet arrival.
247
- * Args: `(peer_id, session_token, frame_number, buffer, payload_end)`.
248
- * `session_token` is a `Uint8Array(16)` (UUID v1 raw bytes); the
249
- * buffer is positioned at the start of the Snapshotter payload.
268
+ * Fires on each INITIAL_SYNC page.
269
+ * Args: `(peer_id, session_token, frame_number, flags, buffer, payload_end)`.
270
+ * `session_token` is a `Uint8Array(16)` (UUID v1 raw bytes); `flags`
271
+ * is {@link InitialSyncPage}; the buffer is positioned at the page's
272
+ * uint32 entity count.
250
273
  * @type {Signal}
251
274
  */
252
275
  onInitialSync: Signal;
@@ -282,7 +305,7 @@ export class NetworkPeer {
282
305
  onDisconnectPacket: Signal;
283
306
  /**
284
307
  * Fired when a reliable command arrives from a peer (delivered via
285
- * {@link ReliableCommandPipeline}, dedup'd against retransmits).
308
+ * the connection's USER lane, once and in order).
286
309
  *
287
310
  * Args: `(peer_id, buffer, payload_offset, payload_length)`. The
288
311
  * buffer is the per-peer scratch and may be reused after the handler
@@ -296,7 +319,7 @@ export class NetworkPeer {
296
319
  */
297
320
  onReliableCommand: Signal;
298
321
  /**
299
- * Wire `transport` to the peer identified by `peer_id`. Creates a Channel
322
+ * Wire `transport` to the peer identified by `peer_id`. Creates a Connection
300
323
  * over the transport and connects ack/payload notifications to the local
301
324
  * Baseline / Replicator.
302
325
  *
@@ -308,7 +331,8 @@ export class NetworkPeer {
308
331
  onReceive: any;
309
332
  }): void;
310
333
  /**
311
- * Unwire and forget a peer.
334
+ * Unwire and forget a peer. Sends nothing: the transport may already be gone. To say a last
335
+ * word first — a DISCONNECT — queue it and call {@link flush_peer}.
312
336
  * @param {number} peer_id
313
337
  */
314
338
  disconnect_peer(peer_id: number): void;
@@ -335,22 +359,21 @@ export class NetworkPeer {
335
359
  */
336
360
  inbound_count(peer_id: number): number;
337
361
  /**
338
- * Number of outbound action-stream seqs for `peer_id` still awaiting an
362
+ * Number of action-stream slices sent to `peer_id` still awaiting an
339
363
  * ack-or-lost verdict. Returns 0 for an unknown peer.
340
364
  *
341
- * Diagnostics: this is bounded by the channel's in-flight window and must
342
- * fall back to 0 once a stream of acks has resolved everything sent. A
343
- * value that only grows is a leak in the ack accounting.
365
+ * Diagnostics: this must fall back to 0 once a stream of acks has resolved
366
+ * everything sent. A value that only grows is a leak in the ack accounting.
344
367
  * @param {number} peer_id
345
368
  * @returns {number}
346
369
  */
347
370
  pending_ack_count(peer_id: number): number;
348
371
  /**
349
- * Direct access to a peer's channel (for sending acks-only packets, raw payloads, etc.).
372
+ * A peer's connection, for diagnostics: round-trip time, statistics, what is in flight.
350
373
  * @param {number} peer_id
351
- * @returns {Channel|undefined}
374
+ * @returns {Connection|undefined}
352
375
  */
353
- channel_for(peer_id: number): Channel | undefined;
376
+ connection_for(peer_id: number): Connection | undefined;
354
377
  /**
355
378
  * Send `peer_id` nothing on the action stream until {@link release_outbound}. What the log
356
379
  * records meanwhile stays owed, and goes out on release unless the release starts past it.
@@ -372,6 +395,28 @@ export class NetworkPeer {
372
395
  * @param {number} [from_frame=0]
373
396
  */
374
397
  release_outbound(peer_id: number, from_frame?: number): void;
398
+ /**
399
+ * Keep the action stream and AUTH_STATE that `peer_id` sends, unapplied, until
400
+ * {@link release_inbound}; everything else it sends is handled as ever.
401
+ *
402
+ * For a client being given a world in pages. The host releases its action stream from the frame
403
+ * after the last page, so the stream's datagrams can overtake the last pages on the way; what
404
+ * they carry is about entities the client may not hold yet. Held, they are applied after the
405
+ * world is complete, in the order they came.
406
+ *
407
+ * Held messages are copies, bounded by `max_queued_bytes`; past that the connection can no
408
+ * longer give the peer a whole stream, and says so on {@link onProtocolError}.
409
+ *
410
+ * @param {number} peer_id
411
+ */
412
+ hold_inbound(peer_id: number): void;
413
+ /**
414
+ * Stop holding `peer_id`'s action stream and AUTH_STATE, and handle what was held, in the order
415
+ * it arrived.
416
+ *
417
+ * @param {number} peer_id
418
+ */
419
+ release_inbound(peer_id: number): void;
375
420
  /**
376
421
  * Open the action log for `frame_number`. Call before running game logic
377
422
  * for the tick. The user's code (or the engine's `EntityManager.simulate`)
@@ -382,15 +427,29 @@ export class NetworkPeer {
382
427
  */
383
428
  begin_tick(frame_number: number): void;
384
429
  /**
385
- * Close the current tick and send pending action records to every peer.
386
- * For each peer, packs frames `[Baseline.last_acked(peer) + 1, current_frame]`
387
- * and sends via the channel; records the seqs the send went out under so
388
- * that acks for all of them advance the baseline.
389
- *
390
- * If a {@link MutationLedger} was supplied at construction, this tick's
391
- * accumulated changed-entity set is also compacted into the ledger.
430
+ * Close the current tick, queue the action stream for every peer (see
431
+ * {@link flush_outbound}), and send everything queued ({@link send_queued}).
392
432
  */
393
433
  end_tick(): void;
434
+ /**
435
+ * Send what is queued for every peer: one flush of each connection, packing the tick's
436
+ * messages into as few datagrams as fit, and running its loss and probe timers. Also sends a
437
+ * bare acknowledgement to a peer that has sent something since the last one.
438
+ */
439
+ send_queued(): void;
440
+ /**
441
+ * Send what is queued for one peer now. For a last word before {@link disconnect_peer}:
442
+ * queue the DISCONNECT, flush, then disconnect.
443
+ * @param {number} peer_id
444
+ */
445
+ flush_peer(peer_id: number): void;
446
+ /**
447
+ * The frame `network_id` was last changed by an action this peer executed or applied, or -1.
448
+ * Stamped at the end of each tick, by {@link flush_outbound}.
449
+ * @param {number} network_id
450
+ * @returns {number}
451
+ */
452
+ last_changed_frame(network_id: number): number;
394
453
  /**
395
454
  * Pack and dispatch the outbound action stream for `current_frame` to
396
455
  * every connected peer. Second half of {@link end_tick} — exposed
@@ -404,9 +463,12 @@ export class NetworkPeer {
404
463
  * MutationLedger (if configured), then packs frames
405
464
  * `[last_acked+1, current_frame]` for each peer via
406
465
  * `Replicator.pack_for_peer` into up to {@link max_packets_per_tick}
407
- * channel packets, each the next slice of that range. Empty packs (no
408
- * in-scope actions) are not sent. Clears the per-tick changed-entity set
409
- * after recording.
466
+ * slices, each the next part of that range and one datagram at most; a
467
+ * frame too large for a datagram goes on {@link Lane.FRAMES}. Empty packs
468
+ * (no in-scope actions) are not sent. Stamps and clears the per-tick
469
+ * changed-entity set.
470
+ *
471
+ * Only queues: {@link send_queued} sends.
410
472
  *
411
473
  * @param {number} current_frame
412
474
  */
@@ -417,8 +479,7 @@ export class NetworkPeer {
417
479
  * server-side handler ({@link onRecoveryRequest}) is expected to respond by
418
480
  * calling {@link send_state_burst_for_range}.
419
481
  *
420
- * Best-effort delivery via the same UDP-style channel — if the request is
421
- * lost, the client is expected to retry.
482
+ * Reliable, on the CONTROL lane.
422
483
  *
423
484
  * @param {number} peer_id
424
485
  * @param {number} start_tick
@@ -439,7 +500,7 @@ export class NetworkPeer {
439
500
  * @param {number} start_tick
440
501
  * @param {number} end_tick
441
502
  */
442
- send_state_burst_for_range(peer_id: number, start_tick: number, end_tick: number): void;
503
+ send_state_burst_for_range(peer_id: number, start_tick: number, end_tick: number): any;
443
504
  /**
444
505
  * Send the authoritative state of one entity to `peer_id`, tagged with
445
506
  * the frame the state represents. Used by client-side prediction: the
@@ -459,16 +520,18 @@ export class NetworkPeer {
459
520
  */
460
521
  send_auth_state(peer_id: number, frame_number: number, network_id: number, write_fn: (arg0: BinaryBuffer) => void): void;
461
522
  /**
462
- * Send an INITIAL_SYNC packet. `write_fn` receives the send-buffer
463
- * positioned just past the `(packet_type, session_token, frame_number)`
464
- * header and writes the Snapshotter payload. Fragments transparently.
523
+ * Queue one INITIAL_SYNC page on the BULK lane: the header, then `length` bytes of
524
+ * `entities` — a uint32 entity count and that many Snapshotter entity records.
465
525
  *
466
526
  * @param {number} peer_id
467
527
  * @param {Uint8Array} session_token 16-byte UUID v1 identifying this peer-session
468
- * @param {number} frame_number server sim frame this snapshot represents
469
- * @param {function(BinaryBuffer): void} write_fn
528
+ * @param {number} frame_number server sim frame the page's state is from
529
+ * @param {number} flags {@link InitialSyncPage}
530
+ * @param {Uint8Array} entities
531
+ * @param {number} length
532
+ * @returns {number} delivery mark on {@link Lane.BULK}
470
533
  */
471
- send_initial_sync(peer_id: number, session_token: Uint8Array, frame_number: number, write_fn: (arg0: BinaryBuffer) => void): void;
534
+ send_sync_page(peer_id: number, session_token: Uint8Array, frame_number: number, flags: number, entities: Uint8Array, length: number): number;
472
535
  /**
473
536
  * Send a RESUME_HELLO packet to the server. Client-only direction.
474
537
  *
@@ -507,58 +570,34 @@ export class NetworkPeer {
507
570
  *
508
571
  * @param {number} peer_id
509
572
  * @param {number} buffer_depth signed integer; clamped to int16
573
+ * @param {number} frame_number this side's sim frame
510
574
  */
511
- send_time_dilation_feedback(peer_id: number, buffer_depth: number): void;
575
+ send_time_dilation_feedback(peer_id: number, buffer_depth: number, frame_number: number): void;
512
576
  /**
513
577
  * Tell a peer which frame this one has just finished simulating. See
514
578
  * {@link NetworkPacketType.FRAME_MARKER}. Also serves as the tick's keep-alive: it advances the
515
- * channel's seq/ack like any packet.
579
+ * connection's acknowledgements like any message.
516
580
  *
517
581
  * @param {number} peer_id
518
582
  * @param {number} frame_number
519
583
  */
520
584
  send_frame_marker(peer_id: number, frame_number: number): void;
521
585
  /**
522
- * Send a reliable command to a connected peer. Delivered at-least-once
523
- * with sender-side retransmit on Channel-detected loss and receiver-
524
- * side dedup by logical seq. Use for messages where the action-stream
525
- * model (best-effort, per-frame back-fill) isn't suitable — chat,
526
- * lobby/room state, level transitions.
527
- *
528
- * Returns the logical seq the pipeline assigned (diagnostic only; the
529
- * receiver dedups internally regardless).
586
+ * Queue a reliable command for a connected peer, on the connection's USER
587
+ * lane: it arrives once, whole, and in order with the peer's other
588
+ * commands, unless the connection ends first. Up to the connection's
589
+ * `max_message_bytes` (less the type byte). Use for messages where the
590
+ * action-stream model (best-effort, per-frame back-fill) isn't suitable —
591
+ * chat, lobby/room state, level transitions.
530
592
  *
531
593
  * @param {number} peer_id
532
594
  * @param {Uint8Array} payload
533
595
  * @param {number} length
534
- * @returns {number} logical seq
596
+ * @returns {number} delivery mark: see {@link Connection#is_delivered} with {@link Lane.USER}
535
597
  */
536
598
  send_reliable_command(peer_id: number, payload: Uint8Array, length: number): number;
537
599
  #private;
538
600
  }
539
- /**
540
- * One outbound action-stream send, awaiting confirmation.
541
- *
542
- * A send occupies one transport seq when it fits the MTU and N consecutive
543
- * seqs when it has to be fragmented. All of those seqs map to the SAME record:
544
- * the receiver reassembles a fragmented message all-or-nothing, so the frame
545
- * range is confirmed only when `unacked` reaches zero without `abandoned`
546
- * having been set by a loss along the way.
547
- *
548
- * A tick may make several sends to one peer, each carrying the next slice of
549
- * the owed range (see {@link NetworkPeerflush_outbound }). They confirm
550
- * independently, and the baseline advances only through slices confirmed in
551
- * order — a later slice landing says nothing about an earlier one still in
552
- * flight. `head` marks the first slice of a tick, whose start is the pack
553
- * start itself; see {@link NetworkPeer__credit_confirmed }.
554
- */
555
- export type PendingAck = {
556
- frame_start: number;
557
- frame_end: number;
558
- head: boolean;
559
- unacked: number;
560
- abandoned: boolean;
561
- };
562
601
  import { ReplicatedComponentRegistry } from "../sim/ReplicatedComponentRegistry.js";
563
602
  import { SimActionRegistry } from "../sim/SimActionRegistry.js";
564
603
  import { ReplicationSlotTable } from "../state/ReplicationSlotTable.js";
@@ -568,6 +607,6 @@ import { SimActionExecutor } from "../sim/SimActionExecutor.js";
568
607
  import { Replicator } from "../replication/Replicator.js";
569
608
  import { Baseline } from "../state/Baseline.js";
570
609
  import Signal from "../../../core/events/signal/Signal.js";
571
- import { Channel } from "../transport/Channel.js";
610
+ import { Connection } from "../transport/connection/Connection.js";
572
611
  import { BinaryBuffer } from "../../../core/binary/BinaryBuffer.js";
573
612
  //# sourceMappingURL=NetworkPeer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkPeer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/network/orchestrator/NetworkPeer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetworkPeer.d.ts","sourceRoot":"","sources":["../../../../../src/engine/network/orchestrator/NetworkPeer.js"],"names":[],"mappings":"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"}