Networked Blood Bowl Game

Be it FUMBBL, PBeM, the Cyanide Computer Game, VASSAL or whatever - talk about online play here.

This is also the place for discussing the various tools for managing leagues, teams and so on.

Moderator: TFF Mods

Post Reply
User avatar
christer
Star Player
Star Player
Posts: 565
Joined: Sat Jun 08, 2002 8:54 am
Location: Stockholm, Sweden
Contact:

Post by christer »

SkiJunkie,

Just noticed a bug.. At kickoff, the ball scattered to the LoS, a player got the chance to catch it as usual, but failed. Now, the bug is that the ball bounced over to the opposing team's half, but it didn't recognize this as a touchback..

-- Christer

Reason: ''
IronAge_Man
Veteran
Veteran
Posts: 267
Joined: Tue Jul 09, 2002 12:32 pm
Location: Northern Ireland
Contact:

And the solution...

Post by IronAge_Man »

And here is the perfect answer...

http://www.dn-allen.supanet.com/Excel/BBRoster.zip


it shouldn't be much trouble to convert to the HTML layout this tool outputs...or is it?

Reason: ''
User avatar
christer
Star Player
Star Player
Posts: 565
Joined: Sat Jun 08, 2002 8:54 am
Location: Stockholm, Sweden
Contact:

Post by christer »

SkiJunkie,

Going back to the output format of the game data.. Here's how I store a match in the LeagueManager savefiles.
If your client were able to produce a file like this, it would be very easy for me to implement importing functionality.

First character of a line says what type of data it is:
R - Reference
I - Integer value

After that comes an identifier followed by the string " : ".
And finally the data. For references, the first character denotes what the data referrs to. 't' means that the value points to a team. The reason for these "codes" is that I'm using a generic class to handle loading and saving.

The fields should be mostly self-explanatory. "Extra" is a field that contains extra league points and you should either set it to zero or leave it out entirely. That holds for all fields. If you can't provide it, leave it out.

Code: Select all

--BeginProperty Match
RTeam1 : tWarpstone Cowboys
IRating1 : 107
IScore1 : 2
ICompletions1 : 0
IInterceptions1 : 0
IBH1 : 2
ISI1 : 2
IRIP1 : 1
IWinnings1 : 20000
IExtra1 : 0
IScore2 : 3
RTeam2 : tSilent Assassins
IRating2 : 103
ICompletions2 : 3
IInterceptions2 : 0
IBH2 : 1
ISI2 : 0
IRIP2 : 1
IWinnings2 : 40000
IExtra2 : 0
IGate : 38000
--EndProperty

Reason: ''
User avatar
SkiJunkie
Veteran
Veteran
Posts: 272
Joined: Mon Aug 20, 2001 9:21 pm

Post by SkiJunkie »

>It's a great piece of software, very nicely done. I can't wait
>to try it out across a 2 PC network.

Glad you like it. Thanks.

>Check your code for throw-ins; it seems that the ball is
>always sent 7 or 8 squares in-field when thrown back
>by the crowd, which I believe should not be.

Throw-in go 2d6 squares in the direction indicated by the template. Which averages about 7 squares. Are you thinking it should go that far or that it goes 7 or 8 squares too often?

>I downloaded the Living Rule Book v1.2, and will adopt
>it as my rules standard; when will you incorporate the
>Handicap table?

My guess is they will change the handicap table before I get a chance to implement it. I still have a few skills to add first.

>The Blood Bowl HTML Team Editor you recommended is
>rather basic; Integration with a league manager
>spreadsheet/database >would be superb.

There is a older version (or simular version) of the excel spreadsheet you pointed to below created by Milo Sharp (?? I think). That excel spreadsheet would do all the calculating and could export html rosters that worked with the java game. I can't find the link anymore but I have the excel sheet somewhere. I can email it if you want it.

>And here is the perfect answer...
>http://www.dn-allen.supanet.com/Excel/BBRoster.zip
>it shouldn't be much trouble to convert to the HTML
>layout this tool outputs...or is it?

If this puts out html that Ronald's tool can use I'm thinking my java tool can use it as well. Give it a try. If it doesn't work send me the html team roster it created and I'll take a look.

Christer:
>Just noticed a bug.. At kickoff, the ball scattered to the
>LoS, a player got the chance to catch it as usual, but
>failed. Now, the bug is that the ball bounced over to the
>opposing team's half, but it didn't recognize this as a touchback..

