Posts tagged "Real Players"
Create leagues from a mix of teams - random teams, real current/historical teams, and teams from your existing leagues
Recently I added an exhibition game feature that lets you play a game between two teams from any season in any of your leagues. In BBGM you can also pick any real teams, current or historical. This was a pretty exciting feature because it was the first time there was any type of cross-league play. But you can imagine a lot of other things involving multiple leagues that might be fun.
So here's another one: when creating a new random/custom league, you can now include and current/historical teams from any of your leagues, including real teams in BBGM! Try it out by clicking the "Customize" button next to the team selector when creating a new random or custom league.
In last week's blog post about historical stats, I mentioned a few things that were missing. Today a couple of those are fixed.
Contract history for all players is now included in real players leagues. There are a couple caveats. It only goes back to 1985, because that's all the data I have. And the contracts are "BBGM-ified" - adjacent years are merged together to all be exactly the same amount, because BBGM does not support contracts that change over time. I'm not sure if this is actually a good idea... it is needed for the current contract, due to the aforementioned limitation in BBGM, but in theory I could instead import contract history that changes overtime.
Retired jersey numbers are also now included, at least for franchises with retired jersey numbers. The caveat here is that it's only retired jerseys for actual players. Some teams have retired jersey numbers for other people like coaches and announcers, and I could add those too. It's just that I don't have data on when those retirements happened. So for instance, if you start a league in 2000, I need to include only retired jerseys from up to 2000. For players I can do that by looking at when they retired. But I don't have that data for non-players, and I didn't want to go through and try to manually figure it out.
Despite the caveats, I hope these new features make real players mode even more immersive than it already is :)
It's almost a year since real players were added to Basketball GM. Today there is another big improvement to this feature: historical stats.
When starting a new realy players league, there is a new Historical Stats setting:
The default on PCs is All seasons, active and Hall of Fame players only. That means you'll see the full career stats up to the current season for all active players, and the Hall of Fame will be fully populated as well.
The default on mobile is None which is the same as it used to be. This is just because loading the stats uses a fair amount of bandwidth and disk space, so I'm wary of making it the default on mobile.
But the really cool option is All seasons, teams, and players. That gives you the full league history back to 1947, including:
The "real player development determinism" (RPDD) setting has existed for a little while now, but it behaves somewhat unintuitively. You may have noticed that if you set it to anything above about 30%, the results feel about the same. That's weird. 30% should not be almost exactly the same as 100%.
Why does it work that way? Because of the stupid way I implemented it. The initial implementation worked like this, to find the new ratings for every player in a new season:
- Run the normal player development algorithm
- Combine that with the player's real ratings for the new season - RPDD% comes from the real ratings, and (1-RPDD)% comes from normal player development.
That may sound okay at first glance, but the problem is that every single year you're averaging a player's real ratings into the random ratings, and their real ratings tend to be correlated pretty well across years, so the real ratings will come to dominate the random ratings.
That's no fun.
In Real Players leagues, player ratings are based on player stats. It's not perfect, but it works fairly well.
Setting ratings for draft prospects is a more controversial topic, because there's no perfect way to do it. With hindsight, we know some top picks were busts and some late picks were stars. How should those players be rated as draft prospects? Should the future star be rated high like we know he eventually became, or low like he was percieved at the draft?
Previously, BBGM did real draft prospect ratings based on rookie season stats, which in practice usually turns out to be a compromise between those two extremes. Overall I'm pretty happy with that as the default, but I recognize that there is no one true way to set draft prospect ratings, it really comes down to personal preference.
That's why today I added an option for this when creating a new Real Players league. From the league creation screen you can find it under "More options".
Start real players leagues at different times (preseason, playoffs, draft, after draft) in any season
Portland fans, have you ever wondered what would happen if this draft went differently?
Dallas fans, have you ever wished for another shot at these playoffs?
One of the fun things you can do in Basketball GM is re-run historical situations. But the ones above were tricky to do, because although you could create a league with real rosters from 1984 or 2007, you could only start at the beginning of the season. Play the whole season again and maybe Portland doesn't wind up with the #2 pick, or maybe Dallas doesn't play Golden State in the first round.
That's why today I'm releasing a new feature. In addition to being able to start each historical season in the preseason, you can also start at the beginning of the playoffs, the draft, or after the draft:
This is also true for the current season, so you can create leagues starting today, right before the 2020 draft.
Go give it a try now, or read on for more details.
A bunch of new options for league creation: challenge modes (no draft picks, no free agents, no trades, no visible ratings), player development realism, and more
Today I added a bunch of fun new features to Basketball GM and Football GM. They're all available when you create a new league, by clicking the "More options" link at the bottom.
Different types of leagues will have different options available. This is what you see when creating a new "real players" league in Basketball GM, which has almost all of the new options available:
Some of those options (challenge modes and real player development determinism) are also available in God Mode, where you can change them in any existing league.
What exactly do all of these new options do?
Last month when I added real historical rosters, I didn't go all the way back to the beginning of the league in 1947, I stopped in 1956. Why 1956? Because that's the first year where all the teams remain active until today. Prior to 1956, it was common for new teams to join the league and existing teams to fold. I did not have a good way to support contraction of teams in Basketball GM, because many parts of the code assumed that all teams were active.
Today that has changed. Basketball GM now supports "inactive" teams, which means it can simulate contraction like occurred prior to 1956. I have extended real rosters back to 1947 and added pre-programmed contraction and expansion for those crazy early years.
Now that Basketball GM has real rosters back to 1956, it's possible to make all kinds of fun fictional rosters using real players. Today I am releasing "Legends" mode, which lets you create a league where each team is filled with the best players from that franchise.
You can either start an "All Time" legends league using all players, or pick a decade to be restricted to teams and players from that decade. Give it a try or read on for more details about how the rosters are generated.
Update 2020-05-11: This is no longer in beta, you can play it on the main site.
A couple weeks ago I released real players in Basketball GM back to 2005. Why 2005? Because any time before that needs to deal with expansion teams, and I wanted to have a good way of handling that. Additionally, beyond the number of teams, there are many other things that have changed over time - team relocations, changes in style of play, various rule changes - I wanted to have decent ways of handling all those things.
Today I do. At least in a beta.
Start in any season back to 1956. Players, teams, rosters, and contracts are generated from real data. Draft classes are included up to today.
Watch your league evolve over time. There were only 8 teams in 1956, playing a very different brand of basketball than today. Live through expansion drafts, league rule changes, team relocations, economic growth, and changes in style of play.
Every league is different. Draft prospects always start the same, but they have different career arcs in every league. See busts meet their potentials, see injury-shortened careers play out in full, and see new combinations of players lead to dynasties.
These rosters include players, teams, awards, relatives, contracts, and future draft classes.
It is not perfectly realistic. Some of that is simply because it's new. Please give me feedback and I will improve the rosters. But some of it is because Basketball GM is not a perfect simulation of reality, so it cannot 100% accurately represent the real world. I'm trying my best to strike a balance between simplicity and realism, but there is always room for improvement!
Basketball GM has always been made up of randomly generated players on fake teams. Real teams and players were only available as unofficial third-party custom rosters. A lot of people have done great work there, especially alexnoob and nicidob. But it's still not the same as having real rosters integrated into the game itself.
Today, I'm releasing a new version of Basketball GM that, for the first time, includes real players built-in. Just pick whichever option you want when creating a new league: