Tips  Unreal

Bots

The only way to get bots in your game thats online you must be a admin.  If you running a game and not be online you can add bots in your game.  You pres the TAB button and enter SUMMON MALEONEBOT to get a male bot in your game.  Or look in the help page.

 

How To List Your Unreal Server On The Public Master Servers

  1. In Unreal, open the "Advanced Options" window.
  2. Under "Networking / Master Server Uplink", set "DoUplink" to True.   This tells UnrealServer to notify the master servers of its existance.
  3. Under "Advanced / Game Engine Settings / ServerActors", make sure all the appropriate master servers are listed as follows:

    [0]    IpDrv.UdpBeacon
    [1]    IpServer.UdpServerQuery
    [2]    IpServer.UdpServerUplink MasterServerAddress=master0.gamespy.com MasterServerPort=27900
    [3]    IpServer.UdpServerUplink MasterServerAddress=master.telefragged.com MasterServerPort=27500
    [4]    IpServer.UdpServerUplink MasterServerAddress=master.ogn.org MasterServerPort=27500

UnrealServer Port Usage

People setting up Unreal servers behind firewalls have been asking for a summary of the TCP/IP ports Unreal uses. Here goes:

  • UDP 7775 and 7776 are used only for LAN games. You don't need to route them through a firewall.
  • UDP 7777 is for gameplay.
  • UDP 7778 is for server querying.
  • UDP 7779+ are allocated dynamically for each helper UdpLink objects, including UdpServerUplink objects.
  • UDP 27900 is for server querying, if you enable the master server uplink. Some master servers use other ports,  like 27500.

When players try to connect to an Unreal server, they connect to port 7777 by default.

Optionally, the server administrator can specify a different game port than 7777 with the "port=" command line parameter, for example: "Unreal.exe -server port=8888". 

 In this case, contiguous port numbers are used for helper objects: 8888 for gameplay, 8889 for querying, 8890 for helper UdpLink objects, etc.

 

Multiple Servers Per Machine

Each 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 files

When 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 options

Advanced Options / Game Settings (applies to all game types)

  • AdminPassword: Administrator password; only accepted if bAllowRemoteAdmin is True.
  • AutoAim: Maximum allowable auto aiming amount for helping players who aren't using MouseLook.
  • bLowGore: Reduced blood.
  • bClassicDeathmessages: Displays old-style death messages.
  • bCoopWeaponMode: Weapons behave as in coop play: each player can get them once per life, no respawning.
  • bHumansOnly: Don't allow non-humans to play, such as SkaarjTroopers.
  • bLowGore: Low violence.
  • bMuteSpectators: Don't allow spectators to chat with players.
  • bNoMonsters: No monsters in gameplay.
  • bVeryLowGore: Extremely low violence.
  • Difficulty: Difficulty level, affects bots.
  • GamePassword: Password required for plays to enter.
  • GameSpeed: Multiplies the game speed; 1.0 means normal speed. 0.5 means half-speed, 2.0 means twice normal speed.
  • MaxPlayers: Maximum players allowed in the level.
  • MaxSpectators: Maximum spectators allowed in the level.

Advanced Options / Game Types / DeathmatchGame (applies to all deathmatch games)

  • bChangeLevels: Lets the server switch levels when the frag limit or time limit is reached.
  • bHardCoreMode: Increases weapon damage by 150%.
  • bMegaSpeed: Increases game speed by 150%.
  • bMultiplayerBots: Causes the server to place "InitialBots" number of bots in the multiplayer game.
  • FragLimit: After this number of kills, the level switches. Zero means no frag limit.
  • InitialBots: Number of bots to place in the game; only affects network play if bMultiplayerBots is set.
  • TimeLimit: After this amount of time, the level switches. Zero means no time limit.

 

Remote administration

To enable remote administration on a server:
  1. Run Unreal.exe.
  2. Open up the "Advanced Options" window (from the main menu, Options/Advanced Options).
  3. Open up "Game Types" / "Deathmatch Game" (or whatever type of game you want to remote-administer).
  4. Set the "AdminPassword" to a password, for example "MyPassword".
  5. Exit the game, and launch your 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:

  • ADMIN SERVERTRAVEL DmAriza.unr

 

Client downloading of files

When 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:

  • *.u (class files)
  • *.utx (texture files)
  • *.uax (audio files)
  • *.unr (map files)
  • *.umx (music files)

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.

 

Creating Custom Skins

To 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:
  • \Unreal\Textures\Female1NewSkins.utx
  • \Unreal\System\Female1NewSkins.int

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.

 

How Can I Make Unreal Run Even Faster

Here's where to start:

1. Get rid of all the background things you have running - ALL OF THEM! Turn off screen savers, backgrounds, Active Desktop, unload ICQ, etc. These things suck the power out of your computer and compete with Unreal for your vital RAM. A lot of times people think Unreal is running slowly but what's really happening is that it's competing for RAM and Windows 95/NT's virtual memory system is the bottleneck.

2. Turn on low texture quality and low sound quality. You probably won't even notice the difference but the speed will improve.

3. Go into the Advanced Options menu and change the following:

Under Audio:

Set EffectsChannels to 8 instead of 16
Set LowSoundQuality to True
Set OutputRate to 11025hz
Set Use3DHardware False
Set UseFilter to False
Set UseReverb to False
Set UseSpatial to False
Set UseStereo to False
Set UseSurround to False

Note: There is a lot of overhead in processing 3D audio but it sounds so amazing that it's worth trying to keep it on. Make sure you have the latest drivers for your sound card if it offers 3D support.

Under Display

Set CurvedSurfaces to False
Set LowDetailTextures to True
Set ScreenFlashes to False

If you've got a 3DFX Voodoo, Voodoo Rush or Voodoo2 card: under Rendering and then under 3DFX Glide Support

Set Coronas False
Set DetailBias 0
Set DetailTextures False
Set FastUglyRefresh True
Set HighDetailActors False
Set RefreshRate 85hz (if your monitor supports this)
Set ScreenSmoothing False
Set ShinySurfaces False
Set VolumetricLighting False

If you're using Software Rendering here are the settings under Rendering, Software Rendering

Set Coronas False
Set DetailBias .25
Set FastTranslucency True
Set HighDetailActors False
Set HighResTextureSmoothing False
Set LowResTextureSmoothing False
Set ShinySurfaces False
Set VolumetricLighting False

Once you get Unreal running quickly you can try turning some of the details back up. The first thing I'd do is turn Stereo support back on and maybe turn the Output rate up to 22,025hz but only if you think the sound quality is too low. Most people don't really notice this and it's a big performance hit when you raise it. I'd try changing one setting at a time until you see performance start to slow down again. To me, all these setting at their lowest level still deliver an outstanding experience and I seldom bothing turning them up. The only think I like to change myself is the FastTranslucency for when I'm playing single player and want to be blown away by the beatiful environments - but be warned, turning this on takes a BIG performance hit.

Here are some additional notes regarding performance settings:

Unreal Performance Tips

Unreal requires ALL of your computers resources in order to run at it's best. People sometimes don't even realize all the programs they have competing for their computers RAM and CPU attention. I get a lot of emails on the subject of Unreal performance. I get just as many "Wow Unreal runs GREAT on my P166 with 32Mb of RAM" as I do "Wow, Unreal is really slow on my P2-300 with 128Mb of RAM!". What does this say? It says the guy with the P166 has a really clean system and isn't trying to run Unreal at 640x480 while the guy with the P2-300 probably has a lot of his RAM being taken up by things other than Unreal or might be trying to run Unreal at a resolution his video card has no business running games at. ANY P2 system should ROCK with Unreal or it's set up badly - period. Any MMX system should have no problem running Unreal and any P166 or up, if configured well, should be able to give you a very enjoyable Unreal experience.

So what are the big things that hurt Unreal's performance? The #1 problem: background processes. Things like Virus scanners, ICQ, and large high-res wallpapers all steal valuable resources. If you have icons in your system tray (lower right corner of your Windows task bar) right-click on them and figure out how to close down their programs. A lot of times when Unreal "hitches" it's due more to memory than anything else. When you get a "hitch" it's usually when Unreal is accessing your hard drive - it's trying to load content that didn't fit into memory. This is why it's SO important to keep as much memory free as possible and to be running background programs or big wallpapers that consume RAM.

Unreal also requires a considerable amount of Virtual Memory. You can check out your virtual memory settings through the System icon under the Windows control panel. Make sure you have at LEAST 100Mb of virtual memory. Permanent virtual memory usually runs a lot faster than letting Windows decide. Some users report that setting up a permanent swap file of 150Mb (i.e. minimum 150Mb, maximum 150Mb) on a freshly defragmented harddrive makes a big difference to their performance.

Once you've done these things there are also several settings in Unreal that can help speed things up a little and reduce the amount of RAM Unreal uses which generally helps speed things up quite a bit and reduce hitching. The first two major settings are right within the Unreal game menu itself. Under Audio/Video options there are two settings: Texture Detail and Sound Quality. Setting these items both to low will use less RAM than setting them to high and you probably won't be able to tell the difference. There are other settings in the Advanced Options menu including a setting under Audio that allows you to set the sound Output Rate down really low (11025hz). If you have a slower computer but you have a Monster Sound or other A3D card try turning off Use3dHardware to see if that makes a difference - although 3D sound is amazing on these cards it does then to take some CPU horsepower to pull it off. Under Rendering-> Software Rendering you might try turning HighDetailActors to false and Volumetric Lighting to False if you have a slower system.

A lot of people just don't realize how much is running in the background. If you bought a fancy name-brand computer from a big-name retail that came with a lot of pre-installed software the chances are pretty good there's a lot of software running every time you boot up Windows 95. If you take the time to get rid of it you will probably find your Unreal experience improves massively. Unreal is just the first of many games that will push your system to it's limit. By taking the time to learn how to make Unreal run better you will be more prepared for the future of PC gaming.

There are plenty of Unreal fan sites that offer "tweaking guides" and there is some good advice to be had from these sites. I highly recommend visiting some of these sites.

How To I Set Up Unreal To Play Over A Local Area Network?

Microsoft Certified Systems Engineer gave us these tips for setting up TCP/IP in Windows 95 to play Unreal on a LAN. All you have to do is go to networking, add in the TCP/IP protocal and then bind it to your Ethernet card. From there, the important settings are described below:

Default Gateway: This is the computer that packets are sent to if the destination address is not on the same network. (i.e. destined for the internet in most cases) The Gateway machine is basicly your connection to the internet, and it must be configured as a router, or actually be a router itself. This only needs to be filled in if you plan on having all the machines in the LAN on the internet, and if you own enough valid IP addresses to accomadate that. If you just want to set up a lan w/o internet access, (you can still use dial up on each machine) leave the default gateway blank.

Subnet Mask: This is what determines who is on your local subnet (network) and who is not. To fully describe this, I would have to write a short book. :) As long as you have 254 computers or less, just set the subnet mask to 255.255.255.0 to avoid any problems.

