OOTP Developments Forums

OOTP Developments Forums (https://forums.ootpdevelopments.com//index.php)
-   OOTP Mods - Rosters, Photos, and Quick-Starts (https://forums.ootpdevelopments.com//forumdisplay.php?f=3638)
-   -   A playable NCAA DI baseball quickstart (https://forums.ootpdevelopments.com//showthread.php?t=298558)

DustyElbows 02-09-2019 12:45 PM

A playable NCAA DI baseball quickstart
 
This quickstart has a complete college baseball (Division I) universe with 70 or so years of history simulated. This quickstart is meant to stand alone for those of us who love college baseball, and it is not suitable as a feeder league (as far as I am aware, at least).

https://www.mediafire.com/file/dm046...ick_2.zip/file

All 352 Division I schools are represented in the game, including those without baseball programs in real life. History has been played out so that top real-life programs are also top programs in this simulation. Teams play 60 game schedules, with 42 games within conference and 18 games out of conference against other teams from their geographical region.

There are a few parts of this game where I use the software package R to help with some of the processes. These are:
1) Each conference has a "draft" every offseason. To simulate how college recruiting works, I created R code to award top draft picks to successful programs. (This is extremely difficult to do manually).
2) For the NCAA tournament, I created R code that serves as the "selection committee" and seeds the 64 participants. (You could do this manually fairly easily).

If you are interested in using my code for these parts of the game, please send me a personal message and I'll get you started. Please be forewarned that using this code could be challenging for those who are not particularly computer-literate :)

Other things that I do manually each season:
1) In early February, delete the old tournament schedules and replace them with the current ones.
2) On November 4th, delete all players age 22 or above.

Please let me know if you're using the quickstart and have any questions about how best to run things. This is what you might call a "high-maintenance" quickstart, but it's been a labor of love for me. Enjoy!

bradleycchurch 02-09-2019 09:59 PM

Cant wait to try it! This looks awesome. Thanks for sharing.

Can you please explain in a little more detail how you..

1) Delete the old tournament schedule and replace them with the current ones..
2) On November 4th, delete all players age 22 or above.

AS in, how do you do that with this game? Where do you go?

DustyElbows 02-12-2019 12:47 PM

4 Attachment(s)
Decided to post my response some of Bradley's PM'ed questions here - this is the entire process.

Hi Bradley - sorry for the tardiness of my response. These instructions are long but I hope you'll be able to do everything and enjoy the QS. When I was simulating through these seasons to make the league history, it usually took me about an hour to do all of these steps. So you'll have about an hour of work per each season of your team. Hopefully it's worth it :)

First, I've attached a few files. Create a folder on your computer called "NCAA OOTP 18". Put "Selection Factors.csv" inside this folder. Inside this folder, create a sub-folder called "Draft". Put "draft values.csv" and "draftorder2018.csv" inside this folder. Inside the "NCAA OOTP 18" folder, create another sub-folder called "SelectionResults". Put "skeleton2018.csv" inside this folder.

I can't attach R code on the forums, so the code is here: http://www.mediafire.com/folder/vfbz...rzqdacr/shared

1) On February 1st, we need to clear and re-load the "tournament" or (out-of-conference) schedules. For each of the 5 regions (Atlantic, Midwest, South, West, and Northeast), go to League Settings --> Options --> Edit League Schedule. Then clear the schedule and import the new one. You can search for the new schedule using the key word "Atlantic" for the Atlantic region, etc.


2) To use the code, you'll first need to download the software package RStudio. It's totally free and widely used in academic statistics settings. Here's the link:

https://www.rstudio.com/products/rst...load/#download

After you get that set up, you'll use three code "scripts" that I have written.

3) Once all of the conference tournaments are finished, it's time to use the StandingsImport.R code to get the conference standings into a usable format. Do this the very next day after conference tourneys end. To export the stats from the game, go to League Settings --> Functions and click "Export Player Stats". That will take a minute or two, because the file is large. Once the process is complete, the game should give you the file path where it saved the stats on your computer. Copy this file path and paste it into line 5 of StandingsImport.R in place of my file path.

4) Run StandingsImport.R by highlighting the entire code file and hitting the "Run" button in RStudio. This will create a file called "selectionresults2018.csv"

5) Open up that file. We need to manually enter tiebreaker info because OOTP doesn't export that data manually. To do this, go through each conference's standings. If two teams have the same number of wins (and are in the same division, for conferences with divisions), then we need to break the tie. Note which team is displayed higher in OOTP's standings and put "0.1" in the tiebreaker column of selectionresults2018.csv for that team. In the case of a 3+ team tie, give the top team 0.2 and the second team 0.1, etc etc. Save the CSV file when you're done.

