|
Objective. Set up a dedicated Unreal Tournament server under Ubuntu.
Tasks. Installation and configuration of UT dedicated server (covers Unreal Tournament although some parts of this guide may be applicable to later variants of UT such as UT2003/UT2004) Recommendations. Review all instructions on this page before you begin. Refer to the following sites for more information on the commercial software referred to on this page: http://en.wikipedia.org/wiki/Unreal_Tournament http://www.epicgames.com/ http://www.planetunreal.com/files/ Page dependencies (ensure you have access to everything you need before you begin). Commands issued at the command prompt in this section are done so as superuser or root unless otherwise specified. When installed, Ubuntu does not ask for a root password to be specified. Either set a root password using sudo passwd root so that you can log in as superuser, or enter the commands listed in this guide prefixed with 'sudo'. Download the UT Linux Dedicated Server package (88MB). Various sites offer this for download, one of which is linked to here: http://ut.abfackeln.com/asu.html?page=dedicated If UTPure is required (see text), download the version 7G release candidate from here: http://www.unrealadmin.org/forums/showthread.php?t=6483 Text file editing from the command line. This guide uses the Nano application for text editing because of its simplicity. Alternative text editors are available. Basic Nano key combinations to remember are CTRL-O to save and CTRL-X to exit. Page format. Text in this format indicates command line entry by the user. Text in this format indicates an error returned by the system. Text in this format indicates a normal return from the system. Beware of similar characters such as 1(one), l(lowercase L), 0(zero), O(uppercase 'o'), | (pipe – Shift ' \ ' usually). Text enclosed in [square brackets] indicates a build-specific variable such as a version number or user name. Conditions. This information is provided for guidance only. Use of these instructions is deemed to be at your own risk. R3UK Limited welcomes comment on this information but cannot guarantee a reply and provides no technical support. Please use one of the many dedicated Linux forums or IRC channels if you require assistance. As with any installation on any computing platform, it is good practice to ensure important data is backed up in case unforeseen difficulties arise. Review all installation instructions on this page before you begin. The information on this page is based on a Default Ubuntu 6.06 Dapper installation and may vary for other Linux distributions. Procedure. Back around the millennium, me and some other nerds took great delight in shooting each other in the face in an Unreal Tournament multiplayer online arena. Back then the server consisted of a Dell 266Mhz PII running WindowsNT over a 512k cable broadband connection with clients using 16MB VooDoo2 graphics cards (or being wowed by the 32MB GeForce) and connecting (in some cases) by dial-up (yuk!). Of course, newer versions of UT came out and I bought both UT2003 and UT2004 along with a 128MB GeForce graphics card, but recently we decided to resurrect the original UT, partly for nostalgic reasons and partly because we know of people who could join our little online battle but who don't have the graphics hardware capable of running the newer prettier variants of the game. While showing its age in the graphics department, the original UT still has the playability we all know and love. The great thing is that even people with fairly old (3 to 5 years) computers should be able to play this game which is itself coming up to eight years old at the time of writing. I still had the NT Dell complete with UT server installation. It hadn't been fired up for years and didn't appreciate it's trip out of the attic. The box has turned an unhealthy yellow colour, had a flat CMOS battery and insisted the keyboard had a stuck key (which it didn't). Anyway, I decided it was best to allow the old girl to die with dignity and started afresh using Ubuntu and a different box (a Dell Optiplex GXa 233MHz PII – even older but in top condition!). Ubuntu installed fine on this box (albeit slowly) and recognised everything except the audio chipset, but as this was to be a dedicated server and not used for playing the game (which it could do even with just 2MB video RAM), I didn't bother correcting this. The following information should apply to any out-the-box Ubuntu install. The Dell was running Dapper and despite it's age (a manufacture date of 1997 pre-dating UT's release by two years), thorough 'testing' proved it was easily up to the dedicated server job. I've since installed it on a Duron 800 self-built box and installation was problem free on that too. Let's assume you have downloaded the dedicated Linux server package to your Desktop. Move this to your 'games' folder... mv ut_server_436.tar.gz /usr/local/games Now switch to this directory and extract the archive... cd /usr/local/games tar -xvzf ut_server_436.tar.gz This will create a directory called ut-server under /games/ which contains all your UT files. You can delete the .tar.gz archive if you wish as it's no longer needed. Within the ut-server directory is a System directory. In here is a file called UnrealTournament.ini which needs to be edited to configure the game to how you would like it to run. My .ini file is listed a bit later and you can copy and paste it or edit your own .ini file to your tastes. Note that by default the .ini contains information for playing the game on your computer (i.e. it holds information on the graphics hardware and the like). This can be stripped out of the .ini on a dedicated server which is why my .ini file is missing a lot of the default information. Once your .ini file has been edited, you can start the game (if running just on a LAN). If running over the internet you need to ensure you open the following ports in your firewall.... Protocol: Port Start: Port End: Port Map: UDP 7777 7781 7777 UDP 27500 27500 27500 UDP 27900 27900 27900 TCP 8080 8080 8080 Once these ports are mapped to the IP address of the machine running your dedicated server, the outside world should be able to connect to it. To start the server, use the command below from within the ut-server/System dir: ./ucc-bin server CTF-Face?game=BotPack.CTFGame? ini=UnrealTournament.ini log=ut.log -nohomedir & This will start a Capture The Flag (CTF) game using the BotPack.CTFGame parameters set in UnrealTournament.ini and starting with the Facing Worlds map. To save on typing, you could rename UnrealTournament.ini to something shorter such as ut.ini. An alternative game (such as a DeathMatch) with a mutator and renamed .ini file may begin as: ./ucc-bin server DM-Pressure?game=BotPack.DeathMatchPlus?Mutator=Instagib ini=ut.ini log=ut.log -nohomedir & It is possible to issue both these commands and have the same physical machine acting as two (or more) simultaneous servers (so long as your hardware is up to it and your network connection can handle the amount of people you may be inviting to join). To free up resources on my ageing Dell 233 PII I switched to a command prompt at the GUI login screen (CTRL-ALT-F1), logged in, then stopped Gnome from running (/etc/init.d/gdm stop) before launching the server. To stop the server, use the kill or pkill command (for example pkill ucc-bin) or kill [process ID] if you have obtained the process ID with the ps aux command. Once nice feature of the dedicated server is the web-based Admin interface. With the server running you should be able to connect to it's web interface using your web browser. Normally this runs over port 80 but in my .ini file it has been changed to 5080, so from my LAN I type: http://192.168.0.15:5080/ServerAdmin (where 192.168.0.15 is the fixed IP address of my dedicated server). This allows you to change game type, map, bot skill, etc. without having to edit the .ini file or restart the server. You can also kick and ban players from this interface (if you want to get rid of someone troublesome!) Something else you may want to add is UTPure which checks connecting clients to see if they have cheats. With UTPure installed, hacked clients won't be allowed to join games (each client downloads UTPure the first time they join a UTPure-enabled server). It's not bulletproof but it might stop some annoying teenager with an aimbot from getting on your nerves. To be honest, it's not much of a problem these days as not too many members of the public play this version of the game any more (it tends to be die-hard fans still playing and they're not interested in cheating). To add UTPure to your server, download the latest release candidate (7G) and extract the contents (including the contents of the sub folders into the ut-server/System directory). An example is below (assuming you downloaded UTPure to your Desktop and you are in your Desktop directory)... cp UTPureRC7G.zip /usr/local/games/ut-server/System cd /usr/local/games/ut-server/System unzip UTPureRC7G.zip cd uz cp * /usr/local/games/ut-server/System cd .. cd system cp * /usr/local/games/ut-server/System cd .. Two lines then need to be added to UnrealTournament.ini to enable UTPure (see Notes below). My UnrealTournament.ini files is listed below. IMPORTANT – read the Notes section at the end before copying any of my .ini file! [URL] Protocol=unreal ProtocolDescription=Unreal Protocol Name=Player Map=Index.unr LocalMap=CityIntro.unr Host= Portal= MapExt=unr SaveExt=usa Port=7777 Class=Botpack.TMale1 [FirstRun] FirstRun=0 [PackageRemap] UnrealShare=UnrealI [Core.System] PurgeCacheDays=30 SavePath=../Save CachePath=../Cache CacheExt=.uxx Paths=../System/*.u Paths=../Maps/*.unr Paths=../Textures/*.utx Paths=../Sounds/*.uax Paths=../Music/*.umx Suppress=DevLoad Suppress=DevSave Suppress=DevNetTraffic Suppress=DevGarbage Suppress=DevKill Suppress=DevReplace Suppress=DevSound Suppress=DevCompile Suppress=DevBind Suppress=DevBsp [Engine.GameEngine] CacheSizeMegs=4 UseSound=True ServerActors=IpDrv.UdpBeacon ServerActors=IpServer.UdpServerQuery ServerActors=IpServer.UdpServerUplink MasterServerAddress=unreal.epicgames.com MasterServerPort=27900 # ServerActors=IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900 ServerActors=IpServer.UdpServerUplink MasterServerAddress=master.mplayer.com MasterServerPort=27900 ServerActors=UWeb.WebServer ServerActors=UTPureRC7G.UTPureSA ServerPackages=SoldierSkins ServerPackages=CommandoSkins ServerPackages=FCommandoSkins ServerPackages=SGirlSkins ServerPackages=BossSkins ServerPackages=Botpack ServerPackages=UTPureRC7G [Engine.Player] ConfiguredInternetSpeed=2600 ConfiguredLanSpeed=20000 [IpDrv.TcpNetDriver] AllowDownloads=True ConnectionTimeout=15.0 InitialConnectTimeout=150.0 AckTimeout=1.0 KeepAliveTime=0.2 MaxClientRate=20000 SimLatency=0 RelevantTimeout=5.0 SpawnPrioritySeconds=1.0 ServerTravelPause=4.0 NetServerMaxTickRate=20 LanServerMaxTickRate=35 DownloadManagers=IpDrv.HTTPDownload DownloadManagers=Engine.ChannelDownload [IpDrv.HTTPDownload] RedirectToURL= ProxyServerHost= ProxyServerPort=3128 UseCompression=True [Engine.DemoRecDriver] DemoSpectatorClass=Botpack.CHSpectator MaxClientRate=25000 ConnectionTimeout=15.0 InitialConnectTimeout=500.0 AckTimeout=1.0 KeepAliveTime=1.0 SimLatency=0 RelevantTimeout=5.0 SpawnPrioritySeconds=1.0 ServerTravelPause=4.0 NetServerMaxTickRate=60 LanServerMaxTickRate=60 [Engine.GameReplicationInfo] ServerName=R3UK UT Server ShortName=R3UKUT MOTDLine1=www.r3uk.com MOTDLine2=Leamington Spa UK MOTDLine3=Dedicated Linux UT Server AdminName= AdminEmail= Region=0 [Engine.GameInfo] bLowGore=False bVeryLowGore=False bNoCheating=True GameSpeed=1.000000 MaxSpectators=1 AdminPassword=setyourpassword MinPlayers=10 MaxPlayers=12 ServerLogName=ut.log bLocalLog=False bWorldLog=False bHumansOnly=False bLowGore=False bVeryLowGore=False bMuteSpectators=False bAllowFOV=False bExternalBatcher=False AutoAim=0.930000 GamePassword= IPPolicies[0]=ACCEPT,* IPPolicies[1]= IPPolicies[2]= bBatchLocal=False DemoBuild=0 DemoHasTuts=0 bNoMonsters=False bCoopWeaponMode=False bClassicDeathMessages=False [IpDrv.TcpipConnection] SimPacketLoss=0 SimLatency=0 [IpServer.UdpServerQuery] GameName=ut [IpDrv.UdpBeacon] DoBeacon=True BeaconTime=0.50 BeaconTimeout=5.0 BeaconProduct=ut [UMenu.UnrealConsole] RootWindow=UMenu.UMenuRootWindow UWindowKey=IK_Esc ShowDesktop=True [Botpack.ChallengeBotInfo] Difficulty=1 [Botpack.DeathMatchPlus] bExpertMode=True bHardCoreMode=True bUseTranslocator=False bCoopWeaponMode=False MinPlayers=10 AirControl=0.350000 bChangeLevels=True bMegaSpeed=False bAltScoring=False bTournament=False NetWait=17 RestartWait=15 InitialBots=0 [Botpack.CTFGame] bUseTranslocator=True bCoopWeaponMode=True GoalTeamScore=3.000000 bNoTeamChanges=False FriendlyFireScale=1.000000 MaxTeams=2 MaxTeamSize=6 FragLimit=0 TimeLimit=15 bMultiWeaponStay=True bForceRespawn=True MaxCommanders=2 bNoMonsters=False bHumansOnly=False bClassicDeathMessages=False bChangeLevels=True [Botpack.Domination] bDumbDown=True bUseTranslocator=True bCoopWeaponMode=True GoalTeamScore=100 [Botpack.Assault] bUseTranslocator=True bCoopWeaponMode=True [Botpack.TeamGamePlus] bBalanceTeams=True GoalTeamScore=30 bPlayersBalanceTeams=True [BotPack.CTFMapList] Maps[0]=CTF-Face.unr Maps[1]=CTF-EternalCave.unr Maps[2]=CTF-HallOfGiants.unr Maps[3]=CTF-TwinValley.unr Maps[4]=CTF-Outlook.unr Maps[5]=CTF-Slum_Lord.unr Maps[6]= MapNum=4 [UnrealShare.UnrealGameOptionsMenu] bCanModifyGore=True [UTMenu.UTMultiplayerMenu] OnlineServices[0]=LOCALIZE,MPlayer OnlineServices[1]=LOCALIZE,Heat OnlineServices[2]=LOCALIZE,WON [UWeb.WebServer] Applications[0]=UTServerAdmin.UTServerAdmin ApplicationPaths[0]=/ServerAdmin Applications[1]=UTServerAdmin.UTImageServer ApplicationPaths[1]=/images DefaultApplication=0 bEnabled=True ListenPort=5080 [UBrowser.UBrowserHTTPClient] ProxyServerAddress= ProxyServerPort= [UTServerAdmin.UTServerAdmin] AdminUsername=admin AdminPassword=setyourpassword [IpServer.UdpServerUplink] DoUplink=True UpdateMinutes=1 MasterServerAddress= MasterServerPort=27900 Region=0 [UTMenu.UTServerSetupPage] bLanPlay=False bDedicated=True [UTMenu.UTStartGameCW] Map=CTF-Face.unr GameType=BotPack.CTFGame MutatorList= bKeepMutators=False [UTPureRC7G.UTPure] bUTPureEnabled=True Advertise=1 AdvertiseMsg=1 bAllowCenterView=False CenterViewDelay=1.000000 bAllowBehindView=False TrackFOV=2 bAllowMultiWeapon=False bFastTeams=True bUseClickboard=True MinClientRate=1000 bAdvancedTeamSay=True bHitSounds=False bTeamHitSounds=False ForceSettingsLevel=2 bNoLockdown=True bWarmup=False bCoaches=False bAutoPause=False ImprovedHUD=1 bDelayedPickupSpawn=False bTellSpectators=False bNoWeaponThrow=False bForceDemo=False PlayerPacks[0]= PlayerPacks[1]= Notes on the above: To enable UTPure after you have put the UTPure files in place, edit the [Engine.GameEngine] section with the following lines: ServerActors=UTPureRC7G.UTPureSA ServerPackages=UTPureRC7G The [UTPureRC7G.UTPure] section is then added automatically the first time a server is started with UTPure enabled. The second time the server is started, UTPure should be active. This means you don't need to paste the [UTPureRC7G.UTPure] section above into your .ini file. Under [Engine.GameEngine], notice the following line has been commented out (#) so that it doesn't run: # ServerActors=IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900 This is because when my server was running, there was a constant stream of traffic between it and the internet which we found was some communication with gamespy. To kill this traffic, the above line needs to be disabled or removed. [Core.System] details the directories where maps, textures and sounds are stored. To add extras to your server (such as more maps), copy them to the appropriate directory (e.g. /usr/local/games/ut-server/Maps). To use directories other than the defaults, change the paths listed under [core.system]. [Engine.GameReplicationInfo] contains the information you may want to list in the Message Of The Day lines (which shows up when a client joins one of your games). [UTServerAdmin.UTServerAdmin] holds the admin password for the web server interface. The amount of players and whether bots or humans only are allowed is set in [Engine.GameInfo]. To advertise your server to the outside world, set DoBeacon=True in the [IpDrv.UdpBeacon] section. Also, under [IpServer.UdpServerUplink] set DoUplink=True . Remember though, not many people are playing this any more and those that do probably run their own servers so it won't be like the good 'ol days when people dropped in for a frag at any time of the day! Set the various 'BotPack' sections so that each type of game plays as you want it. If you want certain maps to rotate in a particular type of game, set the map list accordingly (such as with my [BotPack.CTFMapList] section). You can create, for example, a [BotPack.DeathMatchPlusMapList] section if you were planning on running a DeathMatch server. Don't forget though all this can be set up with the point & click web interface once the server is running. [Uweb.Webserver] contains the ListenPort line which allows you to define the port your webserver is running on (80 by default). Happy fragging! Did the information on this page help you? If so, please help to fund this site by clicking one of our sponsored ads...
|