@database Netris.guide
@author Jeremy Friesner

@node Main "Contents"
		
@{"Netris" link Introduction} @{"V1.00B" link History} by @{"Jeremy Friesner" link Me}
    
   @{"Disclaimer" link Disclaimer}	     Don't blame me!
   @{"Distribution" link Distribution}      Netris is FreeWare!

   @{"Requirements" link Requirements}      What do I need to run this program?

   @{"Introduction" link Introduction}      What does Netris do?
   @{"Installation" link Installation}      How do I set up Netris?

   @{"ToolTypes" link ToolTypes}         How can I customize Netris?   
   @{"Using Netris" link Using}      How to use Netris
      
   @{"Credits" link Credits}           Brought to you by...
   
   @{"History" link History}           Bug fixes and enhancements
   @{"Future" link Future}            What next?

   @{"Known Problems" link KnownProblems}    Bugs!  Aack!
   
   @{"Other programs" link OtherProgs}    Plug, plug!
@endnode

@node Distribution

Netris is FreeWare.  Distribute it wherever you wish, but keep
all files from the archive together.  Money, candy, flowers, and
girls will all be gratefully accepted, but are not required or
requested.  If you want the source code, email me and I will send 
it to you.  You are required, however, to report any bugs so that
I can squash them post haste.  :)

@endnode

@node KnownProblems

- Less than fully tested!
  
@endnode

@node History

1.00B : (Beta Release 5/25/97)
 - First release.  

@endnode

@node Requirements

To use Netris, you will need the following:

 - An Amiga with some free memory
 - Workbench 2.04 or greater
 - An Internet connection
 - AmiTCP (or a compatible TCP stack) set up and running.
 - @{"amarquee.library" link amarquee.library} v43+ in your LIBS: directory.
 
@endnode

@node Credits

Netris was written by me, Jeremy Friesner (jfriesne@ucsd.edu)

Compiled with DICE C by Matt Dillon

Most of the included sound effects were blatantly stolen from 
several archives on Aminet, notably the Term sound effects archives.  
(The exception is startgame.8svx, which I sampled from a They
Might Be Giants CD)

@endnode

@node Introduction

