Last Modified: Monday, July 23, 2007

Home
Introduction
Latest Release 8.9
Dungeon Bowl Preview
Read Me
Links
Why Donate?


Introduction

By SkiJunkie

Tuesday, February 08, 2005

Well Howdy sports fans. What is this Java BBowl Server/Client? This project is aimed at duplicating the gameplay of Blood Bowl™ as a computer game. Blood Bowl is a board game published by Games Workshop™.

Well, it all started when I decided I wanted to learn how to write a client/server app for the internet in Java. But what to write I asked myself. It had to be something that would keep my interest or, like so many other applications I started, it would never get finished. Now browsing the web one day I ran across numerous online Blood Bowl leagues. Wow, I haven't played Blood Bowl in years and I realized I would like to. I knew I couldn't manage playing through email. So I thought why not write an app in Java and kill two goblins with one bomb.

I hadn't seen Avi Stetto's Blood Bowl Irc Client yet so I happily started working. Sometime during my work I did find Avi Stetto's Irc Client. Excellent piece of work. It lets you simulate the Blood Bowl board on your computer. Admittedly, much more flexible with custom rules and different rule interpretations than my app.

I have made my Java BBowl Client a bit differently. My intention was to incorporate all the rules into the program. Let me tell you it turned out to be quite an undertaking. After seeing how the teams were stored in html format I decided to do the same. My client can also read teams made with the Blood Bowl HTML Editor. I will get more into the specifics of this later. I have a feeling I need to show some screen shots before I lose my audience.

Initial Setup Screen

Here is the initial set-up screen for the Blood Bowl Java Client. You will use this screen to choose what team (or teams) to use and if the game will be player stand alone or networked. The following describes the different areas of the screen and their uses:

  1. Game Type - Use this to select the game type you will be playing. Choose Stand Alone when both teams are played from the same computer. No internet connection is required. Choose Network as Server when you want to start the game on your computer and then wait for your opponent to connect to your computer. Choose Network as Client when you will connect to another computer that has already started a game as the Server.
  2. Host/Port - These field are only used for Network play. When Network as server is selected these fields are auto populated and disabled. The information in these fields should be used by the client computer. When Network as client is selected these fields are cleared and enabled. Type the information displayed on the server computer into these fields. 8080 is the default port and should be fine for most cases. Host will display in the form "[computer name]/[IP address]" on the server computer. The client computer should type one or the other into its host field but not both. Example: Server machine displays "mike/192.168.0.1". The client machine should type either "mike" or "192.168.0.1" into its host field.
  3. Team 1 and 2 - Type the drive path into the field or browse to the file using the browse button. For Stand Alone games both team 1 and 2 must be filled in. For Server or Client games only team 1 will be enabled. This will be the team that you play. The opponent team will be transferred to your computer after the connection is made and placed in a directory under the Java Client directory. The directory will have the same name as the opponent team name. WARNING: If a directory and team with that name already exist it will be overwritten.
  4. Options - This will bring up an option screen. This is only available to the computer starting the game (i.e. Network as Server). This screen allows you to selected things such as "Use Weather", "Use Kick-off table", etc.
  5. About - This will bring up an about screen. Basically this is just the splash screen that displays when you first run the program.
  6. Start / Host / Join Game - Start game when in Stand Alone mode. Host game when in Network as Server mode. This starts the server and waits for a client connection. Join games when in Network as Client mode. This attempts to connect to the specified server.
  7. Load - Allows you to load a game that was started earlier. At the start of each teams turn the game state is saved to a data file. Use this field to re-load that game. (For network games the server loads the game.) The data file will be a 10 character name based on the team names that were playing. Example: Reikland Reavers playing the Champions of Death. Save file = "ReikvsCham.dat".

Main Game Screen
(Click to zoom)

