Home | Webstore
Latest News: OOTP 26 Available - FHM 12 Available - OOTP Go! Available

Out of the Park Baseball 26 Buy Now!

  

Go Back   OOTP Developments Forums > Out of the Park Baseball 26 > OOTP Mods > OOTP Mods - Schedules

OOTP Mods - Schedules Create your very own game schedules, or share historical schedules

Reply
 
Thread Tools
Old 06-26-2020, 02:15 AM   #261
bwburke94
Hall Of Famer
 
bwburke94's Avatar
 
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,507
Quote:
Originally Posted by Cole View Post
The link for this isn't working, anyone have a current link?
https://manywords.press/other-stuff/ootp-tools/
bwburke94 is offline   Reply With Quote
Old 06-28-2020, 12:08 AM   #262
bocko
Bat Boy
 
Join Date: Jun 2020
Posts: 1
Scratching my head on why I can't get this to work quite right: my league is 32 teams, 2 subleagues, 4 divisions of 4 teams each. I am trying to generate a schedule where division mates are played 18 games each (54), the other 12 subleague teams 6 times each (72), and one interleague division 4 times each (16).

These are my ideal numbers, but I have actually tried tweaking the total number of games and series lengths countless times to no avail: division and interleague schedules turn out great, but no matter what, teams always schedule to play 8 out of the 12 other teams in the subleague.

The pools also seem to be created perfectly. It's just that 4 teams get left out of that subleague scheduling.

Is there something I am missing that would rectify this? Pertinent portion of my settings file below:
Code:
; This many divisional games.
divisional_games=54
; This many subleague games.
subleague_games=72
; This many interleague/interdivisional games.
interleague_games=16
; If set to true, the scheduling engine will attempt
; to set up interdivisional pools between divisions
; of the same size.
match_divisions=false
; If set to true, the scheduling engine will attempt
; to set up interleague pools between leagues of the
; of the same size.
match_subleagues=false
; If set to true, the scheduling engine will attempt
; to set up interleague pools between divisions of
; the same size. If enabled at the same time as
; match_subleagues, match_subleagues will take
; priority.
match_subleagues_by_division=false

[divisional-series]
; Series scheduling options.

; The preferred length for series.
preferred_length=3
; In each division (or subleague, or all teams,
; for the two following sections), teams will
; be divided into this many pools.
pool_count=1

[subleague-series]
preferred_length=3
pool_count=1

[interleague-series]
preferred_length=2
pool_count=4
Thank you for a wonderful tool!
bocko is offline   Reply With Quote
Old 08-14-2020, 07:11 AM   #263
mikezone13
All Star Reserve
 
mikezone13's Avatar
 
Join Date: Nov 2008
Posts: 553
Any tips on how to resolve this error in command prompt?

Error: Unable to access jarfile OOTPScheduleGenerator.jar
__________________

AFBL New Jersey Athletics
FOD Boston Shamrocks
GLBL Milwaukee Eagles
HRBL Toronto Stags
PBF Commish only
ABL (old SBC) Commish only


mikezone13 is offline   Reply With Quote
Old 08-16-2020, 07:32 PM   #264
bwburke94
Hall Of Famer
 
bwburke94's Avatar
 
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,507
Do you have Java installed?
bwburke94 is offline   Reply With Quote
Old 08-18-2020, 04:15 PM   #265
jpeters1734
Hall Of Famer
 
jpeters1734's Avatar
 
Join Date: Jun 2014
Location: Juust a bit outside...
Posts: 6,228
I'm having a hell of a time. Anyone know what's going wrong?
Attached Images
Image 
__________________
"Cannonball Coming!" Go Bucs!!

Founder and League Caretaker of the Professional Baseball Circuit, www.probaseballcircuit.com

An Un-Official Guide to Minor League Management in OOTP 21

Ratings Scale Conversion Cross-Reference Cheat Sheet
jpeters1734 is offline   Reply With Quote
Old 08-24-2020, 09:16 AM   #266
RedThunder305
Bat Boy
 
Join Date: Aug 2020
Posts: 5
I am having the same difficulties with my mac book air and I am essentially in a waiting pattern until I figure this out. =/
RedThunder305 is offline   Reply With Quote
Old 10-01-2020, 05:59 PM   #267
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
Try running this in the terminal window:

ls -l OOTPScheduleGenerator.jar

If the line starts with:

-rw-r--r--

Try doing:

chmod 755 OOTPScheduleGenerator.jar