Netris is a four player, Internet version of the old classic,
Tetris.  It uses the AMarquee system to allow you to play against
up to three people (each on their own Amiga) at once.  In addition
to this, any number of "viewers" may watch the games currently in 
progress (limited only by the server's bandwidth and CPU).

Note that Netris requires @{"amarquee.library" link amarquee.library} v43+ to be installed
in your LIBS: directory.  If you don't have this library, download
the archive /comm/net/AMarquee1.43.lha from Aminet and install it.

To play Netris by yourself, you can just run it and then choose
which board to play on, by pressing a key between 1 and 4.  But
playing by yourself is boring; there are dozens of Tetris games
on Aminet that let you do that!  What you want to do is play
against other people.  To do this, you need an AMarquee server--
that is, an Amiga with the AMarqueed daemon installed and available.
The AMarquee server can be one of the Tetris-players' computers,
or another computer, it doesn't matter.  But it is preferable
that the AMarquee server have plenty of RAM, CPU, and network
bandwidth to the client computers, as all game data will pass
through it during play.  The AMarqueed daemon is also available
in the AMarquee1.43.lha archive, as described above.

Once the AMarquee server is setup and available, each player
should edit the ToolTypes of their Netris icon and set the
SERVER ToolType to the name of the server computer.  After
that, it's just a matter of running Netris--it should connect
to the server, and be ready to play against other people.

The following files should be in the Netris archive:

Listing of archive 'ram:Netris1.00B.lha':
Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
     628     271 56.8% 29-May-97 22:34:20  Netris.info
   14392    9224 35.9% 29-May-97 22:34:22 +endgame.8svx
   52088   48452  6.9% 29-May-97 22:34:22 +fourrowdrop.8svx
   27368   15211 44.4% 29-May-97 22:34:18 +Netris
   12650    5107 59.6% 29-May-97 22:34:20 +Netris.guide
    1542    1100 28.6% 29-May-97 22:34:20 +Netris.guide.info
    2039    1485 27.1% 29-May-97 22:34:20 +netris.info
   12388    8319 32.8% 29-May-97 22:34:20 +onerowdrop.8svx
   31860   20467 35.7% 29-May-97 22:34:20 +startgame.8svx
   14000   11196 20.0% 29-May-97 22:34:20 +threerowdrop.8svx
    2352    1335 43.2% 29-May-97 22:34:20 +tileplace.8svx
    5678    4824 15.0% 29-May-97 22:34:20 +tworowdrop.8svx
-------- ------- ----- --------- --------
  176985  126991 28.2% 29-May-97 22:34:34   12 files

@endnode

@node Installation

Just copy the executable file and icon to wherever you want 
to keep them.  Also, make sure the included .8svx sound files are
kept in the same directory as the Netris executable, so that 
Netris can find them.

Make sure that @{"amarquee.library" link amarquee.library} v43+ is installed
in your LIBS: directory!

If you wish to use your computer as an AMarquee server to host
Netris games, you will need to install AMarqueed onto your system
as well.  The AMarqueed program is also available in the AMarquee1.43.lha
archive on Aminet.

@endnode


@node ToolTypes

Netris understands the following parameters.  These parameters
may be set either as ToolTypes in Netris's icon, or specified
on the command line (in the same exact format as the tooltypes,
although you may have to use "quote marks" if the parameter 
contains spaces):

SERVER/K:
    Specifies the IP name of the server Amiga that Netris should 
    connect to.  If this isn't specified, Netris will report an
    error, and only single-player play will be available.
    
PORT/K/N:
    Specifies the port number that Netris should try to connect to when
    initiating a connection to the server Amiga.  The default (and
    usual) value for this parameter is 2957.

NODOWNLOAD/S:
    If specified, Netris will not download any sound effects from
    the other Netris clients.
    
NOUPLOAD/S:
    If specified, Netris will not upload any sound effects to the
    other Netris clients.
    
MAXDOWNLOADSIZE/K/N:
    Specifies the maximum length of sound sample that Netris will 
    download.  Samples greater than this length will be truncated
    to this length.  The default value for this is 64 (meaning
    samples greater than 64 Kilobytes in length will be truncated).
    
NOSOUND/S:
    If specified, Netris will not allocate the sound hardware,
    download, or play any sounds.  Sounds can still be uploaded,
    however.
    
SOUND0/K
SOUND1/K
...
SOUND6/K
    These ToolTypes allow you to specify your own custom sounds
    to use with Netris.  The neat part here is that not only will
    you hear your custom sound files, but anyone you play against
    will hear your sound effects as well!  Since every client will
    need to download and store your sound effects in memory, and 
    the server Amiga will keep a copy in memory as well, it is 
    best to keep your sound effects files as small as possible.  
    The maximum sample size you can use is 64K (larger samples 
    will be truncated).  All sounds should be in standard IFF-8SVX 
    format.  The SOUND ToolTypes correspond to the following game 
    occurences:
    
     SOUND0 = Played when your game starts.
     SOUND1 = Played when your game ends.
     SOUND2 = Played when you place a tile.
     SOUND3 = Played when you clear one rows of tiles.
     SOUND4 = Played when you clear two rows of tiles.
     SOUND5 = Played when you clear three rows of tiles.
     SOUND6 = Played when you clear four rows of tiles.
    
    Note that you could also customize the sound effects in the
    game by copying over the included .8svx default sound files;
    but unless you actually specify the SOUND* ToolTypes, the
    sounds will not be uploaded to the other players (as Netris
    will think they are default sounds, and figure that the other
    players already have them)

@endnode

@node Using
 
Using Netris is fairly simple.  Once you are connected (see
@{"Introduction" link Introduction} for information on how to connect Netris to a server),
you simply choose one of the four Netris play areas to play in,
by pressing a number key between '1' and '4'.  A blue square should
appear around the appropriate play area, and your game should begin.
Note that you cannot start a game in play areas that already have
a game active in them--so if all four game areas are active, you
will have to wait for one of the games to end, or find another Netris
server!

Once the game is started, use the arrow keys to maneuver your tile.
Left and right move the tile left and right, Up rotates it ninety
degrees, and down moves it to the bottom of the play area.

If you don't know the rules of Tetris... then you should be ashamed
of yourself.  It's 1997!  Where have you been?  ;)  Well, you'll 
probably figure them out soon enough.  One note, however--if you 
clear more than one row of tiles at once, your opponents will get 
(# of rows cleared - 1) rows of garbage tiles added to their boards.  
That should piss 'em off.  ;)

Also, you may use the other keys on the keyboard while you are playing
to type messages to the other players.  Messages will scroll across
the bottom of your play area.

Scoring is simple:  For every tile you place, 3^(# of rows cleared)
points is added to your score.

Finally, you may press Escape at any time to end your game, or to
quit Netris.

@endnode

@node Disclaimer

This software comes with no warranty, either expressed or implied.  
The @{"author" link me} is in no way responsible for any damage or loss that may occur 
due to direct or indirect usage of this software.  Use this software entirely 
at your own risk.
@endnode
                    
@node Me

This program was written by Jeremy Friesner, using DICE C.

My email address is jfriesne@ucsd.edu.  (Try jaf@chem.ucsd.edu if
that one doesn't work, though)

@endnode

@node Future
  
@endnode

@node amarquee.library

 Netris is based on the AMarquee data broadcasting system,
 and thus requires v43 or greater of amarquee.library to be
 installed in your LIBS: directory.  This library is available
 as part of the AMarquee archive available on Aminet, in /comm/net.

@endnode

@node OtherProgs

Some other programs I wrote:

GadMget - Loads in an Aminet RECENT or INDEX file and lets you choose
          files to download via a pair of ListViews.  Features keyword
          searching and sorting by name, size, age, directory, and 
          description.  When you're done, it outputs the ftp commands
          that are needed to download the selected files.  The output
          formatting is extremely flexible, allowing generation of 
          many formats:  ftp, ncftp, ftp-by-mail, shell scripts, etc.
          Comes with an ARexx script to completely automate downloading 
          with ncFTP.  (util/misc/GadMget2.05.lha,93K)
  
AmiSlate - A paint program that works with AmiTCP to allow two people
           to cooperatively paint on the same drawing from different
           computers.  Features an extensive ARexx port which allows
           the construction of new features and games.  Comes with
           ARexx scripts for chess, tic-tac-toe, backgammon, and others.
           (comm/tcp/AmiSlate1.4.lha,115K)

AmiPhone - An Internet voice-chat program, similar to IPhone and
           VoiceChat and Nevot and all that, only Amiga-specific.
           Features aflexible buffering mechanism for slow connections,
           an ARexx port, IFF 8SVX transmission and playback, internal
           multitasking, and support for a variety of digitizers.
           (comm/net/AmiPhone1.92.lha,142K)

AMarquee - The TCP front-end library and server daemon that Netris 
           uses to send data over the net.  Allows an arbitrary number 
           of Amigas to broadcast messages and state information to 
           each other without "polling".  Fully multithreaded, with 
           an easy-to-use C API that requires no knowledge of sockets 
           programming. (comm/net/AMarquee1.43.lha)

QAmiTrack - An AMarquee program that lets you register your Amiga
            as "on-line" and find out what other Amigas are currently
            available on the Internet.
            (comm/net/QAmiTrack1.80.lha)
            
ARemote   - A program that allows you to use the mouse and keyboard
            of one Amiga to control another Amiga, over the Internet.
            (comm/net/ARemote1.01.lha)
            
@endnode



