Comprehensive Simulated Stats Mechanics Guide

Talk about NBA 2K12 here.

Comprehensive Simulated Stats Mechanics Guide

Postby townknave on Mon Jan 16, 2012 11:52 am

I originally posted this at operationsports.com and was banned for being critical of 2k's development staff on these issues. Hopefully people here will be more appreciative of civil, constructive criticism.


THIS GUIDE PERTAINS ONLY TO SIMULATED GAMES IN "SEASON" AND "ASSOCIATION" MODE

I. INTRODUCTION

I warn you this will be ridiculously long and detailed. If you are not a hardcore stat monkey, probably don't bother. If you think the gameplay trumps all and don't care if your roster produces accurate simulated stats, definitely don't bother. Otherwise, read on.

Upon getting 2k12 one of the first things I did was simulate a season with the latest official 2k roster to see how the game predicted the NBA season would unfold. When I checked out the stats at the end I was appalled. Some things jumped out, like Chris Paul/Deron Williams under 7 APG, and Kevin Love under 10 RPG, and Dwight Howard often under 2 BPG. Others were subtler- like the FTA's way too high for all teams, the FG% too low, 3pt% too high, mediocre steals guys putting up 2.4 SPG seasons- almost every stat category was off significantly. I asked on the forums if anyone knew how to fix the APG issue at least, and got only misinformation and cryptic non-responses. I examined the ratings in 2k's roster and compared them to some actual NBA stats, and concluded that the horrendous condition of the roster is the reason for the ridiculously unrealistic stats. So I set out to figure out what exactly the simulated stats uses from the roster so that we can derive a method for creating the "hard ratings" (the ones that determine statistical output). Examples of these would be shot ratings, Block/Steal, Rebounding, and the like.

I think getting simulated stats is vitally important for a roster maker because that is your true test. The in-game experience can always be tuned with sliders, but simulated games have no such luxury. A lot of roster makers go wrong in that they'll come up with a nice scale for a rating, but they neglect to consider how the game engine actually APPLIES the rating. For example you could look at the fact that NBA players generally shoot around 45%-75% on FG attempts at the basket and conclude that Shot Inside ratings should be at the minimum for 45% shooters and at 99 for those 75% guys. And after you laboriously applied your ratings to the whole league you'd notice that everyone's FG% is way too low. This is because in 2k's stat engine the maximum Shot Inside rating gives a player around 60% inside FG%- a number that in the NBA would actually be a bit below average. Another example of failing to keep in mind how ratings apply to the game would be roster makers who factor volume of makes into a player's rating for, say, 3pt Shot. Beyond requiring a minimum number of makes to establish sufficient grounds to hand out a rating, a roster maker should NOT give more points to higher volume shooters. This is because in the simulated stats engine, unlike in the real NBA, taking a greater volume of shot attempts does not lower the player's efficiency. An NBA 2k player will shoot just as high a percentage with a 3pt Tendency of 100 as with a 3pt Tendency of 10, so he shouldn't get a higher rating just for having a lot of makes. Sadly, whoever rates players for 2k is too stupid to realize this, which explains why most player's 3pt ratings are a couple points too high and a simulated season with official rosters will have 3pt% too high for the whole league.

Observing 2k's default ratings is especially frustrated because some players are actually rated fairly accurately. The main problem is that they are lazy. They only seem to rate a give player once, and then basically make band-aid edits or arbitrarily raise a few ratings if the player improves or declines. Shot ratings, it seems, do get redone every year. Most ratings, however, are ignored, and when ratings do get changed they are often raised and almost never reduced. This leads to most players being overrated in most "hard ratings." Another source of stupidity from 2k is that they listen to the fans. The problem with that is they don't listen to intelligent fans with reasoned, stat based arguments. They listen to volume of complaints from casual fans about "HURRR KOBE'S MED RATING TOOO LOOOWWW." So that leads to a lot of pressure for them to have high overall ratings for players. When 2k's overall rating algorithm doesn't produce a nice enough rating for a player like say, Dirk (because it's dumb and doesn't think shooting matters for big men), 2k feels a lot of pressure to overrate him in stuff like rebounds and steals.


II. WHAT AFFECTS SIMULATED GAMES

These ratings and ONLY these ratings affect simulated games. Any other ones, even ones that seem like they'd be really relevant, have no effect at all. If you want to claim otherwise please do some testing to back it up.

RATINGS

Shot Inside: Controls a player's FG% at the rim. Shot In Traffic, Layup, Dunk, Standing Dunk, abilities all have no effect at all as far as I can tell. Best stat to use is Hoopdata's At Rim FG%.

Shot Close: Controls a player's FG% from about 5 to 15 feet. Best data to use is to combine totals from Hoopdata's 3-9 Feet FG% and 10-15 Feet FG% and use that percentage.

Shot Medium: Controls a player's FG% from 16 to about 23 feet. Best stat to use is Hoopdata's 16-23 Feet FG%.

Shot 3Point: Controls a player's 3FG%. Should NOT be adjusted for shot volume as is commmonly done.

Free Throw: Self explanatory and the only one of these ratings 2k gets right.

