3 by Andrew Church <achurch@achurch.org>
4 and Petr Baudis <pasky@ucw.cz>
9 For general information on Tetrinet, consult the file tetrinet.txt (the
10 text file distributed with the original Windows version).
12 The following notes apply to the Linux version of Tetrinet:
15 Distribution/license information
16 --------------------------------
17 This program is public domain, and may be modified and distributed without
23 You must be using a 50-line text display to run this version of Tetrinet;
24 Xwindows is not yet supported. One option is to open an xterm window in
25 Xwindows and resize it to be 50 lines high. The other option (recommended)
26 is to use a 50-line text console.
28 To get a 50-line text console, if you use LILO to boot, add the following
29 line to the top of your /etc/lilo.conf file:
33 run /sbin/lilo, and reboot. If you use a boot disk without LILO, insert it
34 into your floppy drive, give the following command:
40 Another option is to use the SVGATextMode program, available on Sunsite
41 ({http,ftp}://sunsite.unc.edu/pub/Linux/) and other places, to switch your
42 console to 50-line mode without rebooting. You may also use that program
43 to set up a larger display (for example, I use 100x60); Tetrinet will
44 detect this and rearrange the display to make the best use of the available
50 Type "make". This will generate two programs: "tetrinet" and
51 "tetrinet-server". The former is the main program; the latter is a
54 It is recommended to have a brief look at the start of Makefile, it may
55 contain some rather obscure but potentially invaluable compilation
56 switches. It might not be necessary to change anything there at all, but
57 it is good to be aware of the switches' existence.
62 Tetrinet requires two command-line arguments: your nickname and the server
63 to connect to, in that order. For example:
65 tetrinet MyNick tetrinet.somerandom.net
67 Tetrinet will function only as long as it remains connected to the server;
68 there is no "Client Settings" option as in the Windows version. This may
69 be remedied in a future version.
71 You can also give Tetrinet any of the following options:
73 -fancy Use "fancy" TTY graphics. (Note that this will slow
74 down redraws somewhat.)
76 -fast Use the "tetrifast" mode to connect to the server.
77 This mode eliminates the delay before a new cube
78 appears, thus speeding the game up noticeably. This
79 mode is incompatible with the classic mode and the
80 server has to support it. If in doubt, ask the other
83 -log <file> Log network traffic to the given file. All lines
84 start with an absolute time (seconds) in brackets.
85 Lines sent from the client to the server are prefixed
86 with ">>>", and lines from the server to the client
87 are prefixed with "<<<". This could be used with a
88 utility program to replay a game later on (though such
89 a program is not currently included in the Tetrinet
92 -noshadow Do not make pieces cast "shadows" when they are slowly
93 falling. (Normally the area under piece is filled by
94 dim dots to help to determine where the piece would hit
95 the ground if one would press the spacebar.)
97 -noslide Do not allow pieces to "slide" after being dropped
98 with the spacebar. (Normally, there is a short time
99 after pressing the spacebar during which a piece can
100 "slide" left or right before it solidifies.)
102 -slide Opposite of -noslide; allows pieces to "slide" after
103 being dropped. If both -slide and -noslide are given,
104 -slide takes precedence. If both -windows and -slide
105 are given, this overrides the "no sliding" part of
106 -windows without affecting the other changes in
109 -shadow Opposite of -noshadow; makes pieces cast "shadows".
111 -windows Behave as much like the Windows version of Tetrinet as
112 possible. (See "Differences from Windows Tetrinet".)
113 Implies -noslide and -noshadow.
118 There are two ways to start the Tetrinet server. One way is to give the
119 "-server" option to the Tetrinet program:
123 Note that this is the deprecated way and support for this may be removed in
124 the future releases. You must also explicitly enable it in the Makefile during
127 The other is to run the "tetrinet-server" program. Both of these are
128 exactly equivalent. The server can be stopped with ^C or a "kill" command.
130 If you want the server to run in the background, use an "&" after the
131 command, for example:
136 Configuring the server
137 ----------------------
138 The server is configured via the ".tetrinet" file in your home directory.
139 This contains all the settings for the server in a simple format. The
140 following is a sample .tetrinet file:
142 winlist Alcan;0;3;1 AndrewK;0;2;1
151 pieces 14 14 15 14 14 14 15
152 specials 18 18 3 12 0 16 3 12 18
156 Note that this file is automatically re-written at the end of a game or
157 when the server is terminated. If you want to modify parameters for a
158 running server, send the server a HUP signal, using the command:
160 kill -HUP <pid-of-server>
162 where <pid-of-server> is the process ID of the server. A simpler
165 killall -HUP tetrinet-server
167 Three of the configuration lines require special explanation. The winlist
168 line is, as its name suggests, the winlist for the server; each parameter
169 contains four semicolon-separated fields:
170 name ; team ; points ; games
171 "team" is a flag which is either 1 if the entry is for a team or 0 if the
172 entry is for a player. "points" is just the number of points for the
173 player (see the main Tetrinet documentation); "games" is the number of
174 games in which that player has participated since getting on the winlist.
176 The pieces line contains percentage frequencies for each type of piece.
177 The order is: bar, square, reverse-L (green), L (purple), Z (red),
180 The specials line, likewise, contains percentage frequencies for each type
181 of special. The order is: A, C, N, R, S, B, G, Q, O.
183 The "linuxmode" setting selects whether the client should try to remain
184 compatible with Windows clients. This only affects the winlist display; if
185 linuxmode is set to 1, the server will send the number of games played by
186 each player as well as points won. This is set to zero by default.
188 If the "ipv6_only" setting is set to a nonzero value, the server will only
189 listen for IPv6 connections; if zero (default), the server will listen on
190 both IPv4 and IPv6 if possible.
195 The display mode can be selected by one of the following keys:
201 F10 can be used to quit at any time.
203 In Partyline mode, the following commands are available. To use a command,
204 simply type the command and arguments into the Partyline input buffer and
205 press Return (just like IRC).
207 /team [name] Set your team name. If a name is not given, play
209 /start Start a game (if you are the first player on the
211 /stop, /end Stop the game currently in progress (either command
213 /pause Pause the game.
214 /unpause Unpause the game.
215 / Quote a following slash, for example:
216 "/ /start starts a game."
218 The following keys are used for controls on the "Show Fields" screen:
220 Up, X Rotate piece clockwise
221 Z Rotate piece counterclockwise
223 Right Move piece right
224 Down Accelerate piece downward
225 Space Drop piece (note that by default, pieces can still
226 "slide" after dropping!)
227 D Discard the current (leftmost) special item
228 1..6 Use the current special item on the given player
229 T Open a window for sending a message to other players
230 Ctrl-G Close the text input window (text there is saved for
231 the next time you press T)
233 The following keys are used for editing text, both in the Partyline screen
234 and in the text buffer on the Show Fields screen:
236 Left Move cursor left one space
237 Right Move cursor right one space
238 Ctrl-A Move cursor to beginning of line
239 Ctrl-E Move cursor to end of line
240 Backspace, Delete character to left of cursor
242 Ctrl-D Delete character under cursor
243 Ctrl-U Delete entire line
244 Enter Send text (closes input window in Show Fields mode)
247 Differences from Windows Tetrinet
248 ---------------------------------
249 Although Linux Tetrinet is designed to play more or less the same as the
250 original Windows version, there are a few differences; some of these are
251 simply "missing" features in the Linux version, and some are features I
252 have introduced into the Linux version because I believe they make the game
253 more interesting or fun. Features marked with (*) below can all be
254 disabled with the -windows command-line option to make playing against
255 Windows opponents fairer.
257 - Messages about specials (i.e. in the Attack/Defense window) are not
260 - If a Block Bomb is done on someone who has two "o" (bomb) specials
261 right next to each other, one of them will be sent flying rather than
262 exploding. (This is a bug.)
264 - Blocks scattered by a Block Bomb will only go to empty spaces on the
265 board, rather than appearing on top of already-existing blocks.
266 "Holes" will not be scattered. (*)
268 - Pieces may go over the top of the board. In the Windows version, a
269 player loses if at any time any square goes off the top of the board.
270 In this version, a player only loses if there is no room for the next
271 piece to enter the board.
273 - Pieces dropped (with the spacebar) can still slide left and right after
274 dropping. Idea from Mark H. Weaver's Netris. (*) This feature alone
275 can be disabled with the -noslide command-line option. It can also be
276 enabled with -slide even if other Linux-specific features are disabled
277 with the -windows option.
279 - Blockquakes will cause blocks to wrap around the edge of the screen
280 rather than disappearing off the edge. (*)
282 - Blockquakes will never move rows more than one block to the left or
283 right. (Can anyone determine how quakes work in the Windows version?)
285 - Specials collected will always appear at the end of the specials bar
286 (in the Windows version, they randomly appear at the beginning or the
292 Tetrinet was originally written by St0rmCat, who has asked not to be
293 contacted with respect to Tetrinet.