Readme File for Command & Conquer Renegade(tm) Dedicated Server for Linux ====================================================================== March 1, 2003 Copyright (c) 2002, 2003 Electronic Arts Inc. Command & Conquer, Command & Conquer Renegade, Westwood Studios, the Westwood Studios logo, EA GAMES, the EA GAMES logo and Electronic Arts are trademarks or registered trademarks of Electronic Arts Inc. in the U.S. and/or other countries. All rights reserved. All other trademarks are the property of their respective owners. Westwood Studios(tm) and EA GAMES(tm) are Electronic Arts(tm) brands. This software is provided to you free of charge and is not intended for sale. Neither Westwood Studios, Inc. nor Electronic Arts Inc. have any liability to you for any problems you have regarding this software, or for any damage that the software may cause. This software is unsupported. Westwood may, at its option, post FAQ and other information related to the Linux Renegade Dedicated Server at the official Renegade web site at: http://www.westwood.com/games/ccuniverse/renegade NOTES: ====== 03/01/03 - linux specific fixes. Fixed custom maps. Fixed command line options. Fixed remaining unicode issues - player_info on rh8.0, player leaving/joining game messages, suicide messages, team change messages. Fixed resultsNN.txt files. Fixed extras characters and re-enabled them. Fixed extra skin on Mobius. Turned off annoying spam of Registry-related warning messages. 01/24/03 Merged in 1.037 fixes. Updated READEM.txt Fixed player name issue Fixed player_info command Fixed console display of in-game F2 chat Fixed Diagnostics logging Disabled extras 01/09/03 Merged server-side 1.036 changes. Updated README.txt. 11/17/02 This is BETA software. It has some issues and may not run on all systems. See "Appendix B - Known Issues" for details. Contents: ========= 1.0. System requirements 1.1. Which File to DL? 2.0. Game Listing Service: GameSpy. 2.1. Running A Server On GameSpy 2.2. OK, I've Installed The Server, What Should Happen When I Run It? 3.0. Configuring Your Server 3.1. SERVER.INI / GAMESPY.INI 3.2. SVRCFG_CNC.INI 4.0. Administrating Your Server. 4.1. Console Commands. 4.2. RenRem.exe - The Remote Server Admistration Tool. 5.0. Command Line Options Appendix A - Renegade Linux Credits Appendix B - Known Issues Appendix C - Linux FDS and the Console Appendix D - Registry? Appendix E - Final Thoughts 1.0. System requirements. ========================= Running a dedicated server has some specific system requirements that you need to be aware of: Component Suggested Min Spec Comment CPU: P3/800Mhz This is minimum specification for 32 players (though you may get away with a less powerful machine for smaller games). Note: if you have a dual CPU system with enough RAM and sufficient bandwidth available, you can run one server instance (or "slave") per CPU at this rating. OS: Red Hat 7.3, 8.0 The server has not been tested on any other platforms. However, it does have minimal system requirements and some members of the community have gotten it to work on other distributions. The trick is to get the same system libraries as Red Hat 7.3 or 8.0. Note that there are different files for both RH 7.3 and RH 8.0. Make sure you get the right one for your system. RAM: 128MB 128MB should leave enough free system memory to run one server instance. If you are running multiple server instances on one machine, you will need a further 128MB per instance. Disk: 200MB The Linux server requires approximate 200 MB of disk space when uncompressed. Bandwidth: 128Kbs 4 players [cable modem/ADSL] These broadband technologies typically feature 128Kbs upstream connections (which is the important number). Note: some providers will upgrade you to a so called "symmetric" connection (512/512) for a nominal fee. This should allow you to run a 16 player game. 512Kbs 16 players [cable modem/DSL] If you have a symmetrical connection @ 512Kbs, you should be able to support 16 players. 1Mbs 24 players 1.5Mbs 32 players 1.1. Which File to DL? =================================================================== There are two versions of the Renegade Linux server, one for Red Hat v7.3, and one for Red Hat v8.0: Renegade_1037_Linux_BETA_RH7-3.tar.gz Red Hat 7.3 Renegade_1037_Linux_BETA_RH8-0.tar.gz Red Hat 8.0 You may wish to run md5sum on the files to confirm that the DL has gone successfully. Compare the returned Checksum to the numbers in the checksum file in the main FTP directory. 2.0. Game Listing Service: GameSpy. =================================================================== You may list your server on the GameSpy Arcade game listing service. No support is included for running on Westwood Online. 2.1. Running A Server On GameSpy In GameSpy mode, you will not require a Westwood Online nickname or serial number. Note that clients connecting to your server will require a serial number (ie, the CD-key that came with their retail version of the game disks). Currently, we do not support slave servers in GameSpy mode; however, you can still run multiple server instances. Instructions for this are later in this readme file. Once you have installed, your server should be good to go with generic settings. To start your server, simply 'cd' to the directory it's installed in and type ./renegade_server or ./keepalive. See section 3. Configuring Your Server for details on customizing the settings. 2.2. OK, I've Installed The Server, What Should Happen When I Run It? There are two things to check when you startup your server. First, the server should start printing status messages to the console. These messages should indicate whether all is well. See the reference below (in section 4) for available server console commands. Secondly, your game should appear to other players on GameSpy. Make sure to set the name appropriately in the data/svrcfg_cnc.ini file (so that you can find your server in the list). 3.0. Configuring Your Server ============================ Once you have your server installed and you have verified that it is correctly listed on GameSpy, you can begin to customize your server settings. Note that the defaults should be fine for most cases, but you may be able to optimize your performance by adjusting various settings here. 3.1. server.ini There are a number of .ini files you can adjust. The first one is server.ini which lives in the main server installation directory ( .../Server by default). This file controls the behavior of a Renegade Free Dedicated Server. The first instance of the server is referred to as the Server. Slaves are not currently supported in GameSpy mode. In the following file format description, extracts from the .ini file are surrounded by the following: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ The first section of the file contains the settings for the Renegade Server: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ [Server] ; Config = ; ; This specifies the location of the game settings file used by the master ; server. You can change this to point to any Renegade server settings .ini ; file or change the default .ini file to reflect the game settings you would ; like for your server. Config = svrcfg_cnc.ini ; GameType = ; ; Set this to GameSpy for a GameSpy mode dedicated server. ; Set this to LAN for a LAN mode dedicated server. ; GameType = GameSpy ; GameSpyGamePort = ; ; This is the UDP port that the Renegade Dedicated Server will use to ; communicate with game clients, while running as a GameSpy Server. When running ; as a GameSpy server this port value will be used instead of the above Port value. ; The default value is 4848. GameSpyGamePort = 0 ; GameSpyQueryPort = ; ; This is the UDP port that the Renegade Dedicated Server will use to ; communicate with the GameSpy Master Server and GameSpy clients. The default ; value is 25300. If this port is in use Renegade will find another port ; to use instead(25301, 25302, ...). GameSpyQueryPort = 0 ; BandwidthUp = ; ; If you know how much bandwidth you want to allocate for the Renegade ; Server to use then you can specify it here. A minimum of 30k bits per second ; is recommended for each client you plan to connect to. If you leave this ; value as 0 (the default) then the available bandwidth will be automatically ; detected(WOL only). Some guidelines follow. ; ; Set to 1500000 for a 32 player game ; Set to 512000 for a 16 player game ; Set to 250000 for an 8 player game ; Set to 128000 for a 4 player game ; ; Make sure you don't set the Bandwidth number to be higher than your ; actual available bandwidth or gameplay performance will be poor. BandwidthUp = 0 ; NetUpdateRate = ; ; Set this to control the frequency of network updates sent to clients. This ; is the number of updates sent per second. Higher values increase network ; traffic, lower values decrease traffic. Valid values must be in the 5 - 30 ; range. As you increase NetUpdateRate the values set for BandwidthUp must ; also scale accordingly. The default is 10. NetUpdateRate = 10 ; AllowRemoteAdmin = ; ; Set this to true to enable remote server administration via the RenRem ; tool. You must also set a password for remote administration to be ; allowed. ; Slave servers inherit this setting from the master. AllowRemoteAdmin = false ; RemoteAdminPassword = ; ; This is the password required to connect to a server with the RenRem ; admin too. ; Slave servers inherit this setting from the master. RemoteAdminPassword = ; RemoteAdminIp = ; ; This is the ip that the remote administration service will listen for ; incoming request on. The default is to listen on ALL ip addresses. If ; you have an internal ip address and only want to administer internally ; set this to your internal ip address. ; RemoteAdminIP = ; RemoteAdminPort = ; ; The port to connect to for remote administration. ; This can be set per slave. The default slave ports will be shown when ; connecting to the master with the RenRem tool. RemoteAdminPort = ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3.2. SVRCFG_CNC.INI This file lives in the data folder under the main server install directory, and contains the default gameplay settings. It is pointed at by the server.ini file (or by an alternative server.ini as specified by the command line startserver= option). Most of the settings below can be changed while the game is in progress and the changed settings will take effect the next time the map cycles. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ [Settings] ConfigName=Default C&C Server Settings ; ; The name of the server as it appears in the lobby list. This has a limit of ; 25 characters in GameSpy mode. ; bGameTitle=Dedicated Renegade Server ; ; This is the Message of the day. Any text placed here will show in a pop-up ; dialog box on the screen of any player joining the game. ; bMotd= ; ; Set ModName to load a custom MOD package. All clients who join the server ; will need to have the MOD package also. ; ; ModName=ModTest.pkg ; ModName= ; ; If DoMapsLoop is set then the map cycle will start again from the beginning ; once all maps have been played. ; DoMapsLoop=yes ; ; The time limit for each game. ; TimeLimitMinutes=30 ; ; Radar mode. ; ; 0 = No radar. ; 1 = Show only friendly units on the radar. ; 2 = Show all units on the radar. ; RadarMode=1 ; ; Allows the server to automatically restart after a connection loss, system ; failure, or crash. To restart after a system failure, Windows must be set to ; automatically log in. ; Enabling auto restart also allows automatic unattended updating if a patch ; becomes available (Westwood Online mode only). ; IsAutoRestart=yes ; ; Set to yes to make a passworded game. ; IsPassworded=no ; ; The password required for players to join the game. ; bPassword= ; ; Allow players to join this server when they select 'Quick Match' (Westwood ; Online mode only). ; IsQuickMatch=yes ; ; Should this server be laddered? A laddered server reports game game results ; and statistics to the Westwood Online ladder system at the end of each game. ; IsLaddered=yes ; ; Team remixing causes teams to be re-balanced at the beginning of every map. ; Disabling RemixTeams can cause a game to become unbalanced over time as ; players drop in and out. ; RemixTeams=yes ; ; Allows buildings to be repaired. Turning this off will result in much ; shorter games. ; CanRepairBuildings=yes ; ; This setting effects whether a vehicle driver also controls the vehicles gun. ; Disabling this will allow vehicle passengers to control the gun. Most players ; seem to prefer this setting on. ; DriverIsAlwaysGunner=yes ; ; Enabling weapon spawning will cause extra weapons to be available for pickup ; at various locations in the map. ; SpawnWeapons=no ; ; Enable this to allow friendly units to damage each other. Friendly fire games ; are generally more open to abuse by 'grief' players. ; IsFriendlyFirePermitted=no ; ; This allows players in the game to change teams at will. ; IsTeamChangingAllowed=no ; ; Set this to 'yes' to allow clans to play in this server (Westwood Online mode ; only). Only two clans can play in a server at once. ; IsClanGame=no ; ; The maximum number of players allowed in a game. Generally this should be set ; to an even number to avoid unbalanced teams. Maximum number of players is 127. ; MaxPlayers=16 ; ; Setting this causes the game to end when all the buildings belonging to a ; team are destroyed. ; BaseDestructionEndsGame=yes ; ; This enables winning the game by placing a superweapon beacon on the enemy ; teams pedestal. ; BeaconPlacementEndsGame=yes ; ; The number of credits each player gets when they join the game. ; StartingCredits=0 ; ; This is the name of the first map in the map cycle. ; MapName=C&C_Field.mix ; ; The map cycle. This is the order that maps will be played. There must be at ; least one map in the list. ; MapName00=C&C_Field.mix MapName01=C&C_Volcano.mix MapName02=C&C_Under.mix MapName03=C&C_Walls.mix MapName04=C&C_City.mix MapName05=C&C_Canyon.mix MapName06=C&C_Hourglass.mix MapName07=C&C_Mesa.mix MapName08=C&C_Islands.mix MapName09=C&C_Complex.mix ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4.0. Administrating Your Server. ================================ We have provided several tools to aid administration of your Renegade server. 4.1. Console Commands. Here's a few of the commands the Renegade server supports from the console window. ADMIN_MESSAGE Sends an admin(popup) message to all clients. Host only. (amsg) GAME_INFO Print info about a game in progress to console box GAMEOVER End current game (server only). KICK Kick nickname/playerid from the server. BAN Permanently ban nickname/playerid from the server. This doesn't actually kick the user, it just adds them to the ban list. (GameSpy Servers only) MESSAGE Sends a chat message to all clients. Host only. (msg) NET_UPDATE_RATE Set the max. net update think rate (times per second). (nur) PLAYER_INFO Print the info/id's of players in the game to the console box. ** See Known Issues QUIT End game and quit to desktop (dedicated server only). RESTART Quit and restart process (dedicated master server only). SCREEN_UV_BIAS Toggles the half pixel bias in screen text. SET_BW_BUDGET_OUT Set total bps budget out. (sbbo) TOGGLE_SORTING Toggles WW3D sorting RenRem - RenRem has not been ported to Linux at this time. Odds are high it will be soon. 5.0. Command Line Options ========================= The Renegade server supports these additional command line options: startserver=XXXXXXX.INI Use this option to pass a specific server.ini format file to the server. This can be used in conjunction with the /multi option to enable multiple servers to connect to the GameSpy service. Each server.ini file can contain the name of a specific game config file (on the Config = line) so that each server instance can have its own game settings (including the name). /multi Allow multiple instances of the server to run concurrently. ip=xxx.xxx.xxx.xxx Specifies the IP address to bind to for multi-homed systems. ================================== Appendix A: Renegade Linux Credits ================================== Programming - Greg Underwood With help from: Greg Hjelstrom Steve Tall Pat Smith Byon Garrabrant Kenny Mitchell Special Thanks to: Phil Edwards - My friend and mentor. Without his help, this project would never have come even half as far as it has. Steve Wetherill - for letting me start this project. Westwood & Louis Castle - for letting me continue to pursue this project. The rest of the Renegade Team - for making such an incredible game. Mac at oneshell.de, Blazer, jonwil, Crimson - for their help in testing, debugging & awesome community tools. ======================== Appendix B: Known Issues ======================== Command line options - Fixed C&C_Glacier_Flying.mix, custom maps - Fixed Player_info Console command - Fixed. For real on RH8.0 now, too! RenRem - appears to be broken currently - IE: Win32 RenRem can't talk with the Linux FDS. Addendum - I made some progress against this, but still haven't gotten it fixed. Addendum to the Addendum - Oh well. Sorry guys, couldn't get it fixed. However, there is a RenRem clone for Linux that works great: http://mac.tactical-command.de/renrem Check it out. No warrenties supplied, it's a 3rd party tool, so YMMV, Buyer Beware, etc. Extras characters - Fixed and Re-enabled. Dr. Mobius Extra Skin - Fixed. LAN mode - I've had some trouble getting LAN mode to work in the most recent build, and no time to look into it. Diagnostic Logging Output - Fixed. See Appendix D. Anything else that's wrong is a surprise to me... but given the large scale of the game and limited testing resources, it won't shock me too much if there are other things I've missed. ===================================== Appendix C: Linux FDS and the Console ===================================== The Linux FDS uses what is called "Non-Canonical I/O" mode. In plain english, this means I get access to the keystrokes before you hit the Enter key. Much like the Win32 functions along the lines of "GetKeyPress", etc. The downside to this is that the Linux FDS requires an open terminal type connection on STDIN. IE: you need a shell open to run the Linux FDS. On top of that, it needs to be in the foreground. You can't start it in the background, as that disables the terminal input on STDIN. The upshot is that you have tab-completion for your shell commands. IE: you can start typing 'player_info', and on about the 'l' or so, hit tab. From there the server should complete the command for you and you just need to hit enter to issue it. A good work-around is to use the screen command. Various methods for using it have been discussed on the Renegade Forums, in the Linux Beta section. Many other good things are discussed in that forum - like auto-restart scripts, etc. ====================== Appendix D - Registry? ====================== Yes, that's right. There's a registry available for the Linux FDS. It's in the data directory, called registry.dat. If no such file exists, run the new 1.037 version of the executable and it will create one on succesful shutdown. IE: let it load and then type quit. This file contains all the keys the game creates in the Win32 registry, and they can be edited and adjusted. An upshot of all this is that you can now enable Daignostics logging via the EnableDiagLogging key. Note that the key names are prepended with a data-type name - DWORD_, STRING_, etc. =========================== Appendix E - Final Thoughts =========================== So, as many of you know Westwood Studios is officially closing their doors. I've been with the company for about 2.5 years now, and I have to say I'm rather sad to see it go. Not only because I lose my job, but because it's the end of an era. Westwood games have been some of my favorites for a long time - I played and loved C&C when I was at University. Well before that, I played and loved many of the games they had a hand in and I never even knew it - Eye of the Beholder, plenty of Gold Box games, etc. About a year after I got here someone high up started putting up framed boxes of all the games Westwood shipped. If you were lucky enough to get a tour of the building, you no doubt saw them. I remember spending an afternoon, shortly after the last box went up, just walking the halls and looking at all the projects this studio has been involved in. It is verily a sad day but I'm glad I was able to take part, if only a little and only at the end, in such an incredible history. I hope my contributions are as appreciated by all of you, the fans, as much as I appreciated the earlier works of the studio when I was among you. Somehow, I think it fitting that one of my final acts here at Westwood is to put out a fan-driven patch for the Renegade Linux FDS - a project that the fans demanded. You folks are the best and I'm sorry I never got to meet even a small percentage of you. This patch is for you, and without the support and encouragement of the folks I list in the special thanks section I never would have been able to push myself to get this done. The weekends I gave up for this project are innumerable, and again it feels fitting that this last patch is being completed on my own time, on a weekend. In the end, I'm still a fan of Westwood and Westwood games. Enjoy the patch, enjoy the game, and enjoy the history that was Westwood. Don't dwell on the fact that it had to end, as all good things must, but rather focus on the good. Remember all the great times you had while playing our games. I know I will be. I can think of no better way to end my career at Westwood than with one of my favorite Douglas Addams quotes: "So long, and thanks for all the fish." Codewench, aka Greg Underwood