6) Now we're ready to use "selectioncommittee.R". Run this code. In the "Environment" section of RStudio, you should see an object called "qualifiers". This gives you the order in which you can enter the NCAA tournament teams. Go to the custom playoff page in OOTP (League Settings --> Options --> Customize Playoffs) and enter in the teams in that order. Now you're set for the tournament!

7) On September 5th, it's time to set the draft order for each conference. Open the R code "DraftOrdererForForums.R". Update the current year on line 5 and paste that same file path from step 2 into line 81. Then run the code. This creates draft order files that OOTP can read.

8) Now, we have to read these in to OOTP. Frustratingly, OOTP can't read them all in at the same time because it can only read in draft files that are called "draft.csv". So, here's what we do. Open up the folder that contains your OTP draft files. On your computer, this is within the OOTP saved game folder for your game, in the "import_export" folder. For one conference, change the file name of it's draft file to "draft.csv". Then, in OOTP, go to Transactions --> Draft Order --> Import/Export --> Import Draft Order for that conference. Then delete that file from the folder and do the whole process for the next conference. Yes, this process is very tedious, hopefully the developers make this easier at some point.

9) On November 4th (day before draft day), it's time to delete the graduating seniors. Go to Transactions --> Find A Player --> [Conference Name] Player List. Set up a filter for players 22 and older. Then delete all of these players. You'll have to do this separately for every conference too.

In all likelihood, I have forgotten something. I apologize in advance. I realize these are a lot of instructions, but hopefully it will work for you!

Ty Cobb 02-13-2019 08:05 PM

Just curious...will this R code run on Mac?

DustyElbows 02-13-2019 11:25 PM

Yes, I run RStudio on Mac. You should be able to download it on most, if not practically all, OS's.

UIHuskie 02-13-2019 11:37 PM

I think I'm missing something with the schedules, I deleted the old schedules on February 1 but I can't seem to find new ones to import. Are they in the Schedules folder? I looked there and can't find them.

DustyElbows 02-14-2019 11:53 AM

It's possible that those weren't included in the quickstart because they're not current schedules. At any rate, here's a link to a zip file containing non-conference schedules up to 2050:

http://www.mediafire.com/file/p420cd...dules.zip/file

Just unzip this file in your Schedules folder and you should be ready to go!

UIHuskie 02-14-2019 07:17 PM

That loaded the regional schedules but there aren't any conference games on the schedule; will those automatically be created or did I screw something up? Thanks for your help on this, I'm excited to try it out!

DustyElbows 02-14-2019 09:03 PM

The conference schedules and non-conference (region or tournament in-game) are separate. If you erased the conference schedule on accident, make sure to re-load it during the conference's pre-season.

If you are in pre-season for the non-conference, but pre-season for the conference hasn't started yet, then I think it's possible that the game just wouldn't display the conference schedule yet. Not entirely sure about this though.

UIHuskie 02-14-2019 09:10 PM

That's what it was, pre-season for conference hadn't started yet. Once I got to the pre-season start date, the conference games were loaded into the schedule. All set to go now, thanks again.

MorrisButtermaker 04-21-2019 02:37 PM

Question About How Far You Go Back and if a Team is included
 
Do I understand your post to mean that you go back to 1949? Do you include the Queens College baseball team from 1952 to 1956? Thanks.

Insomniac 05-03-2019 03:28 PM

So I am giving this QS a try to see what we get. I have a question on this step in the process:

Quote:

5) Open up that file. We need to manually enter tiebreaker info because OOTP doesn't export that data manually. To do this, go through each conference's standings. If two teams have the same number of wins (and are in the same division, for conferences with divisions), then we need to break the tie. Note which team is displayed higher in OOTP's standings and put "0.1" in the tiebreaker column of selectionresults2018.csv for that team. In the case of a 3+ team tie, give the top team 0.2 and the second team 0.1, etc etc. Save the CSV file when you're done.
When you say wins, are you talking about conference wins or overall wins? I'm guessing as long as I am consistent in how I do it, it shouldn't be an issue, but...

DustyElbows 05-03-2019 04:08 PM

Quote:

Originally Posted by MorrisButtermaker (Post 4477938)
Do I understand your post to mean that you go back to 1949? Do you include the Queens College baseball team from 1952 to 1956? Thanks.

Unfortunately, no. I thought about trying to change teams and conferences as they changed in real-life, but that would've massively increased the amount of work to be done. Perhaps next year.

Quote:

