Difference between revisions of "Server"

From King Arthur's Gold Wiki
Jump to: navigation, search
m
(Linux)
Line 48: Line 48:
 
# Change to the new directory: <br /> <pre>cd kag_linux</pre>
 
# Change to the new directory: <br /> <pre>cd kag_linux</pre>
 
# [[Server#Configuration|Configure]] your server.
 
# [[Server#Configuration|Configure]] your server.
# Run your server: <br /> <pre>./dedicatedserver.sh</pre>
+
# Run your server: <br /> <pre>./dedicatedserver.sh</pre><br />To connect, either find it in the server list or connect directly using the IPaddress:PortNumber format. Domain names will not work in place of the IP address.
 
</p>
 
</p>
 +
 
==Windows==
 
==Windows==
 
<p>
 
<p>

Revision as of 03:59, 22 February 2012

This page might not be up-to-date (build 281).

The King Arthur's Gold Server is a relatively lightweight, 32-bit command line application. Freely distributed, this program allows anybody with an internet connection and a computer to host their own King Arthur's Gold server.

Note: There is very little official documentation for the KAG server. As a result, the majority of this document was created from observation, trial and error. Use at your own risk.

Features

  • All servers are added to the official server list to be seen by anybody who chooses the "Pick a Server" option in-game.
  • Servers can be remotely controlled in game by anybody with the server's Remote Control (RCON) password.
  • Servers can be password protected. (This is separate from the RCON password.)

Requirements

Hardware

The hardware requirements for a KAG server are minimal. If a computer can run the full KAG game, it can run the KAG server.

Software

The KAG server can run on Linux, Windows, or Mac. The recommended operating system is Linux, specifically Debian.

Network

The KAG server uses three ports.

Description Modifiable? Firewall Tolerant?
50301 Used to listen for connections. yes no
50328 Used to communicate with clients. yes yes
51308 Used to communicate with the master server. no yes

Firewall tolerant means that a typical connection-oriented (SPI) firewall will allow that port through. Depending on the firewall, all ports may need to be forwarded.
The internet connection is typically the bottleneck that determines the number of users a server can support. Hosting more users than a connection can support will cause a high ping time and significant lag.

Installation

Linux

This guide is written for 32-bit Debian Linux. To run on 64-bit Debian Linux, the ia32-libs package must be installed.

  1. First, download the server:
    wget http://kag2d.com/downloads/kag_linux.tar.gz
  2. Next, decompress the archive.
    tar -zxf kag_linux.tar.gz
  3. Change to the new directory:
    cd kag_linux
  4. Configure your server.
  5. Run your server:
    ./dedicatedserver.sh

    To connect, either find it in the server list or connect directly using the IPaddress:PortNumber format. Domain names will not work in place of the IP address.

Windows

  1. First, download the server: http://kag2d.com/downloads/
    Note: The downloads page only lists a linux server. Even though the server is intended to run on Linux, it will run on Windows.
  2. Next, decompress the archive. This can be done with many different programs, including PeaZip.
  3. Open the folder the archive was extracted into.
  4. Configure your server.
  5. Run your server by clicking dedicatedserver.bat.

Mac

Due to their similarities, the installation instructions for Linux should apply for Macs.

Configuration

The KAG server is configured using text files. Customizing a KAG server installation involves modifying the variables in these files. There are two ways to do this: manually and using Maqq's Configuration Tool. Of the two, Maqq's Tool is by far the fastest and easiest method.

One of the most important decisions a server administrator must make is whether or not to allow the Royal Guard to police their server. Please read the opening posts in these threads (In-game moderators (AKA Royal Guard) & The Royal Guard - FAQ & Public Policy) so you can make an informed decision.

If you decide you don't want guards to moderate on your server, please ensure they are turned off in your dedicated_autoconfig.gm file like this:

global sv_allow_globals_mods = 0

Manual Configuration

Of the many editable configuration files that the KAG server depends upon, most customization is done in the dedicated_autoconfig.gm, dedicated_autostart.gm, mapcycle.cfg, and *-generator.cfg files. These are all in the kagServer/Base/Scripts directory, where kagServer is the directory the server was extracted into.

