JavaFIBS 2001 User Guide

by Peter Nevalainen

1. Introduction

JavaFIBS 2001 is a graphical interface for the First Internet Backgammon Server (FIBS) . JavaFIBS is, as the name hints, completely made in java and should work on all computer systems with a Java 2 Runtime Environment v1.3 installed. JavaFIBS 2001 is able to run on Windows, Linux, Solaris, and Mac OS X operation systems and it is possible that it will work on OS/2 and AIX systems and other platforms that the Java 2 engine has been developed for.

The official JavaFIBS homepage is located at http://www.fibs.com/~cthulhu/ .

2. Getting Started

2.1 Requirements

JavaFIBS 2001 will need at least 32 Mb of main memory to run. While JavaFIBS 2001 can be run on as low as ordinary P133 systems or similar, this will probably be too slow for most people.

JavaFIBS 2001 also requires Java 2 Runtime Environment 1.3.0 or higher to run. The JRE can be downloaded from http://java.sun.com/j2se/1.3/jre/ . It is advisable to download the latest JRE possible since it will probably work better and faster with JavaFIBS 2001, but avoid beta versions.

MacOS X users already have a proper Java Runtime Environment installed with the operating system.

2.2 Installation

To install JavaFIBS 2001 unzip the JavaFIBS2001.zip archive to any directory. This can be achived with a program like WinZip for Windows computers or unzip on other computer platforms.

2.2.1 Running JavaFIBS 2001 on Windows and MacOSX

To run JavaFIBS 2001 on Windows computers double click on the JavaFIBS.jar file. If nothing happens or a dialog asks which program to open JavaFIBS.jar with, you have not Java 2 JRE v1.3.x properly installed.

2.2.2 Running JavaFIBS 2001 on Solaris/Linux/Others

Open a shell/console/terminal window and type: java -jar JavaFIBS.jar when standing in the JavaFIBS2001 folder.

2.3 Registration

JavaFIBS 2001 is a shareware program and if you like and use this program you should consider paying the fee and become a registered user. The fee is to reward the author for his efforts and support further development of the program. As a registered user you will have access to any future updates of JavaFIBS free of charge. On the shareware page you can find instructions for the payment procedure. There are no differences between the registered and unregistered version of JavaFIBS 2001.

2.4 License Agreement

  1. This license applies to the product called "JavaFIBS", a program for the Java platform, published by Peter Nevalainen under the concepts of shareware, and the accompanying documentation. The terms "Program" and "JavaFIBS" below, refer to this product. The licensee is addressed as "you". The author refers to Peter Nevalainen.
  2. You may copy and distribute verbatim copies of the program's executable code and documentation as you receive it, in any medium, provided that you conspicuously and appropriately publish only the original, unmodified program, with all copyright notices and disclaimers of warranty intact and including all the accompanying documentation, example files and anything else that came with the original.
  3. Except when otherwise stated in this documentation, you may not copy and/or distribute this program without the accompanying documentation and other additional files that came with the original. You may not copy and/or distribute modified versions of this program.
  4. You may not copy, modify, sublicense, distribute or transfer the program except as expressly provided under this license. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the program is void, and will automatically terminate your rights to use the program under this license. However, parties who have received copies, or rights to use copies, from you under this license will not have their licenses terminated so long as such parties remain in full compliance.
  5. By copying, distributing and/or using the program you indicate your acceptance of this license to do so, and all its terms and conditions.
  6. Each time you redistribute the program, the recipient automatically receives a license from the original licensor to copy, distribute and/or use the program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein.
  7. You may not disassemble, decompile, re-source or otherwise reverse engineer the program.
  8. You agree to cease distributing the program and data involved if requested to do so by the author.
  9. The author does not warrant that the functions contained in the Program will meet your requirements, or that the operation of the Program will be uninterrupted or error free, or that any defects that may exist in the Program will be corrected. Errors may exist in the Program.
  10. The Program and accompanying written material are provided "as is" without warranty of any kind and is used at your own risk.
  11. Neither the author nor anyone else who has been involved in the creation, production or delivery of this product shall be liable for any direct, indirect, consequensial or incidental damages arising out of the use of or inability to use this product.

3. The Main Menu and Toolbar

The interface is divided in different parts which are described below.

3.1 Main Toolbar

The main tool bar contains some predefined buttons and fifteen user definable buttons.

Connect/Disconnect

This button connects JavaFIBS 2001 to the FIBS server when it is pressed in and disconnects the client from the server when it is released. When pressed it will open the Login dialog where you enter your username and password you have in FIBS.

Ready for Invitations

This button makes you ready to accept invitations from other players when it is pressed and sets you to an not ready status when it is released.

Silent Shouts

This button makes so you will not hear the players that are shouting in FIBS while it is pressed.

Notify When Users Enter and Leave

This button will show you when users enter and leave while it is pressed and will not show you that information if it is released.

Report Starting and Ending of Matches

This button will show you starting and ending of matches while it is pressed and will not show you the information if it is released.

Game Information

This button lets select if you want to see when people roll, double and move while you are playing or watching or not.

Sent Commands to FIBS

This button selects if you want to see the commands that are sent to the server. Both those you are sending and also those that JavaFIBS 2001 are sending without your interaction will be shown.

Auto Greet Opponent

This button will automatically greet your opponent every time you start a new match if it is pressed. When it is pressed, a dialog will pop up where you can type in the message you want to tell your opponent. If you enter "%Opponent" in the greeting it will be substituted by your opponent's name.

Auto Thank Opponent

This button will automatically thank your opponent for the match after the match has been finished. When pressed, a dialog will pop up where you can type in the message you want to tell your opponent. If you enter "%Opponent" in the message it will be substituted by your opponent's name.

Away

This button will set you into away mode if it is pressed and taken back again when it is released. When it is pressed a dialog will pop up where you can type in the away message you want to be shown.

Player Table to Window

This button will take the player table from the tab and put it into a separate resizable window.

Board to Window

This button will take the graphical board from the tab and put it into a separate resizable window.

User Definable Buttons

To the far right your own customisable buttons will appear when you add them. See 10 Programmable Buttons for more information.

3.2 Main Menu

3.2.1 JavaFIBS Menu

This menu is contains some commands that are for the interface and its operation with FIBS.

Connect...

This option will open the Login Dialog where you can enter your username and password you have and then connect you to the server.

Disconnect

This option will disconnect you from FIBS if you are connected.

New User...

This option will let you register a new username on FIBS. It opens a dialog where you can select your new username and password. After it has managed to create your new account it will connect to FIBS with the new account.

Change User...

If you are more people that are sharing JavaFIBS 2001 each person will contain its own profile. This option is for swapping between the different users. If this option is not used, the next user will use the previous user's settings when connecting to FIBS with the Login dialog.

About

This option will bring up the About dialog that displays some basic information about JavaFIBS 2001.

Exit

This option will close the JavaFIBS 2001 program.

3.2.2 Command Menu

This menu contains some useful commands that you can send to FIBS.

Toggle Menu...

The toggle menu lets you change some commonly used settings in FIBS.

Saved Games

This option will display all saved games you have on FIBS. Normally, a saved game will disappear after two months if it is not continued.

Ongoing Games

This option will display all ongoing games in FIBS.

Ratings (Top 20)

This command will show you the top 20 rated people on FIBS. It will also show you which rating number you have.

Watchers

This command will show you what users are currently watching other users.

Players Away

This command will show you all users that are currently away along with their messages.

E-mail Address...

This option will let you set your e-mail address in the address field in FIBS. A dialog will open where you can type in your e-mail address. You need to be connected to FIBS to do this.

3.2.3 Preferences Menu

This menu lets you alter different settings in the JavaFIBS 2001 client.

Server...

This option will let you change the server name and port number for FIBS. Sometimes, FIBS changes IP provider and then you may have to enter the new IP number to be able to log in. Most of the time "fibs.com" will work as the server name, even if it will take some time after a move.

Fonts...

This option lets you change the fonts and sizes of the different text areas and tables.

Board...

