Synchronized Object Database is a small framework for simple object’s data share between multiple programs and devices. It’s based on .NET (MONO) technology and uses its features (reflection). It’s primarily targeted for Unity3D but you can use it with small changes in any .NET (MONO) application. Every synchronized object has to be inherited from ObjectDatabaseItem and inserted in ObjectDatabaseManager.
ObjectDatabaseSynchronizer can be used for synchronization between applications. All what you have to do is to connect ObjectDatabaseSynchronizer to your network code.
MVC (Model-View-Controller) concept - extension to Object Database for game objects distribution. One game object consists from three different parts:
Model - class inherited from ObjectDatabaseItem, consists only class data members (position, rotation, health, …)
View - audiovisual game object representation, it’s created automatically in all connected applications after Model is inserted into ObjectDatabaseManager.
Controller - should be only one in whole game. This object is used for movement and events simulation. All interaction between game object should be implemented between controllers. All controller should be simulated in the same application instance (server). Clients can send only their user input (pressed keys, gamepad events, …) and you can use ObjectDatabase object for this communication).
Controller can send events to all views (play sound, change animation, …).