The Ratings (Explained)
Dec 16, 2018 10:52:59 GMT -5
Paul Pierce, Justin Timberlake, and 2 more like this
Post by billy on Dec 16, 2018 10:52:59 GMT -5
Hopefully this can make some sense to you guys. This is the "code" in the sim engine. Each category is what the sim uses to actually calculate results, and the "ratings" listed are the ratings I can control to try to get each players skill categories as accurate as possible. As you can see it's extremely complicated trying to get all of these right for every player.
How to read what you're seeing:
shootingLowPost: {
ratings: ["hgt", "stre", "spd", "ins", "oiq"],
weights: [2, 0.6, 0.2, 1, 0.2],
skill: {
label: "Po",
cutoff: 0.61,
},
},
We will look at shootingLowPost as an example. Here you can see that the height, strength, speed, inside and offensive IQ rating all contribute to shootingLowPost. The weights simply mean how much do those ratings matter for this skill. So, in this case, each point of height gives that player 2 points in the shootingLowPost skill, which is TWICE as important as the Inside shooting skill! This is why you'll see guards that shoot worse from the post getting higher inside ratings than big men. Because the big men have 40 points of height on them, etc etc.
As you can see this gets EXTREMELY complicated EXTREMELY quickly. Adjust someones speed to make their perimeterDefense correct, and it screws up other areas. This is why I try to keep the IQ ratings as central as possible, as they mess up the most categories and require the most adjustment (work for me). While the amount of categories that "3 Pointer" or "Passing" effect is much less, making it easier to get a more accurate build for your player by adjusting these more specific ratings.
Hopefully this clears a little bit of this up. All of the other skills work the same way.
[html]
const COMPOSITE_WEIGHTS: CompositeWeights<RatingKey> = {
pace: {
ratings: ["spd", "jmp", "dnk", "tp", "drb", "pss"],
},
usage: {
ratings: ["ins", "dnk", "fg", "tp", "spd", "hgt", "drb", "oiq"],
weights: [1.5, 1, 1, 1, 0.5, 0.5, 0.5, 0.5],
},
dribbling: {
ratings: ["drb", "spd"],
weights: [1, 1],
skill: {
label: "B",
cutoff: 0.68,
},
},
passing: {
ratings: ["drb", "pss", "oiq"],
weights: [0.4, 1, 0.5],
skill: {
label: "Ps",
cutoff: 0.63,
},
},
turnovers: {
ratings: [50, "ins", "pss", "oiq"],
weights: [0.5, 1, 1, -1],
},
shootingAtRim: {
ratings: ["hgt", "spd", "jmp", "dnk", "oiq"],
weights: [0.75, 0.2, 0.6, 0.4, 0.2],
},
shootingLowPost: {
ratings: ["hgt", "stre", "spd", "ins", "oiq"],
weights: [2, 0.6, 0.2, 1, 0.2],
skill: {
label: "Po",
cutoff: 0.61,
},
},
shootingMidRange: {
ratings: ["oiq", "fg"],
weights: [-0.5, 1],
},
shootingThreePointer: {
ratings: ["oiq", "tp"],
weights: [0.1, 1],
skill: {
label: "3",
cutoff: 0.59,
},
},
shootingFT: {
ratings: ["ft"],
},
rebounding: {
ratings: ["hgt", "stre", "jmp", "reb", "oiq", "diq"],
weights: [2, 0.1, 0.1, 2, 0.5, 0.5],
skill: {
label: "R",
cutoff: 0.61,
},
},
stealing: {
ratings: [50, "spd", "diq"],
weights: [1, 1, 2],
},
blocking: {
ratings: ["hgt", "jmp", "diq"],
weights: [2.5, 1.5, 0.5],
},
fouling: {
ratings: [50, "hgt", "diq", "spd"],
weights: [3, 1, -1, -1],
},
drawingFouls: {
ratings: ["hgt", "spd", "drb", "dnk", "oiq"],
weights: [1, 1, 1, 1, 1],
},
defense: {
ratings: ["hgt", "stre", "spd", "jmp", "diq"],
weights: [1, 1, 1, 0.5, 2],
},
defenseInterior: {
ratings: ["hgt", "stre", "spd", "jmp", "diq"],
weights: [2.5, 1, 0.5, 0.5, 2],
skill: {
label: "Di",
cutoff: 0.57,
},
},
defensePerimeter: {
ratings: ["hgt", "stre", "spd", "jmp", "diq"],
weights: [0.5, 0.5, 2, 0.5, 1],
skill: {
label: "Dp",
cutoff: 0.61,
},
},
endurance: {
ratings: [50, "endu"],
weights: [1, 1],
},
athleticism: {
ratings: ["stre", "spd", "jmp", "hgt"],
weights: [1, 1, 1, 0.75],
skill: {
label: "A",
cutoff: 0.63,
},
},
};
These are examples of what stats I look at when determining player skills, and what the range of those skills look like.
How to read what you're seeing:
shootingLowPost: {
ratings: ["hgt", "stre", "spd", "ins", "oiq"],
weights: [2, 0.6, 0.2, 1, 0.2],
skill: {
label: "Po",
cutoff: 0.61,
},
},
We will look at shootingLowPost as an example. Here you can see that the height, strength, speed, inside and offensive IQ rating all contribute to shootingLowPost. The weights simply mean how much do those ratings matter for this skill. So, in this case, each point of height gives that player 2 points in the shootingLowPost skill, which is TWICE as important as the Inside shooting skill! This is why you'll see guards that shoot worse from the post getting higher inside ratings than big men. Because the big men have 40 points of height on them, etc etc.
As you can see this gets EXTREMELY complicated EXTREMELY quickly. Adjust someones speed to make their perimeterDefense correct, and it screws up other areas. This is why I try to keep the IQ ratings as central as possible, as they mess up the most categories and require the most adjustment (work for me). While the amount of categories that "3 Pointer" or "Passing" effect is much less, making it easier to get a more accurate build for your player by adjusting these more specific ratings.
Hopefully this clears a little bit of this up. All of the other skills work the same way.
<iframe src="https://docs.google.com/spreadsheets/d/e/2PACX-1vShKV8vvmTwZuaQs2zD23OcjL34MzuDnHbh8Uz28JKoXltVdhoJJCgymCHHKjlzGuWsBX6p6MVpzPw3/pubhtml" width="700" height="900"></iframe>
[html]
const COMPOSITE_WEIGHTS: CompositeWeights<RatingKey> = {
pace: {
ratings: ["spd", "jmp", "dnk", "tp", "drb", "pss"],
},
usage: {
ratings: ["ins", "dnk", "fg", "tp", "spd", "hgt", "drb", "oiq"],
weights: [1.5, 1, 1, 1, 0.5, 0.5, 0.5, 0.5],
},
dribbling: {
ratings: ["drb", "spd"],
weights: [1, 1],
skill: {
label: "B",
cutoff: 0.68,
},
},
passing: {
ratings: ["drb", "pss", "oiq"],
weights: [0.4, 1, 0.5],
skill: {
label: "Ps",
cutoff: 0.63,
},
},
turnovers: {
ratings: [50, "ins", "pss", "oiq"],
weights: [0.5, 1, 1, -1],
},
shootingAtRim: {
ratings: ["hgt", "spd", "jmp", "dnk", "oiq"],
weights: [0.75, 0.2, 0.6, 0.4, 0.2],
},
shootingLowPost: {
ratings: ["hgt", "stre", "spd", "ins", "oiq"],
weights: [2, 0.6, 0.2, 1, 0.2],
skill: {
label: "Po",
cutoff: 0.61,
},
},
shootingMidRange: {
ratings: ["oiq", "fg"],
weights: [-0.5, 1],
},
shootingThreePointer: {
ratings: ["oiq", "tp"],
weights: [0.1, 1],
skill: {
label: "3",
cutoff: 0.59,
},
},
shootingFT: {
ratings: ["ft"],
},
rebounding: {
ratings: ["hgt", "stre", "jmp", "reb", "oiq", "diq"],
weights: [2, 0.1, 0.1, 2, 0.5, 0.5],
skill: {
label: "R",
cutoff: 0.61,
},
},
stealing: {
ratings: [50, "spd", "diq"],
weights: [1, 1, 2],
},
blocking: {
ratings: ["hgt", "jmp", "diq"],
weights: [2.5, 1.5, 0.5],
},
fouling: {
ratings: [50, "hgt", "diq", "spd"],
weights: [3, 1, -1, -1],
},
drawingFouls: {
ratings: ["hgt", "spd", "drb", "dnk", "oiq"],
weights: [1, 1, 1, 1, 1],
},
defense: {
ratings: ["hgt", "stre", "spd", "jmp", "diq"],
weights: [1, 1, 1, 0.5, 2],
},
defenseInterior: {
ratings: ["hgt", "stre", "spd", "jmp", "diq"],
weights: [2.5, 1, 0.5, 0.5, 2],
skill: {
label: "Di",
cutoff: 0.57,
},
},
defensePerimeter: {
ratings: ["hgt", "stre", "spd", "jmp", "diq"],
weights: [0.5, 0.5, 2, 0.5, 1],
skill: {
label: "Dp",
cutoff: 0.61,
},
},
endurance: {
ratings: [50, "endu"],
weights: [1, 1],
},
athleticism: {
ratings: ["stre", "spd", "jmp", "hgt"],
weights: [1, 1, 1, 0.75],
skill: {
label: "A",
cutoff: 0.63,
},
},
};
These are examples of what stats I look at when determining player skills, and what the range of those skills look like.
<iframe src="https://docs.google.com/spreadsheets/d/e/2PACX-1vTtadTCLWwwp0sQUfIvN0Ng82Z8GfzufhrlIVsobXfDSDKa0a-yB9iSySjcIwZpE_u_btIl3VTx0erR/pubhtml" width="900" height="700"></iframe>