BIG HANK'S GUIDE TO MULTIPLAYER GAMES THROUGH THE INTERNET
Practical Instructions for Total Dweebs
by Henry "Big Hank" Liang
   liangh@eniac.seas.upenn.edu

Last updated 13 December 1994 -- Document generalized from AirWarrior to 
multiplayer games in general.

INTRODUCTION

Okay.  You've got your cool multiplayer game, and chances are you've done a 
little bit of playing around with local gamers.  You've had your fill 
of the computer-controlled opposition and the local pool of players is 
getting too easy for you to beat ... if only you could expand your 
list of potential victims to include all those upstarts bragging about their 
skills on the Internet.  'Course, it'd be even better if you didn't have 
to call into the next time zone to find a Head to Head opponent.

Enter IHHD -- the Internet Head to Head Daemon designed by Jim Knutson.  
With this brilliant little piece of code, multiplayer gaming has soared 
to new heights.  With IHHD, you'll be able to fly Head to Head (H2H) against
other human opponents all over the world, with the only cost to you being
the regular prices you pay to connect to or use your Internet host.  


HOW TO GET IT

First of all, your host needs to be running UNIX as its operating
system.  Sorry, VAX VMS users, you're screwed.  If you aren't sure what
your host is running for its operating system, check the information given
at the login prompt or send mail to your host's computer guru.

Other than that, you should be able to run IHHD with ease.  Your first
order of business is to get the IHHD software.  It is available via
anonymous FTP to cactus.org in the pub/IHHD directory.  To get it, 

	1. FTP to cactus.org  
           (Type "ftp cactus.org" at the UNIX prompt.) 
	2. At the login prompt, enter "ftp"
	3. At the password prompt, enter your e-mail address
	4. At the command prompt, type "cd pub/IHHD/src"
	5. Type "binary"
	6. Type "get dialer1.6.4.shar"
	7. Type "quit"

Okay, if you followed the above steps, you should now have the
dialer1.6.4.shar file in your home directory.  Type "ls" at your host's
command prompt to verify its existence.  If you don't see it, try the
above steps again or call for help.

Next, if you've successfully retrieved the dialer1.6.4.shar file from
cactus.org, you need to prepare the IHHD to run on your computer.  For
UNIX veterans, the dialer1.6.4.shar file is in fact a shar file, and
contains a makefile for easy compiling on your system.  For the rest of
us, follow these steps to get the IHHD up and running:

	1. Create a directory to put the IHHD software in.  
	   Type "mkdir IHHD" at the command prompt.
	2. Move the IHHD file to the new directory.  
	   Type "mv dialer1.6.4.shar ~/IHHD"
	3. Go to the IHHD directory.
	   Type "cd IHHD"
	4. Unpack the IHHD files.
	   Type "sh dialer1.6.4.shar"
	5. Compile the IHHD software to run on your system.
	   Type "make"
	6. You should now see a whole mess of files in the IHHD directory.
 	   The important filenames you're looking for should be:
		dialer
		tcpdialer
		tcpanswer
		call
	  	showlog
	7. If you've got these, you're cool.  Otherwise, try the above
	   steps again, re-retrieve the dialer1.6.4.shar file from
	   cactus.org using the instructions above, or call for help.
           The best source for help with compiler problems would be your 
           local Unix guru or sysadmin.

If everything checks out, you're ready to rumble!


PLAYING MULTIPLAYER GAMES THROUGH IHHD

You'll want to test out IHHD to see if it really works, of course.  To do
that, the best way is to simply try to play a regular H2H game with 
someone else running the IHHD software.  The best way to arrange a match 
is through e-mail and "talk" on the Internet.

Here's how you get connected using IHHD:

	1. Set up a time to play with another Internet player. 
	   Ideally, you should use e-mail to make the prior arrangements,
	   and then agree to meet in "talk" or "ntalk" at a designated time.
	   
	   Make sure you and your opponent use the same line settings for your
	   modems.  Your data bits, parity, and stop bits should be the same or
	   you'll experience heavy warping, line noise, and other yucky
	   stuff.  Generally, most players use 8 data bits, 1 stop bit, and
	   no parity (8N1), although the specific line settings shouldn't make 
           a big difference.  Generally, it helps if the line settings are 
           the SAME for both players.

	   If your modem game doesn't like data compression and error 
           correction, make sure that they're disabled on your modem if 
           you have such features.  Check the documentation for your 
           modem for the appropriate control strings to disable these 
           features.  If you aren't sure if your modem game works better 
           with or without data compression and error correction, experiment 
           with it first disabled, and then enabled to compare performance.

	2. When it's time to play, start up your game and call up your Internet 
           host using your modem.  Alternatively, if your game doesn't 
           support a terminal interface, you'll have to call up your 
           Internet host with a regular communications program, establish 
           the IHHD link, and then drop into DOS to start your game WITHOUT 
           DISCONNECTING THE PHONE.  At any rate, you must make sure that 
           your baud rate and line settings will correspond to your 
           opponent's.

	3. Login to your Internet host normally.

	4. Contact the other player through "talk" or "ntalk", or send a
	   short e-mail message indicating that you are on the net and ready to
	   play. 
	
	5. Once you both establish that you're there and ready to go, exit
	   "talk" and return to your UNIX prompt.

	6. Type "cd IHHD" to enter your IHHD directory.  Alternately, you
	   can add the IHHD directory to your path.  Ask your local UNIX
	   guru if you don't know how to do this.

	7. Type "dialer opponent's.host" to start the IHHD connection. 
	   For example, if you were playing against knuston@cactus.org,
	   you would type "dialer cactus.org" to initiate the connection.

	   Another way is to type "tcpdialer -call opponent's.host" while your
	   opponent types "tcpdialer -answer".  Or reverse roles, where
	   you type "tcpdialer -answer" while your opponent types 
	   "tcpdialer -call your.host".  The difference is that tcpdialer 
	   prioritizes the packets your game send out, so that they are sent 
	   and received in a specific order, while dialer simply dumps output 
	   through the link as fast as possible without prioritization.  Hence, 
           dialer is normally faster, but can be less stable with poor 
           Internet connections, while tcpdialer provides greater 
           stability with less speed over poor connections.

	   So, to recap, there are two methods of IHHD connection.
	   Method 1: dialer.  You each type "dialer other.guy's.host"  
	   Method 2: tcpdialer.  One of you types "tcpdialer -call 
	             other.guy's.host" while the other types "tcpdialer 
	  	     -answer".

	8. Regardless of which method you use to connect, type short text
	   messages followed by a carriage return until you see your opponent
	   acknowledge you.  Unless you have "local echo" set to ON in
	   your serial settings, you will not see the text you type.

	9. If you don't see your opponent after a reasonable amount of time,
	   exit dialer or tcpdialer by pressing "ctrl-c" (i.e. hitting
	   the "ctrl" and "c" key simultaneously) a number of times.  Contact
 	   your opponent again through "talk" and agree to try the other method
	   of connecting. 
	
	10. If your connection looks fine, your opponent has acknowledged
	    you and you have acknowledged him, you can now initiate a 
            serial link if your multiplayer game has this option.  If 
            you're calling into your hosts with regular terminal programs, 
            you must now drop to DOS WITHOUT HANGING UP THE LINE.  Once 
            in DOS, you should start up your multiplayer game and start it 
            running on a serial (null-modem) link.

 	    Try the other connection method if you continue to have troubles,
	    or call for help.

	11. Congratulations!  You're now connected IHHD.  You can now proceed 
            to do all the H2H stuff as if you were connected via a regular 
            serial link.


SOME THINGS TO BE AWARE OF

I. Net Delays and Warping

Unfortunately, because of the nature of the Internet, delays and warping
may occur with your IHHD connection, depending on the quality of the
connection between your and your opponent's host machines.  These delays
are often sporadic, and depend largely on what's going on on the Internet
at that particular times.  Then again, you might just be extremely unlucky
and have a cruddy Internet connection.

To gauge the quality of the connection, try to "ping" your opponent's
computer from your host.  At the UNIX prompt, type "ping -s
opponent's.host".  You should get a listing of "ping times", which you may
stop at any time by pressing "ctrl-c".  The shorter the times, the better.

Also, while you're playing SVGA AirWarrior via an IHHD connection, try 
hitting "ESC-q" to see the ratio of acknowledged packets versus rejected 
packets.  Of course, the less rejected packets you get, the better.

Another way to judge the quality of your connection is to simply look at
the other player's warping.  If he's jumping all over the place, you've got
a cruddy connection.  If he's relatively steady, you've got a good connection.

If all else fails, burn incense and sacrifice a beautiful young virgin
princess to the net.gods.  No, wait.  Better yet, send the virgin to Big
Hank (finger liangh@eniac.seas.upenn.edu for an address).  :)

II. Getting Dumped After Connection

Sometimes, regardless of how great your connection, you'll get dumped from
your game and maybe even get a screenful of garbage and stuff.  In this 
case, don't hang up yet.  Try reestablishing the connection within the 
program, if possible.  For AirWarrior players, you can jump to the 
Multiplayer menu option, hit "Connect," and select "manual dial" to 
attempt to regain command authority of your terminal.  If you've tried 
everything a number of times and it still doesn't work, hang up and 
redial into your host, starting everything from the top.

Still need help?  Read this document over again.  Then read this document 
over again.  After that, try reading this document over again.  If you're 
still in need of help, and it's a problem with getting IHHD to compile, 
ask your local Unix guru or system administrator -- they'll probably know 
more about the problem that I will.  If all else fails, read this 
document over again, and if you're still really, really puzzled, e-mail 
the IHHD mailing list at IHHD@cactus.org.  You'll have to subscribe to 
the list first by sending mail to listproc@cactus.org with the words 
"subscribe IHHD your-name" in the body of the message.

If you have further questions on using IHHD specifically with Kesmai's 
SVGA Air Warrior for which this document was originally written, post to the 
Internet AirWarrior mailing list 666th-etal@cactus.org.  You must first 
subscribe to the group by sending e-mail to listproc@cactus.org with the 
words 

	subscribe 666th-etal your name

in the body of the message.

----------------------------------------------------------------------------
IHHD is some sort of intellectual property of Jim Knutson, and is freeware.
SVGA Air Warrior is some sort of intellectual property of Kesmai, Inc.
This HowTo file is some sort of intellectual property of Henry Liang, and 
is freely distributable because I'm a nice guy.  Unauthorized duplication,
reproduction, modification, use, and other stuff not mentioned, especially 
for profit, is bad.  Don't be a schmuck -- ask for permission first.