This option will let you change the preferences for the graphical board to alter its appearance.

Log Games...

This option lets you decide if you want JavaFIBS 2001 to log the games you are watching and playing so you can view them at a later time or convert them to a different format.

Profile...

This option opens up a dialog where you can enter your name, gender and country which will be shown to other JavaFIBS 2001 users on FIBS when you connect.

Decline Message...

This option will let you change the message that are sent when you decline an invitation from a user.

Programmable Buttons...

This option will let you alter the fifteen user definable buttons on the main toolbar. See the section about programmable buttons for a description how it works.

Look & Feel Menu

This will let you change to overall appearance of the JavaFIBS 2001 client. The Metal- and CDE/Motif L&F are available on all platforms while the Windows L&F only is useable for Windows users and the Mac L&F only for Mac users because of copyright reasons.

Sound

This option lets you select if you want the sound on in the client or not. If selected JavaFIBS 2001 will take over all sound resources on the system.

Status Bar

This option will add a status bar to the bottom of the client if this option is selected. The status bar will show system information.

Auto Login

This option will automatically log the last user in to FIBS when the program is started if this option is selected.

System Area Full Output

When this option is selected, it will hide the two bottom text areas (by moving the split pane border to the bottom) and output all text information in the System text area (system information, notify text, shouts, chat, etc) instead of having it divided into different text areas.

3.2.4 Tools Menu

This menu contains some useful tools that can be used.

Match Converter

This tool lets you convert the matches you have played into JellyFish .mat format which is useful for a number of other backgammon programs. The converted matches are always saved in the JavaFIBS2001/matches/jellyfish/ directory.

Statistics

This tool shows some extensive statistics over the matches you have played.

3.2.5 Help Menu

This menu contains the help documents to let you access it easily.

Contents...

This option will open up the table of contents for the JavaFIBS 2001 User Guide in a simple browser window included in the program. It works like your standard browser. Just click on the links to go to the section you want.

4. Graphical Board

4.1 Playing on the Board

This section describe how you interact with the checkers and dice on the graphical board to play a game. While it is possible to play on the board with a mouse with only one button, three buttons are recommended for fastest and easiest play.

4.1.1 Roll Dice

To roll the dice click on the roll dice icon on the board. It will only appear when it is your turn to roll or double.

4.1.2 Move Checkers

There are two ways of moving the checkers on the board. The first one is dragging them by holding the mouse pointer over one, press either mouse button and then move the checker to where you want to place it while keeping the button pressed. You can only place checkers on correct spots, otherwise they will jump back to where they were dragged. The second way of moving the checkers is by holding your mouse pointer over the checker you want to move and then click either on the left or right mouse button. The left mouse button will move the checker according to the left die and the right mouse button will move the checker according to the right die. When you have moved one checker, both mouse buttons will move the next checker according to the die that is left to move.

4.1.3 Pickup Dice

When you have completed your move and want to send the it to FIBS you have to click the left mouse button on the dice on the board.

4.1.4 Double/Accept/Reject Cube

To double the cube you have to double click on the cube icon on the board. To accept a cube offer from your opponent you also have to double click on the cube icon which should be shown in your opponent's dice area. To reject the cube, click on the reject icon on the board (often shown as a red cross).

4.1.5 Accept/Decline Resign

When your opponent wants to resign, a resign icon (shown often as a white flag) will appear on the board which shows what kind of resign your opponent offers. If you double click on the resign icon, you will accept your opponent's resignation. A reject icon will also appear on the board (shown as a red cross) and by clicking on that you will decline your opponent's offer.

4.1.6 Undo Move

To undo a move not yet sent to FIBS you can click on the left mouse button on the undo icon which is located in the middle of the bar area or press the middle mouse button anywhere on the board if you have one. The latter is only useable if you have set your middle mousebutton to work as the third mousebutton.

4.1.7 Swap Dice

JavaFIBS 2001 always put the player's highest die to the left in the dice area when it's the player's turn to move. If you only have one mouse button or just want to use your left mouse button on the board, you can switch the places of the dice by clicking on them before you make any move.

