The largest release to date of Snipe server is now available for download from Github repository. This release brings the following additions and changes to the Snipe server platform:
New packages:
-
Room manager package. Used for creation and management of the player rooms on slave servers. Persistent rooms are supported.
-
Leaderboards package. Manages the leaderboards updated in real-time.
-
Basic user matchmaking package. Provides your project with server-side 1v1 matchmaking.
-
Extended user matchmaking package. Further customization of basic matchmaking that supports any number of users matched against each another.
-
Test messages package. Gives access to various client requests that allow measuring server performance and profiling important APIs.
-
Kongregate login package. Kongregate network login API was moved into a separate package from the core.
-
User session length stats package. Allows the collection and display of average user session length stats.
Additions:
- Large amount of server optimizations. In particular, user login and registration were rewritten to support much heavier load (with minor breaking changes detailed below).
-
Asynchronous database connections manager and API for asynchronous database queries. Used in the new user login and registration code.
-
Live client migration between slave server threads with support for automatic migration on client login.
- Editor and server support for static tables.
- Various clan module additions and fixes.
-
Macros for automating access to user attributes and variables.
- Ingame shop module item purchases stats collection and display.
- Editor support for stats dashboard.
-
Debug server compilation flags.
New cache server configuration variables:
- “asyncDatabase.threads” - Sets the amount of async database manager threads (default: 1)
- “asyncDatabase.connectionsPerThread” - Sets the amount of database connections per thread (default: 1)
New slave server configuration variables:
- “server.compressionMinSize” - Sets the minimum message size for compression to work (default: 512 bytes)
Breaking changes:
Example (before):
--resource ../../../snipe/edit/www/tpl/form.header.htpl@form.header
--resource ../../../snipe/edit/www/tpl/form.footer.htpl@form.footer
After:
--resource ../../../snipe/edit/www/tpl/form.header.htpl@core/form.header
--resource ../../../snipe/edit/www/tpl/form.footer.htpl@core/form.footer
Important note:
You may see the following error message during server start:
Called from sys/db/Postgresql.hx line 405
Uncaught exception - load.c(357) : Primitive not found : npostgres@np_set_non_blocking(2)
It means that you need to replace your old “npostgres.ndll” file with the new one from the core containing new functions for asynchronous database calls.
This is a companion discussion topic for the original entry at http://blog.snipeserver.com/news/2017/03/22/release-3-4