Table of Contents
XMPP is an open XML based message protocol with origins in Instant
Messaging (IM) and friend presence notification. It is presented within the
scope of the BigWorld FantasyDemo example code to illustrate a working
implementation of the
BigWorld
.registerFileDescriptor()
method as well as providing a real world example of one approach that can be
used for implementing a messaging system into your game using an external
service.
The intended audience for this document includes technical MMOG developers, designers and system administrators.
XMPP was chosen as the protocol to use for illustrating in game messaging services for a number of reasons:
-
Open Standard
XMPP provides a completely open protocol standard that can be re-implemented by anybody without any licensing costs. This also means that there are many free implementations of the XMPP protocol available.
-
Decentralised architecture
The decentralised nature of the XMPP protocol lends itself to server solutions that can scale as required and integrate with other services.
-
Integration with other services
Protocol extensions have been defined that describe how other services can interact with an XMPP server through various mechanisms. This allows users on an existing service such as AOL or ICQ to communicate with users on an XMPP server as though they are all within the same network.
XMPP has been used in numerous projects including, but not limited to:
-
Quake Live
Source: Process One Blog
-
Google Wave
Source: Google Wave Federation Protocol
-
Jabber IM
Source: Jabber.org
-
Gtalk
Source: GTalk Developer Documentation
There are numerous XMPP server implementations available including both free and commercial solutions. For the purposes of this document we use EjabberD (http://www.process-one.net/en/ejabberd/).