Originally Posted by Insomniac (Post 4483387)
So I am giving this QS a try to see what we get. I have a question on this step in the process:



When you say wins, are you talking about conference wins or overall wins? I'm guessing as long as I am consistent in how I do it, it shouldn't be an issue, but...

Conference wins! These should be the wins that show up on the conference standings page.

cheo25 05-11-2019 10:58 AM

Is this for OOTP 19? I tried to load it in OOTP X, and the Create Game button was grayed out. The Decscription of the selected Quickstart Game said the following:

"This quickstart game must be loaded from our server before you can use it. Please open the Add-Ons Central in the game menu, locate the quickstart game in the files list, then download it and install it."

Insomniac 05-24-2019 04:10 PM

Okay, finally got back to this to give it another try. I was able to work through the R code for the StandingsImport file. But I am getting errors on the SelectionCommittee code. Here are my results, with file paths removed:

> current <- 2018
>
> setwd("/Documents/Out of the Park Developments/NCAA QS Files/")
> library(dplyr)
>
> results <- read.csv(paste0("SelectionResults/selectionresults", current, ".csv"))
> #results <- results[,-1]
> #results$Tourney[is.na(results$Tourney)] <- 0
> results$tiebreaker[is.na(results$tiebreaker)] <- 0
> factors <- read.csv("Selection Factors.csv")
> factors <- factors[c(1:32),]
>
> # Upgrade / downgrade conferences by how well they played in non-conference
> obs <- tapply(results$ncwins, results$conf, FUN=sum) / (summary(results$conf)*18)
> sos <- c(.176,.122,.256,.127,.311,.16,.082,.263,.212,.189 ,.208,.284,.088,
+ .207,.126,.133,.233,.338,.198,.186,.132,.311,.155, .135,.222,.25,
+ .278,.244,.26,.301,.239,.244)
> SECpct <- obs * sos / (1 - obs - sos + 2 * obs * sos)
> baseline <- c(.481,.075,.412,.113,.163,.431,.313,.075,.150,.34 4,.334,.331,
+ .294,.094,.094,.075,.113,.088,.288,.313,.075,.113, .425,.094,
+ .5,.275,.294,.075,.325,.125,.125,.144)
> adjustment <- SECpct / baseline
> for (i in 1:length(adjustment)) {
+ if (adjustment[i] > 1.05) adjustment[i] <- 1.05
+ if (adjustment[i] < .95) adjustment[i] <- .95
+ }
> factors$x_0 <- factors$x_0 / (adjustment*.3 + .7*1)
>
> results.m <- merge(results, factors, by="conf")
Error in fix.by(by.y, y) : 'by' must specify a uniquely valid column
>

There are more errors that follow, but they are all keyed by this one and the resulting lack of a results.m value.

Any ideas on what I might be doing wrong?

potsey7 05-26-2019 01:54 AM

Is there a way to either delete the existing schedule or keep the game from scheduling games once I enter conference season? I want to set up my own schedule for everyone, but I can't keep it from creating a schedule on its own And when I try to delete the schedule or load a new schedule in League Settings I'm unable to. Otherwise I love the potential for this Quickstart

rugadillo 11-19-2020 12:07 PM

Really fantastic work with this. I'm using it with XX and it works wonderfully. I really appreciate all the time you put in.

I'm working on a full port for XX.

Also, I'm working on a GUI for your selection process and draft order using the business logic from your R code. I'll probably write it in Angular and create an Electron program for users to run locally. Do you have any problem with me using your work?

If not, and anyone is interested in contributing, I'll post the Github repo once I'm up and running.

rugadillo 11-19-2020 12:10 PM

One of the disappointing things about the stat export is that there is no good way other than dumping the DB to do a full ratings system...What I would like to do is have full results data so that I can write an RPI program.

I suppose that I could parse all of the schedule files used and just use straight winning %. That's just a lot of overhead and it gives me a headache just thinking about it.

dmacgreg37 12-15-2020 07:58 PM

Either to the OP, or to others who have used this - I notice the modifiers are quite drastically different. Did you find they all play relatively similar? I'm looking at doing an NCAA league, but only 8 regional "conferences" for a total of 96 teams. I want them all to use the same modifiers. Any that you guys found to be best?

Sabres2000 12-22-2020 05:52 AM

So I have a general question... if I download ur QuickStart... if I create my league in the quick start... u said that u manually make the 22 year olds each year.... they get drafted by mlb teams correct.... so the ones that don’t get drafted I can put as ufas as well. I also can change the player nationality so that more of a country gets generated right? Also how are players assigned to this year?


All times are GMT -4. The time now is 02:56 PM.

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