It's a bit of a stab in the dark—I don't have a Mac—but hopefully it'll work for you.
Fishbreath is offline   Reply With Quote
Old 10-02-2020, 12:34 PM   #268
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
Quote:
Originally Posted by bocko View Post
Scratching my head on why I can't get this to work quite right: my league is 32 teams, 2 subleagues, 4 divisions of 4 teams each. I am trying to generate a schedule where division mates are played 18 games each (54), the other 12 subleague teams 6 times each (72), and one interleague division 4 times each (16).

These are my ideal numbers, but I have actually tried tweaking the total number of games and series lengths countless times to no avail: division and interleague schedules turn out great, but no matter what, teams always schedule to play 8 out of the 12 other teams in the subleague.

The pools also seem to be created perfectly. It's just that 4 teams get left out of that subleague scheduling.

Is there something I am missing that would rectify this? Pertinent portion of my settings file below:

Unfortunately, you're not missing anything—this is an artifact of the current mechanism for scheduling subleague games. The scheduler separates each subleague pool into two columns, with each column containing half of the divisions in the subleague. Matchups are determined by sliding one column relative to the other. Say you have four divisions of two teams each:

D1T1 - D3T1
D1T2 - D3T2
D2T1 - D4T1
D2T2 - D4T2


After the first matchup, you get this:

D1T1 - D3T2
D1T2 - D4T1
D2T1 - D4T2
D2T2 - D3T1

The right column has moved up, wrapping around.

This has the advantage that it works for any symmetrical subleague—if you two divisions each of 3 and 5 teams, you still get a schedule with no extra divisional games. (If you have asymmetric subleagues, say one of size 3 and one of size 4, it falls back to pure round-robin mode: teams will play extra divisional games as part of the subleague rotation.) The disadvantage is that the divisions in each column will never play one another.

There's a better solution for 'perfect' subleagues (that is, with an even number of divisions of the same size, like yours) that involves a two-layer round-robin. First, divisions are paired off. Then, teams within the paired divisions play round robin. Then, the divisions themselves are round-robin rotated, and the process repeats. I haven't quite gotten around to implementing that yet, although it would be useful for both subleague and interleague play.

Last edited by Fishbreath; 10-02-2020 at 12:35 PM.
Fishbreath is offline   Reply With Quote
Old 10-02-2020, 03:24 PM   #269
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
I haven't done any work on the double-round-robin change, but I posted a release just now that fixes some broken aspects of break-day scheduling and improves the scheduler's ability to fit games in around break days. The practical result of the latter change is that schedules with, for instance, 3-game divisional series and 2-game subleague series with games played Fri-Sun and Tu-Wed should work much nearer to your expectations.
Fishbreath is offline   Reply With Quote
Old 10-02-2020, 05:13 PM   #270
bwburke94
Hall Of Famer
 
bwburke94's Avatar
 
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,507
I'd been waiting for this update for three years. Thanks!

EDIT: Is OOTPScheduleGenerator.jar supposed to be half the size of the previous version?

Last edited by bwburke94; 10-02-2020 at 05:16 PM.
bwburke94 is offline   Reply With Quote
Old 10-02-2020, 07:25 PM   #271
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
Indeed it is not! Thanks for the heads-up. Evidently my build script broke sometime in the last, uh, two and a half years. I'm uploading a fixed version as I type this.

