A better default player order algorithm

Suggestions & ideas / Suggestions & idées
Post Reply
awfullbored
Posts: 2
Joined: 18 November 2021, 04:51

A better default player order algorithm

Post by awfullbored »

In a thread 4 years ago sourisdudesert said:
If you suggest me a rotation method that works for all games, whatever the number of players is, I'm more than willing to implement it
Challenge accepted!

tl;dr: Guarantee that the first player will be different than the previous game. Randomize everything else.

----

In the same thread, sourisdudesert summarized the current situation:
At now the method is:
_ last player to play in the previous matchs is now 1st to play
_ all remaining players are playing afterwards in same order.

So with 3 players:
ABC => CAB => BCA

With 4 players:
ABCD => DABC => CDAB => BCDA
  • This works very nicely for two-player games, because friends alternate initiative.
  • For many other games, this is frustrating for some, where they very consistently have to follow after one particular player who may have a play style that vastly affects their neighbor. Yes, everyone gets an equal number games as the first player, but most (good) 3+ player games are not nearly as affected by this as they are by relative order.
  • And then, for games with simultaneous action selection, like 7 Wonders, this has no upside at all, which was acknowledged pretty early on when that game was the first to be excluded
----

An improvement on this would meet these criteria:
  • per sourisdudesert: "works for all games, whatever the number of players is", so that it can be cleanly implemented and easily explained
  • it would alternate the first player turns of 2 player games, which was the original and very popular reason for this work
  • it would not have Player Y follow Player X in game after game after game
So again, getting back to my proposal:

1. pick a random first player out of the set of players that were not first in the previous game.
2. shuffle the order of everyone else, including the previous first player.

Pseudocode:

Code: Select all

order = [A, B, C, D]           // inherited from previous game
previous_p1 = order.popleft()  // order = [B, C, D], previous_p1 = A
shuffle(order)                 // order = [D, B, C]
new_p1 = order.pop()           // order = [D, B], new_p1 = C
order.append(previous_p1)      // order = [D, B, A]
shuffle(order)                 // order = [B, A, D]
order.appendleft(new_p1)       // order = [C, B, A, D]
It's true that this does not guarantee that in a given, e.g., 20 4-player rematches, that each of those four players starts exactly 5 games. All that it says is that the first player will alternate. But, that feels like a better trade-off than the current situation, where those four players _always_ play immediately after one and only one of their opponents, game after game.
User avatar
Meeplelowda
Posts: 3837
Joined: 14 March 2020, 10:31

Re: A better default player order algorithm

Post by Meeplelowda »

This should be formally submitted as a site suggestion so it can be voted on.
Play Now lobby 4ever! https://boardgamearena.com/lobby
User avatar
Silene
Posts: 980
Joined: 23 October 2013, 17:50

Re: A better default player order algorithm

Post by Silene »

I doubt he's willing to implement it anymore ;)
Check out the Allround-League: https://boardgamearena.com/group?id=7870115 --> a league where you have matches of random games vs. other players in your group. Season 9 registration oct. '25.
awfullbored
Posts: 2
Joined: 18 November 2021, 04:51

Re: A better default player order algorithm

Post by awfullbored »

Meeplelowda wrote: 09 January 2024, 00:40 This should be formally submitted as a site suggestion so it can be voted on.
Good point! I just submitted here: https://boardgamearena.com/bug?id=110152
Post Reply

Return to “Suggestions”