About the
Massiv
What is the Massiv?
The Massiv is a distributed game middleware whose purpose is to
simplify the development of distributed persistent massively
multiplayer online games.
It is an object-oriented distributed system built on top of C++
and its standard library. It defines an "extended" object model, in
a form of coding instructions, that allows the Core to fully manage
application objects. This includes automatic object life time
management (garbage collection), object serializability and full
object introspection, ability to remote call object methods and
migrate and replicate objects. All these features are
self-contained and implemented by the Massiv core library. A
potential application developer has only to know that these
features are supported and how to use them properly.
Besides the object model the Massiv also supports transparent
simulation state archivation, dynamic download of static data
(textures, models) or server load balancing.
What the Massiv is not
The Massiv is not one of those fancy one-purpose game creation
toolkits that could be used directly out of the box. Instead we
have developed a generic distributed programmable environment that
allows for a broader range of use, not limited to online games
only. It does not make the development of such a game an easy task
but it is much easier to use the Massiv than other generic
distributed systems.
Features
- Client/Server architecture
- Object Model ("managed" objects):
- Classes written in accordance with object model instructions
and described in IDL
- Support for object introspection, serialization
- Transparent object migration and replication (without users's
assistance)
- Migration & replication groups driven by persistent object
references
- Garbage collector
- RPC in various flavours (asynchronous, synchronous, timed,
delayed, ...)
- Exceptions
- Superior integration with the C++ language
- Consistent archivation
- Ability to automatically create a snapshot of the simulation
state and restore the simulation from the snapshot
- Management of static data and their distribution (textures,
models)
- Data organized in a tree-like structure
- Versioning
- When data are not available, the latest available version is
used
- Can be updated on-line
- Server load balancing
- CPU & Network traffic load balancing
- Network
- RSA authentization, traffic encrypted using a symmetric
ciphre
- Optimized protocols designed to save network traffic
- Multiplatform portable code
- Support for Windows and Linux platforms
- OS dependent portions of the core library carefully
isolated
License
The Massiv sources and documentation are currently distributed
under LGPL. There is a talk in progress on license change for
documentation and supporting a BSD-style license for sources.