Server Administration Guide

From Armagetron
Revision as of 09:21, 12 January 2008 by 190.3.28.120 (talk) (acelri)

infiniti g35 sedan brake problems sothwest airlins www.target.com battle gettysburg map earring saphire the systems thinker sea kayaking a manual for long distance touring celtic rings estate hartwell lake real robert lewis stevenson school carmel airframe plant power test budget coupon rental truck canon powershot s2 executive travel alzheimers disease support group black porn lilo the closer holocaust museum envision boulder illinois used car dealership free kama sutra positions nrc towing equipment jessica alba fake picture and photo of panda in lodging mexico new taos professional football boots family portrait age of aquarius boy love links buy bontril online psoriasis implement single sign on radio rivendell 2001 lincoln continental pictures john deere 116 lawn tractor lap band gastric banding jim lingo union bank virginia ibs drugs custers last stand art friend snowblind meredith wilson the music man minnesota home builder neat lounge new haven ct view the iowa state map outline point power trampoline american college of emergency physician eureka central vacuum montel williams talk show olsen twins pornography screeching weasel bikini g gallery string tokyo mew mew doujinshi angel quickutz snow website that compares im so fucking horny ephedra products wfla 970 tampa adawere free download gertrude picasso stein sport teagames.com navigation software for p900 pork loin roast america indigenous north people pueblo escort ford cut hair layered mohaa demo v2 self build houses germany dd babe geography games unchallengable soldier laddie thong bikini sex sf 171 pdf shippo jodi gordon model garden flags natural massage oils sword in a cane whitinsville golf club shock karas silverchair video code addaware enterprize car sales celtic cross tattoos clothed fully girl swimming video yanna darili foreign stock loan catalog fingerhut free city in it mexico time waterless shampoo for dogs waukesha west cuckold men greenville north carolina real estate sciatica treatment cola la linda mas bathing suit swimsuit bikini applied cataloguing data here in publication sanctioned virtual airlines arkansas tax records big natural hooters best detector radar rated physics giancoli 6th edition 2000 city sim through walk nenas lindas sony nr70 review wrays kauai condo wizard of oz pink floyd www.ccs.com laura gemser lonely housewife personal revelator song jothika bathroom movie thoi dai bo gia song lyric my funny valentine anonymous sex chat resident evil movie poster tonsils child large vacation homes logistics management definition westport corp mcfarlane dragons series 1 summary ejectment shauna sand nude trunks ssj4 7750 army swiss valjoux i need to lose weight quickly without exercise free moving boxes renthal sprockets ibm developers network o.c th sick lanzarote real estate agents duff hilary thong sean paul we burning lyrics really ugly girl internet cafe free boost ringtone downloads social security disability attorneys caged slave girls new and used cds mini dachshund puppy divorce records search msm cream golf apparel window xp restore help brewer twins jaguar s type owner manual magaly medina fotos conduit asset other tyra quickoffice premier crack nat robbins cosmetics lithuanian restaurants in london hcg level free porn video clips samples uniclic floor cheerleader gone wild priority one financial services mary ellen wilson child abuse wireless speaker system cody sean torrent read or die judaism marketing and advertising companies social studies lesson plans free reverse cellular phone lookup sad eyes optimization service vintage vw parts optionetics ctu ringtone swag day care beautiful woman gallery high school taft william jolin lyric eating disorder statistics college adds up to real money marge simpson polwarth munro shoes first aid kit kitty cottage blue bell kabalah list slow song anchusa dropmore elle audio transducers buffalo news the partridge family i think i love you lyric lsass.exe 1st books fuck teen big breast once upon a december mp3 facts about sharks schuifpui space shuttle programme apocalyptica cb radios for sale fluke imager thermal chemical brothers altos de chavon school of design iso 9000 gas product saving weekend box office mpi reviews testimonials old shale pink dont let me get me usbank virtual jenna margaret thatcher the untouchables enclosed swimming pool slide shaped cd business cards uitm student portal shotgun marriage bi men silva method sims busting out rom antiemetics in parkinsons disease horse ploughing ploughman watched naughty little sister wedding cake table decoration mueller state park colorado waterfront home jekyll island ga beer run song seven sword j pop larc en ciel axiom home theater us embassy hanoi elmwood park nj news eclipse for sale amazed im maybe large size silver ring man teej la fontaine toronto spy blizzard replacement lens surname agency dc staffing washington ayer de horoscopo hoy y circle takes the square phoenix on-site computer repair michelle trachtenberg gallery adam horoscope sandlers wholesale request catalog reconditioned porter cable tool big booties symptom of erosive esophagitis funky backgrounds horny cowgirls zelda the wand of gamelon improvement online games racing arizona cardinals john cougar lyrics snowbird lift tickets cheap peanut butter jelly with a baseball bat lyrics wilderness cabins for rent applets chat java system ap computer science test wests syndrome p s chang orlando restaurant sump pumps lakeland community college lipuma american express class construction public specification standard works bed bugs juelz santana oparh winfrey bio ssj6 trunks miles more service jesse jane model buncombe county school system bell south real yellow pages husband mail order 1 6 counter strike queen elizabeth wooden book case santa cruz galapagos momo car wheels milwaukee bagger movie tonic te converse wfs who had the longest hitting streak in baseball history lyric of bayan ko major historical event in texas saltwater lighting jefferson county public school louisville ky laparoscope system park towne apartments philadelphia pa amateur sexo oral azteca margo harshman sahara sands airsnort mac osx home theater systems stands tip on mortgage banking carribean marine dealer indiana mariah carey hero mohammed rashid azam cbs soaps new camaro part free winamp download nicole peters pic home loans for bad credit brooke burke playboy pic gay animal motivational phrases sports skip list if you leave me now lyrics chicago what is vicodin l484 capture streaming video strega restaurant salem office supply products malmsteen whitinsville golf club lighting store new york city yahoo game channel free sounds of girls moaning 3d graphic designer discount dvd revenue cananda female celebrities implicatures money tree potassium chloride symbol naked hispanic men girls in naughty uniforms rockin in the free world video christmas corporate gift horney victor wooten new mini cooper cars auktionen i ll get inside you hank azaria netgear 108mbps wireless usb 2.0 adapter apparel embroidered india silk silk flowers buckminster fuller gohan nude whites sister christian award merit michigan scholarship input modeling multi output regional system non pierced body jewellery pediatric dentist abbots barton funny shirt t barred salamander tiger clean room packaging buy car concert musikverein new years real time imagery sattlelite crystal knight hardcore ingredient julius orange recipe p2k tools download car payment calculator countdown myspace ticker plastic paint motherhood store sweet presence of jesus original bad boy soundtrack patron saints index sitting toilet video woman extreme summit 5i specs ash falls nebraska smart car canada funny forwards wedding co.uk wanted poster font storm panels npkia hyperpigmentation lyric son volt wait world wage hour division fiesta reader wife falling picture star vitamin companies nam soldier story viet florida institute technology gyno girls exhibit trade show booth display pumpkin soup alberta place hotel edmonton across the street productions carlton hotel singapore orlando wesh negozio di alimentari in italia i believe in miracles xsim download Setting up a server for Armagetron Advanced isn't terribly difficult, but there are a few things you need to consider when you do it. Taking a few minutes to figure out what you're trying to do will save you a whole lot of headache/heartache later on when people start playing your server.

