[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pbmserv-dev] tournaments



Dear developers,

I'm going to try and implement a tournament system (10 player round
robins seeded by rating, see previous email below). I propose doing
the following:

Add the following commands (in game.cpp):

game tournament tourny-number userid passwd add
  sign up for tournament. Server will send you an approximate date
  for when the next tournament will start and list of currently signed up
  players
game tournament tourny-number userid passwd delete
  take your name off the list of signed-up players.
game tournament list
  date of upcoming tournaments for this game (for now only one type).
game tournament tourny_number results
  table of (old or current) results
game tournament start
  check that it is time to start.
  if so, start it. For now only one type of tournament but maybe later
  other types could be added.

Need a script (running once a week/once a day?) to
1) Send broadcast two and one week before start. Reminder to sign up.
2) When it is time to start send start command as above.

Need the following files:
1) Tournaments scheduling file:
  game, date, and type of upcoming tournaments (one file for all games,
  probably in /etc directory)
2) For each game and each tournament a tournament file:
  called .tournament_n? in game directory?
  List of pools.
  For each pool a list of players and a list of games.
  For each game, who was playing and what the current results are:
    not done, player 1 won, player 2 won or draw.
  For tournaments with multiple rounds pools get added as results of previous
  pools become known.
  Before the tournament starts this file just contains a list of signed-up
  players.

Note that nothing needs to be done when a game ends (no checking
whether it is part of a tournament or not), all work is done by the
"result" command above. It reads the corresponding tournament file. If
all games are done it is easy and fast to compute results. If it isn't
done then read the game.list file in /etc to see if new results are
available. If so update tournament file (and compute results). (If
.list file doesn't know about a result it means the game has been
moved to archive and "result" hasn't been called in a *long* time)

The only problem is games resigned or forfeited on first move. These
don't count for ratings and aren't archived but must count in
tournament results. Possible solution is for the .list file to keep
track of these games. It doesn't currently.

When all this is working a web interface can be added.

Comments? Potential problems?

Paul aka fritzd



My own ideas on a tournament system:

1) One should be able to play in a tournament without ever using the web.
After all it is a pbem server!
2) I like the Little Golem championships, but I don't like the fact that
you have to play in every tournament to stay in the top division. I think
we should have championship like tournaments, that is 10 player round
robins, but the divisions should be decided purely on (established?)
ratings (of the players that sign up). That would also simplify, actually
eliminate, the demotion and promotion decisions.
3) I think they should be scheduled only twice a year. But different games
starting at different times. This would encourage people to play more
types of games. It would also make winning a tournament more "valuable".
4) There should certainly also be a web interface for signing up and most
importantly there should be a "permanent" record of who won what and when.
Again that would make it valuable to win a tournament.
5) I think it should be fairly easy to implement the above scheme.