Here is the main game screen for the Blood Bowl Java Client. You will use this screen to play the game.

  1. Pitch - The field of play.
  2. Dugouts - The dugout sections for players not currently on the pitch.
  3. Selected Player View - This section will display the currently selected player's picture, stats, and skills.
  4. Inspect Player View - This section will display the player under the mouse cursor. In some cases is displays the player being acted upon. For example: when a player is blocked, the blocked player will be displayed here.
  5. Player Action Toolbar - This tool bar is used to select actions for players.
  6. Counter Display - This section will display the various counters in the game. Namely it displays the team turns, team scores, and team re-rolls. Red is for the team on the left, blue is for the team on the right.
  7. Block Dice View - This area displays 1-3 block dice and is used to select the block die you want to use.
  8. Message Area - This area displays information relevant to what is happening in the game. Sometimes it tells you what to do next, other times it displays die roll results and such.

Now lets break down interesting sections of the screen and describe them.

Player View

Player view displays the specifics of a player. Both player views on the main screen are identical. One displays the currently selected players while the other displays whatever player is under the mouse cursor.

  1. Player name
  2. Player position
  3. Player stats
  4. Player's roster number
  5. Player's picture
  6. Player's skills

Action Toolbar

This is the action toolbar used…drumroll…to select actions for players. In order from toto bottom the buttons are: move, block, blitz, handoff, pass, foul, and go for it. Where is stand-up you say? Well, when a player is prone and you select with move, blitz, or foul the player is automatically stood up and 3 move points are deducted (unless the player has jump up).

 

Players on the Field

Here is an example of what players look like on the field. Players can be shown on the pitch using either image icons or drawn circles with letters. You can toggle between the two at any time by pressing the "i" key on the keyboard. On the left above are the image icons. The right shows the circle and position letter players. You'll notice each player icon has a letter within the circle. This is an easy way to identify at a glance types of players. T being a thrower, B being a blitzer, C being a catcher, L being a Lineman, and Bo being a black orc, O being an ogre. There are a few others for special players: M (mummy), Z (zombie), S (skeleton, dwarf slayer, or storm vermin), W (wight, witch elf, or chaos warrior), R (dwarf runner or gutter runner).

Notice the player carrying the ball has a ball icon in the bottom right corner of the player icon and is ringed in yellow (Red dwarf runner on the top right). Image icons only show the ball icon ringed in yellow.

Also notice that the currently selected player is ringed in purple (Red dwarf runner near the center). For image icons, the currently selected player is shown using a profile view.

   
   

Player Actions and Resulting Eligible Square Highlights

There are example of player actions. Going from left to right.

The first shows the dwarf runner with move selected. All possible move squares are highlighted in blue. You would click on a highlighted square to move the catcher.

The second shows the dwarf runner with block selected. All possible block squares are highlighted in blue. You would click on a highlighted square to block that player.

The third shows the dwarf runner with blitz selected. All possible move squares and block squares are highlighted in blue. You would click on a highlighted square to either move or block.

The fourth shows the dwarf runner with foul selected. All possible move squares and foul squares are highlighted in blue. You would click on a highlighted square to move or foul.

Notice that the blue thrower has a white slash through him in the first image. This denotes the player is prone. In the second image the blue thrower has a white X on him. This denotes the player is stunned.

 

Pass Example

This is an example of a pass. The top left red dwarf runner has been selected with a pass action. Eligible receivers are color code highlighted based on their range. Light blue for quick, light green for short, dark blue for long, and gray for bomb. As you move the mouse to eligible receivers, opponents that may attempt an interception are highlighted in red. In the example above the mouse is over the red lineman in the bottom right corner of the image. There are two opponent that may try to intercept, the blue lineman and the blue black orc. Notice the blue thrower is not highlighted red because he is prone. There is also a range ruler that uses the same color coding that moves with your mouse to help determine range when selecting a player to pass the ball to.

Block Dice

This is an example of a three dice block and die selection. The left shows the three dice that were rolled. The right shows that the player has selected the pow unless dodge die.

  Email comments/suggestions @ SkiJunkie | Report bugs here
Website design by uber