Pass: Affects assists, along with Shot Tendency, Offense Awareness, and various other stuff. More fully explained in section IV. Best stat to use appears to AST% from Basketball Reference. (other AST% stats, included 2k's in-game one, are computed differently).

Block: Affects block rate. Best stat is BLK%.

Steal. Affects steal rate. Best stat is STL%.

On-Ball Defense/Post Defense/Defense Awareness: Probably affects how good your team is on defense. Definitely affects what players are considered for defensive awards.

Offense Rebound/Defense Rebound: Affects the distribution of rebounds within a team. Best stat to use os OffReb% and DefReb%.

Offense Awareness: Appears to affect turnovers, assists, and how easy it is for teammates to get assists to the player.

Stamina: Affects how many minutes the player is able to play (assuming he's assigned them in rotations).

TENDENCIES

Shot Tendency: Controls how many possessions a player uses. Corresponds directly to Usage%.

Shot Location Tendencies: These are directly proportional to the amount a player's shots that will come from each location. For example, the percentage of a player's shots that are threes is given by the player's 3 point tendency divided by the sum of all his shot location tendencies. Best stat to use is Hoopdata's attempts per 40 minutes at each shot location. Note that since tendencies are proportional it doesn't matter how high the numbers are, just their proportion to each other.

Draw Foul Tendency: Controls how many FTA a player gets per FGA, combined with shot location tendencies (more FTA are given for inside shots than jump shots). Linear.

Commit Foul Tendency: Controls a player's foul rate. Not fully tested- 0 does lead to some amount of fouls, and more fouls if the team's average foul tendency is low. It appears the engine enforces a minmum on a team's fouls per game.

Durability: Affects a player's chance of getting injured. Not sure how this works, I play with injuries off due to the stupid rotations issue.

COACH PROFILES

Offensive Tempo: Controls team pace (number of possessions per game). Not a large effect.

Some other coach profile settings may have an effect, but I haven't tested the effectively. I'm pretty sure playbooks do NOT affect simulated games.

III. WHAT'S BROKEN IN OFFICIAL 2k ROSTERS

Sadly this section also needs to be long, because 2k puts an unbelievably minimal amount of effort into ratings and tendencies given their large impact on the quality of the product.


MINUTES PER GAME
-Too low for stars and most important starters. Too high for end-of-bench guys. This skews most players' per-game stats as well.
-End-of-bench guys, even with 0 minutes assigned, seem to get into every game for at least 1 minute.

IS IT FIXABLE?: Not really, but it can be worked around by controlling all teams and setting rotations manually. Injuries will mess these up so it's probably best to play with them off if you don't like micromanagement. You really suck for screwing this up, 2k. As for the issue of end-of-bench guys, it can be helped by increasing the Bench Depth slider in Coach Profiles to 100, which bizarrely actually reduces bench depth. Some players have stamina ratings too low for them to play the amount of minutes they played in real life last season, so they should be fixed.


FIELD GOAL PERCENTAGE
-Slightly too low across the board. High FG% big men in real life rarely attain their real FG%. On the other hand Kobe is consistently hitting 50% FG which he never has in real life.

IS IT FIXABLE?: Mostly. The Inside Shot rating does not go high enough, and getting as close to real-life simulated stats as possible will require most of the league to be at 99. Super high FG% big men will usually not hit 60%, but they can usually get pretty close with accurate shot tendencies. Once you have shot location tendencies accurate and FG% from each shot location accurate, resulting FG% will also be highly accurate.


THREE POINT PERCENTAGE
-Too high in general. 40%+ shooters are everywhere. As mentioned above this is because 2k gives shooters "bonus points" for hitting a high shot volume.

IS IT FIXABLE?: Yes, just need accurate ratings.


FREE THROW ATTEMPTS
-Extremely high over the whole league. The lowest team is usually higher than the real NBA's highest. This is part of the reason assists are so low.
-Especially far too high for Anthony Morrow or Shawne Williams types- three point shooters who almost never get to the line in real life will get there many times more often than they should.

IS IT FIXABLE?: Mostly. Super low FTA players in real life will always get about 2x more FTA than they should, but you can get it pretty much perfectly accurate for most players. It might be possible to get everything perfectly accurate- I need to test the Commit Foul tendency further.


FOULS
-About 15% too high.

IS IT FIXABLE: Yes, though I need to do more testing with Commit Foul Tendency.


ASSISTS

-Too low across the entire league.
-Some PGs get too many assists (Kidd, Conley), others get 30-40% fewer than they should.
-A lot of those 2.5-3 assist players get about half as many as they should

IS IT FIXABLE?: Mostly. I've managed to get overall assists closer to the real NBA, and great PGs are pretty close to their real APG, but it still proves very tough to devise a rating scale that results in Malone/Shaq type passers getting their 4-5 APG.


BLOCKS

-Too low for great shot blockers (99 rating seems to produce only about 5.0 BLK%)

IS IT FIXABLE?: No. This is just a limitation to 2k's stat engine. 99 rating should probably mean around 7.5 BLK%. At least everyone under 5.0 will have perfectly accurate block stats.


STEALS

-Too high for most guards and "name" players.

IS IT FIXABLE?: Yes, with accurate ratings.


SHOT TENDENCY

-Too high for stars and too low for role players. Guys like Kidd or Chandler will take about half as many shots as they should.

IS IT FIXABLE?: Yes, I have crafted a formula to get absolutely perfect shot distribution.


REBOUNDS

-Great rebounders get too few rebounds, crappy ones get too many. Kevin Love and Brook Lopez are often less than 1 RPG apart.
-Same issue with Offensive rebounds. Even 25 rated guys will get around 0.7 per 36 minutes.
-Slightly too many defensive rebounds overall.
-Not enough variation in team offensive rebounds.

IS IT FIXABLE?: Mostly. I'm able to get players' total rebounds pretty much perfectly accurate. Offensive rebounds always seem to be skewed a bit too much in favor of low-rated players and that doesn't seem fixable, but it's not too bad. My league leader usually averages around 3.7 (real NBA usually around 4.2-4.5). The issue of slightly too many defensive rebounds is actually a bit of a quirk- it seems every missed shot in simulated gains always generates either an offensive or defensive rebound. In the real NBA this is not the case- every game there are a couple of "team rebounds," like if a ball goes off the rim and out of bounds.
As for the issue of not enough variation in team offensive rebounds, that is unfortunately not fixable. This is because in the 2k simulated stat engine, no team rebounds better than any other team. Every team appears to get around 26% of available offensive rebounds and 74% of available defensive rebounds (which is around the NBA averages). Any variation in team rebound numbers over a season is due purely to the number of available rebound opportunities. You can prove this testing teams with all 99 rebounders and all 25 rebounders over the course of a season. They will get about the same number of offensive and defensive rebounds. The only thing rebound ratings seem to actually affect in simulated games is the distribution of rebounds within a player's team.


IV. HOW TO DERIVE RATINGS THAT LEAD TO THE MOST ACCURATE POSSIBLE SIMULATED STATS

This is the meat of this guide and it's going to be complicated. There is going to be a lot of math and formulas.


SHOOTING PERCENTAGES

For these ratings you will want at least a minimum number of attempts before you are confident enough to hand out a rating from the scale. I use 50 attempts for close shots, 75 for medium, and 100 for 3pt. If you're rating a player according to the '11 season, and he doesn't have enough attempts in that category, add in his numbers for that category from the year before, repeating the process until you have a large enough sample.

ShotInside Rating = 4 * (Inside FG% - 30) / 3 + 60

Scale:
99 59.25%
90 52.5%
80 45.0%
70 37.5%
60 30.0%

Yes, most of the league should have 99. The actual league average corresponds to around a 106 rating. I don't like it any more than you. Blame 2k.

ShotClose Rating = 3 * (Close FG% - 20) / 2 + 50

Scale:
99 52.7%
90 46.7%
80 40.0%
70 33.3%
60 26.7%
50 20.0%

Sample Ratings: (Official 2k Rating on the Right)
85 Howard 72
93 Nowitzki 99
89 James 83
95 Bryant 99
86 Paul 81


These are the least bad of all the shot ratings on 2k's official rosters. The league average (39.1%) corresponds to around a 79 rating.

ShotMedium Rating = 13 * (Medium FG% - 25) / 6 + 35

Scale:
99 54.5%
90 50.3%
80 45.8%
70 41.2%
60 36.5%
50 31.9%
40 27.3%
35 25.0%

Sample Ratings: (Official 2k Rating on the Right)
47 Howard 56
94 Nowitzki 99
78 James 86
63 Bryant 78
78 Paul 81

2k's ratings for this are generally WAY too high, especially for big time scorers like Carmelo Anthony (42% mid range shooter) or Kobe (38%). Overrating players systematically in this category is 2k's way of making sure league FG% is only slightly too low instead of massively too low due to their handling of ShotInside. League average is around a 68 rating, right in the middle of the scale.

Shot3Pt Rating = 3 * 3ptFG% / 2 + 25

Scale:
99 49.3%
85 40.0%
70 30.0%
55 20.0%
40 10.0%

Sample Ratings: (Official 2k Rating on the Right)
30 Howard 25
84 Nowitzki 84
75 James 79
73 Bryant 78
83 Paul 85

Nice and easy. 2k could have got these mostly right if they didn't insist on giving extra points for volume. The league average is fairly high on the scale at around 79. I would argue that no player should have a 25 rating, because in the simulated stats engine that results in a player literally hitting less than 1% of their attempts, even over thousands of tries. Any non-crippled human should have at least a 30 or so rating.

Interestingly, once you know a player's shot ratings and tendencies, you can predict their simulated FG% thus:


Simulated FG% = InsideFG% * InsideTendency / AllTendencies + CloseFG% * CloseTendency / AllTendencies + MediumFG% * MediumTendency / AllTendencies + 3FG% * 3ptTendency / AllTendencies

AllTendencies is the sum of Inside, Close, Medium, and 3pt Tendencies.


SHOT TENDENCY

After MUCH experimentation I've come up with a formula that tracks with Usage% perfectly.

ShotTendency = 2 * (Usage% - 20) + 50

This is vitally important for those role players and bench guys- they hardly get any shots at all with default 2k shot tendency. Take note that Shot Tendency works as what I like to call a cumulative stat. There are only so many shots to go around, so if your team acquires a high shot tendency player to replace a low one, those shots have to come from somewhere, and other players on your team will give up shots- so for example replacing Keith Bogans (low Shot Tendency) with Rip Hamilton (mid-high Shot Tendency) will cause all Bulls starters to shoot a little less than they did last season so that Hamilton can get his share of shots.

Sample Shot Tendency:
64 Howard
66 Nowitzki
73 James
80 Bryant
52 Paul


SHOT LOCATION TENDENCIES

This one's simple. Just plug in the attempts per 40 minutes from the various locations on hoopdata.com. For classic players or those for which you don't have location infos, you're going to have to make an educated guess on the Inside/Close/Medium tendencies. However, make sure that the ratio of 3pt Tendency and the sum of Inside/Close/Medium tendency are the same as the ratio of the player's 3 point attempts and 2 point attempts.


FREE THROW ATTEMPTS

Fouls are an issue I'm still investigating and I've yet to get it perfect. I do know that you CANNOT simply slap a player's FTA number on there and expect good results. That method will screw players like Gallinari who should have 100 draw foul tendency even though they don't get that many FTA because they get to the line a very high % of their scoring attempts. The draw foul tendency controls FTA per FGA attempt, and it affects players differently depending on their shot location tendencies. Basically, for inside shots,

Inside FTA ratio = 0.4 + 0.4 * DrawFoul/100

For close/med shots,

Close/Med FTA ratio = 0.2 + 0.1 * DrawFoul/100

and for 3 pt shots,
3pt FTA ratio = 0.3 + 0.15 * DrawFoul/100

You'll notice that the DrawFoul tendency is much more effective on players who take more inside shots, and must be tailored to each player based on his shot location tendencies. There are a few issues with the engine here though. It assumes jump shots (close/med/threes) all have the same chance of drawing a foul (threes get 50% more FTs because you get 3 FT when fouled on one). Obviously in real life 3 point shots very rarely draw fouls, and close shots draw more fouls. An effect of this is that even on pure jump shooters, a 0 draw foul tendency will lead to a FTA/FGA ratio of about 0.3, which is quite high. It follows that most players should be at 0 draw foul tendency, and they'll still shoot a bit too much FTs. You can get good approximate draw foul ratings thus:

FTA/FGA = (Inside FTA ratio * InsideTendency / AllTendencies) / InsideTendency + (Close FTA ratio * CloseTendency / AllTendencies) / CloseTendency + (Medium FTA ratio * MediumTendency / AllTendencies) / MediumTendency + (3pt FTA ratio * 3ptTendency / AllTendencies) / 3ptTendency

So with your spreadsheet, once you have your shot location tendencies, you can plug in different draw foul tendency numbers and it's usually easy to get close to the player's real FTA/FGA ratio, which can be found on hoopdata.com.

With most role players' draw foul tendency at 0 and others' derived based on their shot location tendencies at my formula, I get highly realistic FTA attempts for important players (though still a bit too many for role players). It may be possible to fix that through the Commit foul slider, but I think i'll just wait until the editor to come out to delve into that because its location at the bottom of the menu will make editing it too tedious even for a NBA nerd like me.

Sample Draw Foul Tendency:
100 Howard
100 Nowitzki
70 James
65 Bryant
100 Paul


BLOCKS

Fairly simple.

BlockRating = 15 * Block% + 25

There will be around a dozen 99's. Accurately representing a player like Manute Bol is sadly not possible, even if you adjust for the easier shot-blocking era in which he played.

Scale:
99 4.93%
85 4.00%
70 3.00%
55 2.00%
40 1.00%
25 0.00%

Sample Ratings: (Official 2k Rating on the Right)
99 Howard 91
45 Nowitzki 65
45 James 61
30 Bryant 37
28 Paul 28


STEALS

Also simple.

StealRating = 20 * Steal% + 25

Scale:
99 3.70%
85 3.00%
70 2.25%
55 1.50%
40 0.75%
25 0.00%

Sample Ratings: (Official 2k Rating on the Right)
63 Howard 63
37 Nowitzki 65
67 James 84
63 Bryant 77
95 Paul 97


REBOUNDS

OffenseReboundRating = 6 * (OffReb% - 2) + 25

Scale:
99 14.3%
85 12.0%
70 9.5%
55 7.0%
40 4.5%
25 2.0%

Sample Ratings: (Official 2k Rating on the Right)
89 Howard 93
27 Nowitzki 60
33 James 44
34 Bryant 40
25 Paul 36

DefenseReboundRaging = 5 * (DefReb% - 4) / 2 + 25

Actual rebounding numbers will depend on minutes played and rebounding ability of teammates. The reason you see Love getting only 10 RPG in the official roster is Beasley and Darko being hugely overrated rebounders.

Scale:
99 34.0%
85 28.0%
70 22.0%
55 16.0%
40 10.0%
25 4.0%

Sample Ratings: (Official 2k Rating on the Right)
92 Howard 96
67 Nowitzki 86
62 James 70
50 Bryant 50
46 Paul 56


ASSISTS

The original inspiration for this enterprise. While most other stats are straightforward, assists are hard to pin down. It is clear that Pass ratingis the primary factor, but far from the only factor. In the stock roster, only Kidd and Rondo can manage 10 APG, while Paul and Williams only get 6 or 7. Initially I thought it was plain broken and I was ready to toss out the game (I'm a sim gamer and Deron Williams/Chris Paul/Steve Nash under 7 APG is a dealbreaker for me). As I learned more and tested more about the game mechanics, I realized that the assist model was possibly only slightly broken, and in fact it was a bit more complex and deep than other aspects of the sim engine. From my testing, the following factors play a role.

-Shot Tendency of teammates (of course I mean teammates that are assigned minutes on the court with the player in rotations). More teammates with high shot tendencies equals more assists. Of course having teammates who are better shooters will increase assists as well. This is part of the problem for Deron Williams- Kris Humphries and Damion James have their shot tendencies too low. The Thunder have it as well as you'll often see Westbrook under 6 APG in the official roster. It's not enough to have one great scorer to pass to- in order to get a lot of assists your PG

-Shot Tendency of the passer. Part of the reason Williams and Paul (and Nash) have far too low assists in the official roster is their shot tendencies being way too high. Likewise, Kidd's shot tendency is far too low even for a pass-first guy like him.

-Offensive Awareness of teammates. This has a smaller effect than Shot Tendency but it's noticeable.

-Offensive Awareness of the passer. This has a smaller effect than Shot Tendency but it's noticeable.

-Pass rating of teammates. That's right, having low Pass rating teammates, especially ones rated 25, seems to greatly impede a player's ability to generate assists. HOWEVER, there appears to be a cap on how many assists a team can generate (I've never seen more than 23/game), so there's a point where higher pass ratings on teammate will cause that teammate to "steal" some of the PG's assists. You can see this effect on the Clippers in the official roster due to Chauncey Billups' ridiculously overrated 82 pass rating. If you sim a season with him as the starting SG next to Paul he'll average around 1 less assist per game.

-Offensive Tempo and Fast Break slider, though not nearly as much as you'd think. I haven't tested this much and have only observed a 3% or so variation in team pace to be caused by these sliders.

Initially I thought it made sense to have Pass rating the same as Block rating, since the numbers have a fairly similar range. However, I found that I got MUCH more realistic assist numbers when I used that scale adjusted upwards 5 points- this seems ensure that there aren't so many of those 25-rated guys making it impossible for good PGs to get enough assists. I wouldn't say I've got star PGs' assist numbers perfect, but it's a vast improvement over official rosters and they're usually within about 10% of their actual value. Team assists are also slightly too low, I'd say about 10% off- this may just be an effect of still having slightly too mant FTA's, since they don't generate assists. Another issue I haven't really been able to resolve is that it's tough for a team with a good PG to also have guys getting 2-3 APG. If Rondo is getting 11 assists it seems everyone else has to get under 2, and if they get realistic amounts Rondo seems to get too few. Getting Blake Griffin and Chris Paul to both match last season's APG totals of 3.8 and 9.8 in a simulated season proves to be very difficult with any consistent scale for Pass rating. Note that you want to use the AST% stat from basketball-reference.com for this, as the AST% stat used by other sites is often calculated differently. It's important to use the right one because it excludes possessions where the PG shoots from the calculation. Using other sites' AST% stat could result in overrating the passing ability of PG's like Kidd who rarely shoot.

PassRating = 3 * Ast% / 2 + 30

Sample Ratings: (Official 2k Rating on the Right)
40 Howard 38
51 Nowitzki 48
82 James 90
70 Bryant 70
99 Paul 94


NOTE FOR CLASSIC ROSTER MAKERS. In any roster aiming for the most accurate possible simulated stats, most of the league ought to have a 99 inside shot rating (anyone with over 59.25% inside FG%). This somewhat simplifies the task of coming up with accurate shot ratings for classic players, as you mostly have to worry about the shot close and medium ratings. What you can do is plug your shot location tendencies, your 99 InsideShot ratingm and your known 3pt rating into the SimulatedFG% formula I stated above. By comparing the output to the player's actual FG% and plugging in different ratings for ShotClose and ShotMedium, you will find that there are several different combinations of ratings you can give that will result in an accurate overall FG%.

So if we're re-rating a player like '86 Larry Bird. Since 2k doesn't do that bad a job on shot location tendencies let's use 2k's default shot location tendencies (84/86/98/31). We plug those into our spreadsheet and give him a 99 in inside shot rating and 88 3pt rating from his .423 3p%. We know he shot .496 from the field that year so we want our expected sim FG% to match that, so we plug in some ratings for Close/Med that get Bird there. There are a number of Close/Med rating "solutions" that get Bird to around .496 expected FG%. For example:

99 Close/70 Med
95 Close/75 Med
90 Close/81 Med
85 Close/87 Med
80 Close/94 Med
75 Close/99 Med

As for choosing which of these ratings is right, you're going to have to rely on whatever knowledge or info you can get on the player. From what I know of Bird I'd say 85 Close/87 Med sounds reasonable. Now, as for shot location tendencies for players 2k hasn't made, you'll have to be more or less on your own- but once you decide what you want the tendencies to be you should be able to come up with highly accurate ratings and sim stats.

For certain stats with classic rosters you should also include some sort of era adjustment. For example, offensive rebounds were significantly easier to come by in decades past. If you check BasketballReference.com you'll see that OffReb% for the league was above 30% in the 90's, while it's around 26% now. You can adjust for this by dividing the current year's percentage by the classic year's percentage and multiplying that number by the stat you're using to derive the rating. Then derive the rating as normal. You may want to do this for blocked shots as well, since a much higher rate of three point attempts in recent years has resulted in blocks being down throughout the league. For 3pt ratings in the years 1995-1998, when the league shortened the 3 point line, you should just reduce everyone's 3pt rating from those years by about 5 points, since the league shot about 3% better on the shortened line and that's about 5 points worth on the 3 point rating scale.

I have made a roster for the PC version that basically follows this guide, editing only the ratings that I've shown here to affect the simulation according to stats from the 2011 season. I haven't added 2nd round rookies and missing players or anything yet (hopefully 2k will get off their asses someday soon) but I must say that with realistic rotation minutes from controlling all 30 teams, the simulated stats have been extremely pleasing so far (while there's a lot of good rosters here, most rosters don't focus on this aspect and the simulated stats I've gotten from them have been a mixed bag). Any PC players interested in the roster, let me know (I know we are few and proud). Once the Roster Editor comes it out should be able to be converted to the more popular formats as well. Here are some sample stats from a quick simmed season just now, compared to the real NBA:

TEAM STATS
Stat: FG% 3P% AST STL BLK TOV PF PTS/G
43.2%-48.6% 31.9%-39.6% 1397-1899 496-655 285-440 1086-1372 1471-1911 90.5-105.3 My Roster
43.0%-48.6% 31.6%-39.7% 1545-1955 458-771 328-502 1063-1398 1554-1865 91.9-107.5 Real NBA '11
42.7%-48.1% 34.2%-40.7% 1127-1669 505-703 219-416 1077-1386 1602-2212 92.0-103.4Official 2k

League Leaders
POINTS PER GAME
Real NBA My Roster Official 2k
27.7 Durant 28.5 28.8
26.7 James 28.5 30.3
25.6 Anthony 23.5 25.0
25.5 Wade 24.6 25.2
25.3 Bryant 27.0 30.4

League Leaders
REBOUNDS PER GAME
Real NBA My Roster Official 2k
15.2 Love 14.1 9.4
14.1 Howard 14.5 12.7
12.2 Randolph 11.4 9.7
12.1 Griffin 12.7 10.7
10.4 Humphries 10.8 9.5

League Leaders
ASSISTS PER GAME
Real NBA My Roster Official 2k
11.4 Nash 9.8 7.7
11.2 Rondo 11.5 10.8
10.3 Williams 9.3 6.9
9.8 Paul 9.5 7.5
8.9 Calderon 9.1 8.0

League Leaders
STEALS PER GAME
Real NBA My Roster Official 2k
2.4 Paul 3.0 2.4
2.2 Rondo 2.9 1.9
2.1 Ellis 2.4 1.5
1.9 Westbrook 2.1 1.9
1.8 Allen 1.5 0.6 (in 1/2 the minutes)

League Leaders
BLOCKS PER GAME
Real NBA My Roster Official 2k
2.6 Bogut 1.8 1.4
2.4 McGee 1.7 1.7
2.4 Ibaka 1.6 1.4
2.4 Howard 2.3 1.6
2.0 Milicic 1.4 1.2

League Leaders
PLAYER EFFICIENCY RATING (PER)
Real NBA My Roster Official 2k
27.3 James 28.0 33.9
26.0 Howard 26.3 30.8
25.6 Wade 26.6 27.7
24.3 Love 20.1 18.8
23.9 Bryant 26.2 30.8


Anyway I hope someone will actually read this, and that this will stir up some more rigorous and scientific analysis of the game mechanics so that we can do basically what Bethesda's fan communities do- make a rushed, glitch-ridden product into a great game. I also dare say this merits a sticky, as you won't find much information this detailed and comprehensive pretty much anywhere.
townknave
 
Posts: 23
Joined: Thu Dec 02, 2010 6:28 pm

Re: Comprehensive Simulated Stats Mechanics Guide

Postby Pdub on Mon Jan 16, 2012 2:04 pm

Sadly, whoever rates players for 2k is too stupid to realize this, which explains why most player's 3pt ratings are a couple points too high and a simulated season with official rosters will have 3pt% too high for the whole league.
...
The main problem is that they are lazy.
...
Another source of stupidity from 2k is that they listen to the fans.

Yeah, that's constructive.

The developers have not really changed any of the ratings due to the lockout.

The only thing rebound ratings seem to actually affect in simulated games is the distribution of rebounds within a player's team.

It's probably because sim engines are done backwards. The team stat results are simulated, and then the individual stats are distributed.
For the assists ratio I would increase the usage rate of those players and increase their passing tendencies and see how that turns out.
Pdub
Administrator
Administrator
 
Posts: 13182
Joined: Thu May 19, 2005 5:54 pm
Location: Pasadena, California, US

Re: Comprehensive Simulated Stats Mechanics Guide

Postby insanevert on Tue Jan 17, 2012 3:26 am

townknave,

wow thats pretty intense post +10000 XP for the effort (Y) :bowdown2: :bowdown:
Image
User avatar
insanevert
 
Posts: 77
Joined: Sun Jan 15, 2012 7:00 am

Re: Comprehensive Simulated Stats Mechanics Guide

Postby LHead2 on Tue Jan 17, 2012 7:47 am

Mind uploading your roster to 2KShare? I'd like to take a look at it and fiddle around a bit.
User avatar
LHead2
 
Posts: 275
Joined: Thu Mar 19, 2009 3:15 pm

Re: Comprehensive Simulated Stats Mechanics Guide

Postby jrlocke on Wed Jan 18, 2012 3:02 am

I don't care about "real" NBA stats but I do appreciate you looking into the limitations of the stat engine.

One thing I do to try and fix the every player plays 1 minute, is to add minor injurys that keep bench players out of the game (or suspension). THanks to Vl@d's editor I will be doing that again.

Great post hopefully you are less angry in person. If anyone remembers NBA Lives stats engine in which players either played 40 minutes or 8 2k's sim engine is a god send!
2013 is the year?
Thanks to Vl@d, Leftos and all the other patchers for their hard work.
User avatar
jrlocke
 
Posts: 407
Joined: Sat Sep 28, 2002 6:42 am
Location: Cleveland, Ohio

Re: Comprehensive Simulated Stats Mechanics Guide

Postby TGsoGood on Wed Jan 18, 2012 6:11 am

great post
Consider donating: http://cash.me/$TheJohnsonFamily or http://paypal.me/4TheGoods
Follow me on twitter @TGsoGood
Check me out on youtube https://www.youtube.com/channel/UCPydhZ ... PeRSmEVynQ
User avatar
TGsoGood
Contributor
Contributor
 
Posts: 3076
Joined: Thu Jul 28, 2011 4:03 am
Location: Nashville, TN

Re: Comprehensive Simulated Stats Mechanics Guide

Postby wuttang on Wed Jan 18, 2012 1:07 pm

great post
thank you for doing this.

sadly changing coach profiles for bench depth etc. don't seem to effect My Player mode.
maybe it's just me, cause my Hawks fired and hired a new coach. not sure how that effects things, and if so, don't think there's a way to edit the new coach. (Don Nelson and all his red blotchy face goodness is my new coach btw)
wuttang
 
Posts: 37
Joined: Tue Dec 20, 2011 11:03 pm

Re: Comprehensive Simulated Stats Mechanics Guide

Postby WithAuthority on Thu Nov 27, 2014 4:14 am

townknave wrote:I originally posted this at operationsports.com and was banned for being critical of 2k's development staff on these issues. Hopefully people here will be more appreciative of civil, constructive criticism.


THIS GUIDE PERTAINS ONLY TO SIMULATED GAMES IN "SEASON" AND "ASSOCIATION" MODE

I. INTRODUCTION

I warn you this will be ridiculously long and detailed. If you are not a hardcore stat monkey, probably don't bother. If you think the gameplay trumps all and don't care if your roster produces accurate simulated stats, definitely don't bother. Otherwise, read on.

Upon getting 2k12 one of the first things I did was simulate a season with the latest official 2k roster to see how the game predicted the NBA season would unfold. When I checked out the stats at the end I was appalled. Some things jumped out, like Chris Paul/Deron Williams under 7 APG, and Kevin Love under 10 RPG, and Dwight Howard often under 2 BPG. Others were subtler- like the FTA's way too high for all teams, the FG% too low, 3pt% too high, mediocre steals guys putting up 2.4 SPG seasons- almost every stat category was off significantly. I asked on the forums if anyone knew how to fix the APG issue at least, and got only misinformation and cryptic non-responses. I examined the ratings in 2k's roster and compared them to some actual NBA stats, and concluded that the horrendous condition of the roster is the reason for the ridiculously unrealistic stats. So I set out to figure out what exactly the simulated stats uses from the roster so that we can derive a method for creating the "hard ratings" (the ones that determine statistical output). Examples of these would be shot ratings, Block/Steal, Rebounding, and the like.

I think getting simulated stats is vitally important for a roster maker because that is your true test. The in-game experience can always be tuned with sliders, but simulated games have no such luxury. A lot of roster makers go wrong in that they'll come up with a nice scale for a rating, but they neglect to consider how the game engine actually APPLIES the rating. For example you could look at the fact that NBA players generally shoot around 45%-75% on FG attempts at the basket and conclude that Shot Inside ratings should be at the minimum for 45% shooters and at 99 for those 75% guys. And after you laboriously applied your ratings to the whole league you'd notice that everyone's FG% is way too low. This is because in 2k's stat engine the maximum Shot Inside rating gives a player around 60% inside FG%- a number that in the NBA would actually be a bit below average. Another example of failing to keep in mind how ratings apply to the game would be roster makers who factor volume of makes into a player's rating for, say, 3pt Shot. Beyond requiring a minimum number of makes to establish sufficient grounds to hand out a rating, a roster maker should NOT give more points to higher volume shooters. This is because in the simulated stats engine, unlike in the real NBA, taking a greater volume of shot attempts does not lower the player's efficiency. An NBA 2k player will shoot just as high a percentage with a 3pt Tendency of 100 as with a 3pt Tendency of 10, so he shouldn't get a higher rating just for having a lot of makes. Sadly, whoever rates players for 2k is too stupid to realize this, which explains why most player's 3pt ratings are a couple points too high and a simulated season with official rosters will have 3pt% too high for the whole league.

Observing 2k's default ratings is especially frustrated because some players are actually rated fairly accurately. The main problem is that they are lazy. They only seem to rate a give player once, and then basically make band-aid edits or arbitrarily raise a few ratings if the player improves or declines. Shot ratings, it seems, do get redone every year. Most ratings, however, are ignored, and when ratings do get changed they are often raised and almost never reduced. This leads to most players being overrated in most "hard ratings." Another source of stupidity from 2k is that they listen to the fans. The problem with that is they don't listen to intelligent fans with reasoned, stat based arguments. They listen to volume of complaints from casual fans about "HURRR KOBE'S MED RATING TOOO LOOOWWW." So that leads to a lot of pressure for them to have high overall ratings for players. When 2k's overall rating algorithm doesn't produce a nice enough rating for a player like say, Dirk (because it's dumb and doesn't think shooting matters for big men), 2k feels a lot of pressure to overrate him in stuff like rebounds and steals.


II. WHAT AFFECTS SIMULATED GAMES

These ratings and ONLY these ratings affect simulated games. Any other ones, even ones that seem like they'd be really relevant, have no effect at all. If you want to claim otherwise please do some testing to back it up.

RATINGS

Shot Inside: Controls a player's FG% at the rim. Shot In Traffic, Layup, Dunk, Standing Dunk, abilities all have no effect at all as far as I can tell. Best stat to use is Hoopdata's At Rim FG%.

Shot Close: Controls a player's FG% from about 5 to 15 feet. Best data to use is to combine totals from Hoopdata's 3-9 Feet FG% and 10-15 Feet FG% and use that percentage.

Shot Medium: Controls a player's FG% from 16 to about 23 feet. Best stat to use is Hoopdata's 16-23 Feet FG%.

Shot 3Point: Controls a player's 3FG%. Should NOT be adjusted for shot volume as is commmonly done.

Free Throw: Self explanatory and the only one of these ratings 2k gets right.

Pass: Affects assists, along with Shot Tendency, Offense Awareness, and various other stuff. More fully explained in section IV. Best stat to use appears to AST% from Basketball Reference. (other AST% stats, included 2k's in-game one, are computed differently).

Block: Affects block rate. Best stat is BLK%.

Steal. Affects steal rate. Best stat is STL%.

On-Ball Defense/Post Defense/Defense Awareness: Probably affects how good your team is on defense. Definitely affects what players are considered for defensive awards.

Offense Rebound/Defense Rebound: Affects the distribution of rebounds within a team. Best stat to use os OffReb% and DefReb%.

Offense Awareness: Appears to affect turnovers, assists, and how easy it is for teammates to get assists to the player.

Stamina: Affects how many minutes the player is able to play (assuming he's assigned them in rotations).

TENDENCIES

Shot Tendency: Controls how many possessions a player uses. Corresponds directly to Usage%.

Shot Location Tendencies: These are directly proportional to the amount a player's shots that will come from each location. For example, the percentage of a player's shots that are threes is given by the player's 3 point tendency divided by the sum of all his shot location tendencies. Best stat to use is Hoopdata's attempts per 40 minutes at each shot location. Note that since tendencies are proportional it doesn't matter how high the numbers are, just their proportion to each other.

Draw Foul Tendency: Controls how many FTA a player gets per FGA, combined with shot location tendencies (more FTA are given for inside shots than jump shots). Linear.

Commit Foul Tendency: Controls a player's foul rate. Not fully tested- 0 does lead to some amount of fouls, and more fouls if the team's average foul tendency is low. It appears the engine enforces a minmum on a team's fouls per game.

Durability: Affects a player's chance of getting injured. Not sure how this works, I play with injuries off due to the stupid rotations issue.

COACH PROFILES

Offensive Tempo: Controls team pace (number of possessions per game). Not a large effect.

Some other coach profile settings may have an effect, but I haven't tested the effectively. I'm pretty sure playbooks do NOT affect simulated games.

III. WHAT'S BROKEN IN OFFICIAL 2k ROSTERS

Sadly this section also needs to be long, because 2k puts an unbelievably minimal amount of effort into ratings and tendencies given their large impact on the quality of the product.


MINUTES PER GAME
-Too low for stars and most important starters. Too high for end-of-bench guys. This skews most players' per-game stats as well.
-End-of-bench guys, even with 0 minutes assigned, seem to get into every game for at least 1 minute.

IS IT FIXABLE?: Not really, but it can be worked around by controlling all teams and setting rotations manually. Injuries will mess these up so it's probably best to play with them off if you don't like micromanagement. You really suck for screwing this up, 2k. As for the issue of end-of-bench guys, it can be helped by increasing the Bench Depth slider in Coach Profiles to 100, which bizarrely actually reduces bench depth. Some players have stamina ratings too low for them to play the amount of minutes they played in real life last season, so they should be fixed.


FIELD GOAL PERCENTAGE
-Slightly too low across the board. High FG% big men in real life rarely attain their real FG%. On the other hand Kobe is consistently hitting 50% FG which he never has in real life.

IS IT FIXABLE?: Mostly. The Inside Shot rating does not go high enough, and getting as close to real-life simulated stats as possible will require most of the league to be at 99. Super high FG% big men will usually not hit 60%, but they can usually get pretty close with accurate shot tendencies. Once you have shot location tendencies accurate and FG% from each shot location accurate, resulting FG% will also be highly accurate.


THREE POINT PERCENTAGE
-Too high in general. 40%+ shooters are everywhere. As mentioned above this is because 2k gives shooters "bonus points" for hitting a high shot volume.

IS IT FIXABLE?: Yes, just need accurate ratings.


FREE THROW ATTEMPTS
-Extremely high over the whole league. The lowest team is usually higher than the real NBA's highest. This is part of the reason assists are so low.
-Especially far too high for Anthony Morrow or Shawne Williams types- three point shooters who almost never get to the line in real life will get there many times more often than they should.

IS IT FIXABLE?: Mostly. Super low FTA players in real life will always get about 2x more FTA than they should, but you can get it pretty much perfectly accurate for most players. It might be possible to get everything perfectly accurate- I need to test the Commit Foul tendency further.


FOULS
-About 15% too high.

IS IT FIXABLE: Yes, though I need to do more testing with Commit Foul Tendency.


ASSISTS

-Too low across the entire league.
-Some PGs get too many assists (Kidd, Conley), others get 30-40% fewer than they should.
-A lot of those 2.5-3 assist players get about half as many as they should

IS IT FIXABLE?: Mostly. I've managed to get overall assists closer to the real NBA, and great PGs are pretty close to their real APG, but it still proves very tough to devise a rating scale that results in Malone/Shaq type passers getting their 4-5 APG.


BLOCKS

-Too low for great shot blockers (99 rating seems to produce only about 5.0 BLK%)

IS IT FIXABLE?: No. This is just a limitation to 2k's stat engine. 99 rating should probably mean around 7.5 BLK%. At least everyone under 5.0 will have perfectly accurate block stats.


STEALS

-Too high for most guards and "name" players.

IS IT FIXABLE?: Yes, with accurate ratings.


SHOT TENDENCY

-Too high for stars and too low for role players. Guys like Kidd or Chandler will take about half as many shots as they should.

IS IT FIXABLE?: Yes, I have crafted a formula to get absolutely perfect shot distribution.


REBOUNDS

-Great rebounders get too few rebounds, crappy ones get too many. Kevin Love and Brook Lopez are often less than 1 RPG apart.
-Same issue with Offensive rebounds. Even 25 rated guys will get around 0.7 per 36 minutes.
-Slightly too many defensive rebounds overall.
-Not enough variation in team offensive rebounds.

IS IT FIXABLE?: Mostly. I'm able to get players' total rebounds pretty much perfectly accurate. Offensive rebounds always seem to be skewed a bit too much in favor of low-rated players and that doesn't seem fixable, but it's not too bad. My league leader usually averages around 3.7 (real NBA usually around 4.2-4.5). The issue of slightly too many defensive rebounds is actually a bit of a quirk- it seems every missed shot in simulated gains always generates either an offensive or defensive rebound. In the real NBA this is not the case- every game there are a couple of "team rebounds," like if a ball goes off the rim and out of bounds.
As for the issue of not enough variation in team offensive rebounds, that is unfortunately not fixable. This is because in the 2k simulated stat engine, no team rebounds better than any other team. Every team appears to get around 26% of available offensive rebounds and 74% of available defensive rebounds (which is around the NBA averages). Any variation in team rebound numbers over a season is due purely to the number of available rebound opportunities. You can prove this testing teams with all 99 rebounders and all 25 rebounders over the course of a season. They will get about the same number of offensive and defensive rebounds. The only thing rebound ratings seem to actually affect in simulated games is the distribution of rebounds within a player's team.


IV. HOW TO DERIVE RATINGS THAT LEAD TO THE MOST ACCURATE POSSIBLE SIMULATED STATS

This is the meat of this guide and it's going to be complicated. There is going to be a lot of math and formulas.


SHOOTING PERCENTAGES

For these ratings you will want at least a minimum number of attempts before you are confident enough to hand out a rating from the scale. I use 50 attempts for close shots, 75 for medium, and 100 for 3pt. If you're rating a player according to the '11 season, and he doesn't have enough attempts in that category, add in his numbers for that category from the year before, repeating the process until you have a large enough sample.

ShotInside Rating = 4 * (Inside FG% - 30) / 3 + 60

Scale:
99 59.25%
90 52.5%
80 45.0%
70 37.5%
60 30.0%

Yes, most of the league should have 99. The actual league average corresponds to around a 106 rating. I don't like it any more than you. Blame 2k.

ShotClose Rating = 3 * (Close FG% - 20) / 2 + 50

Scale:
99 52.7%
90 46.7%
80 40.0%
70 33.3%
60 26.7%
50 20.0%

Sample Ratings: (Official 2k Rating on the Right)
85 Howard 72
93 Nowitzki 99
89 James 83
95 Bryant 99
86 Paul 81


These are the least bad of all the shot ratings on 2k's official rosters. The league average (39.1%) corresponds to around a 79 rating.

ShotMedium Rating = 13 * (Medium FG% - 25) / 6 + 35

Scale:
99 54.5%
90 50.3%
80 45.8%
70 41.2%
60 36.5%
50 31.9%
40 27.3%
35 25.0%

Sample Ratings: (Official 2k Rating on the Right)
47 Howard 56
94 Nowitzki 99
78 James 86
63 Bryant 78
78 Paul 81

2k's ratings for this are generally WAY too high, especially for big time scorers like Carmelo Anthony (42% mid range shooter) or Kobe (38%). Overrating players systematically in this category is 2k's way of making sure league FG% is only slightly too low instead of massively too low due to their handling of ShotInside. League average is around a 68 rating, right in the middle of the scale.

Shot3Pt Rating = 3 * 3ptFG% / 2 + 25

Scale:
99 49.3%
85 40.0%
70 30.0%
55 20.0%
40 10.0%

Sample Ratings: (Official 2k Rating on the Right)
30 Howard 25
84 Nowitzki 84
75 James 79
73 Bryant 78
83 Paul 85

Nice and easy. 2k could have got these mostly right if they didn't insist on giving extra points for volume. The league average is fairly high on the scale at around 79. I would argue that no player should have a 25 rating, because in the simulated stats engine that results in a player literally hitting less than 1% of their attempts, even over thousands of tries. Any non-crippled human should have at least a 30 or so rating.

Interestingly, once you know a player's shot ratings and tendencies, you can predict their simulated FG% thus:


Simulated FG% = InsideFG% * InsideTendency / AllTendencies + CloseFG% * CloseTendency / AllTendencies + MediumFG% * MediumTendency / AllTendencies + 3FG% * 3ptTendency / AllTendencies

AllTendencies is the sum of Inside, Close, Medium, and 3pt Tendencies.


SHOT TENDENCY

After MUCH experimentation I've come up with a formula that tracks with Usage% perfectly.

ShotTendency = 2 * (Usage% - 20) + 50

This is vitally important for those role players and bench guys- they hardly get any shots at all with default 2k shot tendency. Take note that Shot Tendency works as what I like to call a cumulative stat. There are only so many shots to go around, so if your team acquires a high shot tendency player to replace a low one, those shots have to come from somewhere, and other players on your team will give up shots- so for example replacing Keith Bogans (low Shot Tendency) with Rip Hamilton (mid-high Shot Tendency) will cause all Bulls starters to shoot a little less than they did last season so that Hamilton can get his share of shots.

Sample Shot Tendency:
64 Howard
66 Nowitzki
73 James
80 Bryant
52 Paul


SHOT LOCATION TENDENCIES

This one's simple. Just plug in the attempts per 40 minutes from the various locations on hoopdata.com. For classic players or those for which you don't have location infos, you're going to have to make an educated guess on the Inside/Close/Medium tendencies. However, make sure that the ratio of 3pt Tendency and the sum of Inside/Close/Medium tendency are the same as the ratio of the player's 3 point attempts and 2 point attempts.


FREE THROW ATTEMPTS

Fouls are an issue I'm still investigating and I've yet to get it perfect. I do know that you CANNOT simply slap a player's FTA number on there and expect good results. That method will screw players like Gallinari who should have 100 draw foul tendency even though they don't get that many FTA because they get to the line a very high % of their scoring attempts. The draw foul tendency controls FTA per FGA attempt, and it affects players differently depending on their shot location tendencies. Basically, for inside shots,

Inside FTA ratio = 0.4 + 0.4 * DrawFoul/100

For close/med shots,

Close/Med FTA ratio = 0.2 + 0.1 * DrawFoul/100

and for 3 pt shots,
3pt FTA ratio = 0.3 + 0.15 * DrawFoul/100

You'll notice that the DrawFoul tendency is much more effective on players who take more inside shots, and must be tailored to each player based on his shot location tendencies. There are a few issues with the engine here though. It assumes jump shots (close/med/threes) all have the same chance of drawing a foul (threes get 50% more FTs because you get 3 FT when fouled on one). Obviously in real life 3 point shots very rarely draw fouls, and close shots draw more fouls. An effect of this is that even on pure jump shooters, a 0 draw foul tendency will lead to a FTA/FGA ratio of about 0.3, which is quite high. It follows that most players should be at 0 draw foul tendency, and they'll still shoot a bit too much FTs. You can get good approximate draw foul ratings thus:

FTA/FGA = (Inside FTA ratio * InsideTendency / AllTendencies) / InsideTendency + (Close FTA ratio * CloseTendency / AllTendencies) / CloseTendency + (Medium FTA ratio * MediumTendency / AllTendencies) / MediumTendency + (3pt FTA ratio * 3ptTendency / AllTendencies) / 3ptTendency

So with your spreadsheet, once you have your shot location tendencies, you can plug in different draw foul tendency numbers and it's usually easy to get close to the player's real FTA/FGA ratio, which can be found on hoopdata.com.

With most role players' draw foul tendency at 0 and others' derived based on their shot location tendencies at my formula, I get highly realistic FTA attempts for important players (though still a bit too many for role players). It may be possible to fix that through the Commit foul slider, but I think i'll just wait until the editor to come out to delve into that because its location at the bottom of the menu will make editing it too tedious even for a NBA nerd like me.

Sample Draw Foul Tendency:
100 Howard
100 Nowitzki
70 James
65 Bryant
100 Paul


BLOCKS

Fairly simple.

BlockRating = 15 * Block% + 25

There will be around a dozen 99's. Accurately representing a player like Manute Bol is sadly not possible, even if you adjust for the easier shot-blocking era in which he played.

Scale:
99 4.93%
85 4.00%
70 3.00%
55 2.00%
40 1.00%
25 0.00%

Sample Ratings: (Official 2k Rating on the Right)
99 Howard 91
45 Nowitzki 65
45 James 61
30 Bryant 37
28 Paul 28


STEALS

Also simple.

StealRating = 20 * Steal% + 25

Scale:
99 3.70%
85 3.00%
70 2.25%
55 1.50%
40 0.75%
25 0.00%

Sample Ratings: (Official 2k Rating on the Right)
63 Howard 63
37 Nowitzki 65
67 James 84
63 Bryant 77
95 Paul 97


REBOUNDS

OffenseReboundRating = 6 * (OffReb% - 2) + 25

Scale:
99 14.3%
85 12.0%
70 9.5%
55 7.0%
40 4.5%
25 2.0%

Sample Ratings: (Official 2k Rating on the Right)
89 Howard 93
27 Nowitzki 60
33 James 44
34 Bryant 40
25 Paul 36

DefenseReboundRaging = 5 * (DefReb% - 4) / 2 + 25

Actual rebounding numbers will depend on minutes played and rebounding ability of teammates. The reason you see Love getting only 10 RPG in the official roster is Beasley and Darko being hugely overrated rebounders.

Scale:
99 34.0%
85 28.0%
70 22.0%
55 16.0%
40 10.0%
25 4.0%

Sample Ratings: (Official 2k Rating on the Right)
92 Howard 96
67 Nowitzki 86
62 James 70
50 Bryant 50
46 Paul 56


ASSISTS

The original inspiration for this enterprise. While most other stats are straightforward, assists are hard to pin down. It is clear that Pass ratingis the primary factor, but far from the only factor. In the stock roster, only Kidd and Rondo can manage 10 APG, while Paul and Williams only get 6 or 7. Initially I thought it was plain broken and I was ready to toss out the game (I'm a sim gamer and Deron Williams/Chris Paul/Steve Nash under 7 APG is a dealbreaker for me). As I learned more and tested more about the game mechanics, I realized that the assist model was possibly only slightly broken, and in fact it was a bit more complex and deep than other aspects of the sim engine. From my testing, the following factors play a role.

-Shot Tendency of teammates (of course I mean teammates that are assigned minutes on the court with the player in rotations). More teammates with high shot tendencies equals more assists. Of course having teammates who are better shooters will increase assists as well. This is part of the problem for Deron Williams- Kris Humphries and Damion James have their shot tendencies too low. The Thunder have it as well as you'll often see Westbrook under 6 APG in the official roster. It's not enough to have one great scorer to pass to- in order to get a lot of assists your PG

-Shot Tendency of the passer. Part of the reason Williams and Paul (and Nash) have far too low assists in the official roster is their shot tendencies being way too high. Likewise, Kidd's shot tendency is far too low even for a pass-first guy like him.

-Offensive Awareness of teammates. This has a smaller effect than Shot Tendency but it's noticeable.

-Offensive Awareness of the passer. This has a smaller effect than Shot Tendency but it's noticeable.

-Pass rating of teammates. That's right, having low Pass rating teammates, especially ones rated 25, seems to greatly impede a player's ability to generate assists. HOWEVER, there appears to be a cap on how many assists a team can generate (I've never seen more than 23/game), so there's a point where higher pass ratings on teammate will cause that teammate to "steal" some of the PG's assists. You can see this effect on the Clippers in the official roster due to Chauncey Billups' ridiculously overrated 82 pass rating. If you sim a season with him as the starting SG next to Paul he'll average around 1 less assist per game.

-Offensive Tempo and Fast Break slider, though not nearly as much as you'd think. I haven't tested this much and have only observed a 3% or so variation in team pace to be caused by these sliders.

Initially I thought it made sense to have Pass rating the same as Block rating, since the numbers have a fairly similar range. However, I found that I got MUCH more realistic assist numbers when I used that scale adjusted upwards 5 points- this seems ensure that there aren't so many of those 25-rated guys making it impossible for good PGs to get enough assists. I wouldn't say I've got star PGs' assist numbers perfect, but it's a vast improvement over official rosters and they're usually within about 10% of their actual value. Team assists are also slightly too low, I'd say about 10% off- this may just be an effect of still having slightly too mant FTA's, since they don't generate assists. Another issue I haven't really been able to resolve is that it's tough for a team with a good PG to also have guys getting 2-3 APG. If Rondo is getting 11 assists it seems everyone else has to get under 2, and if they get realistic amounts Rondo seems to get too few. Getting Blake Griffin and Chris Paul to both match last season's APG totals of 3.8 and 9.8 in a simulated season proves to be very difficult with any consistent scale for Pass rating. Note that you want to use the AST% stat from basketball-reference.com for this, as the AST% stat used by other sites is often calculated differently. It's important to use the right one because it excludes possessions where the PG shoots from the calculation. Using other sites' AST% stat could result in overrating the passing ability of PG's like Kidd who rarely shoot.

PassRating = 3 * Ast% / 2 + 30

Sample Ratings: (Official 2k Rating on the Right)
40 Howard 38
51 Nowitzki 48
82 James 90
70 Bryant 70
99 Paul 94


NOTE FOR CLASSIC ROSTER MAKERS. In any roster aiming for the most accurate possible simulated stats, most of the league ought to have a 99 inside shot rating (anyone with over 59.25% inside FG%). This somewhat simplifies the task of coming up with accurate shot ratings for classic players, as you mostly have to worry about the shot close and medium ratings. What you can do is plug your shot location tendencies, your 99 InsideShot ratingm and your known 3pt rating into the SimulatedFG% formula I stated above. By comparing the output to the player's actual FG% and plugging in different ratings for ShotClose and ShotMedium, you will find that there are several different combinations of ratings you can give that will result in an accurate overall FG%.

So if we're re-rating a player like '86 Larry Bird. Since 2k doesn't do that bad a job on shot location tendencies let's use 2k's default shot location tendencies (84/86/98/31). We plug those into our spreadsheet and give him a 99 in inside shot rating and 88 3pt rating from his .423 3p%. We know he shot .496 from the field that year so we want our expected sim FG% to match that, so we plug in some ratings for Close/Med that get Bird there. There are a number of Close/Med rating "solutions" that get Bird to around .496 expected FG%. For example:

99 Close/70 Med
95 Close/75 Med
90 Close/81 Med
85 Close/87 Med
80 Close/94 Med
75 Close/99 Med

As for choosing which of these ratings is right, you're going to have to rely on whatever knowledge or info you can get on the player. From what I know of Bird I'd say 85 Close/87 Med sounds reasonable. Now, as for shot location tendencies for players 2k hasn't made, you'll have to be more or less on your own- but once you decide what you want the tendencies to be you should be able to come up with highly accurate ratings and sim stats.

For certain stats with classic rosters you should also include some sort of era adjustment. For example, offensive rebounds were significantly easier to come by in decades past. If you check BasketballReference.com you'll see that OffReb% for the league was above 30% in the 90's, while it's around 26% now. You can adjust for this by dividing the current year's percentage by the classic year's percentage and multiplying that number by the stat you're using to derive the rating. Then derive the rating as normal. You may want to do this for blocked shots as well, since a much higher rate of three point attempts in recent years has resulted in blocks being down throughout the league. For 3pt ratings in the years 1995-1998, when the league shortened the 3 point line, you should just reduce everyone's 3pt rating from those years by about 5 points, since the league shot about 3% better on the shortened line and that's about 5 points worth on the 3 point rating scale.

I have made a roster for the PC version that basically follows this guide, editing only the ratings that I've shown here to affect the simulation according to stats from the 2011 season. I haven't added 2nd round rookies and missing players or anything yet (hopefully 2k will get off their asses someday soon) but I must say that with realistic rotation minutes from controlling all 30 teams, the simulated stats have been extremely pleasing so far (while there's a lot of good rosters here, most rosters don't focus on this aspect and the simulated stats I've gotten from them have been a mixed bag). Any PC players interested in the roster, let me know (I know we are few and proud). Once the Roster Editor comes it out should be able to be converted to the more popular formats as well. Here are some sample stats from a quick simmed season just now, compared to the real NBA:

TEAM STATS
Stat: FG% 3P% AST STL BLK TOV PF PTS/G
43.2%-48.6% 31.9%-39.6% 1397-1899 496-655 285-440 1086-1372 1471-1911 90.5-105.3 My Roster
43.0%-48.6% 31.6%-39.7% 1545-1955 458-771 328-502 1063-1398 1554-1865 91.9-107.5 Real NBA '11
42.7%-48.1% 34.2%-40.7% 1127-1669 505-703 219-416 1077-1386 1602-2212 92.0-103.4Official 2k

League Leaders
POINTS PER GAME
Real NBA My Roster Official 2k
27.7 Durant 28.5 28.8
26.7 James 28.5 30.3
25.6 Anthony 23.5 25.0
25.5 Wade 24.6 25.2
25.3 Bryant 27.0 30.4

League Leaders
REBOUNDS PER GAME
Real NBA My Roster Official 2k
15.2 Love 14.1 9.4
14.1 Howard 14.5 12.7
12.2 Randolph 11.4 9.7
12.1 Griffin 12.7 10.7
10.4 Humphries 10.8 9.5

League Leaders
ASSISTS PER GAME
Real NBA My Roster Official 2k
11.4 Nash 9.8 7.7
11.2 Rondo 11.5 10.8
10.3 Williams 9.3 6.9
9.8 Paul 9.5 7.5
8.9 Calderon 9.1 8.0

League Leaders
STEALS PER GAME
Real NBA My Roster Official 2k
2.4 Paul 3.0 2.4
2.2 Rondo 2.9 1.9
2.1 Ellis 2.4 1.5
1.9 Westbrook 2.1 1.9
1.8 Allen 1.5 0.6 (in 1/2 the minutes)

League Leaders
BLOCKS PER GAME
Real NBA My Roster Official 2k
2.6 Bogut 1.8 1.4
2.4 McGee 1.7 1.7
2.4 Ibaka 1.6 1.4
2.4 Howard 2.3 1.6
2.0 Milicic 1.4 1.2

League Leaders
PLAYER EFFICIENCY RATING (PER)
Real NBA My Roster Official 2k
27.3 James 28.0 33.9
26.0 Howard 26.3 30.8
25.6 Wade 26.6 27.7
24.3 Love 20.1 18.8
23.9 Bryant 26.2 30.8


Anyway I hope someone will actually read this, and that this will stir up some more rigorous and scientific analysis of the game mechanics so that we can do basically what Bethesda's fan communities do- make a rushed, glitch-ridden product into a great game. I also dare say this merits a sticky, as you won't find much information this detailed and comprehensive pretty much anywhere.


These exact issues exist in 2k14, so thanks for this
Collector & Trader of vintage NBA games, DVD, and memorabilia
User avatar
WithAuthority
ABL Commish
 
Posts: 2068
Joined: Wed Sep 30, 2009 11:43 am


Return to NBA 2K12

Who is online

Users browsing this forum: No registered users and 1 guest