Yes, this does happen. I'm hoping it is rare. The problem is with the somewhat stateless event driven way the game works. At this point the game has "forgotten" it is a kickoff and is just handling the scatter. What happens is the game tells the field to move the ball. The field moves the ball and then fires an event to the game saying the ball moved to square x,y. The game doesn't remember why the ball moved it just handles it. It is hard to explain because in some cases it does remember it is a kickoff. Just the way catching events happen makes it forget. I've looked at it several times trying to find a way to fix it without major changes.

Reason: ''
User avatar
SkiJunkie
Veteran
Veteran
Posts: 272
Joined: Mon Aug 20, 2001 9:21 pm

Post by SkiJunkie »

>RTeam1 : tWarpstone Cowboys

The 't' is not part of the name? Denotes text? I should add the 't'?

>IRating1 : 107

This the prematch rating?

>IBH1 : 2
>ISI1 : 2
>IRIP1 : 1

These are injuries on this team or injuries caused by this team?
This includes injuries saved by an apothecary?

Does the whitespace before and after the ':' need to be there?

How should network matches work. Should both computers create a results file? Then your manager can read both and make sure they match before accepting the results. This would help stop people from cheating and editing the file. Both coaches would have to submit their results file.

Reason: ''
User avatar
christer
Star Player
Star Player
Posts: 565
Joined: Sat Jun 08, 2002 8:54 am
Location: Stockholm, Sweden
Contact:

Post by christer »

I've looked at it several times trying to find a way to fix it without major changes.
How about a class like:

Code: Select all

public class GameState {
  public static final int GAME;
  public static final int KICKOFF;

  private static int state;

  private GameState();

  public static void setState(int newState) {
    this.state = newState;
  }

  public static int getState() {
    return state;
  }
}
Then, in your kickoff code:

Code: Select all

  ...

  GameState.setState(GameState.KICKOFF);

  ...

  GameState.setState(GameState.GAME);

  ...
And in the bounce:

Code: Select all

  ...
  if (GameState.getState() == GameState.KICKOFF) {
    ...
  }
  ...
Another variation would be to add something like the following to the kickoff code:

Code: Select all

  // Perform kickoff

  if (kickerHalf == field.getHalf(ball.getCoordinates())) {
    // Touchback
  }
On the other hand.. I have no idea what your code looks like, so these might not be possible.. :)

-- Christer

Reason: ''
User avatar
christer
Star Player
Star Player
Posts: 565
Joined: Sat Jun 08, 2002 8:54 am
Location: Stockholm, Sweden
Contact:

Post by christer »

IRating1 : 107

This the prematch rating?
Yes.
These are injuries on this team or injuries caused by this team?
This includes injuries saved by an apothecary?
Injuries caused by the team.
Does the whitespace before and after the ':' need to be there?
Yes. Or well, in the current incarnation they need to be there. I can adapt if this causes problems.
How should network matches work. Should both computers create a results file? Then your manager can read both and make sure they match before accepting the results. This would help stop people from cheating and editing the file. Both coaches would have to submit their results file.
That was what I had in mind, yes.

-- Christer

Reason: ''
IronAge_Man
Veteran
Veteran
Posts: 267
Joined: Tue Jul 09, 2002 12:32 pm
Location: Northern Ireland
Contact:

Post by IronAge_Man »

>>Check your code for throw-ins; it seems that the ball is
>>always sent 7 or 8 squares in-field when thrown back
>>by the crowd, which I believe should not be.

>Throw-in go 2d6 squares in the direction indicated by the template. >Which averages about 7 squares. Are you thinking it should go that far >or that it goes 7 or 8 squares too often?

Wow, I've just carefully re-checked the rules, and realised I've been doing throw-ins wrong ever since BB 2nd ed.!

>There is a older version (or simular version) of the excel spreadsheet >you pointed to below created by Milo Sharp (?? I think). That excel >spreadsheet would do all the calculating and could export html rosters >that worked with the java game. I can't find the link anymore but I have >the excel sheet somewhere. I can email it if you want it.

>If this (BBRoster) puts out html that Ronald's tool can use I'm thinking >my java tool >can use it as well. Give it a try. If it doesn't work send me >the html team >roster it created and I'll take a look.

An example of the HTML output, which didn't work (no players appeared in the game, though pre-match sequence worked), is on it's way to you. You can send me that spreadsheet in reply, if that's ok. Thanks.

Reason: ''
User avatar
GalakStarscraper
Godfather of Blood Bowl
Posts: 15882
Joined: Tue Jun 26, 2001 12:00 am
Location: Indiana, USA
Contact:

