home *** CD-ROM | disk | FTP | other *** search
- NOTHELLO for MUI 2.0 and AmiTCP/AS225
-
- [This document is the amigaguide version sans the amigaguide information. For
- some reason, I can't get the .guide to work on OS2.x amigaguide. It works fine
- for 3.0 machines. If anyone is generous enough to find my error, I'd really
- appreciate it if you'd let me know what it was. Thanks]
-
-
- This application uses
-
-
- MUI - MagicUserInterface
-
- (c) Copyright 1993 by Stefan Stuntz
-
-
- MUI is a system to generate and maintain graphical user interfaces. With
- the aid of a preferences program, the user of an application has the
- ability to customize the outfit according to his personal taste.
-
- MUI is distributed as shareware. To obtain a complete package containing
- lots of examples and more information about registration please look for
- a file called "muiXXusr.lha" (XX means the latest version number) on
- your local bulletin boards or on public domain disks.
-
- If you want to register directly, feel free to send
-
-
- DM 20.- or US$ 15.-
-
- to
-
- Stefan Stuntz
- Eduard-Spranger-Straße 7
- 80935 München
- GERMANY
-
-
-
-
- ************************************
- ** Introduction
- ************************************
-
-
- Introduction to Nothello
-
- Nothello is a little project I wrote as a result of being able to play
- with the upcoming Grapevine IRC client by Brian Cerveny. In talking to
- Brian, I had visions of all the potentials of having an Amiga-based IRC
- client, that can start up other clients as a DCC command. Nothello was
- the first result of my ideas. I know of others who are planning clients,
- as well, and I have more ambitious plans myself. Nothello was just
- something simple enough to learn sockets programming, and to develop my
- own routines and style.
-
- While Nothello was designed with IRC startup in mind, it can easily be used
- standalone, as well. All you have to do is call it with the proper
- host and port number arguments, which is what Grapevine will do itself.
- It's just more privy to that information than you are. :) To start it up
- on your own, which is really the only way until Grapevine itself is released,
- you just find an opponent with either AmiTCP or as225 installed, get his
- Amiga's hostname or IP number, agree on a suitable port number to use, and
- then run it with the proper args.
-
- [Note: The /DCC startup via Grapevine is subject to change, as Grapevine
- is still in development. At this time, the planned support through
- Grapevine will be by /DCC command, i.e. /dcc nethello danimal
- If there will be any changes in the startup options for Grapevine
- compatibility, an appropriate version will be released.]
-
-
- ******************************
- ** Disclaimer
- ******************************
-
- Legal stuff and Disclaimer
-
- Nothello is freely distributable, but it is NOT to be considered in the public
- domain. I'll hold the rights and stuff for my own personal use. Noone, other
- than Brian is allowed to distribute it for a price other than the cost of a
- disk. Of course, should I be lucky enough to make it on a Fish disk, that's
- OK too.
-
- I can't imagine what it could hurt, but I cannot accept responsibility for any
- problems Nothello may cause to your system. At this time, it has been tested
- reliably on 3.x and 2.x systems, which were 68030 and 68000 machines.
-
- Thanks, and even if you don't want to register, please let me know what you
- think.
- See Author information for how to contact me
-
-
-
-
- ***************************************
- ** Requirements
- ***************************************
-
- Nothello Requirements
-
- Nothello requires:
-
- MUI 2.0
- A TCP connection to the Internet using either AmiTCP or AS225r2
-
-
-
- ***************************************
- ** Usage
- ***************************************
-
- Nothello Usage
-
- The arguments for Nothello are pretty simple. They can be entered either
- by CLI, or as Workbench tooltypes. Tooltypes can be commented out by
- using parenthesis, so you can keep the host names of some of your favorite
- opponents in (), and just un-() when you're ready to play.
-
- Here is the CLI argument line:
- ORIGINATE/S,NICKNAME,LEFTEDGE/N,TOPEDGE/N,PATH,HOST,PORT/N:
-
- ORIGINATE Means that when this boolean switch is present, the client
- runs in a 'server' mode. For a connection to be established,
- one client must have ORIGINATE set, and the other not.
- When running via Grapevine, the ORIGINATE client will be
- the client of the user who issues the /DCC command.
- This will also be the user who begins as white, and moves
- first.
-
- NICKNAME The nickname of the user. Grapevine will put your nickname
- here. On manual startup, put your nickname in. It's not
- really required for play, however.
-
- LEFTEDGE/ Not used, as this is an MUI program, and should save the
- TOPEDGE window settings on it's own. It's there for Grapevine
- compatibility.
-
- PATH Also unused.
-
- HOST Defaults to localhost. If using ORIGINATE, set this
- to anything you want-- it won't be used, as the server
- mode client will be listening for a connection. If _NOT_
- using ORIGINATE, set this to the hostname or IP number of
- your opponent, i.e. danimal.msstate.edu, or 130.18.80.100.
-
- PORT Defaults to 1999. Just use some unused port number, like
- 9999 or 4123 or whatever. The only requirement is
- that the port numbers must agree for both clients.
- Grapevine will take care of this for you, but it's a little
- extra work for manual startup.
-
-
- So, a sample game could be started like such:
- Player 1:
- Nothello_AmiTCP originate nickname=danimal host=blah port=9998
-
- Player 2:
- Nothello_AS225 nickname=Chuck host=danimals.machines.name.edu port=9998
-
-
- Note that player 1 doesn't put in a valid host, but it will not be
- used, because of the ORIGINATE switch.
-
-
-
- The originating client must be started first, so that it can listen for a
- connection from the other client. The originator will open it's window,
- and watch the port, until a connection is made. If no connection is made
- in 60 seconds, the program will timeout, and exit cleanly.
-
- Once the originator is setup on the port, and the other client 'calls' the
- port, a connection will be made, and gameplay begins.
-
-
- *****************************************
- ** Playing the game
- *****************************************
-
- Playing the game
-
- Once gameplay begins, it's just Othello, but with a competitive twist.
- When it's your move, click on the square to make your move. There is a
- little message line that tells you whose move it is.
-
- Options once gameplay starts include:
- [Note: An asterisk (*) denotes that this button can only function when it is
- your turn to move.]
-
-
- *Forfeit your move Taunt
- *New Info Swap Colors Quit
-
- Menus are available, with a couple extra options:
-
- Project Game
- ------- ----
- About.. ? New Game N
- ----- Forfeit F
- Quit Q Swap Clrs S
- Taunt T
- Last Move
- Show Opponent Moves
- Show Type..
- Invert
- Selected
-
- The [HELP] key will load this amigaguide document if you have it in the same
- directory.
-
- When someone wins and the game is over, both players will have the option to
- start a new game or quit. If either player quits, then the whole match is
- over, and both clients will quit.
-
-
- FORFEIT YOUR MOVE
- When you are unable to move, you'll be forced to use this. It
- simply skips your move and lets your opponent go again.
-
-
- TAUNT
- This is a fun little extra, to add some serious competitiveness to
- this game. Pressing the Taunt button brings up a window with a
- string requester, where you can type in a verbal assault on your
- opponent. Of course, you can just tell him that was a good move,
- but why be nice? It's there to lay into him, and to keep the
- growls and grumbles off the IRC channel. The tauntee will have a
- requester pop up over his screen, containing your taunt, and he can't
- resume play until he accepts it. Have fun with this. :)
-
-
- NEW [GAME]
- Requests a new game from your opponent. This is a 'chicken' button,
- to be used when you think there is no hope of winning. Of course,
- your opponent can allow you to restart and humiliate yourself, or
- go for the throat and make you continue with the thrashing. :)
-
-
- INFO
- Simply pops up a window that can be closed at any time, which
- displays the nickname, host, and port of your opponent. Not
- particularly useful. ;}
-
-
- SWAP COLORS
- This can be done at any time, and simply swaps all the colors. If
- you're white, you'll become black, and your opponent will appear
- white to you. Note that this is totally transparent to your opponent--
- he'll still see you as white himself.
-
-
- QUIT
- Will quit the game. The window close gadget also functions in the
- same way. Your opponent can not stop the quit, but he'll be happy
- that you've apparently given up. :)
-
-
- LAST MOVE
- Last move will highlight the piece that was clicked on the last move.
- It utilizes the active gadget function of the MUI user interface, which
- draws a black border around the piece. This lasts for one second, and
- will show both yours and his last move.
-
-
- SHOW OPPONENT MOVES
- Show Opponent moves is a little different from the Last move feature,
- in that it will highlight all the pieces involved in your opponent's
- last move. Just in case you blinked or weren't paying attention when
- his last move was made. Defaults to CHECKED.
-
-
- SHOW TYPE
- Show Type sets the type of highlighting that you want to use for the
- Show Opponent Moves function. There are two different show types:
-
- INVERT
- Will use the inverse color for the background of the button
- behind his chips. For example, if his chips are white, the
- background will be black. This is the default setting.
-
- SELECTED
- Will use the MUII_Selected image structure for the background
- of the highlighted opponent's piece. Normally, this is just
- a slightly lighter color than the normal button background.
- However, using the MUI-Prefs program, you can use a custom
- brushmap for the selected image. This makes for some really
- pretty (or wacky) custom Nothello windows.
-
-
- *****************************************
- ** Enhancements
- *****************************************
-
- Possible Enhancements
-
- Daemon operation. Challenge someone whether they're on IRC or not. Or maybe I
- should say whether they expect it or not. :)
-
- Manual startup window. Won't have to worry about CLI or WB args
-
- De-MUI the interface.
-
- Artificial intelligence.
-
- Automatic checking for a forfeit move. Easy to do once the artificial
- intelligence routines are in place.
-
- Maybe some kinda custom object that looks like the Knight Rider car's 'eye,'
- for when the computer is 'thinking.'
-
- 1 or 2 player mode not requiring networking. Could just easily remove all the
- networking routines, and the thing would be about 15k smaller.
-
- Any other enhancements suggested to me. :)
- send suggestions to djm2@ra.msstate.edu
-
-
- *******************************
- ** Bugs
- *******************************
-
- Bugs
-
- Uhhh.... Uhhhh... well, if you find any, let me know. :) Just because I
- think it's bug-free, doesn't mean it really is. It does appear to be solidly
- enforcer-hit free.
-
- One thing I wasn't able to adequately test for myself was AS225 operation. I only
- had AmiTCP at my disposal, but I did use the emulator socket.library, and any time
- I tested it over the net, I always used the AS225 version without a hitch. I dunno
- if that was a good test of the AS225 version or not. I did have one tester using
- AS225, and he reported no errors to me.
-
-
-
- ********************************
- ** Credits
- ********************************
-
- Credits
-
- Tons o' credits here.
-
- Chuck Woo for his tireless beta testing and whining. Also, for being an
- easily defeated opponent and boosting my ego. :) Chuck also sent me some
- documentation on adding AI into games, but (shhh! Don't tell him!!:) I
- haven't read it yet! :)
-
- Brian Cerveny, aka Redwine, for occasional help, and asking me WTF I wanted
- to do some things certain ways that made little or no sense.
-
- Scott Ellis. If it wasn't for his free source to AmiPOP, I wouldn't know
- a damn thing about programming networking stuff. I horked a ton of lines
- of his for my own use.
-
- Ralph Schmidt, aka Laire, gave me a good argument parsing routine.
-
- Chris Feck fixed up my ridiculously short-sighted chip-drawing routine.
-
- Seth Harman, known in the underworld as Budha, did the icon. [also changed
- the name from the original Nethello, cause the icon works better with an 'o']
-
- John Weiderhirn tried for a couple days to figure out what a horrible problem
- was in my code. I later noticed I hadn't allocated a certain string, which
- of course, broke my entire program. He also has given me a lot of motivation,
- ideas, and strategies for a possible career in networking. Thanks John, for
- the speech, and hope you didn't mind me leading you on a wild goose chase. :)
-
- Ezra Story, alias Ezy, showed me a couple of tricks to get my accept a
- connection routine to timeout, as well as detecting a disconnection.
-
- Eric Totel, who authored the really cool Builder for MUI, which I used a little
- bit so long ago. Just wish I'd had the newest version with 'Copy Object,' so
- I wouldn't have had to make all those chip buttons by hand... :P
-
- Thanks, guys..
-
-
-
- ********************************
- ** Author info
- ********************************
-
- Author Information
-
- I plan to keep working on it for fun, and if you want the latest version,
- send something like $3 USD and you'll become a registered user or something
- like that. You'll get the latest version, and each major version after that.
- Also a discount on registered versions of the next couple of projects I plan
- to start soon.
-
- Dan Murrell Jr.
- "Danimal" on IRC
- djm2@ra.msstate.edu
-
- McKee Trailer Park, Lot #7
- Starkville, MS 39759
-