Server FAQ
From Multiverse
| Multiverse Servers |
|
Installing • Installing on Linux • Running • Troubleshooting • FAQ • Release Notes • Updating • JMX Monitoring & Mgmt. |
| Infrastructure |
|
Platform Architecture • Registering a World • Proxy Server • Event Handling • World Manager • Voice Server |
| Messaging System |
|
Perception Messaging • Using Extension Messages • Message Marshalling • Multi-subject Messaging • Message Catalog |
| Object Architecture |
|
World Instancing • Server Object Search • Server Regions • Server Markers |
| Scalability and Performance |
| Reference |
|
File Layout • Property File • Logging • API |
For help with problems running the servers, see Server Troubleshooting.
Does the server support instanced areas?
The platform supports large contiguous zones.
The upcoming 1.5 platform release includes support for instanced areas. You can get a sneak peek via the World Instancing documentation.
How does the server handle load-balancing?
The server breaks up the world using a quad tree. You can set configuration options which controls when the quad tree gets divided. The server can off-load a quad tree node onto another server. All objects on the server are serializable, both to xml (when saved to the database) or into a binary data format, as is used for transferring objects to another server. A proxy server makes this transition seamless to the client machine. One and only one server can be 'in-charge' of an object at any point in time. When this load-balancing happens is based on a heuristic. Currently you can use the number of users, mobs, and objects in a quad tree area. Finer-grain heuristics based on CPU-load will be added to the system soon. You can set aside extra machines which can soak up load as needed.
How do server-side plug-ins work?
Game logic plug-ins run in the world server. They can replace existing modules or implement entirely new systems. Mob (monster) AI is controlled by behaviors that run in the mob server. You can have as many different behaviors as you want, each controlling different mobs. Behaviors can also send and receive events to communicate with each other.
Are there processing time restrictions on server plug-ins (enforced to maintain interactivity)?
No, there are no such restrictions. It's the developer's responsibility to make sure that the plug-ins they use have performance that's appropriate for their game.
What protocols exist between client and server?
Multiverse utilizes TCP and UDP packets for communication between the servers and client. Our goal is to allow the game developer to decide what type of service they need based on the game they are creating. For example, if you are creating an FPS game, using TCP for all networking code would probably lead to disaster if your TCP window stalls at any point. Since UDP packets are connectionless, you don't have to worry about OS/Kernel limits.
For UDP "connections", the game developer can make it non-reliable, reliable, or reliable and sequential. We implement reliability and sequential delivery using RDP, see Reliable Data Protocol RFC-908 and Version 2 of the Reliable Data Protocol (RDP) RFC-1151 for more details. We have modified it slightly to work over UDP.
What databases does Multiverse work with?
Multiverse servers can work with any JDBC-compatible database server. We use MySQL internally, and document configuration and setup with MySQL.
How does the Multiverse platform handle character death, by default?
MARS has a concept of a character's health. When it reaches 0, the character dies. At that point, by default your character plays the death animation and cannot move. Adding your specific game logic should not be too difficult if you want to have 'rez' spells or a timer that sends you to a bind point.
We are working on a concept of different pools at the moment, and have not finalized the design. We're hoping it will be easy to specify new pools (e.g., concentration pool, endurance pool) and have abilities draw from a pool.
Is it possible to display a splash screen or animation, or play an audio clip while zoning?
You can change the Multiverse splashscreen by replacing the SampleWorld asset repository file /Textures/loadscreen.dds.
Currently zoning displays the Multiverse splash screen, but it makes sense to allow developers to modify this. However, this is not implemented in the current release.
Categories: Server | FAQs