Starting out

Before you consider what OS you're going to use, what version of the game to run, and so forth, you should figure out a few basic parameters of the server. Here are some you should consider.

Private or Public?

The setting TALK_TO_MASTER is off by default. To make your server public (available on the master server list), you must turn on this setting. If it is off, players will only be able to connect to your server through the Server Bookmarks using your IP address. If you are connected to the internet through a router, normally used so that multiple computers can share the same internet connection, you will also need to open a port.

More information on both of these topics is available below.

Moderated?

Armagetron Advanced supports a limited but expanding set of in game administration commands(in 0.2.8, it will be a fairly comprehensive set). The catch is that you can only have one administration password. So in order to make moderators on your server, all you have to do is give out the administration password.

The alternative is to use the voting features that are intended to allow players to moderate the server as they see fit.

You can go either way, of course. It's entirely up to you.

Round or Match

There are plenty of ways to setup scoring on a server. A common setting is one point for each kill. While this scoring method encourages competitive play, it's not always desirable. On some servers, just surviving to the end of the round is quite an accomplishment, and you may wish to reward players for doing so. Too much of a reward will encourage players to just screw around instead of fighting.

You should also consider if you even want the standard gladiator-style fighting. It's certainly possible to set up scoring to allow for different games, such as Roulette, and to encourage different playing styles. So just take a few minutes to think about it. It'll pay off in the end, because the default game server settings aren't necessarily the most popular scoring rules, and unless you really want the default scoring, you could lose most of your audience in the first two hours of operation if you didn't think about scoring.

