xblast(1) xblast(1) Release 2.2 (December 14th 1996) NAME XBlast - Multi-player "Blast the Others" game SYNOPSIS xblast [ [player1]@[display1] [player2]@[display2] ...] DESCRIPTION XBlast is a multi-player arcade game for X11R5/R6. The game can be played with at least two players and up to six players. It was inspired by the video/computer game Bomberman(Dynablaster), which was to my knowledge first programmed for NEC's PC Engine/Turbo Grafx. Other (commercial) versions of the original game exist for IBM-PC, Atari ST, Amiga, NES, GameBoy and Super NES. PLAYER SETUP If you never have started xblast before, take a look at the section LAUNCHING XBLAST below. In order to setup XBlast via command-line you have to define the players and their according displays first. The player setup can only be omitted when loading the default or a named setup (using -D or -D=setup). The players have to be the first command-line arguments given to xblast. They can be given in one of the following formats playerName@displayName This defines a player named playerName using the display displayName. playerName As above, but the player will be using the default display, i.e. the one defined by the environment variable DISPLAY or by the option -display. @displayName This defines a player at the display displayName. The player name will be taken from internal defaults or from the X-Resources (see below). @ As above, but the player will be using the default display, i.e. the one defined by the environment variable DISPLAY or by the option -display. If two players have the same displayName (or both of them none at all), they will be playing in the same window at their display displayName. The first player given will be using the number pad for control, while the second player will use alphanumeric part for control. There can be only one or two players at one display. TEAM MODE OPTION Since version 2.2 XBlast features several team modes, allowing players to cooperate: - 1 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) -single In this mode each players plays for himself, .i.e the team mode is disabled. It is also the default setting. -team In this mode two players work together as one team. The players 1 & 2, 3 & 4 and 5 & 6 each form a team. In order to win, only one player of a team has to survive. This mode only works with 4 or 6 players. -double This mode is still experimental. Each team consits of two players at one display, where both player sprites have the same name and colors. A two-team-game must be setup like a two-player-game with option -double. The same for three and four player games. SOUND OPTIONS These options are only valid, when XBlast was compiled with the optional Linux sound support. -stereo This enables the stereo sound support for XBlast. This is the default option. -mono This enables the mono sound support. -nosound This disables the sound support. OTHER OPTIONS The program XBlast supports the following command-line options besides the player setup. With the exception of +u and +U options beginning with a `+' restore a setting to its default. This is useful for modifying loaded setups or X-resources. -display This option specifies your display. This display is used for all players, where a display name has been omitted (see above). -?, -h This option causes XBlast to print a usage message. -bw The option forces black and white mode for all displays. +bw The option indicates to allow the color mode for all displays, which support it. -D This option indicates to load default settings from the file ".xblast" in your home directory. This save file will be used by the Tcl/Tk based launcher in the package. - 2 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) -D=setup This option indicates to load the game setting named setup as default. The setup is loaded from the file setup in the directory ".xblast-setups" in your home directory. -f number This option sets the frame rate to number frames per second. The default value is 20. -F The options disables the fork mode. Only one process is running now. +F This option causes XBlast to fork and run one process for each display. Very useful if you are playing on XTerminals connected to a fast server. -L number This option sets the number of lives per player to number. The default value is 3. -l levelID This option sets the starting level to levelID The option -l is ignored when using random level order. Use -s to determine the levelID of all levels available. -q The option turns off bell sound. +q The option turn on bell sound. -r The option sets the random mode for level order and player position on. This option does not override the options +rp and +rl or the equivalent resources. +r The option sets the random mode for level order and player position off. This option does not override the options -rp and -rl or the equivalent resources. -rl The option turns on random mode for level order. +rl The option turns off random mode for level order. -rp The option turns on random mode for player positions. +rp The option turns off random mode for player positions. -S This option indicates to save the current settings as default to the file ".xblast" in your home directory. This save file will be used by the Tcl/Tk based launcher in the package. -S=setup This option indicates to save the current settings under the name setup. The setup will be saved in the directory ".xblast-setups" in your home under the filename setup. - 3 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) -s The option forces XBlast to print a list of all levels. The list contains the level ID, its name and author. -u levelID [levelID ...] The option indicates to use the levels given by levelID for playing. levelID can either be the id of a single level or a interval of ids as levels already selected in a loaded setup or X-resource. This option is useful to add levels to a loaded setup (see -D, -D=). -U levelID [levelID ...] The option indicates to use the levels given by levelID for playing. Any level not given in that list will not be played. This option is useful to override any level selection form a load setup (see -D, -D=). +u levelID ... The option indicates to ignore any level given by its levelID for playing. These option removes the given levels from the selection. It can be used to remove levels to play from a loaded setup. (see -D, -D=). +U levelID [levelID ...] The option indicates to ignore any level given by its levelID for playing. These option removes the given levels from the selection. Any level not given will be selected to play. It can be used to override loaded setups. (see -D, -D=). -v number This option sets the number of victories to win game to number. The default value is 5. -wm This options allows XBlast to override the reparent request by the window manager, i.e. the XBlast windows will not be managed by the window managers. This may speed up performance on some systems. +wm This options allows the XBlast windows to be managed by the window manager. LAUNCHING XBLAST The easiest way to start XBlast is to use tkXBlast(1) The second easiest way to launch XBlast is to start it without any command-line arguments. Then XBlast runs an interactive game setup querying for players and game parameters. Since it faster to launch XBlast using command-line arguments, some examples are given here. A detailed description of all command-line arguments is given in the sections PLAYER SETUP and OTHER OPTIONS (see above). - 4 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) In the first example xblast is invoked for two players (named Olli and Rodi) at one display, the default display. The default display's name is taken from the environment variable DISPLAY. $ xblast Olli Rodi In this example defaults are used for all settings, e.g 3 victories needed to win the game, 3 lives per player. If Rodi is using his own X-terminal (or workstation) X25, use $ xblast Olli Rodi@x25:0 Do not forget that the player Olli needs access permission to the display of player Rodi. This can be achieved by using xhost. If XBlast is started on the host hamlet, Rodi must type $ xhost hamlet before XBlast is started. If you want for more players to join the fun, use for example $ xblast Olli Andreas@x09:0 Rodi Harald@x25:0 Now Andreas is the second player playing at x09, Rodi is the third, playing together with Olli at the default display. Harald is the fourth player using x25. If you want to play in team mode, i.e. Olli and Andreas vs. Rodi and Harald, do the following: $ xblast Olli Andreas@x09:0 Rodi Harald@x25:0 To make the things complicated let's add some game options. Here only Olli and Andreas are playing, but with 6 victories needed to win the game: $ xblast Olli Andreas@x09:0 -v 6 If you also want random starting positions for each player, type $ xblast Olli Andreas@x09:0 -v 6 To play also the levels in random order, type $ xblast Olli Andreas@x09:0 -v 6 or $ xblast Olli Andreas@x09:0 -v 6 which turns all random order options on. Next case, you don't like some levels, e.g. XBlast 2000. To exclude it first type $ xblast -s | grep XBlast 2000 to get the ID of the level XBlast 2000. In the current version it is 3. Thus type $ xblast Olli Andreas@x09:0 -v 6 But if you only want to play only some levels (e.g. Shrinking World and Full Power Level), type $ xblast Olli Andreas@x09:0 -v 6 Alternatively, if you also want to play levels 5 to 8, you can either type $ xblast Olli Andreas@x09:0 -v 6 - 5 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) or $ xblast Olli Andreas@x09:0 -v 6 Since setting up XBlast from scratch is a bit unhandy, let's save the setup. In order to save the above setup, use $ xblast Olli Andreas@x09:0 -v 6 To start XBlast again with the same setup, just type $ xblast -D If you want to save several different setups, use a named setup, e.g. if you want to save the above settings as afterLunch, type $ xblast Olli Andreas@x09:0 -v 6 and $ xblast -D=afterLunch to restore it. You can also modify a loaded setup, e.g you want to play with only 2 lives per player, then type $ xblast -D=afterLunch -L 2 If you also want to change the levels to play, you can add or delete levels from the setup (using -u or +u), or you can create a new list (using -U or +U). Example: if you want to play the level Seek'N Destroy in addition to the above setup, type $ xblast -D=afterLunch -L2 -u 0 If you type instead $ xblast -D=afterLunch -L2 -U 0 only the level Seek'N Destroy will be played. Last but not least to save your modified setup, e.g as afterTea use $ xblast -D=afterLunch -L2 -u 0 PLAYING XBLAST The idea of the game is quite simple "There can be only one ...". So the aim is to blast away all the other players. Use your bombs to blast away the other players and certain blocks (e.g. the ?-Blocks in the 1st level). Under some of these blocks are extras. The following keys control the first (right) player at one display KP_8, KP_Up player starts walking up. KP_2, KP_Down player starts walking down. KP_4, KP_Left player starts walking to the left. KP_6, KP_Right player starts walking to the right. - 6 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) KP_5 player stops (in the center of the next block). KP_0, KP_Insert player drops a bomb (in the center of the current block). Return, KP_Add special key (e.g. remote control, special bombs) KP_Multiply request to abort of level. KP_Divide cancel abort request. The following keys control the second (left) player at one display T player starts walking up. V, B player starts walking down F player starts walking to the left. H player starts walking to the right. G player stops (in the center of the next block). Space player drops a bomb (in the center of the current block). Tab special key (e.g. remote control, special bombs) A request to abort of level. Z cancel abort request. A single player can use both key sets for playing. Furthermore the following keys effect all players P pause game, resume game after pause. Escape quit game immediately. Please not, since XBlast 2.2 the keybindings can customised via XResources (see also PLAYER RESOURCES and tkXBlast(1)). EXTRA SYMBOLS There are many extras to be found in xblast. Most of the time they can be found under blastable blocks, sometimes they are just lying around. The following extras can be found in nearly any level. You will keep these extras until you have lost all your lives or the level ends. - 7 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) Bomb (red frame) This extra increases the number of bombs you can drop by one. Flame (yellow flame) This extra increases the range of your bombs by one field. Furthermore in several levels the following symbol can be found Skull (cyan frame) This is not really an extra, but you will be infected with an random illness when picking it up. You will be healed automatically after a certain time, or if you loose one life. Additionally you can infect other players while being ill. In many levels there is also a special extra. There will always be only one type of special extra per level and you will loose it if you loose a life. The following special extras can be found Kick extra (moving bomb in blue This extra enables you to kick bombs by running into them. Invincibility (star in golden frame) This extra makes you invincible for some time. You are not killed by explosions, stunned by moving bombs, nor infected by skulls. Global Detonator (button in deep pink Picking up this extra ignites all bombs on the map. Use with care. Construction Bombs (bricks and bombs in This extra gives you construction bombs as special bombs. These bombs create a blastable block when exploding. Use the special key to drop them. Remote Control (button box in spring This extra enables you to ignite all your bombs, by pressing the special key. Teleport Extra (beaming player in orchid This extra enables you to beam away to a random location. You must be in the center of a block to activate it. Use the special key to teleport. Airpump (clouds in sky blue frame) This extra enables you to blow away (not to blast away) bombs within a range of 2 fields. It also works when your are trapped between two bombs. Use the special key to activate it. Napalm Bombs (burning bombs in orange This extra allows you to drop a high powered napalm bomb using the special key. This bomb has a much larger explosion than - 8 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) normal, and is bigger if you have more Flames. If the bomb is struck with an explosion, it will explode as a normal bomb. For the large explosion to occur, it must explode on its own. Firecrackers (firecrackers in orange frame) This extra allows you to drop firecracker bombs with the special key. Firecracker bombs set off a series of explosions that can clear away a small area. One in ten firecracker bombs is high powered, and clears away a much larger area. There is no way to tell if a firecracker is high powered or not until it explodes. Unlike napalm bombs, there is no way to stop the firecracker explosion, although it is blocked by walls and other solid objects. Pyro bombs (firecrackers in orange frame) This extra allows you to drop pyro bombs with the special key. Pyro bombs explode with a series of small explosions that dance around the level. These explosions are blocked by walls and other bombs, but are able to travel through corridors with ease. They explode randomly and cannot be controlled. Pyro bombs have the same range irrespective of how many flame extras you have. Even if the bomb is struck with an explosion, it will still explode as pyro bomb. Junkie Virus (syringe in yellow green This extra infects you with the junkie virus. Whilst you have the junkie virus, you are randomly infected with illnesses (as if you were picking up skulls). You MUST touch other players to pass on the illness within a certain time limit or you will lose a life. Any touched players are given the junkie virus as well. There is currently no way to get rid of the junkie virus (but look for a rehabilitation centre in the next release). :) SETUP RESOURCES These resources define the player and display setup of xblast, they will be read from setup files only (see -D or -D=). The command-line always overrides these settings. numberOfPlayers (class NumberOfPlayers) Specifies the number of players for the game player1 (class Player) Specifies the name of the first player. The default is "Olli" display1 (class Display) Specifies the display for the first player. player2 (class Player) Specifies the name of the second player. The default is "Norbert". - 9 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) display2 (class Display) Specifies the display for the second player. player3 (class Player) Specifies the name of the third player. The default is "Rodi". display3 (class Display) Specifies the display for the third player. player4 (class Player) Specifies the name of the fourth player. The default is "Harald". display4 (class Display) Specifies the display for fourth player. player5 (class Player) Specifies the name of the fourth player. The default is "Susi". display5 (class Display) Specifies the display for fifth player. player6 (class Player) Specifies the name of the fourth player. The default is "Garth". display6 (class Display) Specifies the display for sixth player. GAME RESOURCES These resources define the rest of the game setup of xblast. They will be taken from the following sources (in the given order): 1. internal defaults 2. the file "/usr/lib/X11/app-defaults/XBlast" 3. the server resources of the default display (can be set using xrdb). 4. a setup file (see -D or -D=). The command line arguments or the interactive setup always override resources from sources mentioned before. The following game resources are available: allowColorMode (class AllowColorMode) Specifies whether the color mode is allowed for any display, which supports it. The default is "true" bellSound (class BellSound) Specifies if the bell is used for explosions and game restart - 10 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) after pause. The default is "true" forceOverride (class ForceOverride) Specifies if reparent by window is overridden for all windows. This means windows will not be managed by the window manager. The default is "false". The may speed up the performance on some systems. fork (class Fork) Specifies is XBlast forks to run one process per served display. When "false" one process serves all displays. The default is "false". frameRate (class FrameRate) Specifies the frames per second to be displayed. The default is "20". numberOfLives (class NumberOfLives) Specifies the number of lives each player has. The value can range from "1" to "3". The default is "3". numberOfVictories (class NumberOfVictories) Specifies the number of victories need to win the game. The value can range from "1" to "9". The default is "5". randomLevelOrder (class Random) Specifies if a random level order is used. The default is "false". randomPlayerPosition (class Random) Specifies if random player positions are used. The default is "false". startingLevel (class StartingLevel) Specifies the level to start with. This resource will be ignored when the game is in random level order mode. The default is "0", which is the level Seek'N Destroy. DISPLAY RESOURCES These resources are read separately for each display used in xblast. They are read only from the following sources (in the given order): 1. internal defaults 2. the file "/usr/lib/X11/app-defaults/XBlast" 3. the server resources of the default display (can be set using xrdb). The display resources allow to setup resources for the players using that display - 11 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) rightPlayer (class Player) Specifies the name of the first, the right player (using the numeric keypad) leftPlayer (class Player) Specifies the name of the second, the left player (using the alpha keys) singlePlayer (class Player) Specifies the name of a single player Furthermore the following general resources can be set: colorMode (class ColorMode) Specifies if color mode should be used. This resource is used only for color displays. The default is "true". override (class Override) Specifies if reparenting by window manager is to be overridden. This means the xblast window will not be managed by the window manager. The default is "false". largeFont (class Font) Specifies the font to be used for large sized text. The default is "-*-helvetica-bold-r-*-*-24-*-*-*-*-*-iso8859-*" mediumFont (class Font) Specifies the font to be used for medium sized text. The default is "-*-helvetica-bold-r-*-*-18-*-*-*-*-*-iso8859-*" smallFont (class Font) Specifies the font to be used for small sized text. The default is "-*-helvetica-bold-r-*-*-14-*-*-*-*-*-iso8859-*" titleColor1 (class Background) Specifies the first color to be used for the title screen background. The default is "SpringGreen" titleColor2 (class Background) Specifies the second color to be used for the title screen background. The default is "Cyan" explosionColor1 (class ExplosionColor) Specifies the outer color of the explosion bitmaps. The default is "OrangeRed". explosionColor2 (class ExplosionColor) Specifies the main color of the explosion bitmaps. The default is "LightYellow". - 12 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) explosionColor3 (class ExplosionColor) Specifies the inner color of the explosion bitmaps. The default is "White". bombColor (calls BombColor) Specifies the color of the bombs in the game. The default is "DarkSlateGray". The following resources can be set for the object statusBar (class StatusBar ): background (class Background) Specifies the background color of the status bar at the bottom of the XBlast window. The default is "LightSteelBlue". foreground (class Foreground) Specifies the foreground color of the status bar at the bottom of the XBlast window. The default is "Black". ledColor (class Foreground) Specifies the color of LED time display at the very bottom of the XBlast window. The default is "SpringGreen". The following resources can be set for the object textBox (class TextBox ): darkColor1 (class Background) Specifies the first color used for dark texts. It is also used as background for boxed light texts. The default is "Black". darkColor2(class Background) Specifies the second color used for dark texts. It is also used as background for boxed light texts. The default is "MidnightBlue". lightColor1 (class Foreground) Specifies the first color used for light texts. It is also used as background for boxed dark texts. The default is "Yellow". lightColor2 (class Foreground) Specifies the second color used for light texts. It is also used as background for boxed dark texts. The default is "Gold". PLAYER RESOURCES These resources define the player controls, colors and messages used in the game. They are specified as part of the setup resources player1, player2, player3, player4, player5 or player6 ( class Player ) or as part of the display resources singlePlayer, leftPlayer, or rightPlayer ( class Player ). The following resource allow to define the keybindings of a player. Give a list of Keysyms to bind to this function. The defaults for singlePlayer player are always the combined - 13 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) lists for rightPlayer and leftPlayer. pauseKey (class PauseKey) Specifies the keybinding for pause game. The defaults are "KP_Subtract" for rightPlayer and "P" for leftPlayer. upKey (class UpKey) Specifies the keybinding for walk up. The defaults are "KP_8 KP_UP Up" for rightPlayer and "T" for leftPlayer. downKey (class DownKey) Specifies the keybinding for walk down. The defaults are "KP_2 KP_DOWN Down" for rightPlayer and "B V" for leftPlayer. leftKey (class LeftKey) Specifies the keybinding for walk left. The defaults are "KP_4 KP_Left Left" for rightPlayer and "F" for leftPlayer. rightKey (class RightKey) Specifies the keybinding for walk right. The defaults are "KP_8 KP_Right Right" for rightPlayer and "H" for leftPlayer. stopKey (class StopKey) Specifies the keybinding for stop. The defaults are "KP_5 KP_Begin Begin" for rightPlayer and "G" for leftPlayer. bombKey (Class BombKey) Specifies the keybinding for drop bomb. The defaults are "KP_0 KP_Insert Insert" for rightPlayer and "space" for leftPlayer. specialKey (Class SpecialKey) Specifies the keybinding for the special key. The defaults are "Return KP_Add" for rightPlayer and "Tab" for leftPlayer. abortKey (Class AbortKey) Specifies the keybinding for abort game. The defaults are "KP_Multiply" for rightPlayer and "A" for leftPlayer. abortCancelKey (Class AbortCancelKey) Specifies the keybinding for canel abort. The defaults are "KP_Divide" for rightPlayer and "Z" for leftPlayer. For messages the following resources are available: welcomeMsg (class WelcomeMsg) Specifies the message to welcome the Player at the begin of a new level. No default defined. gloatMsg (class GloatMsg) Specifies the message to be displayed when the Player gloats over another player's death. No default defined. - 14 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) abortMsg (class AbortMsg) Specifies the message to be displayed when the Player requests a level abort. The default is "Abort requested by Player" abortCancelMsg (class AbortCancelMsg) Specifies the message to be displayed when the Player cancels a level abort. The default is "Player cancels abort" loseLifeMsg (class LoseLevelMsg) Specifies the message to be displayed when the Player has lost a life. No default defined. loseLevelMsg (class LoseLevelMsg) Specifies the message to be displayed when the Player has lost a level. No default defined. winGameMsg (class WinGameMsg) Specifies the message to be displayed when the Player wins a game. The default is "CONGRATULATIONS". winLevelMsg (class WinLevelMsg) Specifies the message to be displayed when the Player wins a level. The default is "Player wins" In order to define the player colors the following resources are available: armsLegsColor (class Background) Specifies the color for the Player's arms and legs. backpackColor (class Background) Specifies the color for the Player's backpack and belt. bodyColor (class Background) Specifies the color for the Player's body. faceColor (class Background) Specifies the color for the Player's face. handsFeetColor (class Background) Specifies the color for the Player's hands and feet. helmetColor (class Background) Specifies the color for the Player's helmet. BUGS If the program does not react to any key stroke, move the mouse cursor out of the window and inside again. Some levels lack a description. If you alter the players of a loaded setup, you may get surprising results, when defining players without a given display name (see - 15 - Formatted: December 26, 2024 xblast(1) xblast(1) Release 2.2 (December 14th 1996) PLAYER SETUP). Names given by commandline do not always override, named taken from X-resources. The pyro bomb used in the level Sky Show does not have its own bitmap yet. COPYRIGHT Copyright (C) 1993-1996, Oliver Vogel (vogel@ikp.uni-koeln.de). This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licences as published by the Free Software Foundation; either version 2; or (at your option) any later version This program is distributed in the hope that it will be entertaining, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA. AUTHORS Oliver Vogel (Main Author) vogel@ikp.uni-koeln.de Garth Denley (Coauthor) g0denley@teaching.cs.adelaide.edu.au Norbert Nicolay (Linux Sound Support, optional) nicolay@ikp.uni-koeln.de CONTRIBUTORS Xavier Caron - x-caron@es2.fr Chris Doherty - cpdohert@teaching.cs.adelaide.edu.au Patrick Durish - dri@eup.siemens-albis.ch Robert Godfrey, Simon and Tristan - rrg@dcs.ed.ac.uk Keith Gillow and Mark Shepherd - gillow@maths.ox.ac.uk Rob Hite - hite@tellabs.com Christophe Kalt - kalt@hugo.int-evry.fr Joachim Kaltz - kaltz@essi.fr Laurent Marsan - mbaye@univ-mlv.fr Pierre Ramet - ramet@labri.u-bordeaux.fr Mike Schneider - schneid@tellabs.com - 16 - Formatted: December 26, 2024