Marauroa 3.9

From Arianne
Jump to: navigation, search



There are a number of small new features in Marauroa 3.9 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

Marauroa 3.9 introduces protocol version 34, but is fully compatible to older protocol versions back to 31 on both the server and the client side. A server can handle clients of different versions (both older and newer than the server) at the same time and will use the appropriate feature set for each of them,

Content Transfer includes hash

Summary 
Content transfer includes a md5 hash of the content, if both server and client are using Marauroa 3.9 or higher
Reason for change 
It was difficult for applications to keep track of the modifications of content. Some application used the timestamp field for a CRC-checksum. CRC, however, is a error detection algorithm, it is not sufficient to keep track of large scale changes in content.
Impact on Marauroa users 
The hash is a new attribute in the TransferContent object that may be read by the client.

Extended the size of the ban message

Summary 
Ban messages may be longer than 256 characters, if both server and client use Marauroa 3.9 or higher
Reason for change 
It is desirable to include more details and contact information in the ban message.
Impact on Marauroa users 
A longer ban message is possible

Logging of failed login with distinct status

Summary 
Failed logins are now logged with distinct status values
Reason for change 
Making it easier for support to assist players on login issues
Impact on Marauroa users 
none, unless the loginEvent table is read or written by other applications bypassing Marauroa
Details 
The value in the result columns of the loginEvent table means: 0 failed password, 1 successful login, 2 banned, 3 inactive, 4 blocked, 5 merged

Client support for skipable empty perceptions

Summary 
The Marauroa 3.9 client supports the omission of empty perceptions
Reason for change 
This change reduces the amount of network traffic; especially for very short turn times (e. g. Marboard uses 10ms in order to be very responsive)
Impact on Marauroa users 
None, yet. Starting with the future Marauroa 4.0 empty perceptions will actually be omitted. There might be an impact, if a client assumes that it receives a perception per turn time interval.
Details 
The client was counting the perceptions in order to determine when to send the "keep alive" message. Starting with 3.9, the client will send the "keep alive" message based on actual passed time. Note: The server will not yet omit empty perceptions in version 3.9, but will start to do that in version 4.0 for 3.9 and above clients. The reason for this approach is that the server side changes are a lot simpler in the refactored code.

RPClass support for RPAction

Summary 
RPClass are now supported for RPActions sent from the client to the server.
Reason for change 
Reduction of network traffic and type checks on the client side before a message is sent
Impact on Marauroa users 
Support for RPClass on RPActions on the server side exists since Marauroa 2.0, this change enables the client side to specify the RPClass.
Details 
It is an optional feature. It requires the RPClass-entries for the actions to be defined on the server side. And the client may then use those RPClasses when instantiating RPActions on the client side.

Smaller features

  • MySQL 5.5 and newer are now supported
  • New server.ini variable server_abuseContact to add a sentence with contact information to the ban dialog.
  • RPRuleProcessorImpl provides a default implementation for IRPRuleProcessor
  • Automatically try to use a configured SOCKS-proxy. If it cannot be used, Marauroa will fall back to direct connections