If there are 4 players:
games_per_round = sqrt(players) = 2
players_per_game = sqrt(players) = 2
rounds = sqrt(players) + 1 = 3
Round 1: Game 1 - {1,2} / Game 2 - {3,4}
Round 2: Game 1 - {1,3} / Game 2 - {2,4}
Round 3: Game 1 - {1,4} / Game 2 - {2,3}
Each player has played in a game with every other player, but only once
If there are 16 players:
games_per_round = sqrt(players) = 4
players_per_game = sqrt(players) = 4
rounds = sqrt(players) + 1 = 5
Round 1: {1,11,5,15} / {6,13,4,7} / {3,14,12,9} / {10,8,16,2}
Round 2: {11,7,9,16} / {5,6,12,8} / {1,4,14,10} / {3,13,2,15}
Round 3: {7,14,15,8} / {4,9,5,2} / {13,12,10,11} / {16,6,1,3}
Round 4: {11,6,2,14} / {9,1,8,13} / {3,5,7,10} / {16,15,12,4}
Round 5: {15,9,10,6} / {1,12,2,7} / {8,11,3,4} / {5,14,16,13}
If there are 36 players:
games_per_round = sqrt(players) = 6
players_per_game = sqrt(players) = 6
rounds = sqrt(players) + 1 = 7
I can set up about 4/5 rounds, but then keep getting the situation where player A hasn't played in a group with player B, but player B has played against too many other players that player A has already played against to put them together in a group of 6.