You can access these networking features easily at high-level. This includes multiuser support, connection management, easy server-client communication, and managing several scenes or worlds on one server.
For example, simply control the animation controller of a door by a script on server-side, and the animation controller automatically will replicate its state on all clients and play the same animation. The only thing you have to do is to register the animation controller for networking.
This also includes initializing a new client correctly. This means, if a new client has connected to the server lately, the animation controller is correctly initialized, for example when currently playing an animation.
To reduce network traffic, the server may send only a simple command to all clients, and the clients execute complex actions locally without causing bandwidth.
Of course, standard components have suitable implementations. For example, animation controllers only send animation triggers via network and execute the animation itself locally.
|
For example, typically user input from keyboard or mouse moves a player and triggers player animations (e.g. a walk animation). In this situation the player and animation components may be directly controlled by the client where the user input is generated. As consequence, the movements and animations are executed immediately without network delay on this particular client itself.
Using the above transparent networking features, the player actions can be automatically updated to the server and then to the other clients.
For example, the network traffic caused by entering a new level does not depend on the number of objects which are synchronized via networking. Internal object IDs do not have to be allocated and assigned via networking. Instead the networking traffic only depends on the number of objects which do not have the default state and so have to be updated. In practice, this means that typically the network traffic at load time is constantly small, independent from the complexity of the game level.
The standard networking framework can be easily modified and extended in any way at a high abstraction level. Components can be modified and new components can be added simply by configuration or scripting.