Leonid PershinandClaude Fable 5 3438ed77f6
CI / build-test (push) Successful in 1m16s
Add MrGameEng.Net: WebSocket transport + delta component replication
Browsers can't speak UDP, so WebSocket is the engine's one transport.
The server side is a dependency-free RFC 6455 implementation over
TcpListener (handshake, frame codec with masking and fragmentation,
ping/pong — unit-tested against the RFC example vectors); the client
wraps ClientWebSocket, which works on desktop and maps to the browser
WebSocket in Blazor WASM. Both sit behind the poll-based INetConnection
so simulation systems drain messages from their own thread; client
sends are chained fire-and-forget (no blocking — wasm-safe).

Replication is server-authoritative: games register unmanaged component
types in a ReplicationSchema (same order both sides, up to 32 types),
ReplicationServer snapshots entities carrying NetId once per send and
ships each connection only the components that changed since its last
snapshot — a reliable ordered transport needs no acks for deltas. New
connections receive the full state through the same path; despawns are
tracked by set difference. ReplicationClient applies snapshots to a
local EntityStore and raises EntitySpawned so the game can decorate
replicated entities with presentation components.

Covered by 16 tests including a real loopback exchange between
WebSocketClient and WebSocketServer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 23:35:57 +03:00
2026-06-10 23:50:05 +00:00
2026-06-10 23:50:05 +00:00

mrgameeng

Cross-platform 2D game engine built on MonoGame 3.8.4 (DesktopGL) and Friflo.Engine.ECS — ECS-first, .NET 8, C#.

Developer documentation (Russian): docs/architecture.md, docs/roadmap.md.

Showcase: the LittleSim game — a god-sim built on this engine (vendored there as the engine/ submodule) that demonstrates every engine feature.

License

MIT — see LICENSE.

S
Description
No description provided
Readme MIT
1 MiB
Languages
C# 100%