|
UnrealServer Tips & TroubleshootingLast Updated: 12/05/98 IntroductionFor optimal network play performance, you can launch a dedicated copy of the UnrealServer on a computer. This improves performance compared to using a non-dedicated server but, of course, it ties up a PC. UnrealServers are ideal for dedicated Internet servers, and they work similarly to Web servers: they sit around without a user interface, and service clients (players) who want to play. The documentation here assumes that you've installed Unreal into the \Unreal directory. In this case, the Unreal executable file, Unreal.exe, will be in the directory \Unreal\System. It is fine to install Imrea;If you've installed Unreal in a different directory, remember that the docu Launching UnrealServerFrom the Unreal menusYou can launch a dedicated server by going through the regular Unreal "Start Game" menu, setting the appropriate options, then choosing "Launch Dedicated Servers". This is what you'll want to do for quick LAN games where you have an extra machine sitting around that can act as a dedicated server. From the command lineAlternatively, you can launch a dedicated server from the command line by running Unreal.exe directly (which usually resides in the c:\Unreal\System directory, or the System subdirectory of whatever other directory you installed the game in). For example, to launch the level "DmFith.unr", run: Unreal.exe DmFith.unr -server When you launch Unreal from the command line, you don't have the opportunity to specify the game options within Unreal's menus. Rather, Unreal uses the options that were most recently set in the menus. These options are stored in the file \Unreal\System\Unreal.ini. Unreal LinksThere are two ways to place an Unreal link on a web page. unreal:// URL's
.unreal Link Files
Multiple Servers Per MachineEach copy of the Unreal dedicated server can serve one and only one level at a time. However, you can run multiple level servers on one machine. You may give each server a unique TCP/IP port number. If you don't specify a port number, Unreal will generate a unique one, so that multiple Unreal servers may run on a machine without any special effort. Unreal's default port number is 7777. To specify a port, use the following kind of command line: Unreal.exe DmFith.unr port=7778 -server Some Windows NT servers may have more than one network card installed, and thus more than one IP address. If this is the case, you need to specify the IP address for Unreal to play on using the multihome=www.xxx.yyy.zzz parameter such as: Unreal.exe DmFith.unr multihome=204.157.115.34 Here is a sample batch file to launch two UnrealServers: Start \UnrealSystem\Unreal.exe DmTundra.unr?game=unreali.deathmatchgame -server port=7777 log=server1.log ini1=server1.ini Start \UnrealSystem\Unreal.exe DmTundra.unr?game=unreali.deathmatchgame -server port=7778 log=server1.log ini1=server1.ini Using .ini filesWhen you run multiple servers on one machine, and you have customized the game settings, all of the servers will use the same options, from the Unreal.ini file. In many cases, this is not what you want -- for example, if you're running a "lobby" level that is a downloable level that is played locally, you don't want it to switch levels as would be the case with a deathmatch game. To handle multiple configurations, you can tell Unreal to use a different version of the configuration file than Unreal.ini like this: Unreal.exe DmFith.unr ini=Server1.ini The configuration file must exist in the \Unreal\System directory. An easy way to generate a new configuration file is to go into Unreal, set whatever multiplayer options you want, exit out, and copy the Unreal.ini file to a new filename, such as MySettings.ini. Setting advanced server optionsAdvanced Options / Game Settings (applies to all game types)
Advanced Options / Game Types / DeathmatchGame (applies to all deathmatch games)
Remote administrationTo enable remote administration on a server:
Now, you can administer your server by logging in as a player and using the administrator password using the following URL syntax: myservername.com?password=MyPassword You can do this from within Unreal, by typing the following console command: open myservername.com?password=MyPassword To send administrative commands to the server, type "ADMIN" followed by any console command, documented in the Console Commands document. For example, to switch to a new level titled DmAriza.unr, type:
Client downloading of filesWhen clients enter your server, the server sends them a list of all Unreal "packages" (binary files containing structured Unreal objects). The client then makes sure he has all of the server's packages. If he does, he immediately tries to enter the game. If he is missing one or more files, he asks the server to download them, and the server obliges by sending each file in turn, using a UDP-based sliding window protocol. The kinds of files which are automatically downloaded include:
The reason behind client-side downloading is to allow servers to be set up in a Web-like fashion: Players can hop back and forth between servers, automatically downloading and caching the levels, graphics, music, and other objects as they go. When clients download files, the files go into the \Unreal\Cache directory, using a filename composed from their 128-bit GUID (Globally Unique Identifier) and the .uxx extension, rather than their human-readable name. Setting up an index level (formerly known as a "lobby" level)If you're running a cluster of lots of Unreal servers, you may want to provide one common entryway for them, in the form of an "Index" level. An "Index" level is a small level with a bunch of teleporters which point to your game levels. Like a regular Internet level, an "Index" level is downloaded to the player's hard disk the first time he enters your server. Unlike a regular Internet level, the Index level is played alone -- you can't see or interact with other players in an Index level. In UnrealEd, you can force a level to be "played alone" by opening the map, going into Options / Level / LevelInfo, and setting bLonePlayer to True. This says, basically, "The player should download this level from the server, but then play it locally -- rather than with network support". This is desired for index levels, otherwise your little level would fill up with huge numbers of players bumping into each other, having a hard time going into the appropriate teleporters. Here is a sample index level, available for download: Index.unr. It's not very pretty, but it's small and it makes for a fast download. To customize this level for your server, you can do the following:
Other informationRead the Console Commands & Command-Line Parameters document for other useful options when launching a dedicated server. Read the Unreal URLs document for information about Unreal URL's, which provide a way to link UnrealServers to each other; UnrealServers to the Web, the Web to UnrealServers, and much more. Creating Custom SkinsTo create new skins for the Unreal models, and make them downloadable, you'll need to create a new skin .utx file in UnrealEd (place it in the \Unreal\Textures directory). Also, you'll need to create a new text file, similar in format to \Unreal\System\Female1Skins.int. These filenames need to start with the model name, "Female1", "Female2", "Male1", "Male2", "Male2", or "SkTrooper", followed by some unique word. For example, you could create:
Within the Female1NewSkins.utx file you create, import one or more textures and give them any name you want. Four names have special significance: T_Blue, T_Green, T_Red, and T_Yellow are used for colored teamplay skins. The Female1NewSkins.int should contain a list of the skins contained within Female1NewSkins.utx. See the existing \Unreal\System\Female1Skins.int file for an example. Basically, for each skin in the .utx file, the .int file lists its complete name -- for example, Female1Skins.T_Blue refers to the skin named "T_Blue" in the file "Female1Skins.utx". Note: Do not modify Unreal's existing .utx and .int files, such as Female1Skins.utx and Female1Skins.int -- if you do that, you won't be able to enter multiplayer servers, because your .utx files will differ from the server's. The nice thing about Unreal "mods" is that they reside in separate files, so they can coexist and can be easily distributed -- rather than being modifications of our existing files. For server administrators: To enable players to use your new skins when they enter your server (downloading the skins if they don't have them), go into Advanced Options / Advanced / Game Engine Settings / ServerPackages. There, add the new skin package name (for example, Female1NewSkins) to the list. Don't include the file extension, just the base name. -Tim |