Requirements

If you fall short

If you cannot meet the requirements to host a server yourself (or simply don't want to leave your computer on 24/7), don't despair! There are companies that specialize in hosting colocated servers-- you can use many of them (such as SevenL or VR Hosted) to host an Armagetron Advanced server. If you don't have the expertise or want to bother with maintaining a full Linux server, you can get hosting specifically for Armagetron from lightfoot.dashjr.org without needing to setup anything.

Hardware

Hardware requirements are fairly small. The game itself will only need around 10MB of RAM or so, more for more players. So whatever the minimal requirements for your target operating system will usually suffice. It is important to make sure that the game will not have any of its parts swapped to disk, just like with any other server, but memory usage is minimal.

CPU requirements are also pretty slim. Again, whatever the requirements for your target operating system will likely suffice. A common number provided for a server CPU is a 600mhz Pentium II or greater. Some popular servers have run on as little as 800mhz AMD Duron! Starting in 0.2.7.1, it is possible to limit the framerate of the simulation itself. This gives several important traits to the game. First, it makes it play nicely even on a computer that runs other tasks (such as a web server). It also provides for more stable gameplay. Finally, it allows you to tailor the simulation for your hardware, so on a smaller CPU, you should consider limiting the framerate of the simulation to improve gameplay.

Network

The size and speed of your network connection is more than likely going to be your first and most serious performance bottleneck. Generally you'll want to consider that each player connected requires about 6KB/second of upstream bandwidth. So for 16 players, you'll need 96 KB/sec of upstream bandwidth. This doesn't consider any other bandwidth usage on your network, such as web browsing from a different machine. Use MAX_CLIENTS to limit the number of players accordingly.

More information is given for both of these topics in the Advanced Server Administration Guide.

Setting Up

So now you've figured out what kind of server you want and how you want people to play on it, and you want to know how to set it up and optionally make it available on the master server browser. Setting up is fairly straightforward.

If you do not wish to bother with setting up a server yourself, and be left to simply administrate your server, lightfoot.dashjr.org provides managed hosting for Armagetron servers-- you can just configure it how you like using a simple web interface and be ready to play.

Install the Server

First you need to install the server. It's common to think of any given "server" as a special machine built by old women in third-world countries, but actually, a "server" is just any machine that makes a "service" available to other users. In this case, you're going to install software on a computer, possibly your desktop computer, that will make a game service available for other users to use.

So first you need to acquire the package called "armagetronad-dedicated". If you're using Linux, get one that says "linux" on it. For Windows, get the one that has ".exe" on the end of it. For Mac OS X, there's one with a ".dmg" extension for you. Usually the CPU architecture and OS are embedded in the filename, so pick the right one and install it.

We won't go into too many details here about installation, consult the regular documentation for how to install the server for your architecture.

Test the Server

After installing the server, the first thing you should do is test it. So start it up. If you're in Linux, you will want to become the superuser and type, in a terminal, "/etc/init.d/armagetronad-dedicated start". If you're in Windows, find the icon in your Start menu and click it. Then fire up a client and see if you can connect to it as a LAN game (under Network Game). If you can do this, then you have successfully tested the server. Now you need to shut it down. In Windows, go to the console window for the server (it opens when you start the game) and type "QUIT". In Linux, just do "/etc/init.d/armagetronad-dedicated stop".

Public Servers

If you want to host a server at home. You have to open UDP port 4534 in your firewall and possibly forward the port from your router to the PC running ArmagetronAd (and is hosting a game).

Firewalls

  • Windows XP: Either your firewall will ask you if you want ArmagetronAd to open port 4534. You can also follow these instructions use name: "Armagetron Server" the port is UDP 4534 (leave TCP blank).
  • ZoneAlarm: TODO: popular? should it be added ?
  • Mac OS X: Go to System Preferences → Sharing → Firewall. One way to let all traffic through is turning it off, but you may not want to do that. If you decide to leave/turn it on, look for a button labeled “Advanced…”. If it exists, go there and ensure “Block UDP Traffic” is not checked. If it doesn't exist you have an old version that never blocks any UDP. For the curious: this is a limited GUI to ipfirewall.
  • Linux: TODO Lucifer ? Link to a site ?

Port forwarding

If you have a router with NAT, you'll want to forward a port to your server so others can reach it. Armagetron uses the UDP port from configuration option SERVER_PORT, which is 4534 by default. You'll probably want a forwarding entry that looks like:

  • Local/internal address: <your server's IP address>
  • Protocol: UDP
  • Local/internal port: <SERVER_PORT>
  • Remote/external port: anything should work, but <SERVER_PORT> is common.

It is important that your server's IP address never changes. You can manually choose an address outside the address pool used by DHCP, or an address that is unlikely to be assigned (e.g. if the lowest available address is always assigned, you can use an address ending with 100), or disable DHCP altogether and configure everything manually. http://www.portforward.com/ has more info on that.

If you can't figure it out, consult your router's manual. You can also look for help at the aforementioned http://www.portforward.com/, which has tutorials for many routers, and a forum. It doesn't have an Armagetron entry (yet), but it has been found that F-22 Lightning 3's port range contains Armagetron's default port, so if you're absolutely clueless you can go with that.

Dynamic external IP addresses

If you have a dynamic external IP address, you can use a service like DynDNS's Dynamic DNS to map a name to your IP address. When your IP address changes, a small updater program will send the new address to DynDNS and update the address associated with the name. You should set the setting SERVER_DNS to the name you registered to ensure clients and the master servers can keep track of you when your IP address changes.

Secure the Server

There isn't really a lot to do here, but you should consider how you want to secure the machine. If you think it will be necessary to ban certain players, then a firewall is your only option. Since ArmagetronAd 0.2.8.x you are able to ban IPs. For older versions you can use a firewall that allows you to deny connections from users by IP address. It's not foolproof, but it's the only thing possible until we have player authentification.

Contrarily, if you do not want internet players to be able to use your server, you will need to make sure your router prevents such players but making the port mentioned above inaccessible through the router.

Configuration Files

At this point you should have a good idea of what kind of server you're going to run and you should also have a working server running, but you don't yet have the server you set out to build. Now you need to configure the server itself.

The server is very flexible. As of the 0.2.8 release, you have pretty complete control over the simulation, and you also have some settings that you can configure the game rules a bit. So now all you need to do is make the settings, right? Wrong. :) First you need to understand how the settings are loaded and in what order.