Post by GalakStarscraper »

[quote="SkiJunkie] Just the way catching events happen makes it forget. I've looked at it several times trying to find a way to fix it without major changes.[/quote]

In the PBeM tool, this type of issue was handled by passing a single boolean flag. For example, you have to have some way of passing to the Catch roll whether the pass was accurate or inaccurate correct?

Track a variable for the kickoff that gets passed through would seem fairly straightforward ... so the procedurce call (and I'm writing Delphi since I don't know Java) was ...

Scatterball(x,y,1) ..... ie this is the code we use x and y are the starting points and 1 is the number of scatters .... 3 is used for inaccurate passes.

You could do something like Scatterball(x,y,1,k) where k is added as a passed boolean which knows whether it is the Kickoff sequence or not.

That's now we handled it ... then it was just a matter of doing a global search in the code for Scatterball( and adding in the extra passed variable.

Don't know if that helps or not.

Galak

Reason: ''
martynq
Super Star
Super Star
Posts: 1251
Joined: Thu May 02, 2002 11:21 am
Location: Cupar, Fife, Scotland

Post by martynq »

I've tried to install this program on the UNIX box I have at work, but it doesn't seem to be working properly. Do you know if this should work with UNIX (Solaris) and what other requirements there are?

Cheers,
Martyn

Reason: ''
User avatar
SkiJunkie
Veteran
Veteran
Posts: 272
Joined: Mon Aug 20, 2001 9:21 pm

Post by SkiJunkie »

Next time I decide to wade throught the kickoff code I'll keep both your suggestions in mind. There is already game state code. The kickoff code is just really messy with all the special kickoff results and such. The whole kickoff mechanism is kinda patched onto the game code. I wrote the game code first and added on the kickoff stuff after. All the event stuff is written to handle game play events, so during a kickoff the game actually handles it sorta like an inaccurate pass. It is hard to explain.

<<Christer>>
I'll have a version that outputs the results file later today. Would you like me to email you an unofficial jar to test it out?

<<IronAge_Man>>
I didn't get a mail at skijunkie@collegeclub.com from you. So I didn't get the html roster to try and I don't have your email to send the team tracker.

<<martynq>>
I myself have not tried it on any of the unix flavors but I have seen screen shot from people running it on unix machines. I can't remember if I have heard of it working on Solaris. You need Sun's 1.3 JRE for Solaris installed on the machine. Tell me a little more about what is going wrong. Can you even get a screen to come up? Also check the "readme.txt" for common problems and solutions. I believe Christer is running it on Linux. Maybe he can help?

Reason: ''
IronAge_Man
Veteran
Veteran
Posts: 267
Joined: Tue Jul 09, 2002 12:32 pm
Location: Northern Ireland
Contact:

Post by IronAge_Man »

That's weird. It's in my Sent box. I've sent it again.

Reason: ''
User avatar
christer
Star Player
Star Player
Posts: 565
Joined: Sat Jun 08, 2002 8:54 am
Location: Stockholm, Sweden
Contact:

Post by christer »

I'll have a version that outputs the results file later today. Would you like me to email you an unofficial jar to test it out?
If possible, you could just send me a range of test-cases. It would take forever and a day for me to generate a suitable range of files to test :)
I believe Christer is running it on Linux. Maybe he can help
I have run it under Linux, yes. Seemed to work. I'm guessing Martyn is lacking a suitable java VM... Personally, I haven't heard anyone having trouble running java stuff on solaris. The most common bug reports I've come across (from the TA.N.K.S project) is under NT4...

Also, "not working properly" isn't really descriptive enough to figure out what the problem might be :)

-- Christer

Reason: ''
User avatar
SkiJunkie
Veteran
Veteran
Posts: 272
Joined: Mon Aug 20, 2001 9:21 pm

Post by SkiJunkie »

Sometime that email address does not like attachments. I didn't get the 2nd mail either. Try sending me an email with the html in the body of the message with no attachment.

Reason: ''
IronAge_Man
Veteran
Veteran
Posts: 267
Joined: Tue Jul 09, 2002 12:32 pm
Location: Northern Ireland
Contact:

Post by IronAge_Man »

I sent it as HTML source. I hope that works.

You need a better e-mail address...my brother has a web server pretty much to himself, and can set up e-mail addresses and host sites as he pleases. 10mb inbox limit, though. Interested?

Reason: ''
Post Reply