SiNet
A lightweight networking framework of 3D synchronizing.
Which separate data synchronizing from the logic built on these data.
It is used in and driven by a acedemic project in Carnegie Mellon University.
demo1: Car driving, hello world
demo2: VR character present
present the whole body in muliplayer VR,by synchronizing positon, animation and behaviour.
Features
This is an under developing project (see Devlog), evolving with the project using this framework.
- provide a Entity-Component-System for wrting data synchronizing logic.
- Build an application layer protocal and its transmitting fucntions
- Remote Procedure Calls (RPC) for event communication between servers and clients.
How it works
separate data synchronzing from logic codes
In OOP, we inheritance hierachies.
In an ECS design, we use combination to describe the commonality and difference between entitits(classes), and support polymorphism by removing and adding components in the runtime.
separate the codes of source entity and its replication on other clients.
By instancing different entity, we can write two versions on authority side and replication side:
Our framework will do the mapping between two side across servers and clients: