Dynamic BOP solution?

  • Thread starter Phelyx2085
  • 50 comments
  • 2,276 views
You guys are trying to sell this idea and can’t even explain it properly. Still, you say it would be easy to implement.
Every time I read something like “it’s just ...”, that's not the case at all.

What do you want, a 10-page design document? :P As a programmer, I can see this would be a heck of a lot easier and more successful than what they're trying to do with apportioning blame for incidents. I could give you the outline of an example method:
  1. Take an appropriate subset of the quali times for each Gr4/Gr3 daily race. (The subset might be, say, the times of DR B drivers and above).
  2. For each car, average its times.
  3. Calculate a BoP 'bias' for each car based on how far from the average time each car is (using fractions of %, mainly small adjustments).
  4. Finally, when 'bias' for a car reaches, say, 0.5% then a full 1% is applied to the actual BoP and 'bias' is reset to 0.
One tricky part would be deciding whether to affect Power or Weight, or both, with the adjustments, because that's entering into a more detailed - and perhaps more subjective - assessment. Should the Megane have less power, more weight, or both? I think I've read different people suggesting each of those!

It doesn't have to operate entirely without manual intervention though.

Ninja'd, sort of, great minds and that :D
 
Every value you provide is arbitrary. They are just magic numbers. There’s nothing pointing that those values in this algorithm would solve anything. They could even make the problem worse.
Not trying to offend, but it’s just not that simple. You’re talking about changing BoP based on one day and one track data. That’s nothing. You could nerf a car and make it undrivable in the next day and track, then make it worse... and worse... and worse...
 
Every value you provide is arbitrary. They are just magic numbers. There’s nothing pointing that those values in these algorithm would solve anything. They could even make the problem worse.
Not trying to offend, but it’s just not that simple. You’re talking about changing BoP based on one day and one track data. That’s nothing. You could nerf a car and make it undeivable in the next day and track, then make it worse... and worse... and worse...

So we explain it properly - in remarkably similar ways - just as you said we couldn't.

Now you move the goal posts and quibble over the obviously placeholder values we've used? Jeez.
 
Sorry about the double post.

I'm programmer too, and I think the game could benefit of AI machine Learning stuff helping to sort things out, but I still think it’s gonna be a challenge. No matter what.
 
So we explain it properly - in remarkably similar ways - just as you said we couldn't.

Now you move the goal posts and quibble over the obviously placeholder values we've used? Jeez.

What I’m trying to say is that... when we say something like “it’s just a matter of” we are wrong. There are lots of people thinking about those solutions. Then we come and say “hey, nerf the car by x% whenever y happens”. That’s oversimplifying a lot. Those values mean everything.

You could do that to anything in your life, like being first in the leaderboards.

“I know what to do! I just need to be faster”
Yep... go ahead and try.
 
You’re talking about changing BoP based on one day and one track data. That’s nothing. You could nerf a car and make it undrivable in the next day and track, then make it worse... and worse... and worse...

Well, your code might... :P My example wouldn't adjust based on a single track except in extreme cases, and it's only a simple tweak to @Voodoovaj 's version.

I'm programmer too, and I think the game could benefit of AI machine Learning stuff helping to sort things out, but I still think it’s gonna be a challenge. No matter what.

It's a purely statistical problem, not even a complicated one really.
 
Maybe PD doesn't do this, but I thought for sure that since there are clear cut classes that they'd test all the car's lap times. Measure straight line speed, corner ability, all that stuff they have new stats for now. But I guess they are letting us do all the testing for them?


Jerome
 
Well, your code might... :P My example wouldn't adjust based on a single track except in extreme cases, and it's only a simple tweak to @Voodoovaj 's version.



It's a purely statistical problem, not even a complicated one really.

See... don’t you think it’s kind of offensive saying someone else’s job is not complicated without knowing anything about it?
We don’t know any details about what’s been implemented and how, and what data they gather.

The good thing about your code is it doesn’t exist, so it can be perfect.
 
What I’m trying to say is that... when we say something like “it’s just a matter of” we are wrong. There are lots of people thinking about those solutions. Then we come and say “hey, nerf the car by x% whenever y happens”. That’s oversimplifying a lot. Those values mean everything.

You could do that to anything in your life, like being first in the leaderboards.

“I know what to do! I just need to be faster”
Yep... go ahead and try.

Yep, I am on board with @Outspacer on this. Remember, the goal isn't to create a completely equal car, the goal is to eliminate the massive advantage or disadvantage. This is to keep things in check rather than to perfectly equalize things.

You could even go so far ans to aggregate all the lap times from all the tracks into one master lap time to still allow for track to track disparity of any one car. But, I think it would be best to do it based on the dailies or something limited.

It would totally work and it would totally be easy (easy, of course, being a relative term. That said, this isn't rendering engine or physics engine types of difficult).

See... don’t you think it’s kind of offensive saying someone else’s job is not complicated without knowing anything about it?

Which job are we talking about here? They most likely have a few guys who do "game play programming" in other words, their job is to try and implement game play ideas (like the BoP for instance).

It's well within the scope of reason to believe that they've chosen to implement a system that is editable by a human being, because game designers like that sort of stuff and hate automation (self included). However, there is no denying that an algorithm would do this job better and in a completely unbiased way, It, also, would not be that hard. This might take two weeks to a month, which means it's easy in the grand scheme of things.

When GT came out back in the 90's, reflection on cars was "impossible" but GT had it. They faked it. They came up with a very easy solution, but that solution would never have been found if someone hadn't pushed them to go look for it.
 
Last edited:
This is data lake / BI / AI type of solution with some preatty fast and scalable technologies.
You all might be some really well paid individuals here.
 
What I’m trying to say is that... when we say something like “it’s just a matter of” we are wrong. There are lots of people thinking about those solutions. Then we come and say “hey, nerf the car by x% whenever y happens”. That’s oversimplifying a lot. Those values mean everything.

You could do that to anything in your life, like being first in the leaderboards.

“I know what to do! I just need to be faster”
Yep... go ahead and try.

No, mostly those values (in my example) only affect how quickly the BoP changes happen. In both our solutions, multiple changes would be required to make a big change - so if it's heading in the wrong direction it has plenty of chance to turn round and converge on a more stable value.

Sure, a lot of people throw around "It's just..." without being able to back it up much. It would be your mistake to assume that for everyone who says it though.

Unlike coming first on the leaderboards, an unlimited number of people can solve a problem.

See... don’t you think it’s kind of offensive saying someone else’s job is not complicated without knowing anything about it?
We don’t know any details about what’s been implemented and how, and what data they gather.

The good thing about your code is it doesn’t exist, so it can be perfect.

I think it's rather defeatist of you to look at a problem and simply say "It's too complicated for any of us". I didn't call anyone's job 'not complicated' - I called the statistical solution to a problem not complicated, and even that should be seen as relative.

This is data lake / BI / AI type of solution with some preatty fast and scalable technologies.
You all might be some really well paid individuals here.

Oh, we might be ;) You really are determined not to add anything useful to the conversation here, aren't you?
 
Too many variables to be simple.

Should we use variable indexes in the math based on rankings? What are those values? What math do we do? How should we group tracks, events, daytime (in track) so it affects our indexes? Should we consider races that don’t use an X number of different cars? What’s this X? If so, how does that change our variable indexes? Maybe we have to do different math when that happens? Should we use different versions lap times? What’s the limit between too much change between version, so it doesn’t make all data garbage? I literally could be here all day throwing Questions that we would never be able to answer. It’s nice we think things like that. That we say “hey, dynamic BoP” would be great!”
I agree! However, stating it’s easy is not a good way of expressing that.
I’m a web programmer. I use a lot of different technologies, and I guess you wouldn’t guess half of it. Still, you think it’s easy, because it’s not physics engine.

Programming anything shouldn’t be easy.
I learn something new almost every day.

I’m sorry if offended someone. I hope I didn’t. I’ll stop for now.
 
This is data lake / BI / AI type of solution with some preatty fast and scalable technologies.
You all might be some really well paid individuals here.

What does my income have to do with it? It's not my money paying for it. Sony however has a lot of money and, low and behold, they are already paying programmers to show up daily :D!!

Data lake? Aren't everyone's qualifying times already stored in this "data lake" you refer to? See...the data is already there.

I used to have the same argument for any coder who said something was hard or impossible, and I will reveal it to you. I would say "you are being paid to be here and work for the next month, correct?" The answer is always yes, of course, so then I would say "Well, this is what you will work on."

Everything in gaming was "impossible" once.

Too many variables to be simple.

Should we use variable indexes in the math based on rankings? What are those values? What math do we do? How should we group tracks, events, daytime (in track) so it affects our indexes? Should we consider races that don’t use an X number of different cars? What’s this X? If so, how does that change our variable indexes? Maybe we have to do different math when that happens? Should we use different versions lap times? What’s the limit between too much change between version, so it doesn’t make all data garbage? I literally could be here all day throwing Questions that we would never be able to answer. It’s nice we think things like that. That we say “hey, dynamic BoP” would be great!”
I agree! However, stating it’s easy is not a good way of expressing that.
I’m a web programmer. I use a lot of different technologies, and I guess you wouldn’t guess half of it. Still, you think it’s easy, because it’s not physics engine.

Programming anything shouldn’t be easy.
I learn something new almost every day.

I’m sorry if offended someone. I hope I didn’t. I’ll stop for now.

You are WAY overthinking it. There is no need to implement anything like what you are describing.

Like I said, daily races and their laptimes only. 24 hours cycle. Take all the times for a car form the B/S and A/S group, average it and compare it. Done. If a car is never used, it doesn't get an adjustment.

The adjustment is so small than even an error by the algorithm will fix itself in the grand scheme of things.
 
Last one, I swear!

What does my income have to do with it? It's not my money paying for it. Sony however has a lot of money and, low and behold, they are already paying programmers to show up daily :D!!

Data lake? Aren't everyone's qualifying times already stored in this "data lake" you refer to? See...the data is already there.

I used to have the same argument for any coder who said something was hard or impossible, and I will reveal it to you. I would say "you are being paid to be here and work for the next month, correct?" The answer is always yes, of course, so then I would say "Well, this is what you will work on."

Everything in gaming was "impossible" once.

I’m not saying it’s impossible! Im saying: we shouldn’t say other people’s jobs are easy. They are not! And it was just a joke. Like: if you think it’s easy, you must make a lot of money, because really complex stuff is easy to you.
About the data, yes, it’s there. Getting millions of rows from different tables in, maybe, different data sources, aggregating them in a way it makes sense, then doing whatever magic math and updating BoP... that’s not easy.
 
]
Last one, I swear!
I’m not saying it’s impossible! Im saying, we shouldn’t say other people’s jobs are easy. That are not! And it was just a joke. Like: if you think it’s easy, you must make a lot of money, because really complex stuff is easy to you.

I used to, now I sell real estate and make more :D
 
I would FAR FAR FAR much rather have a self leveling system than the current system of some random dude in Japan looking at some unknown data set and making arbitrary changes.

It does seem presently that whatever person that is responsible for the BoP balance does give favorable performance specs to the "Fast and Furious" types of tuner cars which probably are the most common type of performance car in Japan where PD, Sony and the employee writing the BoP code lives and is from.

Not to mention probably a lot of PD's employees are of a younger age where again with this age group this type of car is the most common and popular to hop up and modify.

Not saying it is a conspiracy but if the person writing the code was German or American and perhaps a bit older then we may have different cars entirely being the OP cars.

I do think since basically we are currently only dealing with two classes of cars gr3 and gr4 and a half dozen or so tracks currently commonly used in sport mode daily races that allowing a car to remain dominate for more than a couple of days is not beneficial to retaining player base to a very important part of the game that will spell success or failure over the long haul.

Actually I would be gladly willing for it to be a bit longer introducing new cars and tracks and see all resources to go towards correcting the weaknesses and unbalance of the BOP, the penalty system, The DR and Sr ratings and the matchmaking for the sport races.

PD has some good ideas and concepts for one of the best online driving games available but application, implementation, criteria used and balance used across the systems needs some serious work and for the health of the game much of this needs to come sooner than later.
 
Well then, here you go, this is what I would have given to a programmer back in the day.

There's a database of times and cars taken from the A/S and B/S groups. From the time database, create an average lap time for that day for each car.

Within a category, determine the median time.

If an average lap is more than 1 second faster than the median, reduce power by 1% for the next day. If the power was reduced the previous day, increase the weight by 1%.

If an average lap is more than 1 second slower than the median, increase power by 1%. If the power was increased the previous day, decrease the weight by 1%.

Done. It doesn't solve anything immediately, but letting this run will keep everything in check.



In the above system, popularity won't make a difference. If a car doesn't get used, there's no change. If the global average is not great than 1 second, nothing will change. The only way it could affect it is if all the best drivers on the planet chose the same car while, at the same time, all the lesser people chose a different car.

When you take 10000 lap times and average them out, the alien outlier times will become far less meaningful and what you are left with is a consistent disparity.

And, even if popularity affects the times and a car gets unnecessarily nerfed, people will gravitate toward other cars to go faster and those nerfed cars will eventually be restored.

This is an eloquent summary of what I meant in my initial post. Thank you!
 
This is an eloquent summary of what I meant in my initial post. Thank you!

And it’s completly arbitrary. It doesn’t take ratio between lap times and values changed into consideration for example.
The value of 1 second is also not compared against anything. It’s just one more magic number. This can change things, but you can’t predict how this is gonna affect anything in a meaningful way. The values could be chamging because the own algorithm is making them wrong in the first place. Another thing, discarding laptimes from C and lower ranks is not a viable option. Most certainly, they make up for the majority of players, so the BoP should be considering them too.
 
Last one, I swear!

I’m not saying it’s impossible! Im saying: we shouldn’t say other people’s jobs are easy. They are not! And it was just a joke. Like: if you think it’s easy, you must make a lot of money, because really complex stuff is easy to you.
About the data, yes, it’s there. Getting millions of rows from different tables in, maybe, different data sources, aggregating them in a way it makes sense, then doing whatever magic math and updating BoP... that’s not easy.

For one thing, there aren't millions of rows to deal with, total online players each day is probably in the 1,000s or 10,000s. They likely set quali times for only a small number of cars each, on average. And even if there were millions, we're only selecting (to try and get the 'useful' part of the data for this purpose) and then averaging times. We've stated that, and it has simple linear complexity (that's not a comment on anybody's job; it's a technical fact). Any point after that, we're only handling a single average time per car - so a couple of hundred values - and the suggested math to be performed each day is trivial (again, in the technical sense). The goal is for most of the cars to have mostly similar lap times over most of the tracks, so the idea in our solutions is to measure that, adjust a little, and repeat. As said before, the 'magic numbers' only control how quickly the BoP gets adjusted - too fast and cars could oscillate between meta and hopeless, too slow and metas will stick around too long.

All this wouldn't preclude PD from stepping in and adjusting some, or even all, BoP manually. Say they thought a particular car might be more interesting with a bit more weight and more power, they could change that. It might even be that weight gets set manually and only power is automatically adjusted. Point is, it's not all or nothing.

I'm on completely the other side of the argument regarding collision penalties - that's tough for humans to do, let alone code. When it's code, players learn to game it, in ways that would be obvious to a human judge. From my races (at B-S), it's been a pleasant surprise when PD's algorithms blame the right person, rather than the norm. Perhaps what we have now is because people said things like "Surely it could at least detect rear-ending shunts".

tl;dr - again, we're not saying other people's jobs are easy, at all. We are saying that we think BoP could be successfully adjusted by a fairly simple algorithm.

Another thing, discarding laptimes from C and lower ranks is not a viable option. Most certainly, they make up for the majority of players, so the BoP should be considering them too.

Why? The goal is to balance the cars, not the drivers. Making some selection from the pool is somewhat arbitrary, but it shouldn't include times that are far away from what a decent driver can manage with it, because then that's more the driver than the car.

If a car is never used, it doesn't get an adjustment.

I'd be tempted to boost them a bit, assuming that they are thought of as hopeless. If they become OP and over-used, then at least the algorithm would be getting fed data to correct them back.
 
Last edited:
He is right.

Here's an example of what we mean and the goal of this (hopefully not wistful idea)

I am currently 4 seconds faster in the gr4 Scirocco compared to the gr4 Lexus onLago Maggiore. I would wager that I am not alone and the lap time gap will be more or less the same for everyone between those two cars. The actual lap times are irrelevant. It's the gap that's important.

Somewhere in the middle, there will be a car that is a couple seconds faster than the Lexus and a couple seconds slower than the Scirocco (it's probably the Corvette or something, I haven't tested, but it's irrelevant right now). That car and it's average across all drivers is the median.

If this algorithm ran tonight, the Scirocco would lose 4hp tonight and the Lexus would gain 4hp (rounded 1% of power). That will help level things, but it won't change the world. Tomorrow night, the algorithm runs again. And on, and on, and on.

And yes, if a car is not used, I would bump it because it's likely not being used because it sucks....like the Lexus.
 

Latest Posts

Back