xpuyopuyo(6)                                                      xpuyopuyo(6)



NNAAMMEE
       xpuyopuyo - A tetris-like puzzle game for X11.

SSYYNNOOPPSSIISS
       xxppuuyyooppuuyyoo

       xxppuuyyooppuuyyoo _[_o_p_t_i_o_n_s_]

       xxppuuyyooppuuyyoo ----hheellpp

DDEESSCCRRIIPPTTIIOONN
       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 irritating and trou-
       blesome 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 num-
       ber of single-matches, double-matches, 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 implementation took a
       week to develop.  The current implementation is evolved  using  genetic
       algorithms;  more  documentation  on this is available in the distribu-
       tion.  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.

GGAAMMEEPPLLAAYY
       The idea is to match up colored blobs together.  A _m_a_t_c_h is  any  chain
       of  4  or more _b_l_o_b_s of the same color, that are adjacent 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 involved 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 _r_o_c_k_s will be dumped
       on your opponent when you complete a match.  Rocks  have  no  color;  a
       chain  of  rocks does not complete a match.  However, 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 _i_n_d_e_s_t_r_u_c_t_i_b_l_e  _r_o_c_k  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.

CCOOMMMMAANNDD SSWWIITTCCHHEESS
       Many of xpuyopuyo's options may be configured by the command  line.   A
       summary and description of available options is below.  Note, that some
       options might not be available, depending on how you  built  xpuyopuyo.
       To  see a list of supported options, run xxppuuyyooppuuyyoo ----hheellpp.  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h,, ----hheellpp
              Display a summary of the options available.

       ----iinnssaanniittyy
              This is insanity, Max!  Or what if it's genius?

       --11,, ----oonneeppllaayyeerr
              Select  one  player  game.   No  rocks  in this version.  Either
              player's controls will work in this mode.

       --22,, ----ttwwooppllaayyeerr
              Select two player game, human versus human.  Player 1's controls
              are  on  the  keyboard, and player 2's are in the numeric keypad
              (this may be configured, however).

       --aa,, ----aaiippllaayyeerr
              Select two player game, human versus computer.  Either  player's
              controls will work for the human player.

       --dd,, ----ddeemmoo
              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 hap-
              pened, the other AI had racked up an  unbelievable  6,000  rocks
              against his frozen opponent ...).

       --ee,, ----eeaassyy
              Easy gameplay. Enables options for easier gameplay.  This option
              is  currently  equivalent  to  ----nnooaaiiddrroopp  --nnuummbbeerr==44   ----nnuulllliiffyy
              ----nnooiinnddeessttrruuccttiibblleess.

       --mm,, ----mmeeddiiuumm
              Medium  gameplay. Enables more difficult round.  Currently, this
              is equivalent to the  following:  ----aaiiddrroopp  --nnuummbbeerr==55  ----nnuulllliiffyy
              ----iinnddeessttrruuccttiibblleess.

       --HH,, ----hhaarrdd
              Hard  gameplay.  Enables  the  most difficult of gameplay.  Cur-
              rently, this is equivalent to the following: ----aaiiddrroopp  --nnuummbbeerr==66
              ----nnoonnuulllliiffyy  ----iinnddeessttrruuccttiibblleess.   Later options can override the
              options set by --ee, --mm, or --HH.

       --nn,, ----nnuummbbeerr==_n
              Specify the number of colors to use.  This value can range  from
              4 to 6.  The default is set by the difficulty level.

       --tt,, ----rreessttaarrtt
              This  is  a toggle option.  Automatically restart after a ``Game
              Over''.  Useful when combined with the -d flag.   The  inversion
              of this flag is --//tt, ----nnoorreessttaarrtt.

       --TT,, ----ttuuttoorriiaall
              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T, ----nnoottuuttoorriiaall.

       ----tthheemmee _n_a_m_e
              Select a theme to use on startup.  The default is ``default''.

       ----ttoooollttiippss
              This is a toggle option.  When set, tooltips are displayed.  The
              default  is  for this flag to be set.  To turn off tooltips, use
              ----nnoottoooollttiippss.

       ----qquuiieett
              This is a toggle option.  When set, no output is printed to std-
              out.   The  default is for this flag to be cleared.  To turn off
              quiet use ----nnooqquuiieett.

       Sound Options:

       --SS,, ----ssoouunndd
              This is a toggle option that enables music  and  sound  effects.
              The inversion of this flag is --//SS, ----nnoossoouunndd.

       ----hhqqmmiixxeerr
              This  is  a  toggle  option that enables use of the high quality
              mixer provided by mikmod.  Depending on your soundcard, this may
              have  no effect.  Defaults to off, to turn off high quality mix-
              ing use ----nnoohhqqmmiixxeerr.

       ----eeffffeeccttss
              This is a toggle option that enables sound effects.  Defaults to
              on  when  sound  is  supported.   To  turn off sound effects use
              ----nnooeeffffeeccttss.

       Advanced Options:

       ----wwiiddtthh==_n
              Specify the width of the playing field.  The default is 6.

       ----hheeiigghhtt==_n
              Specify the height of the playing field.  The default is 14.

       ----mmaattcchh==_n
              Specify the number of blobs in a chain  required  for  a  match.
              The  default  is  4.  For more difficult gameplay, increase this
              value.

       --UU,, ----nnuulllliiffyy
              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 until their
              playing  piece  lands.   In the meantime, if they accumulate any
              rocks against you, the rocks may instead be used to nullify  the
              rocks accumulated against them.  If this option is off, then all
              rocks that are sent will fall on  the  opponent  --  eventually.
              This option is on in easier gameplay; the inversion of this flag
              is --//UU, ----nnoonnuulllliiffyy.

       --II,, ----iinnddeessttrruuccttiibblleess
              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 opponent,
              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I, ----nnooiinnddeessttrruucc--
              ttiibblleess.

       Player Options:

       --ss,, ----ssppeeeedd==_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A,, ----aacccceell==_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r,, ----aaiirruullee22==_n
              Select  the AI rule for the right player.  This option is better
              set in the user interface, under the AI  menu.   _n  must  be  an
              integer value.  If _n is rraannddoomm then a random AI is chosen.

       --RR,, ----aaiirruullee11==_n
              Select  the  AI rule for the left player.  This option is better
              set in the user interface, under the AI  menu.   _n  must  be  an
              integer value.  If _n is rraannddoomm then a random AI is chosen.

       --cc,, ----aaiissccoorree
              This  is a toggle option.  This is a debug option, and is better
              left turned off.  If set, the "AI score" is displayed 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 partic-
              ular  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c, ----nnooaaiissccoorree.

       --ii,, ----aaiiddrroopp
              This is a toggle option.  If set, the  AI  is  allowed  to  drop
              pieces  when  the human opponent drops a piece.  This allows the
              AI to keep up with human players, and makes for a more challeng-
              ing  game.   This  option  is on by default on higher difficulty
              levels; the inversion of this is --//ii, ----nnooaaiiddrroopp.

       Network Options:

       ----sseerrvveerr
              This starts a new server.  The server has the advantage 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 ----ppoorrtt is also given.

       ----cclliieenntt==_s_e_r_v_e_r
              This  connects  to the server specified.  The connection will be
              made to the default port on the server given, unless the  ----ppoorrtt
              option is also given.

       ----ppoorrtt==_n
              This  specifies  an alternate port than the default, for network
              games.

       ----nneettwwoorrkkaaii
              Enables AI in a network game.  This is  intended  for  debugging
              only.  This is a toggle option; its inverse is ----nnoonneettwwoorrkkaaii.

       Tournament Options:

       The  tournament options are for AI breeding mode only, and are not well
       documented.  They are: --zz, ----ttoouurrnnaammeenntt, --ZZ, ----hhyyppeerrttoouurrnnaammeenntt, and --YY

       In the GTK version, there will be exactly one indestructible  block  in
       the About box.  Curious, don't you think?

PPLLAAYYEERR CCOONNTTRROOLLSS
       The  player  controls are configurable in the game.  They may be viewed
       and/or redefined in the Options menu.  You can define up to three  keys
       per  action per player.  The actions are _l_e_f_t, _r_i_g_h_t, _r_o_t_a_t_e, and _d_r_o_p.

       Note, that when you assign keys, key combinations are not allowed,  and
       you  should  probably  avoid  attempting to assign a modifier key.  The
       keys _E_n_t_e_r, _P, and _E_s_c_a_p_e will restart the current game, pause a  game,
       and end the current game (respectively) unless you assign these keys to
       a player control.  If you assign these keys as player controls, you can
       still use _C_t_r_l_-_R, _C_t_r_l_-_Z, and _C_t_r_l_-_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.

NNEETTWWOORRKK GGAAMMEEPPLLAAYY
       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 _N_e_t_w_o_r_k menu, _S_e_r_v_e_r and click _O_k (you may
       change the port to listen to, if you like).  Then on the  client  side,
       select  the  _N_e_t_w_o_r_k, _C_l_i_e_n_t _C_o_n_n_e_c_t_i_o_n.  Enter the machine name of the
       server and the port number to use (if you changed it in the server) and
       click _O_k.

       To  begin a network game, both players must select _N_e_w _G_a_m_e in the _G_a_m_e
       menu.  The game will wait until both players are ready before  starting
       the game.