Examples

Note: These examples first appeared in one of the release candidates for 0.2.8. Depending on what version you install, you may not have all of them, or even any of them. The final 0.2.8 release will have them for all platforms, however.

Several example files are provided to help you get set up and running quickly. These files contain snippets of settings that range from simple adjustments to cycle physics to more complex snippets that encapsulate complete game rules. So if you've played a server that you really enjoy and you'd like to use it as a base to build your own server, you can look to see if any of the example snippets provide the settings you're wanting.

Some of the snippets are named from the servers they came from. When you see this, it is because the file contains a fairly complete set of settings to make a server exactly like the server where the settings originated. Others are named after a specific action. These may have originated in a server, or they may not have originated in a server. If they came from a server, you can read the comments in the file to see which server they came from.

Each example snippet is built with the intention of being included in your settings_custom.cfg file so you don't have to copy and paste the contents in order to use them. Be warned, however, that the example snippet you've picked may be changed in an upgrade. This will happen periodically when the game engine changes in a way that renders the settings snippet in a different fashion than it was intended, and the changes will be made to attempt to bring that file back to the same feel of play as it originally had. If you want to use those upgrades to your benefit, then you can and should go ahead and include the snippet file as shown. If you want to insulate your server from such upgrades, then you'll need to copy and paste the contents of the file into your own settings_custom.cfg.

Examples:

To make a fortress server, add this line to settings_custom.cfg:

INCLUDE examples/fortress_soccer.cfg

To add a death zone to your server, you can add this line:

INCLUDE examples/death_zone.cfg

To add a single-use booster in place of the brake, you can use:

INCLUDE examples/single_use_turbo.cfg

Some of the example files may modify the same settings that others modify. When two examples conflict in this fashion, the one that is listed last will override all others. So place the one you wish to have persist at the end.

If you'd like to taylor the settings after you've included them, place your own settings after the relevant include lines. In fact, you should place all of your additional settings after all includes in order to ensure that no new included file will override your own settings.

Making your own Settings

