by Peter Nevalainen
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/ .
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.
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.
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.
Open a shell/console/terminal window and type: java -jar JavaFIBS.jar when standing in the JavaFIBS2001 folder.
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.
The interface is divided in different parts which are described below.
The main tool bar contains some predefined buttons and fifteen user definable buttons.
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.
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.
This button makes so you will not hear the players that are shouting in FIBS while it is pressed.
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.
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.
This button lets select if you want to see when people roll, double and move while you are playing or watching or not.
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.
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.
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.
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.
This button will take the player table from the tab and put it into a separate resizable window.
This button will take the graphical board from the tab and put it into a separate resizable window.
To the far right your own customisable buttons will appear when you add them. See 10 Programmable Buttons for more information.
This menu is contains some commands that are for the interface and its operation with FIBS.
This option will open the Login Dialog where you can enter your username and password you have and then connect you to the server.
This option will disconnect you from FIBS if you are connected.
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.
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.
This option will bring up the About dialog that displays some basic information about JavaFIBS 2001.
This option will close the JavaFIBS 2001 program.
This menu contains some useful commands that you can send to FIBS.
The toggle menu lets you change some commonly used settings in FIBS.
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.
This option will display all ongoing games in FIBS.
This command will show you the top 20 rated people on FIBS. It will also show you which rating number you have.
This command will show you what users are currently watching other users.
This command will show you all users that are currently away along with their messages.
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.
This menu lets you alter different settings in the JavaFIBS 2001 client.
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.
This option lets you change the fonts and sizes of the different text areas and tables.
This option will let you change the preferences for the graphical board to alter its appearance.
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.
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.
This option will let you change the message that are sent when you decline an invitation from a user.
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.
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.
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.
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.
This option will automatically log the last user in to FIBS when the program is started if this option is selected.
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.
This menu contains some useful tools that can be used.
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.
This tool shows some extensive statistics over the matches you have played.
This menu contains the help documents to let you access it easily.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
When this button is pressed, the pip count will be shown next to the players' scores.
This button will let you load a logged match back into JavaFIBS 2001 to review it.
This button will let you save the current board into different formats for different purposes. Currently only ASCII and JellyFish .pos formats are supported.
This button will scroll back to find the previously stored game start and show that on screen.
This button will show the previously stored board on screen.
This button will show the next stored board on screen.
This button will scroll forward to find the next stored game start and show that on screen.
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.
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
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.
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.
This option lets you select the translucency level on the checkers and dice. The values range from fully opaque (default) to 50% translucency level.
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.
Follow these steps to make your own board to use with JavaFIBS 2001.
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.
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.
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.
This button decides if you want to see those players that are neither playing nor ready to be invited in the player table.
This button lets you decide if you want to show the users that are currently playing a game in the player table.
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.
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.
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.
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.
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.
This number shows how many players are currently logged in on FIBS.
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.
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.
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.
This button removes the currently selected person in the friend list.
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.
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.
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.
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.
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.
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 .
This button will let you enter a new villain into to the table.
This button will remove the selected villain from the table to become an ordinary person again.
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.
This option will accept the person's invitation and start playing with the person.
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
This option will just remove the invitation from the table without doing anything else.
This option will invite the inviter to the number of points you currently have selected in the players table.
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.
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.
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.
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
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> |
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?"