Networked Blood Bowl Game
Moderator: TFF Mods
- christer
- Star Player
- Posts: 565
- Joined: Sat Jun 08, 2002 8:54 am
- Location: Stockholm, Sweden
- Contact:
-
- Veteran
- Posts: 267
- Joined: Tue Jul 09, 2002 12:32 pm
- Location: Northern Ireland
- Contact:
And the solution...
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?
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: ''
- christer
- Star Player
- Posts: 565
- Joined: Sat Jun 08, 2002 8:54 am
- Location: Stockholm, Sweden
- Contact:
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.
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: ''
- SkiJunkie
- Veteran
- Posts: 272
- Joined: Mon Aug 20, 2001 9:21 pm
>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.
>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: ''
- SkiJunkie
- Veteran
- Posts: 272
- Joined: Mon Aug 20, 2001 9:21 pm
>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.
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: ''
- christer
- Star Player
- Posts: 565
- Joined: Sat Jun 08, 2002 8:54 am
- Location: Stockholm, Sweden
- Contact:
How about a class like:I've looked at it several times trying to find a way to fix it without major changes.
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;
}
}
Code: Select all
...
GameState.setState(GameState.KICKOFF);
...
GameState.setState(GameState.GAME);
...
Code: Select all
...
if (GameState.getState() == GameState.KICKOFF) {
...
}
...
Code: Select all
// Perform kickoff
if (kickerHalf == field.getHalf(ball.getCoordinates())) {
// Touchback
}

-- Christer
Reason: ''
- christer
- Star Player
- Posts: 565
- Joined: Sat Jun 08, 2002 8:54 am
- Location: Stockholm, Sweden
- Contact:
Yes.IRating1 : 107
This the prematch rating?
Injuries caused by the team.These are injuries on this team or injuries caused by this team?
This includes injuries saved by an apothecary?
Yes. Or well, in the current incarnation they need to be there. I can adapt if this causes problems.Does the whitespace before and after the ':' need to be there?
That was what I had in mind, yes.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.
-- Christer
Reason: ''
-
- Veteran
- Posts: 267
- Joined: Tue Jul 09, 2002 12:32 pm
- Location: Northern Ireland
- Contact:
>>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.
>>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: ''
- GalakStarscraper
- Godfather of Blood Bowl
- Posts: 15882
- Joined: Tue Jun 26, 2001 12:00 am
- Location: Indiana, USA
- Contact:
[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
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: ''
-
- Super Star
- Posts: 1251
- Joined: Thu May 02, 2002 11:21 am
- Location: Cupar, Fife, Scotland
- SkiJunkie
- Veteran
- Posts: 272
- Joined: Mon Aug 20, 2001 9:21 pm
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?
<<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: ''
-
- Veteran
- Posts: 267
- Joined: Tue Jul 09, 2002 12:32 pm
- Location: Northern Ireland
- Contact:
- christer
- Star Player
- Posts: 565
- Joined: Sat Jun 08, 2002 8:54 am
- Location: Stockholm, Sweden
- Contact:
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 testI'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?

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...I believe Christer is running it on Linux. Maybe he can help
Also, "not working properly" isn't really descriptive enough to figure out what the problem might be

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