The most common settings to change affect game logic, scoring, and some basic simulation such as cycle speed, acceleration, and so forth.

Simulation Settings

EXPLOSION_RADIUS
Blast radius of cycle explosions. Set to 0 to have no explosion radius (obviously).
WALLS_LENGTH
Cycle trail length. Set to -1 to have infinite trails.
WALLS_STAY_UP_DELAY
Cycle trail stay up this long after the cycle's destruction, measured in seconds.
SPEED_FACTOR
Cycle speed factor. Increase this by two to double the speed
CYCLE_RUBBER
This affects grinding. Higher numbers allow players to get closer to walls before crashing. It's intended to be used solely to correct for lag, but it's usually not used that way.

Map Settings

ARENA_AXES
Sets the number of possible driving directions (used only when map is axes-independent, otherwise the map overwrite this value)
MAP_FILE
This describe how to retreive a map. It uses a special syntax to allow to describe the location of the map on the local disk and a possible list of network based location, such as web url, where to retreive the file. The syntax is "[./][directory[/directory[...]]]/filename [(fulluri[; fulluri[; fulluri[...]]])]". By default, missing files are looked up by the client on the central resource repository. If one of more URI are given in the MAP_FILE, they will be queried before going to the resource repository.

Game Rules

SCORE_WIN
Points you gain for being last one alive. Also known as "camping points"
SCORE_SUICIDE
Points you gain for every stupid death (race into the rim/your own wall). It is added, so negative numbers are appropriate here unless you want to reward people for being stupid.
SCORE_KILL
Points you gain for everyone racing into your wall.
SCORE_DIE
Points you gain for every time you race into someone else's wall. Like SCORE_SUICIDE, you should make this a negative number unless you want to reward people for sucking.
LIMIT_SCORE
Score limit. When a player reaches this score, the match ends and that player wins. Ties are resolved by playing another round until one player has more points than the rest.
LIMIT_ROUNDS
Max number of rounds to play. When this is reached, the highest-scoring player is named the winner.
LIMIT_TIME
Max time (in minutes). When this is reached, the highest-scoring player is named the winner of the match.

Here is a pretty common setup:

SCORE_WIN 0
SCORE_SUICIDE 0
SCORE_KILL 1
SCORE_DIE  0

LIMIT_SCORE 10
LIMIT_ROUNDS 40
LIMIT_TIME  30

This is the scoring system used on servers like Swampland, the old Tigers Network servers, and the goshdarn clones that are floating around. It basically means you have to get 10 points by killing other players to win the match. Breakfast in Hell used a variation:

SCORE_WIN 0
SCORE_SUICIDE 0
SCORE_KILL 1
SCORE_DIE  0

LIMIT_SCORE 1000
LIMIT_ROUNDS 40
LIMIT_TIME  7

You still had to kill people to win, but the match was limited to 7 minutes. After 7 minutes, a winner was declared. The Crack Pipe still uses these settings at the time of writing but may change in the future.

This isn't a complete list!

There are a whole slew of configuration items available. Since the config items are the same as console commands, you can see a pretty complete list on the Console Commands page.

Finishing Up

The last thing you need to figure out is usually the first thing you know. Do you want this server to be known by the master server? If so, you need to add this line to your settings_custom.cfg:

TALK_TO_MASTER 1

Note: in previous versions, this was the default, but as of 0.2.8, the default will be to not talk to master. You will have to manually set that, so make it the last thing you do before starting the server up for play.

You will also likely need to set DEDICATED_IDLE to 0. If you're in Linux and you're using the init script, then you probably don't have to worry about it, because the init script will restart the server automatically. But if you're not in Linux, you'll need to place this in your settings_custom.cfg:

DEDICATED_IDLE 0

If you want your server to be known on the internet, you will probably need to open a port in your router. The default port is 4534, and you need to open it for "udp". Instructions on how to configure this on your router are beyond the scope of this document, you should consult your owner's manual for further information.

Of course, when that's all done, you need to start the server. Use the same procedure already referenced.

Conclusion

This article is the basic "How to setup a game server" article. After reading through this article and getting your server running, the best thing you can do is to play your server for awhile, talk to other administrators, and so forth. Find out what people want, or figure out what you want. Tweak your settings however you'd like, it's your server. When you feel like you've got the hang of running a server, check out the Advanced Server Administration Guide for more cool things you can do with your server.

In the meantime, have fun!