AAII GGAAMMEEPPLLAAYY
       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.

       _D_i_s_t_a_n_c_e _f_r_o_m _t_o_p _o_f _p_l_a_y_i_n_g _f_i_e_l_d
              We  don't  want  the AI to stack up all its pieces at the top of
              the screen.

       _H_a_r_d _l_i_m_i_t _t_o _t_h_e _h_e_i_g_h_t _o_f _s_t_r_u_c_t_u_r_e_s
              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 personalities.

       _O_p_p_o_r_t_u_n_i_t_y _t_o _c_o_m_p_l_e_t_e _a _m_a_t_c_h

       _B_o_n_u_s _t_o _c_o_m_p_l_e_t_e _s_e_v_e_r_a_l _m_a_t_c_h_e_s _a_t _o_n_c_e
              The AI decides this by simulating what would happen  if  it  put
              the game piece in various locations.

       _P_e_n_a_l_t_y _f_o_r _b_l_o_c_k_i_n_g _a _p_o_t_e_n_t_i_a_l _m_a_t_c_h
              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).

       _E_l_i_m_i_n_a_t_i_n_g _r_o_c_k_s
              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.

FFIILLEESS
       ~~//..xxppuuyyooppuuyyoo//aaiirruullee..**
              A  list  of  AI  rules.   To reset the AI rules to the defaults,
              remove these files.

       ~~//..xxppuuyyooppuuyyoo//ccoonnffiigg
              Configuration options for xpuyopuyo.  All of these  options  can
              be  set from the interface, there should be no need to edit this
              file directly.

       ~~//..xxppuuyyooppuuyyoo//hhiigghhssccoorreess
              High scores for xpuyopuyo.

       ~~//..xxppuuyyooppuuyyoo//uusseerrkkeeyyss
              User-defined keys for player controls.

       xxppuuyyooppuuyyoo..ttxxtt
              Manual page for xpuyopuyo. This is installed to your local share
              directory, and used for the on-line help system.

       ccooppyyiinngg..ttxxtt
              Copy  of  the  GPL. This is installed to your local share direc-
              tory, and used for the on-line help system.

SSEEEE AALLSSOO
       The xpuyopuyo home page  at  <http://chaos2.org/xpuyopuyo>.   There  is
       also  additional  documentation  in  the  distribution,  under the doc/
       directory.

AAUUTTHHOORRSS
       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 Pennington.

       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                      xpuyopuyo(6)
