/MonoSync

An efficient and easy to implement synchronization layer for multiplayer games

Primary LanguageC#GNU General Public License v3.0GPL-3.0

banner

Nuget Build Status Azure DevOps tests Discord

What is MonoSync

MonoSync is a synchronization library that you can easily implement with attributes and helper functions. MonoSync enables you to synchronize an object (e.g. a game world) just like you would with a JSON serializer. MonoSync automatically keeps track of all changes and references. Which you can synchronize periodically.

What is MonoSync not

MonoSync is not a Network library. The serialized data is provided as byte[] and the user is free to choose his own Network layer.

Demos

MonoGame

Features

Delta compression
Only changed values are synchronized.
Object tracking
New objects are automaticly tracked and synchronized.
Interpolation
Properties can be configured with a smooth transition between the current value and the newly received value

Getting started

https://github.com/janfokke/MonoSync/wiki/Getting-started

Documentation

https://github.com/janfokke/MonoSync/wiki

Demos

https://github.com/janfokke/MonoSync/tree/master/samples

Gallery

Interpolation

Interpolation sample