Marauroa 3.8: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Kymara
minor corrections
imported>Hendrik Brummermann
No edit summary
Line 1: Line 1:
There are a number of small new features in Marauroa 3.8 that will be explained on this page.
There are a number of small new features in Marauroa 3.8 that will be explained on this page.

Please note, the term "Marauroa users" refers to developers using Marauroa in their own software. It does not refer to the end user of the programs developed using Marauroa.


== Version compatibility ==
== Version compatibility ==
Line 7: Line 9:
; Summary : Different protocol versions 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 a 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 should already check the version of the game client.
; Impact on Marauroa users : There is no negative impact on projects using Marauroa because games usually have to check the version of the game client anyway and normally this implies a version of the marauroa.jar distributed with it.
; 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.
; 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.
: 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.


: 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.
Line 17: Line 19:


=== Database ===
=== Database ===

; Summary : The protocol version is now stored in a new column along the blog
; Reason for change : The new map feature made it necessary to change the way RPObjects are serialized.
; Impact on Marauroa users : The first Marauroa server start after an update might take a couple of seconds because a protocolVersion column is added to the table rpobject and rpzone.
; Details : As characters and zones are stored using the serialization mechanism, chances to the serialization protocol break saved content. Marauroa needs a way to learn the version of the protocol used for saving the blog in order to load it correctly.


== Protocol extensions ==
== Protocol extensions ==


=== Details in character list ===
=== Details in character list ===

; Summary : The character list on login now contains the RPObject with details about all owned characters
; Reason for change : todo
; Impact on Marauroa users : A new optional method onCharacterDetails in ClientFramework will provide the additional data.
; Details : todo


=== Maps attributes ===
=== Maps attributes ===

; Summary : todo
; Reason for change : todo
; Impact on Marauroa users : todo
; Details : todo


== Performance optimization ==
== Performance optimization ==
=== Asynchronous login ===
=== Asynchronous login ===
; Summary : todo
; Reason for change : todo
; Impact on Marauroa users : todo
; Details : todo
=== Baking of RPClasses ===
=== Baking of RPClasses ===
; Summary : todo
; Reason for change : todo
; Impact on Marauroa users : todo
; Details : todo