(edit: Apparently, now it's 2-3x as big as before. Oh well! The price of progress, I suppose.)

Last edited by Fishbreath; 10-02-2020 at 09:47 PM.
Fishbreath is offline   Reply With Quote
Old 10-03-2020, 01:32 AM   #272
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
And, since I was on a roll, I went ahead and did the double round robin scheduler too, which should yield enhanced performance on the common four-division, one-pool subleague case, and can handle a few other interesting ones too. (In the event that it can't handle one, it falls back to the previous methods.)

e: Fixed a a few bugs today.

Last edited by Fishbreath; 10-04-2020 at 10:29 PM.
Fishbreath is offline   Reply With Quote
Old 10-10-2020, 08:28 PM   #273
ProXy
Minors (Rookie Ball)
 
Join Date: May 2017
Posts: 34
Hi there Fishbreath, this is an absolutely incredible mod and a lifesaver for my 72-team monstrosity of a league, lol.

I have no problems to report thus far and mostly have just been messing around with the various settings. I did want to ask something, though: can I have an example of how the interdivisional and interleague pools are supposed to work (i.e. match_divisions and match_subleagues being set to "true")? I've read the descriptions in the settings.ini file and I'm trying to wrap my head around it but I don't fully understand how it's supposed to work.
ProXy is offline   Reply With Quote
Old 10-11-2020, 06:52 PM   #274
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
Thanks! I'm glad you're enjoying it, and glad it still works in a reasonably timely fashion with that many teams.



In regards to your question, there are two concepts at play:


1. match_ properties in the config file. If these are true, then the scheduling engine will ignore your pool count settings and try to match up subdivisions first.


For match_subleagues, the scheduler will, I believe, sort the divisions in each subleague by size, and try to match them one-to-one. For instance, if you have two subleagues, each with divisions of size 5, size 4, and size 3, each division will play its opposite number in the other subleague. If you have, say, four divisions of size 4 per subleague, the scheduler will (should?) play each division against a random interleague division.


For match_divisions, it's similar but simpler. The scheduler will simply try to find two divisions of equal size in a given subleague, and set them up to play against one another.


2. Interleague and interdivisional pools generally. If the matched modes aren't on, the scheduler tries a few things here, and my recollection of exactly what order it tries them in is a little foggy. The double round robin mode is the most recent, which pairs divisions up so that their teams play round robin, then round robins the division pairings when each team has played once. If you have divisions A, B, C, and D, and your games/series settings permit, it produces the most natural results—teams in division A will play teams from all the other divisions over the course of a season. It has a few tricks to support odd numbers of teams in divisions, but requires an even number of divisions.



The other options are a sliding semi-round-robin mode (e.g. divisions are placed in two columns, and one columns slides past the other; if AB and CD are the two columns, teams in division A will play teams in C and D, but never in B), and I believe a more random mode to support league structures that none of the other modes can handle, at the cost of not really respecting the idea that you shouldn't play interdivisional games against opponents in your own division. (I don't remember if that's still in or not, though.)


Does that help? If not, where can I clarify?
Fishbreath is offline   Reply With Quote
Old 10-11-2020, 08:35 PM   #275
ProXy
Minors (Rookie Ball)
 
Join Date: May 2017
Posts: 34
That helps a little more, yeah. It also probably explains why it fails to match divisions for all of the combinations I've tried so far, as my league is one subleague with nine divisions of eight teams each (so SL1D1T8D2T8...D8T8D9T8, which I've shortened because it's quite long lol), so I don't have an even number of divisions.

My only other comments are things that I was hoping to be able to achieve but I think are impossible given the difficulty of implementation. For example, it would be nice if we could have multiple preferred series lengths so that I could, for example, have 17 games per intra-divisional matchup (two 4's and three 3's) whereas I think under the current system, it would be three 4's and one 5 or perhaps worse, four 4's and a random extra game somewhere.

Other thoughts I had that would be cool things to have are things that would literally be impossible unless the OOTP devs took up your code somehow and implemented it into the game I think. Like, I had an idea when formulating my league that I wanted most subleague pools to put all teams with similar W/L records or similar rankings in their division together in an attempt to try to balance the schedule difficulties, but I don't think this mod could ever even consider schedule difficulty unless it had OOTP data to feed from.

Despite my crazy ideas though, this is a great mod that works wonders for what I'm doing, so I'm satisfied, but if you're ever thinking of expanding the scope of what's possible with the mod, I think having more granular control over series lengths (or maybe something even more general than that, like maybe a thing where you could input what your desired matchups would be for a single team and then it tries to match that as best as possible?) would be an interesting place to start. I don't know how hard that would be to code, but as I'm a math major, I'm acutely aware (and tickled by) of the mathematics of combinatorial scheduling and I understand that, in general, it's an immensely difficult problem.

Speaking of the math of scheduling, I'm currently tackling with an interesting problem myself: given a particular schedule, is it possible to insert a non-zero number of break days without impinging on existing series and, if so, how many? I've mostly been messing with this by trial-and-error, but it's interesting because for some schedule permutations, there are multiple solutions (e.g. for a schedule where each team plays 18 games against all other teams in the division, plus 12 games each against three non-division teams and another 9 games against six non-division teams for a total of 126 divisional games and 90 subleague games, I can add 12, 18, or 24 break days without impinging on a series) and others have no solutions, at least for break day counts between 10 and 25.

Once again, this is a fantastic mod, and I'm really enjoying just playing around with it!
ProXy is offline   Reply With Quote
Old 10-11-2020, 09:46 PM   #276
bwburke94
Hall Of Famer
 
bwburke94's Avatar
 
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,507
Quote:
Originally Posted by ProXy View Post
For example, it would be nice if we could have multiple preferred series lengths so that I could, for example, have 17 games per intra-divisional matchup (two 4's and three 3's) whereas I think under the current system, it would be three 4's and one 5 or perhaps worse, four 4's and a random extra game somewhere.
That's the trick. Because all days with a specific matchup are identical to all other such days (except in certain odd-number-of-teams cases), the "extra game" can manually be rescheduled to be played as part of one of the existing series.


Of course, this does mean your schedule can't depend on days of the week, because the extra day will knock it out of sync.
bwburke94 is offline   Reply With Quote
Old 10-12-2020, 12:53 AM   #277
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
Quote:
Originally Posted by ProXy View Post
That helps a little more, yeah. It also probably explains why it fails to match divisions for all of the combinations I've tried so far, as my league is one subleague with nine divisions of eight teams each (so SL1D1T8D2T8...D8T8D9T8, which I've shortened because it's quite long lol), so I don't have an even number of divisions.

Yup, that'll do it. Odd numbers of divisions per subleague are a real bear to handle—very few of the ways I'm cheating the difficulty of the problem end up working out well.


I do have one idea that may make it feasible to extend the double round robin scheduler to the odd-division-count case. Right now, the rotation is team-major, division-minor: teams in each pair of divisions in the round robin setup rotate, then the divisions rotate. In the odd-divisions case, this means that the division not currently paired with another gets a long series of off days on subleague-play days while the paired divisions finish their rotation.


The obvious solution is to add a switch to flip the order of rotation—division-major, team-minor. The off division switches every subleague day, so the byes are spread around more evenly. The difficulty (although it's not a serious difficulty, thinking about it as I write this) is that I have to keep track of every division pairing instead of just the current one, so I can keep track of the state of each pair's team rotation.


(Note to self: the solution is to save each pair's actual state indexed by each pair, and I don't have to generate them ahead of time, either—rotate the teams into a temporary pair object, look up the actual pair object by the pair.)



Quote:

My only other comments are things that I was hoping to be able to achieve but I think are impossible given the difficulty of implementation. For example, it would be nice if we could have multiple preferred series lengths so that I could, for example, have 17 games per intra-divisional matchup (two 4's and three 3's) whereas I think under the current system, it would be three 4's and one 5 or perhaps worse, four 4's and a random extra game somewhere.

I think this one might not be too hard at all, provided entering a list of all series (by length) to be played is an acceptable burden on the schedule author.


There may be some confounding factors there with odd team counts/bye days, however—I'd have to dig into it a bit, and I think I'm more likely to take a run at the double round robin scheduler upgrade first. For pools of odd size, I think the restriction would have to be that each length of series in the list has to occur enough times so that each team can have a bye series of each length.



Quote:

Other thoughts I had that would be cool things to have are things that would literally be impossible unless the OOTP devs took up your code somehow and implemented it into the game I think. Like, I had an idea when formulating my league that I wanted most subleague pools to put all teams with similar W/L records or similar rankings in their division together in an attempt to try to balance the schedule difficulties, but I don't think this mod could ever even consider schedule difficulty unless it had OOTP data to feed from.

If I'm not mistaken, OOTP randomizes which team gets which team number from a schedule file, so there would be some work required on the OOTP end before there's the chance to do pool selection based on inputs. It would be nifty, though!



Quote:

Despite my crazy ideas though, this is a great mod that works wonders for what I'm doing, so I'm satisfied, but if you're ever thinking of expanding the scope of what's possible with the mod, I think having more granular control over series lengths (or maybe something even more general than that, like maybe a thing where you could input what your desired matchups would be for a single team and then it tries to match that as best as possible?) would be an interesting place to start. I don't know how hard that would be to code, but as I'm a math major, I'm acutely aware (and tickled by) of the mathematics of combinatorial scheduling and I understand that, in general, it's an immensely difficult problem.

Speaking of the math of scheduling, I'm currently tackling with an interesting problem myself: given a particular schedule, is it possible to insert a non-zero number of break days without impinging on existing series and, if so, how many? I've mostly been messing with this by trial-and-error, but it's interesting because for some schedule permutations, there are multiple solutions (e.g. for a schedule where each team plays 18 games against all other teams in the division, plus 12 games each against three non-division teams and another 9 games against six non-division teams for a total of 126 divisional games and 90 subleague games, I can add 12, 18, or 24 break days without impinging on a series) and others have no solutions, at least for break day counts between 10 and 25.

Once again, this is a fantastic mod, and I'm really enjoying just playing around with it!

I appreciate the kind words! Alas, despite my computer science degree I was never very much good at the math beyond logic, and by making the scheduler operate on the basis of arranging blocks of series first and fitting matchups in in a second step, I managed to dodge a lot of the combinatorial complexity of the problem.


One of these days, I'd love to make a full-on constraint-based solver that can handle an NFL-type schedule, where some teams may be playing divisional games, some teams subleague games, and some teams interleague games, but I haven't yet found a treatment of the issue that's approachable enough to make that a possibility, and the computational complexity may mean that it's not really feasible for large leagues anyway. (That is, unless people want to leave their computers running for a day or two to crunch the numbers.)
Fishbreath is offline   Reply With Quote
Old 10-12-2020, 07:55 AM   #278
ProXy
Minors (Rookie Ball)
 
Join Date: May 2017
Posts: 34
Quote:
Originally Posted by bwburke94 View Post
That's the trick. Because all days with a specific matchup are identical to all other such days (except in certain odd-number-of-teams cases), the "extra game" can manually be rescheduled to be played as part of one of the existing series.


Of course, this does mean your schedule can't depend on days of the week, because the extra day will knock it out of sync.
Hmm, that's an interesting idea. Is there a way to at least semi-automate those manual reschedulings, though? For a league that's only maybe two dozen teams or so, that doesn't seem too crazy to do, but for my 72-team league, that could be more manual work than is realistically feasible (at least, for my level of patience lol).

Although, you gave me an interesting idea with regards sort of bootlegging a "multiple series lengths preferred" kind of schedule. For example, I've found a few schedule configurations that are compatible with a series length preferred of 7. If it were possible (and I'm not sure how exactly I'd do this, maybe regex? maybe some sort of other XML trickery?) to, say, take three of those seven games and flip them from Away to Home or vice versa, you could turn a series of 7 into a series of 3 and 4. Of course, this isn't the most realistic option because I can't imagine teams would be very happy with so many away and home games on consecutive days, but then again, my league has 72 teams in it, so I never really cared for realism that much lol.
ProXy is offline   Reply With Quote
Old 10-12-2020, 11:55 AM   #279
mitchkenn
Hall Of Famer
 
mitchkenn's Avatar
 
Join Date: Jan 2015
Location: Oregon, not by design
Posts: 2,872
looks amazing and finally got to try it out (after realizing my Win 10 comp didn't have Java) - - onto more reading and getting time to scribble some notes on structures before it will make sense to this old man.... thanks for the program and hopefully i'll figure it out eventually.
__________________
"This is my opening farewell " - Jackson Browne
“They make a desolation and call it peace.” ― Agha Shahid Ali
"Maybe she just has to sing, for the sake of the song - And who do I think that I am to decide that she's wrong." - Townes Van Zandt
"I saw a young man leaning on his wooden crutch - He called out to me, 'Don't ask for so much' And a young woman leaning in her darkened door She cried out to me, 'Why not ask for more?' " - Leonard Cohen
"Hello darkness, my old Friend ...." - Paul Simon
Before Mays, before DiMaggio, there was Oscar Charleston.
"All the lies about Babe Ruth are true." - Waite Hoyt

Avatar is the late great Townes Van Zandt. rip.

Last edited by mitchkenn; 10-12-2020 at 06:45 PM. Reason: add info
mitchkenn is offline   Reply With Quote
Old 10-13-2020, 10:31 PM   #280
Fishbreath
Minors (Double A)
 
Fishbreath's Avatar
 
Join Date: Oct 2015
Posts: 145
Let me know if you need a hand! I should do a few worked examples one of these days—the documentation is not the clearest, granted.
Fishbreath is offline   Reply With Quote
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 01:29 PM.

 

Major League and Minor League Baseball trademarks and copyrights are used with permission of Major League Baseball. Visit MLB.com and MiLB.com.

Officially Licensed Product – MLB Players, Inc.

Out of the Park Baseball is a registered trademark of Out of the Park Developments GmbH & Co. KG

Google Play is a trademark of Google Inc.

Apple, iPhone, iPod touch and iPad are trademarks of Apple Inc., registered in the U.S. and other countries.

COPYRIGHT © 2023 OUT OF THE PARK DEVELOPMENTS. ALL RIGHTS RESERVED.

 

Powered by vBulletin® Version 3.8.10
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Copyright © 2024 Out of the Park Developments