4.2 Board Toolbar

 Undo Moves

This button will take back all the moves you have made so far for this turn. Moves already sent to FIBS cannot be taken back.

Autoroll Dice

This button sends the toggle double command to FIBS. The setting will be reset after each game point so you will have to press the button each game to autoroll. One exception to this is when you have one point from winning the match, then the default value will be that it will not ask you to double but roll the dice automatically.

Greedy Checker Bear Off

This button will send the toggle greedy command to FIBS. This means it will move home as many checkers it can automatically when you are able to bear off. Beware, it will do so even if your opponent still is able to hit you. The command will be set to off after every game.

Resign

This button will let you resign the game you are playing. A dialog will pop up so you can offer offer points between a normal (1 x cube), gammon (2 x cube) or backgammon (3 x cube) resignation to your opponent.

Refresh Board

This button will send a board command to FIBS to receive a fresh board from the server. This is useful if something weird has happened to the board or if you did a look on someone that brings up someone else's board.

Checker Target Help

When this button is pressed it will show all places that a dragged checker can move to. It will also light up the target when you are above it when dragging so it will be easier to drop the checker on the right place. The latter is only available on the bitmap boards due to technical issues.

 Pip Count

When this button is pressed, the pip count will be shown next to the players' scores.

Load Logged Match

This button will let you load a logged match back into JavaFIBS 2001 to review it.

Save Board

This button will let you save the current board into different formats for different purposes. Currently only ASCII and JellyFish .pos formats are supported.

Previous Game

This button will scroll back to find the previously stored game start and show that on screen.

Previous Board

This button will show the previously stored board on screen.

Next Board

This button will show the next stored board on screen.

Next Game

This button will scroll forward to find the next stored game start and show that on screen.

The Board Counter

The numbers divided by a slash ( / ) to the furthest right on the toolbar is showing the present board and the total amount of stored boards. The first number shows which board is currently shown on screen. A - means the last stored board. The number after the slash shows how many boards there are in total in the match stored in memory.

4.3 Board Settings

You can change the appearance on the graphical board with the Board... option in the Preferences menu. The following sections describe the settings you can change

4.3.1 Board List

First you can decide if you want to use a resizable vector board or a fixed sized bitmap board. The biggest difference is that the vector board is resizable and the bitmap boards are not. If you select to use the bitmap board, you have a few already made boards with different graphical appearance to choose from. If you are not satisfied with the boards that is included you can draw your own and use with JavaFIBS 2001. See section 4.4 Creating a Custom Board. The information area to the right of the list displays some information about all the boards.

4.3.2 Board View

This part lets you decide if you want to play clockwise or counter-clockwise. Normally in JavaFIBS 2001 you play by moving your checkers from top right to bottom right. By setting the view to mirrored you will instead play from top left to bottom left.

4.3.3 Board Translucency

This option lets you select the translucency level on the checkers and dice. The values range from fully opaque (default) to 50% translucency level.

4.3.4 Vector Board Textures and Colours

This option will let you change the colours and textures on the vector board. The less textures you use, the faster the vector board will be drawn and therefore faster to play on. Play around with the settings to find the optimal balance between textures complexity and speed.

4.4 Creating a Custom Board

Follow these steps to make your own board to use with JavaFIBS 2001.

  1. Draw the board graphics and save the images as .gif pictures (jpeg pictures will also work). The pictures you will need are:
  2. Make two text files named normal.metrics and reverse.metrics. In these textfiles you type in where on the board the different areas are as starting points with an x and y coordinate. The size of the areas are entered at the end like tuples of width and height in pixels. The coordinates and size must be separated with a comma-sign (,) such as 0,0. You can also modify one of the files in the existing boards. The normal.metrics file is used when you are playing counter-clockwise starting in the top right corner and the reverse is used when playing clockwise starting in the top left corner. The coordinates must be placed in rows in the following order:
  3. Make a snapshot picture of the board and shrink it so the width becomes 150 pixels. Name it thumbnail.gif.
  4. Create a textfile called information.metrics and type in your name in it.
  5. Name your board by creating a folder/directory with that name and put all the files in it. Avoid using special characters and whitespace in the name and make sure you do not have a board with that name already.
  6. Put the folder in the JavaFIBS2001/boards/ folder. Now you can select your board in the board list when you open the preferences for the board. 

