Goal of this project is to develop a c++ library for synchronizing objects of one server with n-clients over network which provides following features:
- able to handle massive count of clients and objects
- linear scalability with the count of cpus/cores
- threadsafe interface to provide multithreading support for the apps
- keeping overhead and complexity small to provide good performance
=> SyncSys is designed to be a network solution (c++ - under zlib license - Win/Linux/Unix) which is really MMO ready!
This results in some design decisions which may be a bit unusual. I.e. the library does not automatically iterate over all registrated elements to update them. The developer has to take care of updating all objects on the server by an implicit or explicit NetEntity::PerformNeededUpdates call. Another example is, that objects are not created by a callback at clientside. They should be created by their parent/superior element.
The library is composed of three parts:
- objectlayer - concern with the unique-ids + updating + de/serialisation + versioning + visibility
- abstract transportlayer - collects data, packs and and sends them
- networklayer - a tcp class-set which can be replaced easily by another lib of your choice
If you have questions or an idea for improvements just contact me Nox@7bitfaster.de or post in the
forum.
You want a comparison to other solutions like i.e. RakNet or enet? Take a look at
this.
Looking for the newest code?
http://syncsys.svn.sourceforge.net/svnroot/syncsys/
Or do you need an example?
usage example 1,
usage example 2,
usage example 3
This library is licensed under zlib.
Licensing: Just contact me under
obscurusnox@sourceforge.net :)