Game Server User Guide
Starting Game Server
Navigate to your 'Just Death' install directory ( usually '/Program Files (x86)/Steam/SteamApps/Common/JustDeath'/ ) and double click 'GameServer.exe' to start the game server. See below for an image of how it should look.
Note: The game server requires a fast connection, and a fast PC. Minimum requirements coming soon.
Port forwarding is required if your server is behind a firewall. The game server uses the ports ( type server port range here ). If you do not enable port-forwarding than nobody will be able to join your server, and it's ping will appear as "9999" in the client server browser. The port range you'll need to forward is 5420 to 5450, inclusive ( unless you define a custom port via a config file, see below for more information ). LAN Games are possible using this Game Server software, in the client you'll have to click the check-box "Show LAN games" in the server browser window. In order for your server to be visible on a LAN, you must set the port in the range of 5420 to 5450!
Once the Game Server executable is started you will see the GUI interface. It may take a few moments for the server to finish loading and generating all the city data necessary. Once you see the message "[ x sec ] Game Server successfully started. Waiting for players to join...", you should be ready to start accepting players, and all loading and creation of the game world is finished. See below for an image of how it should look.
The server performs all initial calculations that the client does, including full physics and AI navigation. In addition the server software has access to all data and rendering abilities available to the client. Due to this requirement, a valid Direct3D device is required - so unfortunately this game server software cannot be run on a virtual machine. If you really must run the game server on a virtual machine, or a computer with no GPU of any kind, use the "-NoDirectX" command-line argument. Example: "GameServer.exe -NoDirectX" and the server will run in a limited mode, with no Direct3D Device.
Overview of Functionality
The 'Just Death' Game Server uses a DirectX and Win32 GUI to present a lot of information to the game server's administrator. Previously I've used a console based interface ( ASCII characters ), but I feel this new, graphical interface, makes the administrating process easier, and also allows me to display a lot of information I wouldn't be able to typically display using standard character/console interface.
Once the server application is running ( see above, section 1, "Starting Game Server" ) you'll be able to change a lot of elements of the gameplay experience from the command input text box. At any point in time, just type "help" (without quotes) into the command input box and press the "Execute Command" button - a list of valid server commands will be output into the server's display window.
Server Display Modes can be adjusted via the combo-box in the bottom-right-side of the interface. Below is a brief description of each mode:
- Show Server Activity Log. By default this display mode is selected, it will show the administrator a text-based log of the recent activity on the server, such as players joining/disconnecting or other events occurring on the Game Server.
- Show Game World View. This mode displays a top-down view of the game server, representing all entities as white squares, and their relative positions in the game-world bounds. In the future I will render-to-texture the game world and display this to better provide a representation of the game-world to the administrator.
- Show Player Statistics. This mode displays all connected players and their scores, pings, FPS, etc. Meant to be a server-side replication of the scoreboard displayed to clients.
- Show Detailed Server Statistics. This mode is useful if you need to debug certain elements of the game server to monitor the current gameplay. Things such as team-score, victory condition, and other gameplay related items are displayed here in real-time.
- Optimized Display ( Boosts Server FPS ). This mode is designed to achieve the highest possible frame-rate on the server, on systems that might have a great CPU, but a mediocre graphics card. Sometimes rendering the "Server Activity Log" can cause a pretty big drop in FPS on these machines.
All important messages sent to the Server Activity Log are also logged to a text-file on the hard-drive. If you look in the same directory as you found the GameServer.exe, you'll now see a file called "GameServerLog.txt". This file gets deleted every time you run the GameServer.exe and replaced with the newest log. Another feature of the Game Server Activity Log is to display a "timestamp" ( in seconds since the game server was started ) beside all major messages. It will follow the format "[ x sec ] Server Message Here", where x is the number of seconds into the "life of the server" the message was received at.
Detailed list of Game Server commands coming soon ...
In order to easily change multiple options for your instance of the game server, it may be preferred to use a config ( configuration ) file, that includes a set of common commands and values. You can have a config file executed on your server's startup by using a command-line argument. For instance, if your config file is called "MyConfig.cfg" you'd run this command "GameServer.exe -configfile=MyConfig.cfg". It's important to note the "Config.cfg" file used for the client is totally different from the one your server will execute, do not modify the standard "Config.cfg" file in the game's root directory!
Below is a list of valid server commands and values that can be modified in your custom server config file:
- "NoDirectX" - Including this line in your config file will remove the server dependence on DirectX ( useful if running the server on a virtual machine ).
- "MaxPlayers n" - Where n is the maximum number of players the server should support ( range from 4 - 64 ).
- "ServerName n" - Where n is the string/name of the server.
- "GamePort n" - Where n is the game port you want the server to use ( range from 1 -> 65535 ) *Note make sure a port you select is not in-use by another application on your system. The default port range for the game servers is 5420 -> 5450. Also note if you're behind a firewall you'll need to make sure port-forwarding is enabled for whatever port you select! Do not modify this value if you want your game server to be visible on your LAN.
- "RoundTime n" - Where n is the maximum time each round should last ( in minutes ).
- "VictoryScore n" - Where n is the number of points necessary for a player to win the game ( only applies in Deathmatch gameplay ).
- Game Server/Client does not perform netcode version checking when joining a LAN game!!
- Does not work on a Virtual Machine, due to requirement of a Direct3D device. Please use the "-NoDirectX" command-line argument to run the server in a limited mode if you must run the server on a computer with no GPU.
Questions and More
Note that this document is a continuous work-in-progress, and will be changed frequently. See below for that last date of modification. If you have any particular questions, please post on the Steam forums, Radioactive-Software forums, or send me an e-mail (firstname.lastname@example.org).
Document last edited January 14, 2016, by Danny Green