dedicated_autoconfig.gm

Of the many modifiable variables, these are some of the most important:

global m_width = 600; // Map generator width. Affects RAM usage.
global m_height = 250; // Map generator height. Affects RAM usage.
global m_seed = 0; // Map generator seed. Pick a random number.
global g_kickvote_percent = 33; // Percentage of players needed for a kick vote to pass.
global g_mapvote_percent = 51; // Percentage of team players needed for a map vote to pass.
global g_vote_time = 60; // How long (in seconds) does the voting take place.
global g_kickvote_bantime = 30; // How long (in minutes) is the player banned after a kick vote.
global sv_maxplayers = 16; // Maximum number of players allowed ingame.
global sv_port = 50301; // Server communication port, this is where it listens for incoming clients. Remember to open this port in your firewall.
global sv_password = ``; // Sets the server password.
global sv_rconpassword = ``; // Sets the server remote console password. This is important if you want to have control over your server.
global sv_require_auth = 1; // If set to 1 server checks client authentication via master server.
global sv_gold_only = 0; // If set to 1 only premium account players can join (aka Gold Server).
global sv_allow_globals_mods = 1; // If set to 1 global KAG moderators and admins can kick/ban players on server.
global sv_deltapos_modifier = 1; // Controls the threshold for delta packet updating. Value higher than 1 will reduce bandwidth, lower increase.
global sv_maxping = 450; // Max ping allowed on server after which player is kicked. Large ping players will slow down server.
global sv_maxping_warnings = 200; // Because of ping spikes, warnings are issued if a player has ping over max number.
global sv_maxhack_warnings = 25; // Maximum amount of warnings where server thinks player is hacking.
global sv_alloweditor = 1; // If set to 1 players that have RCON can start map editor on server
global sv_name = `KAG game`; // Sets the server name displayed in server browser.
global sv_info = ``; // Sets the server info displayed in server browser. If you want it multi-line simply move text to new line with enter.

dedicated_autostart.gm

LoadRules("Rules/CTF/gamemode.cfg");
LoadMapCycle( "Scripts/mapcycle.cfg" );
LoadMap( "" );

This file is very important. If you want to change rules for your server then you have to edit the first line to contain the path to the config-file which you want to use.

Just leave it like that if you want your server to automatically change the map after a match is finished. But if you want to have one map all the time instead of a nice mapcycle remove the path from "LoadMapCycle" and use "LoadMap".

mapcycle.cfg

#KAG mapcycle;
# put map generator files, png files here, or script files
# eg. mapcycle = Maps/example1.png; Maps/example2.png; Maps/generator_flat.cfg; Maps/swordfight.gm;

mapcycle = Maps/generator_ctf_mountain.cfg;
You must separate paths to files with semicolons. Allowed files are generators, script files and maps in png format.

Generator.cfg

I use here general name for generator configuration file, you can name it however you like.
Generator uses "libnoise"-library. You can read a tutorial about how to use it here.

Maqq's Server Configuration Tool

Maqq's command-line interface server configuration tool provides an interactive way of setting up a server:

Download in the root KAG directory (C:\KAG or /kag_linux , in windows and linux respectively).

  • In Windows, run KAGServer.exe and follow the onscreen instructions.
  • In linux, make it executable via chmod +x sconfig.py and run with ./sconfig.py . Daemonisation tools applicable to dedicatedserver.sh (screen, tmux, nohup etc) still useable with this program

Reusing Generated Configs

These commands reuse the generated configuration files:[1]

  • If you're using linux, type this in the console:
./KAGdedi autostart Scripts/custom_autostart.gm autoconfig Scripts/custom_autoconfig.gm
  • If you're using windows, you should consider using the [GUI version], it lets you save the configuration into a file, but if you want to use the CLI version, type this in the command prompt:
KAG autostart Scripts/custom_autostart.gm autoconfig Scripts/custom_autoconfig.gm

Download Maqq's Server Config Tool