Skip to content

A base server reimplementation for a certain tank browser game, starting with Tanki and ending with Online.

License

Notifications You must be signed in to change notification settings

NarukamiTO/server

Repository files navigation

Narukami Server

Narukami Logo

At the moment being, this is not a full-fledged server, but a core with basic features to build upon. Target feature level is a tournament server.

I discuss development of this server at Vint Discord server, a Tanki X server reimplementation community. You can ask questions there, but if you have an issue, first describe the steps you have taken (don’t just say, "I can’t run the server").

Requirements

Running

The server uses JVM system properties for configuration. You need to set:

  • res.root to the out directory of the resource generator.

  • res.url to publicly accessible URL of the resources server (e.g., http://127.0.0.1:5192 for local).

  • config.url to publicly accessible URL of the config server (e.g., http://127.0.0.1:5191 for local).

  • game.url to publicly accessible endpoint of the game server (e.g., 127.0.0.1:5190 for local).

Prefix properties with run. to pass them to the server when running with run Gradle task.

Example:

./gradlew run \
  -Drun.res.root=$(realpath ../resource-generator/out)
  -Drun.res.url=http://127.0.0.1:5192 \
  -Drun.config.url=http://127.0.0.1:5191 \
  -Drun.game.url=127.0.0.1:5190

You may configure log levels using KOTLIN_LOG environment variable with syntax similar to RUST_LOG: root_log_level,my.package=log_level.

Connecting

Standalone Flash Player / Ruffle

Optional query parameters:

  • lang - client language, defaults to en.

  • debug - whether to enable (useless?) debug mode, defaults to false.

  • autologin=username:password - automatically log in with the given username and optional password.

Warning

Game is unplayable on Ruffle because:

  • shader compilation panics (hardware Alternativa3D);

  • #16950 (software Alternativa3D);

  • spaces cannot be closed correctly because Socket.flush() throwing an error on closed socket.

License

Licensed under GNU Affero General Public License, version 3.0 or later (LICENSE or https://www.gnu.org/licenses/agpl-3.0.html).

In short, you must make the entire source code available to your users if you host this server for anybody. If you copy substantial part of the code, your project becomes a derivative work, and you must also license it under AGPLv3. Read more about AGPLv3.

To clear misconceptions, distributing a .jar file is not enough, you must provide the source code used to build it.

About

A base server reimplementation for a certain tank browser game, starting with Tanki and ending with Online.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages