xpuyopuyo(6)
NAME
xpuyopuyo - A tetris-like puzzle game for X11.
SYNOPSIS
xpuyopuyo xpuyopuyo [options] xpuyopuyo --help
DESCRIPTION
This manpage documents version 0.9.5 of xpuyopuyo.
- Xpuyopuyo is a Tetris-like puzzle game where you strive to
- match up four ``blobs'' of the same color. Each match gives you
- points, and also dumps gray rocks on your opponent which are ir
- ritating and troublesome to get rid of. Multiple matches at one
- time score more points, and result in more rocks being dumped on
- the opponent (much to their dismay). First person to fill up
- their screen with puyopuyo blobs loses.
- The game features an AI, and is capable of single-player,
- human-human play, human-AI gameplay, or AI-AI gameplay (demo
- mode). It will keep track of the total number of matches each
- player recieves, and the number of single-matches, double-match
- es, triple-matches, etc. as well.
- We ported it overnight to Linux, so we could play whenever
- we felt like. The AI's evolved more slowly; the original imple
- mentation took a week to develop. The current implementation is
- evolved using genetic algorithms; more documentation on this is
- available in the distribution. I always welcome new AI rules, or
- suggestions to improve the AI.
- This version is modelled on several other versions we have
- seen around; the original (which I have not had the opportunity
- to play) is made by Compile, http://www.compile.co.jp./.
- I release this so others may enjoy it. If this game causes
- someone out their to flame/flunk out of college, then apologies
- but it's the game's fault, not mine :). Additional information,
- documentation is available in the distribution.
GAMEPLAY
- The idea is to match up colored blobs together. A match
- is any chain of 4 or more blobs of the same color, that are adja
- cent to each other (up, down, right, or left). The game gives
- you a playing piece with two colored blobs, which you can move
- around the playing field and rotate as it falls to the ground.
- In gameplay, it is similar to Tetris.
- You get points for completing a match, and all blobs in
- volved in the match will disappear. Larger matches (matches of
- more than 4 blobs) and multiple matches at the same time score
- much more points.
- Also, if you are in a 2-player game, then several rocks
- will be dumped on your opponent when you complete a match. Rocks
- have no color; a chain of rocks does not complete a match. How
- ever, any rock adjacent to a match will be eliminated. Again,
- larger matches and multiple matches at the same time will cause
- more rocks to be dumped onto the opponent.
- (The truly unfortunate may discover the indestructible
- rock or other forms of evil rocks. You are truly fortunate if
- you survive such an encounter.)
- The game ends when you fill up your playing field. So try
- to keep the playing field as low as possible. See the options
- below for some of the features of the game you can enable.
COMMAND SWITCHES
- Many of xpuyopuyo's options may be configured by the com
- mand line. A summary and description of available options is be
- low. Note, that some options might not be available, depending
- on how you built xpuyopuyo. To see a list of supported options,
- run xpuyopuyo --help. Options are processed in the order they
- are read; later options can clobber earlier options, so it's good
- to make the difficulty option the first one.
- General options:
- -h, --help
- Display a summary of the options available.
- --insanity
- This is insanity, Max! Or what if it's genius?
- -1, --oneplayer
- Select one player game. No rocks in this version.
- Either player's controls will work in this mode.
- -2, --twoplayer
- Select two player game, human versus human. Player
- 1's controls are on the keyboard, and player 2's are in the nu
- meric keypad (this may be configured, however).
- -a, --aiplayer
- Select two player game, human versus computer. Ei
- ther player's controls will work for the human player.
- -d, --demo
- Select two player game, computer versus computer.
- Fun to setup two different AI's against each other and watch them
- go (the current longest running demo game I've seen was 57 hours
- long, and that was only ended by a bug in the timer code which
- caused one of the AI's to pause. By the time I noticed what had
- happened, the other AI had racked up an unbelievable 6,000 rocks
- against his frozen opponent ...).
- -e, --easy
- Easy gameplay. Enables options for easier gameplay.
- This option is currently equivalent to --noaidrop -number=4
- --nullify --noindestructibles.
- -m, --medium
- Medium gameplay. Enables more difficult round.
- Currently, this is equivalent to the following: --aidrop
- -number=5 --nullify --indestructibles.
- -H, --hard
- Hard gameplay. Enables the most difficult of game
- play. Currently, this is equivalent to the following: --aidrop
- -number=6 --nonullify --indestructibles. Later options can over
- ride the options set by -e, -m, or -H.
- -n, --number=n
- Specify the number of colors to use. This value
- can range from 4 to 6. The default is set by the difficulty lev
- el.
- -t, --restart
- This is a toggle option. Automatically restart af
- ter a ``Game Over''. Useful when combined with the -d flag. The
- inversion of this flag is -/t, --norestart.
- -T, --tutorial
- This is a toggle option. Enable tutorial mode. In
- tutorial mode, an AI will assist you by choosing a move it thinks
- is appropriate. You may still control the piece with the player
- controls. The inversion of this flag is -/T, --notutorial.
- --theme name
- Select a theme to use on startup. The default is
- ``default''.
- --tooltips
- This is a toggle option. When set, tooltips are
- displayed. The default is for this flag to be set. To turn off
- tooltips, use --notooltips.
- --quiet
- This is a toggle option. When set, no output is
- printed to stdout. The default is for this flag to be cleared.
- To turn off quiet use --noquiet.
- Sound Options:
- -S, --sound
- This is a toggle option that enables music and
- sound effects. The inversion of this flag is -/S, --nosound.
- --hqmixer
- This is a toggle option that enables use of the
- high quality mixer provided by mikmod. Depending on your sound
- card, this may have no effect. Defaults to off, to turn off high
- quality mixing use --nohqmixer.
- --effects
- This is a toggle option that enables sound effects.
- Defaults to on when sound is supported. To turn off sound ef
- fects use --noeffects.
- Advanced Options:
- --width=n
- Specify the width of the playing field. The de
- fault is 6.
- --height=n
- Specify the height of the playing field. The de
- fault is 14.
- --match=n
- Specify the number of blobs in a chain required for
- a match. The default is 4. For more difficult gameplay, in
- crease this value.
- -U, --nullify
- This is a toggle option. When on, your rocks can
- nullify the opponents rocks. During the game, when you complete
- a match rocks are sent to the opponent, but they do not fall un
- til their playing piece lands. In the meantime, if they accumu
- late any rocks against you, the rocks may instead be used to nul
- lify the rocks accumulated against them. If this option is off,
- then all rocks that are sent will fall on the opponent -- eventu
- ally. This option is on in easier gameplay; the inversion of
- this flag is -/U, --nonullify.
- -I, --indestructibles
- This is a toggle option. When on, "indestructible"
- blocks are allowed in the game. If a player accumulates a large
- number of matches at once (a quintuple-match is usually enough),
- then in addition to several rows of rocks being dumped on the op
- ponent, an indestructible block will also fall on the opponent.
- This rock cannot be destroyed, and the best the opponent can do
- is try to get it down to the bottom of the screen where it is at
- least out of the way. This mode of gameplay can make life very
- interesting, indeed. This is only enabled by default on hard
- difficulty; the inverwsion of this flag is -/I,
- --noindestructibles.
- Player Options:
- -s, --speed=n
- Set the speed for falling blocks for the player, in
- milliseconds per drop. The default is determined by difficulty
- level. A typical value is 350.
- -A, --accel=n
- Set the acceleration of the speed over time, in
- percentage of time lost per minute. This speeds the game up over
- time. An acceleration is only enabled on the harder difficulty
- levels. The acceleration is a floating-point value between 0 and
- 1.
- AI Options:
- -r, --airule2=n
- Select the AI rule for the right player. This op
- tion is better set in the user interface, under the AI menu. n
- must be an integer value. If n is random then a random AI is
- chosen.
- -R, --airule1=n
- Select the AI rule for the left player. This op
- tion is better set in the user interface, under the AI menu. n
- must be an integer value. If n is random then a random AI is
- chosen.
- -c, --aiscore
- This is a toggle option. This is a debug option,
- and is better left turned off. If set, the "AI score" is dis
- played instead of the next piece in the main game. The AI score
- is the ranking for the current move; higher scores mean the AI
- judged a particular move to be "better". Note that since each AI
- has its own ideas on what makes a good move, this score is highly
- dependent on the mindset of the selected AI. There's not even
- any attempt to normalise the AI score with scores from its peers.
- So this number cannot be meaningfully compared with scores for
- other AI's. The inversion of this option is -/c, --noaiscore.
- -i, --aidrop
- This is a toggle option. If set, the AI is allowed
- to drop pieces when the human opponent drops a piece. This al
- lows the AI to keep up with human players, and makes for a more
- challenging game. This option is on by default on higher diffi
- culty levels; the inversion of this is -/i, --noaidrop.
- Network Options:
- --server
- This starts a new server. The server has the ad
- vantage of being able to set the game options. It will wait for
- a connection from a client, then the game may begin. The server
- will listen on the default port unless --port is also given.
- --client=server
- This connects to the server specified. The connec
- tion will be made to the default port on the server given, unless
- the --port option is also given.
- --port=n
- This specifies an alternate port than the default,
- for network games.
- --networkai
- Enables AI in a network game. This is intended for
- debugging only. This is a toggle option; its inverse is
- --nonetworkai.
- Tournament Options:
- The tournament options are for AI breeding mode only, and
- are not well documented. They are: -z, --tournament, -Z,
- --hypertournament, and -Y
- In the GTK version, there will be exactly one indestruc
- tible block in the About box. Curious, don't you think?
PLAYER CONTROLS
- The player controls are configurable in the game. They
- may be viewed and/or redefined in the Options menu. You can de
- fine up to three keys per action per player. The actions are
- left, right, rotate, and drop.
- Note, that when you assign keys, key combinations are not
- allowed, and you should probably avoid attempting to assign a
- modifier key. The keys Enter, P, and Escape will restart the
- current game, pause a game, and end the current game (respective
- ly) unless you assign these keys to a player control. If you as
- sign these keys as player controls, you can still use Ctrl-R,
- Ctrl-Z, and Ctrl-P to perform the same actions.
- When in single-player or human-AI mode, you may use either
- player's controls to control your game field.
NETWORK GAMEPLAY
- Network gameplay is much like normal 2-player gameplay,
- except you must first setup a network connection between two
- games. One xpuyopuyo game will act as a server, and the other
- will act as a client. First, on the server side, select the
- Network menu, Server and click Ok (you may change the port to
- listen to, if you like). Then on the client side, select the
- Network, Client Connection. Enter the machine name of the server
- and the port number to use (if you changed it in the server) and
- click Ok.
- To begin a network game, both players must select New Game
- in the Game menu. The game will wait until both players are
- ready before starting the game.
AI GAMEPLAY
- AI's are created using Genetic Algorithms. The flexible
- formulas allow the AI to take advantage of certain scenarios, and
- allow the AI to weight them accordingly. The rules are changing
- constantly as the AI evolves, and suggestions on new rules are
- welcome. A general list of strategies follows (not sorted in any
- particular order). The AI checks every possible move with the
- current piece and uses the rules it evolved to determine which is
- the best move.
- Distance from top of playing field
- We don't want the AI to stack up all its pieces at
- the top of the screen.
- Hard limit to the height of structures
- As much as we don't like height, we really don't
- want the AI building things within the top four or so rows of the
- field. This rule carries a lot of weight in all AI personali
- ties.
- Opportunity to complete a match
- Bonus to complete several matches at once
- The AI decides this by simulating what would happen
- if it put the game piece in various locations.
- Penalty for blocking a potential match
- For example, covering a hole with three blobs of
- the same color already present). Some AI's choose to break this
- rule more than others; in general these AI's tend to get more
- multiple-matches (often triples or quadruples).
- Eliminating rocks
- Some AI's consider it a small benefit to try to
- eliminate as many rocks as possible. If the AI has a choice of
- two matches, the deciding factor could be in which one eliminates
- more rocks.
FILES
- ~/.xpuyopuyo/airule.*
- A list of AI rules. To reset the AI rules to the
- defaults, remove these files.
- ~/.xpuyopuyo/config
- Configuration options for xpuyopuyo. All of these
- options can be set from the interface, there should be no need to
- edit this file directly.
- ~/.xpuyopuyo/highscores
- High scores for xpuyopuyo.
- ~/.xpuyopuyo/userkeys
- User-defined keys for player controls.
- xpuyopuyo.txt
- Manual page for xpuyopuyo. This is installed to
- your local share directory, and used for the on-line help system.
- copying.txt
- Copy of the GPL. This is installed to your local
- share directory, and used for the on-line help system.
SEE ALSO
- The xpuyopuyo home page at <http://chaos2.org/xpuyopuyo>.
- There is also additional documentation in the distribution, under
- the doc/ directory.
AUTHORS
- xpuyopuyo was written by Justin David Smith
- <justins(at)chaos2.org>, and the original images were designed by
- Owen Aftreth. The first GTK version was ported by Havoc Penning
- ton.
- This manual page written by Justin David Smith
- <justins(at)chaos2.org>. Copyright(c) 2001,2000-1999 Justin
- David Smith.
- (Please do not list these e-mail addresses on webpages, or
- list them in other packages, without contacting us first.)
- Justin David Smith March 2000