Hmm. So the smallest amount of memory you could use to remember with 100% granularity (i.e. no groups) is 1 bit per player pair, so for N players this is 1/2N(N-1). For example for 1000 players this is 499500 bits, ~62K. This is not a lot of memory. For 10000 players it takes 6MB, which is much more.
You'd store this list centrally and assign a bit number to each player. To work out whether 2 players have met, you work out where in the list of integers is the correct bit to check.
If a player leaves the game, then you'd make that bit number free, and blank the necessary bits in the list.
This is less complicated than it might sound. Checking whether 2 players have met is very quick. It doesn't use ridiculous amounts of memory (well depending on your point of view).
|