View on GitHub

SimEthereal

A high performance library for real-time networked object synching.

Download this project as a .zip file Download this project as a tar.gz file

SimEthereal Logo

SimEthereal uses fast and small UDP messaging to share object state between clients and the server. It operates in an "authoritative server" environment and only the deltas of a "known good state" are sent so that redundant information can be eliminated.
The "known good state" is synchronized through a sort of transient reliable protocol that uses a double-ack approach so that messages are always valid.

Each message packs as much state in as possible to try to fit under standard MTU sizes to keep the UDP packets from being split. As such, it's possible, in the worst case, to fit more than 80 object updates in a single 1500 byte message.

Main goals:

Architecture

Overview Diagram