VROC: Virtual Racers' Online Connection

Advanced Servers

External Server Registration

Why Advanced Servers?

Races with more racers in them are more fun. To host lots of racers, we need hosts with fast connections, especially ultra-fast connections such as cable, xDSL, and T1.

To help make more high-quality hosts available, GPL 1.1 introduced the concepts of Remotely Controlled and Dedicated servers. JavaVROC 2 and WinVROC 2 support these server types and introduced two additional advanced hosting concepts, the External server and External Server Registration. The current versions of GPL (v1.2), JavaVROC 2, and WinVROC 2 support the operation of any number of any of these types of servers behind a gateway or firewall.

All of these advanced hosting capabilities facilitate running GPL hosts on high speed connections which might not otherwise be readily usable for hosting. Also, older and slower computers can host many players quite well when no player is actually racing on that machine. This significantly expands the population of potential high-quality servers.

For example, let's say you've got a machine at your office that's connected to the Internet through a T1 line. Even if it's a relatively slow machine (e.g. a P-166) you can set it up to run GPL before you leave for the evening or the weekend, and either control it from home or have it loop through a script of races all night or all weekend. You can even allow other people to control it if you wish.

Now people from all over the world can race on your server all night or all weekend. Imagine what will happen if a dozen or two kindly people do this. A whole slew of excellent servers will available almost any time!

We encourage anyone with access to a fast connection to consider setting up a Dedicated or Remotely Controlled server whenever possible. If you've got a really fast connection, consider setting up two or more!

Dedicated Server vs. Remote Control

GPL allows the host to set up a GPL server which cycles (optionally endlessly) through a script of races. This is known as a dedicated sever.

GPL allows the host to enable remote control of any normal (i.e. non-dedicated server) through the use of new fields in the password entered by the host on GPL's multiplayer screen.

These two modes are mutually exclusive; GPL does not allow remote control of a dedicated server.

Reduced Host CPU Requirements

Dedicated servers have a feature which allows using older computers for hosting. A GPL dedicated server does not display any race graphics (the replay window remains filled with snow) and it does not generate any sound. Also, no host player physics are initiated. This permits slow computers to host large races; given a high speed connection to the Internet, we have found that a P-200 can host a full field of 19 players with excellent results. Machines as slow as P-133 can also serve adequately

If you operate a remotely controlled server, you can reduce its CPU requirements to minimum by turning off all graphics options and selecting the minimum number of sounds. As long as the host player doesn't enter the track, no host player physics will be initiated. We have found a P-233 to be quite sufficient for hosting full fields on a remotely controlled server, and it's possible a slower machine will also serve adequately.

Remotely Controlled Servers

GPL allows the host to enable remote control of any normal (i.e. non-dedicated server) through the use of a new field in the password entered by the host on GPL's multiplayer screen. Two modes are available: remote control by use of a Boss password, and remote control by anyone with a specified name. These modes are not mutually exclusive.

For example, to allow anyone who knows the boss password "hogg" to remotely control a server, enter this in the password field:

/hogg

To allow anyone who is named "Mary Racerhead" to remotely control a server, enter this in the password field:

=m.racerhead

To allow Mary and anyone who knows the boss password "hogg" to remotely control a server, enter this in the password field:

/hogg=m.racerhead

Although remote control is restricted, anyone can enter any of the races above. To also restrict this race to people who know the password "snookums", enter this in the password field:

snookums/hogg=m.racerhead

See GPL 1.1's readme for more information about remote control of GPL servers.

Setting Up a Dedicated Server

Note: WinVROC offers a GUI interface that eliminates the need to create the server.ini file described here.

When running as a dedicated server, GPL loops through a set of races as defined in server.ini. This file would be placed in the main GPL folder, typically C:\SIERRA\gpl.

In the following example, GPL would cycle through short races at Monza, Zandvoort, Spa, and Watkins Glen.

[ ip0 ]
addr = 209.198.95.20   ; Informational only!
auto_launch = 0        ; Bypasses the multiplayer screen when
                       ; launching; useful for Dedicated
                       ; servers.
max_players = 19       ; Max players allowed

[ race0 ]
ai = 5                 ; Number of AI
practice = 5           ; Number of minutes of practice
race_type = 0          ; 0=Nov,1/2=int s/l,3/4=pro s/l,5=GP
track = monza

[ race1 ]
practice = 5           ; Number of minutes of practice
race_type = 0          ; 0=Nov,1/2=int s/l,3/4=pro s/l,5=GP
track = zandvort

[ race2 ]
practice = 10
race_type = 3
track = spa

[ race3 ]
practice = 5
race_type = 1
track = watglen

Once you have created a server.ini, check the Dedicated checkbox on the VROC applet. When you host, the sim will go into Dedicated Server mode. It will cycle endlessly through the series of races declared in server.ini. Now you can have dinner, go to work, go to bed, or whatever, and racers all over the word will race on your computer!

