-
Notifications
You must be signed in to change notification settings - Fork 92
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
Weighted Slotting #366
Weighted Slotting #366
Conversation
Want to confirm the database stuff is sound before letting this touch the servers. |
multi-tiered new player bonus, delayed streak bonus
don't try to assign players that have no wanted jobs
moves the weighted shuffle to the list generation
move the weighted shuffling logic into a separate, more robust proc
want to make sure everything is solid before letting it touch the DB
its not going to blow anything up
was shuffling the wrong list
ensure a client (and prefs) exist before adding to list
was already filtering to new_players so use the list for it, also expand single letter var M to player
just a little criticism the new player weighting is great, since it allows new players to get into PVE further by getting their hours in while the streaks of not playing 10 rounds in a row is painful, its also just as bad as playing one round and coming back in a week only to have 10 more people with 2+ roll weight because they didnt get picked four times in the day before (theres also the concern of multikeying/making an alt for the +2 weight but thats a non-issue since the PVE community isnt that bad) |
Thank you for your feedback. Weighted slotting isn't perfect and can't possibly be perfect, but its trying its best to bring a little fairness to a random system.
People who are late or miss the operation entirely are already disadvantaged -- you cannot get slotted if you're not there to be slotted. That's not the kind of "missed slot" that weighting can do anything for or against. Not being there for roundstart is going to have the same outcome.
I agree that missing 10 rounds in a row would suck, and only getting to play once a week and missing the roll would also suck. But a more appropriate comparison would be missing that weekly roll 10 weeks in a row -- that would really, really suck. These streaks of missing rounds is what the system is intended to prevent.
If someone were to multikey and somehow not be detected, they already have an advantage of getting two random chances to be in the round. The weighting system is tracked per-ckey and would not change that. "Fairness" is a nebulous concept. What form it takes and how it's measured has many, many potential answers. I won't pretend that this is the answer. Its simply an answer that is workable, implementable, and measurable with the tools available. Should people who aren't there for roundstart be favored? By how much? Which roundstarts count, such as a test session vs "real" round? How are they determined? What about rounds with different slot counts (FORECON vs Blackstone)? Do they count more, less, the same? Is that more or less fair to the person who is there at roundstart? |
removed unnecessary assignment logging, added more useful ones
About the pull request
The order in which players pass through the roundstart slotting system is now weighted.
All players have a base weight of 1.
New players under 2 hours human playtime get +2 weight, 2-5 hours get +1 weight.
Each round after the first two a player fails to get a slot, cumulative +1 weight. Resets to 0 upon getting a slot.
Players are still picked randomly, with higher weights having a higher chance to be picked.
Explain why it's good for the game
Right now, on average, every player has an equal opportunity to be picked. But it doesn't feel fair when you're on a 10+ round streak of not being picked.
With this change, on average, every player will still be picked the same amount of times as before. But those rounds you get to play should be distributed more evenly, so you don't hit a 10+ round dry spell.
Testing Photographs and Procedure
Screenshots & Videos
Put screenshots and videos here with an empty line between the screenshots and the
<details>
tags.Changelog
🆑
code: changed slotting - new players and players that got skipped previous rounds have a higher chance to get a slot
/:cl: