Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rank based speed limiter for catch-up #438

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

complyue
Copy link
Contributor

@complyue complyue commented May 2, 2024

This PR experiments with an alternative catch-up mechanic, instead of limiting AIs with configured ratio when they are ahead of a player, the speed-limiting ratio is changed to be rank-based. Specifically, for each 2 vehicles, the aheader is currently limited with 1.0 - ddiff/distancePerLap of the behinder's limit (the last one has that be 1.0), where ddiff is distance between the aheader and the behinder.

The effect is that who leads the race will be the most limited in speed, thus behinders are always give the chance to catch up.

Lap records will be badly affected though, may rendering the record time unfair to compare. Otherwise, I think there's more added fun, as you'll be very unlikely to race alone - either winning alone or failing alone, you tend to keep fighting/competing the other vehicles, all the way during the racing course.

@complyue
Copy link
Contributor Author

complyue commented May 2, 2024

#437 is an earlier attempt, which I feel less effective after played a while.

@complyue
Copy link
Contributor Author

complyue commented May 3, 2024

update:

  • speed limiter only within 1 lap, if one vehicle managed to over run its immediate behinder for more than one lap, it'll be unlimited (given 1.0 limiter), all the vehicles ahead of it will be benefited too
  • added a GP param for extreme limiter, currently being 0.5

@agateau
Copy link
Owner

agateau commented May 11, 2024

(Copying my #437 reply here)

I can see how this can make races more challenging for good players, but this change has the side-effect of making the 1st vehicle slower. This is a problem for players who try to beat their record times. What do you think?

@complyue
Copy link
Contributor Author

complyue commented May 12, 2024

This is a problem for players who try to beat their record times.

I'd also suppose this is a negative effect, off the top of my head, just brain-storming, maybe hardcore racing (only record time matters, no boosting, no bonus weapon) and fight racing (for fun and stunt, no time measured) can branch into 2 separate modes, tho that'll be lots of work.

along this line of thoughts, after more play with the game as well as the code base, I tend to believe that libgdx's physics as leveraged currently, is insufficient to implement ideal hardcore racing experience, I'd expect nonlinear control criteria wrt drifting at different speeds & speed-angles, the vehicle should loss control somehow under casual steering/acceleration ops at high speed, and abs/tcs/ayc should not assume perfectly there with a simplified physical model, also handbrake input might be necessary for the player to actively disable those stabilization mechanisms for tricky drifting as a master driver.

i'm tempted to develop an alt physics, but if only succeeded, that'll be a different game, maybe attracting different crowds of players. for record-time-beating players, hardcore mode, or maybe even a spin-off PixelDrifts game should be more enjoyable? are you willing to refactor the code base to foster 2 distinct physics (and maybe one more set of input ui with dedicated acceleration / handbrake btns too)?

i'd suppose the alt physics does not necessarily be real-world physics based, it'll be sufficient by just enabling sophisticated handling techniques, e.g. chaotic response with control-losing effects.


btw, i found that to win the racing with current game play, most effective technique is managing for other vehicles to bump you from behind, so as to take their momentum, and avoiding the opposing at the same time, while taking as much as boosting there. i feel less hardcore that is, collision should do more negative effects at most angles, high outcome induce high risks, you either manage with precise attacking angles or avoid collisions altogether.

@agateau agateau mentioned this pull request May 13, 2024
@agateau
Copy link
Owner

agateau commented May 15, 2024

I would like to avoid opening the Pandora box of developing a whole new physic engine. I have already opened too many Pandora boxes, with relative success.

My goal for this year is to release Pixel Wheels 1.0.0 and be done with it. I have been working on this game for too many years. When I see a copyright header from 2017 I am embarrassed it's not done yet.

btw, i found that to win the racing with current game play, most effective technique is managing for other vehicles to bump you from behind, so as to take their momentum, and avoiding the opposing at the same time

Ahah, nice trick!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants