Marauroa 3.8: Difference between revisions

From Arianne
Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
imported>Kymara
minor corrections
Line 5: Line 5:
=== Client/Server ===
=== Client/Server ===


; Summary : Different protocol version of client and server can now talk to each other
; Summary : Different protocol versions of client and server can now talk to each other
; Reason for change : Some other features (see below) required a change of the marauroa protocol. But it is impractical to force all users to update their clients when a new server version is installed. This is especially true because there is an playdeb Ubuntu package for Stendhal that is usually a couple of days behind.
; Reason for change : Some other features (see below) required a change of the Marauroa protocol. But it is impractical to force all users to update their clients when a new server version is installed. This is especially true because there is a playdeb Ubuntu package for Stendhal that is usually a couple of days behind.
; Impact on Marauroa users : There is no negative impact on projects using Marauroa because games are supposed to check the versions of the game client anyway.
; Impact on Marauroa users : There is no negative impact on projects using Marauroa because games should already check the version of the game client.
; Details : The client sends the first message with the protocol version it prefers. The server will check if it understand this version. If it does understand that version it will make sure that it sends only messages to the client with up to that version.
; Details : The client sends the first message with the protocol version it prefers. The server will check if it understands this version. If it does understand that version it will make sure that it sends only messages to the client with up to that version.


: So an old client which speaks version 31 can talk to a server with speaks version 33 (Marauroa 3.8). The server will automatically downgrade all answers to version 31. As a result some information like details in the S2CCharacterList Message will be missing, of course.
: So an old client which speaks version 31 can talk to a server which speaks version 33 (Marauroa 3.8). The server will automatically downgrade all answers to version 31. As a result some information like details in the S2CCharacterList Message will be missing, of course.


: To makes things compatible the other way round, the server will now accept messages up to version 40. It will reply with the highest protocol version it can support.
: To makes things compatible the other way round, the server will now accept messages up to version 40. It will reply with the highest protocol version it can support.

Revision as of 22:59, 24 June 2010

There are a number of small new features in Marauroa 3.8 that will be explained on this page.

Version compatibility

Client/Server

Summary
Different protocol versions of client and server can now talk to each other
Reason for change
Some other features (see below) required a change of the Marauroa protocol. But it is impractical to force all users to update their clients when a new server version is installed. This is especially true because there is a playdeb Ubuntu package for Stendhal that is usually a couple of days behind.
Impact on Marauroa users
There is no negative impact on projects using Marauroa because games should already check the version of the game client.
Details
The client sends the first message with the protocol version it prefers. The server will check if it understands this version. If it does understand that version it will make sure that it sends only messages to the client with up to that version.
So an old client which speaks version 31 can talk to a server which speaks version 33 (Marauroa 3.8). The server will automatically downgrade all answers to version 31. As a result some information like details in the S2CCharacterList Message will be missing, of course.
To makes things compatible the other way round, the server will now accept messages up to version 40. It will reply with the highest protocol version it can support.
If we want to make some changes to the client-->server protocol that cannot be understood by an old server, we need a little jump in protocol version numbers. But I guess this case is rather unlikely. The normal use case are outdated clients.

Database

Protocol extensions

Details in character list

Maps attributes

Performance optimization

Asynchronous login

Baking of RPClasses