Note: The dice area should be at least two dice in height and one die width from each other since JavaFIBS randomize the location for each dice with a value from 0 to half a dice from each die location.

5 Players

The Players table shows the users that are currently logged in on FIBS. It is dynamically updated so it always shows the current status of the players. By double clicking with the left mouse button or click on the right mouse button on a user will bring up a popup menu where you can perform different actions on that user such as invite him or mark him as a friend.

5.1 Players Toolbar

Show Ready Users

When this button is pressed it will show the ready users in the player table. If it is not pressed those users will not appear in the list.

Show On-Line Users

This button decides if you want to see those players that are neither playing nor ready to be invited in the player table.

Show Playing Users

This button lets you decide if you want to show the users that are currently playing a game in the player table.

Show Unknown Users

This button lets you decide if you want to see those players that have a status that is undefinable. They turn into this state if they are playing and their opponent leaves FIBS. It is uncertain if they are in the ready state or the on-line state when this happens.

Pts:

This box will let you set the amount of points you want to play when you invite someone. It affects both the invite in the player table and the invite in the invitation table. Resume means you want to invite someone to finish a currently saved game you have with that person and unlimited means you want to play a match which will never end with someone.

Invite User to a Match

This button will send an invitation to the currently selected person in the player table. That person will be invited to play the number of points you have selected in the point box to the left of this button.

Auto Invite User to a Match

This button will let you set the interface to watch for someone to become available to play with. When the selected person becomes available JavaFIBS 2001 will then automatically invite that person to a match with the points you select. This comes in handy if you for example are trying to play one of the bots on FIBS so you do not have to guard it yourself.

Update Table

This button clears the whole player table and then reloads all users into it. This may be necessary occasionally due to bugs in FIBS which will cause some commands to vanish which is necessary for a correct update of the table.

In:

This number shows how many players are currently logged in on FIBS.

6 Friends

JavaFIBS 2001 lets you keep track of your friends in an easy way. All friends you have added will be shown here and their current status if they are logged on or not and what they do if they are on. You can colour your friends so they will become easier to spot in the player table or when they appear in the text areas. You will also always be notified when one of your friends log in, even if you do not show when the users enter and leave.

6.1 Friends Toolbar

Add Friend

This button opens up a dialog where you can enter your friend's name. It is necessary to type in the name exactly as it appears in FIBS with both upper and lower case letters.

Colour Friend

This button lets you change the colour on your friend. This colour is the colour that will appear in the players table and in the text areas when this person appears.

Remove Friend

This button removes the currently selected person in the friend list.

Chat With Friend

This button will open up a separate chat window to let you speak with your friend. Will only work if the friend is logged into FIBS.

Leave Message for Friend

This button lets you leave a message to your friend which (s)he will receive next time (s)he logs in. If the person is already in, (s)he will receive the message instantly.

Whois Friend

This button will send a whois <user> command to FIBS to fetch the information about your friend. The information will be displayed in the System text area.

6.2 Friends Popup Menu

You can bring up a popup menu by double clicking on the left mouse button or by clicking on the right mouse button on a friend in the table. The entries are just the same as those found in the toolbar.

6.3 Friends Table

There are three column in the friends table. The column named On shows if that friend is online and nothing if (s)he is not. The Name column contains the name of the friend and the friend's name has the colour which that friend will have when (s)he appears in tables or text areas. The Status column shows what the friend is doing in FIBS if (s)he is logged on.

7. Villains

JavaFIBS 2001 lets you ignore the people you do not want to listen to. All persons you add to this list will not be shown wether they try to talk to you, shout or log in/out. They will not appear in the invitation table either and you won't see any messages left to you from them either. In the Players table they will appear with a light gray colour. If they try to watch any of your matches they will immediately be banned from the match since JavaFIBS 2001 sends the blind <user> command if that happens. Remember, they will still be able to hear you when you shout or speak .

7.1 Villains Toolbar

Add Villain

This button will let you enter a new villain into to the table.

Remove Villain

This button will remove the selected villain from the table to become an ordinary person again.

8. Invitations

The table to the top right are for displaying and handling incoming invitations from other players. When someone invites you, his or her name will appear in the table along with some of the person's details. The table also shows how many rating points you will gain if you win and how many rating points you will lose if you lose the match. By double clicking on the left mouse button or single click on the right mouse button on a person in the table a popup menu will appear where you can decide what to do with the invitation.

8.1 Invitations Popup Menu

Join

This option will accept the person's invitation and start playing with the person.

Decline

This option will send a message to the inviter declining the invitation. You can change the message with the Decline Message... option in the Preferences menu

Ignore

This option will just remove the invitation from the table without doing anything else.

Invite

This option will invite the inviter to the number of points you currently have selected in the players table.

9. Matches

With JavaFIBS 2001 you can save your matches to replay them later on the JavaFIBS 2001 graphical board or convert them to other formats for other programs.

9.1 Save Matches

JavaFIBS 2001 is able to save your matches you play and/or watch automatically. The Log Matches... in the Preferences menu lets you decide when to save the matches. The default is that all matches you play will be saved but not when you are watching. The matches are saved in an internal match format (see 9.4 JavaFIBS 2001 Match Format). Some matches may not be saved properly because they have been interrupted in the middle or some FIBS output has disappeared. JavaFIBS 2001 tries to save as much information about these matches anyhow.

9.2 Replay Saved Matches

You can replay the old matches that have been saved in JavaFIBS 2001. By clicking on in the Board's toolbar you will be presented with all matches that has currently been saved in JavaFIBS 2001. After you have selected a match to review, the match will be loaded into the graphical board for you to scroll through with the use of the arrow buttons.

9.2 Export Matches

If you want to use your saved matches in another program, you may want to convert them to a format that can be read by them. Most, if not all, backgammon programs can read the JellyFish .mat format and is therefore the chosen format that JavaFIBS 2001 will convert the matches to. You find the match converter in the Tools menu

9.3 JavaFIBS 2001 Match Format

JavaFIBS 2001 keeps the matches saved in an internal text format. The first line shows the kind of text file it is. The rest shows the match. All commands are represented by a number and after that number the data for that command comes separated by a colon (:). The commands and their number and data are described in the table below, which represents version 1.1 of the format.

Command Number Data 1 Data 2
roll die 0 <player> <die> <die>
move checker 1 <player> <move> <move> ...
double cube 2 <player>  
resign game 3 <player> <resign points>
accept cube 4 <player>  
reject cube 5 <player>  
start game 6 <player1> <player2>
finish game 7 <winning player> <points won>
match start 8 <opponent> <match length>
finish match 9 <winning player> <match length>
init dice roll 11 <player> <die> <die>
reject resign 12 <player>  
game init 13 <player>  
game score 14 <player1>-<score> <player2>-<score>
cannot move 15 <player>  

10. Programmable Buttons

In JavaFIBS 2001 you can add new customised buttons to the top toolbar. When you select Programmable Buttons from the Preferences menu a small window will open up that lets you add, remove, or change the contents in a button. To add a button, insert the command you want to have on this button in the text field, the picture it should have, and then press the add button. To change the command or icon for a button, you first select the button. Then alter the command in the text field or icon and then press the update button. The four buttons to the right of the text field will let you insert special tags into the command of a button, which will let you interact with the interface better (see below). When you are finished with all buttons, press ok . The commands will be saved after you have closed JavaFIBS 2001.

The tags and their functionality are you can use in the commands are:

Note: These tags can also be used in the autothank, autogreet and decline messages.

Example1: You want a greet button for your friends. Then in the text field in the programmable button you want to use you can write: "tell %Friend Hi! How are you doing today?" and every time you push this button it will send this greeting to the selected friend in the Friends table.

Example 2: You want a button that will ask the selected person in the Players table if he wants to play: "tell %Player Would you like to play a 5 point match?"