XPILOT(6)

NAME
xpilot - XPilot/UX Multiplayer gravity war game hand-shake program

SYNOPSIS
xpilot [-join] [-list] [-name nickname] [-team team-number] [-help] [-version] [server-host]

DESCRIPTION
XPilot is a multiplayer game which looks a bit like Thrust, the good old action game for the Commodore 64. Several clones have appeared for various computers, among others Gravity Force for the Commodore Amiga. The main objective of the game varies as you can choose different game modes, although the only modes supported as of today are combat and race. The former mode focuses more strongly on shooting each other down, while the latter is more a piloting test than anything else. To start playing, you need only to connect to a server by using a small hand-shake program called xpilot. If there are no servers running, you will have to start one on your own (see man-page xpilots(6)).

  Options

-help
    Prints some help, including commandline options.

-version
    Prints the current version.

-name player-name
    Lets you use an alternative name during the play (may be handy :). If this option isn't specified, and you haven't set the X resource name, you will be known by your login name.

-team team-number
    Joins team number team-number. This has various effects - you cannot harm another team member (and they cannot harm you), and you can see (though not on radar) cloaked team-mates. Note however, that you can still harm yourself. This option will probably be much more enhanced in the future. You may also specify a team number using X resources, see below for details. Team 0 is equivalent to no team.

-join
    Automatically joins the first and best server.

-list
    Queries status information from all servers found.

-shutdown [message]
    Sends a shutdown to the server, the message part is optional.

server-host
    Tries to connect to server at host server-host. The default is to search through the sub-domain your machine is connected to. Note that you must use this option if your net isn't class C.

PROMPT COMMANDS
When you startup xpilot without the -join option, you will get a prompt asking you for directions. You may type 'h' or '?' to list the available commands. These are quite obvious and deal with communication to the current server only. You may enter the game by pressing CR (Return/Enter). If you are the owner of the server you will have a few extra options. See xpilots(6).

THE WINDOW
When you enter a game you will hopefully be presented a window. This window is divided into three major areas:

    The radar
        This area shows the map the server you are playing on is using as well as the position of your fellow players (if they aren't cloaked). In race mode the radar also outputs the position of the control posts.

    The player list
        This area shows the list of players (sorted with respect to rating) currently logged on the server. A sample field looks like this:

        *9 Selac 003 64

        The asterisk (*) means that the player Selac (me) has the best <rating>/<deaths> ratio. You can also see that I am a member of team no. 9, that I have died 003 times and have a rating of 64.

    The game area
        This is where the action is. Most notably you will see your fighter in the middle of the screen, hopefully you won't see any shots or explosions yet! You may also see some strange blue drawings surrounding your fighter - this is the HUD (Head Up Display) which greatly simplifies and compresses the information you need to know. Currently, the HUD displays the following information:

        Special items
            You may notice some characters and numbers on the left side of the HUD, these indicate which, and how many, special items you have picked up.

        Fuel
            A fuel meter will appear on the right side of the HUD when you are getting low on fuel, it will start flashing when your fuel level gets dangerously low. The fuel is numerically displayed on the bottom right corner of the HUD.

        Lock
            The name of the player you have currently locked on is shown on the top of the HUD. Also, the distance and bearing to the player is visualized by a dot where placement of the dot gives the direction, and the size of the dot gives the distance. The dot will be filled if the player is not on the same team as you. The distance to the player also numerically displayed on the top right corner of the HUD, it is measured in 'blocks'.

        Velocity
            The position of the HUD changes with the current velocity. The distance from the center of your scrren is proportional to your velocity. Moving to the top moves the HUD to the bottom.
            In addition to the moving HUD, you can display a line from the center of the HUD to the center of your ship.
            Both indicators can be combined or used exclusivly.

GAME PLAY
This section will only describe the combat mode of the game as the race version is quite straightforward. The game has really no main purpose but to have fun. This is achievable in many ways, but mainly by blasting away on human or robot players as well as cannons. All will naturally fire back at you, so you will also need some nifty piloting skills and/or some heavy equipment to really enjoy living. Another vital part of your machinery is your energy/fuel - without it, you will surely die a horrible death. You may notice some red circles - either containing a plus (+), minus (+), clockwise or anti-clockwise arrow. These are gravs which affect the gravity. You may also notice some rotating circles, this is a wormhole, a shortcut through the space-time continuum (works like teleporting). Generally, when you go through a wormhole, you'll come out at the nearest wormhole in the direction you were travelling. Some wormholes are enter-only and some are exit-only. The exit-only ones are invisible. Passing through a wormhole will make you visible for a while if you were cloaked. During the game you might encounter red triangles - these are special items which will make your life easier. As of today, these are:

    F   More fuel.

    C   Cloaking device.

    I   Instrument pack - improves your sensors so that you can see cloakers more easily.

    R   Rear shot. The more you pick up, the more awesome your firepower gets.

    W   Wide angle shots. The more you pick up, the more awesome your firepower gets.

    A   After burner. Your main engine is more powerfull and uses your fuel more efficiently.

    S   Pack of smart shots (missiles). Default is four missiles in each pack.

    M   Pack of mines. Default is one mine in each pack.

    D   Missile deflector. Only one can be carried, and when used, it redirects all missiles targeted for you to the person you have selected.

    T   Fuel tank. Increases your fuel capacity, but also increases your mass.

CONTROLS
The game understands quite some keys, but not all of them are equally important. The following keys are in prioritized order, and note that a | is used to separate equivalent keys. The words inside the curly braces {} are the name of the resources that corresponds to the actions, see Xresources below.

    Primary keys
        The primary keys are:

        a {keyTurnLeft}
            Turn left (anti-clockwise).

        s {keyTurnRight}
            Turn right (clockwise).

        shift {keyThrust}
            Thrust me.

        return {keyFireShot}
            Fire normal shot.

        space | right-meta {keyShield}
            Activate shield. Must be held down for continuous use.

        ctrl | f {keyRefuel}
            Try to connect to nearest fuel station. Must be held down during refueling.

            Secondary keys
                The following commands are not always available, some require special items to have any functionality at all.

                q {keySelfDestruct}
                    Self destruct. At last we managed to include a timer, got rid of all those nasty I'd-rather-die-by-my-own-hands-than-let-you-kill-me-and-get-all- the-points pilots.

                backSpace {keyCloak}
                    Enable/disable cloaking device if available. You will be invisible on both radar and on screen, but beware - the device is not foolproof, it is not cheap on your fuel and the only thing becoming invisible is your ship, i.e. the exhaust-flames will still be visible.

                Esc {keySwapSettings}
                    Toggle between two different settings. You'll probably want more power and a larger turn rate in combat than when you're doing some critical maneuvering. Also, the game speed (unfortunately) varies as the load of the machines and the net varies.

                Tab {keyDropMine}
                    Drop a proximity mine. The mine will detonate after a certain amount of time (quite large actually) or when a foe comes too near.

                LF (lineFeed) {keyEcm}
                    Fire an ECM pulse.

                Home {keyChangeHome}
                    Change home base. You will need to be landed on the base of your choice. (The Home key is located just right of the Return key on most HP-keyboards.) These keys are convenient for HP keyboards, also somewhat adapted to SUN keyboards.

                W {keyTankNext}
                    If you have additional tanks, the current tank will be the next tank.

                E {keyTankPrev}
                    If you have additional tanks, the current tank will be the previous tank.

                R {keyTankDetach}
                    Detach the current tank (or the last additional tank). Heet-seeking missiles will follow this tank.

                p {keyPause}
                    Parking mode - you can only park while you're landed on your own home base, and when you park, you cannot rejoin the game until the P has stopped blinking (to prevent users from using this option to run away from a battle).

                These keys let you adjust the control sensitivity:

                * {keyIncreasePower}
                    Increase engine power.

                / {keyDecreasePower}
                    Decrease engine power.

                + {keyIncreaseTurnspeed}
                    Increase turn speed.

                - {keyDecreaseTurnspeed}
                    Decrease turn speed.

                [ {keySlowdown}
                    Slows down the game (owner only).

                ] {keySpeedup}
                    Speeds up the game (owner only).

                The following requires that you have a lock on somebody:

                \ (backSlash) {keyFireMissile}
                    Fire smart missile if available. The missile will home onto the player that you have currently locked on. You must have a clear lock on a player for this to work.

                \ (semicolon) {keyFireHeat}
                    Fire a thrust controlled missile. Works like a smart missle, but is faster and ECM isn't able to confuse it. Needs the thrust for navigating.

                \ (singleQuote) {keyFireTorpedo}
                    Fire a missile without flight control. It runs very fast in shot direction. No lock is required.

                Select | Up | Down {keyLockClose}
                    Will lock onto the closest player if he/she is within range.

                Next | Right {keyLockNext}
                    Will, if possible, lock onto the next player in the game.

                Prior (Prev) | Left {keyLockPrev}
                    Will, if possible, lock onto the previous player in the game.

                    There is even a cheat mode, and a possibility to join the 'twilight-
                        zone boys' if you should be so lucky to hit the right key while the option isn't disabled. But don't lose any sleep over it, it's not that easy. Usually, this option is disabled.

X RESOURCES
XPilot understands the following X resources in addition to the key resources described above:

    name
        Nick name of your player.

    team
        Preferred team number.

    power
        Primary power setting of your engine. Primary in this context means that it is part of the default setting, secondary means the other setting (two different settings are available, pressing Esc will switch between them). You may change "sensitivity" of your ship by adjusting these parameters. Often you would like one setting to be more "rough" than the other - one setting for fine maneuvering and one for racing. (Default 45.0)

    turnSpeed
        Primary turnspeed setting of your ship. (Default 30.0)

    turnResistance
        Primary turnresistance setting of your ship. This value determines how fast your ship will stop rotating, i.e. the rotating speed of your ship is set equal to itself multiplied by this value. Obviously the value has to lie between 0.0 (exclusive) and 1.0 (inclusive). (Default 0.12)

    altPower
        Secondary power setting of your engine. (Default 35.0)

    altTurnSpeed
        Secondary turnspeed setting of your ship. (Default 25.0)

    altTurnResistance
        Secondary turnresistance setting of your ship. (Default 0.12)

    fuelNotify
        The limit when the HUD fuel bar will become visible. (Default 500.0)

    fuelWarning
        The limit when the HUD fuel bar will start flashing. (Default 200.0)

    fuelCritical
        The limit when the HUD fuel bar will flash faster. (Default 100.0)

    showHUD
        Should the HUD be on or off. (Default true)

    verticalHUDLine
        Should the vertical lines in the HUD be drawn. (Default false)

    horizontalHUDLine
        Should the horizontal lines in the HUD be drawn. (Default true)

    speedFactHUD
        Should the HUD me moved, to indicate the current velocity. Negativ values will inverse the moving of the HUD. (Default 0.0)

    speedFactPTR
        Uses a red line to indicate the current velocity. On edge of the line is the center of the ship. The other end is moved in the same way, as the HUD, if speedFactPTR is set.

    fuelMeter
        Determines if the fuel meter should be visible. This meter visualizes your fuel level in a different way than fuelGauge does.

    fuelGauge
        Determines if the fuel gauge should be visible. See fuelMeter.

    turnSpeedMeter
        Should the turnspeed meter be visible at all times. (Default false)

    powerMeter
        Should the power meter be visible at all times. (Default false)

    BackgroundPointDist
        Specifies the block distance between points, used in empty map regions. 8 is default, 0 means no points.

EXAMPLES
The simplest invocation of the hand-shake program is to just type:

    xpilot

This will force the program to search after a server on all the machines on your sub-domain (i.e. all the machines with the all but the last part of the IP address in common). Say this don't work (it often doesn't unfortunately), and you know where the server is, and you don't want to be prompted (handy in scripts etc.), you may type for example:

    xpilot -join lglab08