When you want to reclaim your computer, hold down the Left Shift key while clicking on GPL's red button and again when clicking on OK on the popup.

Please try to wait to do this when there's no one in the middle of a torrid battle! If you can, give the people racing on your server a warning a few minutes in advance of shutting it down. Type into the chat something to the effect of "I'm reclaiming my computer at the end of this race".

See GPL 1.1's readme and sample ini files for more information about dedicated servers.

External Servers

VROC 1.0 polled all GPL servers at intervals to request race status. GPL 1.0 responded with a string of data which VROC then placed in its database.

VROC 2.0, on the other hand, does no polling. Instead, it expects GPL 1.2 to spontaneously send it race status messages at regular intervals without any intervention from VROC. In other words, VROC 1.0 used a "Pull" architecture, while VROC 2.0 uses a "Push" architecture.

This gives rise to an interesting possibility. You can make races you host in GPL 1.2 appear in the VROC 2.0 race list even if you don't launch GPL through VROC or WinVROC.

When you host a race through JavaVROC or WinVROC, WinVROC or the JavaVROC applet issues command line parameters to GPL that force it to send its race status to the VROC server at regular intervals, so you don't need to worry about this.

However, if you wish to host outside of VROC, but would like JavaVROC and WinVROC to display your race, you can insert a few lines in your core.ini which will force GPL to broadcast its race status information to the VROC server. Simply insert the following lines in your core.ini (typically C:\SIERRA\GPL\core.ini):

[ Communications ]

bcast_listserv = 207.55.131.190   ; IP address of race list server
bcast_send_freq = 30              ; race data send frequency

Whenever you run GPL in multiplayer mode, these lines will cause GPL 1.2 to broadcast its race status every 30 seconds to the default port of 6970 on the machine at 207.55.131.190 (at the time of this writing, this is the address of VROC's database server).

The first time it receives a report from your GPL server, the VROC server will create a new record in its race list database for your race and will place the information in this new record. Subsequent status messages will update this record.

A server which becomes known to VROC in this manner is known as an "External" or "Backdoor" server.

The External server has a drawback. Because you didn't launch GPL through VROC, VROC does not know all of the information that you could have entered about your server, such as your connection type, upload, location, and comment. By default, it will display some innocuous information instead.

However, you can pre-enter this information through the VROC External Server Registration mechanism. If you register your server with VROC, all of the information about your server that you would normally enter through WinVROC or JavaVROC will appear in the JavaVROC/WinVROC race list whenever your External server is sending race status messages to VROC.

See GPL 1.1's readme for more information about GPL race status broadcast and core.ini.

Registering an External Server

If you wish to operate any type of GPL server as an External server, and you would like to have the VROC/GSB race list display the same server information which is displayed for races hosted through WinVROC and VROC (such as connection type, upload baud, location, and comment), you may register your server with VROC.

When you register your server, a record containing your name, connection type, upload baud, and other information is inserted into the VROC datbase. This information will be displayed in the VROC/WinVROC race list along with your GPL server's race information whenever your GPL server is reporting race status to VROC.

Normally a GPL server's record is purged from the database if VROC has not received any race status reports after three hours. This is to prevent the database from becoming cluttered with records from "dead" servers (e.g., servers which have inadvertantly disconnected from the Internet due to a telephone modem disconnect or a system crash, and therefore have not reported the end of their race to VROC).

However, if a server is registered with VROC, it is flagged in the VROC database as a Registered server; its record becomes "persistent". VROC will not purge Registered servers from the database even if it does not report for a period of several days. This allows for regular operation of Remotely Controlled or Dedicated External servers at reasonably frequent intervals, such as on evenings and weekends.

Note that for a server registration to be effective, your machine must have a static IP or an IP which changes very rarely.

If you wish to register one or more External servers, please go here.

Hosting Behind a Gateway or Firewall

If you would like to host GPL 1.2 races from behind a gateway or firewall, see the Internet Plus LAN section of Eagle Woman's GPL Online FAQ. This section discusses setting up Linux and Sygate gateways to allow hosting GPL from machines behind the gateway.

Also review For Hosting Behind a Gateway in the VROC Options Explanation page.

Note: WinVROC offers a GUI interface that supports remote launching of GPL 1.2 through WinVROC, a feature intended especially to facilitate hosting behind a gateway or firewall.

Multiple Servers behind a Gateway or Firewall

It is quite feasible to host multiple GPL 1.2 races on several machines simultaneously from behind a single gateway, provided the gateway's connection to the Internet has adequate bandwidth to support all of the GPL servers.

To do this, simply allocate ports appropriately for each server using the port options in the JavaVROC applet or WinVROC (or in your core.ini files if you're running External servers), and set up your gateway's rules appropriately. See the Linux and Sygate gateway sections of the Internet Plus LAN section of Eagle Woman's GPL Online FAQ for details about gateway configuration.