IP Addresses: This really isn't that important, but the InterNIC has set aside certian blocks of addresses to use for "fake" IPs. I prefer setting all my machines up as 192.168.x.x. (where x and x can be any value from 1 to 254) Note however, that when using a subnet mask of 255.255.255.0, only the last octet of the IP address can differ. (I.E. 192.168.50.1 and 192.168.52.1 couldn't communicate, but 192.168.50.1 and 192.168.50.2 could) If for some odd reason you needed to have more than 254 machines on the same network, you could use a subnet mask value of 255.255.0.0, which would allow you to change the last two octets of your ip address, but I would reccomend against it, since communication would be too slow with that many hosts on one network. (I'll explain this if you like)

That's pretty much it. TCP/IP is a pretty difficult protocol to configure for people who don't work with it every day....hopefully these pointers should help.

Console commands

Nosound: Disables sound.
Nodsound: Disables DirectSound support.
Noddraw: Disables DirectDraw support.
Nohard: Disables 3d hardware support.
Log: Runs with the log window initially visible.
Firstrun: Re-asks the "First Run" questions in Unreal.
Nologwin: Don't output to log window, useful for debugging when printing so many log messages that performance is slowed down by window updates.
Conflicts: Show objects of different classes whose names conflict.
Nok6: Disable AMD K6-3D support.
Nommx: Disables MMX support.
Noreplace: Don't automatically replace textures, sounds, and music if they are not found.
Make: Rebuilds all .u files from their source .uc files.
Make -h: Rebuilds all .u files from their source .uc files and generate a C++ header for each package.
Editor: Runs Unreal for editing.
Server: Runs as a dedicated server.
Strict: Treat all script warnings as critical errors; useful for tracking down the call stack when debugging scripts.
Nobind: Don't treat UnrealScript/C++ binding errors as critical, for rebuilding scripts and avoiding the chicken-and-egg binding problem.
Showdep: Causes script compiler to log dependency information when recompiling scripts.
Nogc: Disables garbage collection.
Alladmin: Enable all players administrative access to the server. LOG=logfilename: Uses the specified log file instead of Unreal.log. Useful when running multiple copies on the same machine.
INI=inifilename: Sets the .ini file to use for configuration, normally Unreal.ini.
READINI=inifilename: Sets the .ini file for reading only (not for writing); overrides the INI= option. PORT=num: Sets the UDP port number for the Internet server.
BRIGHTNESS: Cycle through 10 screen brightness values.
CHAT: Brings up a prompt to type chat text.
CANCEL: Cancels an "open" command in progress that is trying to connect to a network server.
CDTRACK num: Play the specified CD track.
CONSOLE FULL: Make the console fullscreen.
CONSOLE HIDE: Hide the console.
CONSOLE SHOW: Show the console.
DEBUG CRASH: Test crashing the game by appError.
DEBUG EATMEM: Test allocating memory until it fills up.
DEBUG GPF: Test a general protection fault.
DEBUG RECURSE: Test crash by infinite recursion.
DUMPCACHE: Display the contents of the memory cache GCache.
DUMPINTRINSICS: Display a list of unused intrinsic function ids.
EDITACTOR CLASS=classname: During game play, edits the properties of the nearest actor belonging to that class. Cool for debugging.
: During game play, edits the properties of the nearest actor belonging to that class. Cool for debugging.
ENDFULLSCREEN: Go back to playing in a window.
EXEC filename: Execute the console commands in the filename, default is in the System directory.
EXIT: Exit the program.
FLUSH: Flush all caches. Regenerates all lighting, 3d hardware textures, etc.
HIDEACTORS: Hide actors during game play.
JUMPTO x y z: In UnrealEd, move the viewport to a certain X,Y,Z location, useful in conjunction with tester reports generated with the REPORT command.
LOADGAME num: Load a game in position 0-9.
MARK: Mark all objects that are in memory (for garbage collection debugging in conjunction with MARKCHECK).
MARKCHECK: Display a list of all unmarked objects that are in memory (for garbage collection debugging in conjunction with MARK).
MEM: List memory usage; only works when Unreal is compiled with the memory-tracking option (it's usually not).
MEMSTAT: Show Windows overall memory statistics.
MUSICORDER num: Change to a certain track in the song (0=ambient, 1=action, 2=suspense).
OBJ CLASSES: Prints a list of all loaded classes.
OBJ DEPENDENCIES PACKAGE=pkgname EXCLUDE1=otherpackage EXCLUDE2=otherpackage...: !! 
OBJ GARBAGE: Collect and purge garbage ("garbage" means objects which are no longer in use).
OBJ HASH: Show object hashing statistics.
OBJ LIST CLASS=objectclass: List all objects belonging to the class (if the class isn't specified, lists ALL objects). Gives a summary of memory usage. This is very useful during game play for figuring out how much memory is being used. In UnrealEd, this statistic isn't useful because a huge amount of extra stuff is loaded which might not be used by your map.
OBJ REFS CLASS=objectclass NAME=objectname: Show a list of objects which reference the object you specify. When trimming memory usage, this is useful for figuring out why some object is being loaded.
: Show a list of objects which reference the object you specify. When trimming memory usage, this is useful for figuring out why some object is being loaded.
OPEN url: Opens a local map (i.e. "unreal.unr") or an Internet server (i.e. "200.0.1.16" or "unreal.epicgames.com").
PREFERENCES: Displays the preferences in a window.
REPORT: Copies a report of the current gameplay situation to the clipboard. You can then paste the resulting text into an email program, Notepad, etc. Extremely useful for beta testers, because it dumps the player's X,Y,Z location, the difficulty level, etc.
RMODE: Set the rendering mode. 0-9.
SAVEGAME num: Save the game in a specified position, 0-9.
SHOT: Take a screenshot and save it in the System directory with a consecutive name like Shot0001.bmp.
SHOWACTORS: Shows actors during gameplay.
SOCKETS: In network play, shows a list of network sockets (UNetConnection's) in use.
STAT ACTOR: Shows various statistics.
STAT CACHE
STAT CLIP
STAT FILTER
STAT FPS - the number is in milliseconds. 1000 divided by this number is your FPS
STAT GAME
STAT GLOBAL
STAT HARDWARE
STAT ILLUM
STAT LIGHT
STAT MESH
STAT POLYC
STAT POLYV
STAT REJECT
STAT OCCLUSION
STAT SOFT
STAT SPAN
STAT ZONE
TOGGLEFULLSCREEN: Toggles fullscreen mode on and off.
TYPE: Types text on the console.
URL urlname: In network play, parses a URL and displays its components.
VIEWUP: Sizes the view up. VIEWDOWN: Sizes the view down.

Print page