In the examples above your name would be your login name. Let's say you want to be really cool and your login name is gudmari, well - you're in loads of trouble if you don't know about the -name option;

    xpilot -name FireEater

will fix the problem for you.

WARNINGS
If the server should go down, you will be without autorepeat on your keyboard. To re-enable autorepeat, use the xset command with the r switch, i.e.:

    xset r

Also note that the game speed cannot be controlled, so that the only way to slow down a game is to have several dummies join it. Use the following command:

AUTHORS
The xpilot product was developed by Bjoern Stabell and Ken Ronny Schouten at the University of Tromsoe, Norway.

BUGS
The product is seemingly stable, so bug reports are highly appreciated. Send email to xpilot-request@cs.uit.no and we will see what we can do. We merely ask that you remember to include the following information:

    - The platform(s) the bug(s) occurs on and what kind of display (depth, color, type) you use.
    - The version, revision and patchlevel of XPilot.
    - What the bug(s) looks like.
    - When the bug(s) usually occurs.

        We would also like to receive changes you do to make the code compile on your machine (we would NOT like to receive the whole program translated to K&R C, keep it ANSI :) If you don't have an ANSI compiler, there are several utilities which may help you de-ANSI-fy the code (unproto, unprotoize etc).

NOTES
For credit list, see xpilots(6).

FILES
/usr/local/games/lib/xpilot/motd
    Message of the day.
/usr/local/games/lib/xpilot/maps/
    Directory containing maps.

SEE ALSO
xpilots(6)