Rumination on Tournament Systems

I’m pondering a revamp of OGS Tournament system.

I’m at the early stages of thinking about “so what really does this have to do”.

I have a goal of making it easy for third parties to supply “tournament rules” (I envision via an API).

The most basic question I have right now is “are tournaments always in rounds?”

Is a tournament fundamentally:

  • Pair players (according to rules)
    • Noting that players can be paired more than once, eg round robin)
  • Run games
  • Decide if it’s over (according to rules)
  • Decide who continues (according to rule), if not over
  • repeat.


Or are there some systems that just don’t fit this mould?


You absolutely must include arenas, like lichess have.

Tournament runs for a set time, say an hour, and you can join or leave or pause your participation as you wish throughout. System pairs initially by strength then by points as games finish new pairings are made in real time. Most points at the end of the timer wins.


I have no idea, but I’m here to support the spring cleaning mood. :lady_beetle:


LOL rats I knew there would be something to break (or warp) the mould. OK that’s one food for thought.


Interesting, how does that work?

It sounds like there is an incentive in winning quickly, so that you can go on to defeat another opponent, but that’s not really something you have control over.

Maybe fundamentally you want to take N players, have them play some number of games amongst themselves and return an overall winner.

If time isn’t an issue then round robin or double round robin (all play all makes sense), but then there’s variations on pairing procedures to cut down the games.

Otherwise time is going to be a factor, and you could guarantee an end at an exact time like these

or you do a different pairing mechanism to do a fraction of the games to determine a winner.

Again a time consideration could be proportional to the number of players entering - elimination might still involve a lot of games with enough players entering, maybe Swiss or something else could cut down on that.

One also might want to initially seed players in some pairing systems (elimination or mcmahon) if one is expecting some rank/rating disparity, or other reasons like some kind of qualification performance.

Some systems you might not just want a final winner, but also a standing in order to rank players relative to each other - so Swiss or round robin etc vs elimination style.

Sometimes one might even want a mix of a few formats - a group stage that leads into an elimination for instance.

I guess each of those things factor into what a tournament is - time constraints, pairing, number of participants, one winner or a standing of players.

1 Like
  1. Tournament starts. We run some tournament start code.
  2. A game ends. We run some “game end” code.

Right, we ever need to change anything when some game ends. We adjust points after a game ends, we run a new round after a game ends. Though sometimes rounds are started manually so this doesn’t quite work for all cases.


I mean in games like chess, it makes sense that you could checkmate and end the game and hence have control over it.

However more generally, presumably if your opponent also wants to win, they probably don’t want to waste time playing a losing game and could resign to pair up again also.

I’ve played amazons on in arenas (it’s a lichess fork); that’s also a territory game, and it more or less works fine.

Lichess and the forks presumably also have this feature to berserk to halve your time and remove increment (might suggest not removing increment for Go though) and getting bonus tournament points for a win like this. Also there’s bonus points for being on a win streak.

Some info from playstrategy - which added byo-yomi as a time control interestingly :slight_smile:

How are scores calculated?

A win has a base score of 2 points, a draw 1 point, and a loss is worth no points.
If you win two games consecutively you will start a double point streak, represented by a flame icon.
The following games will continue to be worth double points until you fail to win a game.
That is, a win will be worth 4 points, a draw 2 points, and a loss will still not award any points.

For example, two wins followed by a draw will be worth 6 points: 2 + 2 + (2 x 1)

Arena Berserk

When a player clicks the Berserk button at the beginning of the game, they lose half of their clock time, but the win is worth one extra tournament point.

Going Berserk in time controls with an increment also cancels the increment (1+2 is an exception, it gives 1+0).

Going Berserk in time controls which have byoyomi removes all byoyomi periods and any initial increment. The initial clock time is also halved unless either it’s less than 60 * increment, or less than 25 * byoyomi seconds. For example: 3|10 gives just 3 min game, whereas 10|10 gives 5 min game and 3+2|5 gives 1.5 min game.

Berserk is not available for games with zero initial time (0+1, 0+2, 0|10).

Berserk only grants an extra point if you play at least 7 moves in the game.

Agreed for Chess, but for Go I remain skeptical. It relies on the willingness of your opponent to resign, which is not a matter of skill on your part and seems highly dependent on luck.

But I may be wrong :slight_smile:

1 Like

Yeah I suppose the format should incentivise resigning to play more games, but that doesn’t mean someone won’t just play to the end for reasons.


Chess is a simpler and faster game by its nature.

But we have already similar-ish system. Ladders. If you got your challenges stuck on slow players it could take a year for you to advance.

For me personally, the big turn-off with ogs’s live tournaments is the uncertainty of when/if games will start. There is no way of knowing when the next round starts as it happens instantly after last game of previous round finishes, theres no way of knowing whether you actually get paired or get a bye*, or even if the person you’ll get paired with is still online and willing to play. And because you cannot know when your next game starts, you also cannot do any offline stuff while waiting.

I dont know how to solve those issues…

Arena format would reduce the time you need to keep waiting for the next round, but would that be just a glorified quickmatch finder? I really like the arena format in general, but usually its mostly suited for those people who really grind a ton of games and are able to play really fast (as someone who usually spends over an hour for 19x19 game, i would never win an arena style tournament XD)

Guess arena tourneys would be worth testing, my gut-feeling is that especially 9x9 arena might be really popular ^^

Or maybe pre-determined starting times for each round like with real-life tourneys, would make the waiting times longer but at least you could do other stuff while waiting for the next round? Tho i guess that could prolong the tourneys too much and destroy the extempore-nature of joining AST’s ://

I do love correspondence tourneys, but since multi-round corr tourneys usually take up literally years to finish, i understand that most users do not want to commit for such a long time. Often its the same hardcore corr players who join those, or who are able to keep playing years without timeouts xD

For those corr tourneys, its a shame that you’re unable to join back in case you lose one game by timeout, maybe there could be some ‘rejoin’ button which would allow you to get back and be paired for the next round?

*being the only one remaining in winners bracket on DE-tourney is an exception, then you’re only getting byes until theres just one left in losers bracket…


I’m currently in charge of handling some of the logistics of the national association in Costa Rica (in particular meetings and tournaments). In the past, I’ve also participated (as a player) in some online tournaments, like the now defunct Iberoamerican Tournament Online.

From what I could gather, one of the main obstacles that prevents organizations from simply porting their online tournaments to the OGS system has more to do with scheduling rather than format.

The way most of those tournaments work is as follows:

  1. Players are paired (usually by hand by the tournament director)
  2. Pairings are communicated through some official channel.
  3. There is a time limit (let’s say, one or two weeks) where the players must agree on a schedule for the match.
    3.a. (Usually there’s some contingency mechanism for when the players cannot agree on a date)
  4. The match is arranged by the players themselves. The result is linked back to the tournament director.
  5. If the tournament has several rounds, wash, rinse, repeat.

So, take for example this tournament. I had to squeeze OpenGotha dry in order to make it work. In this case, division into rounds didn’t make a lot of sense, but I simply put matches that had to be played at the same time into the same round. I also had to be present at the accorded time in order to start the matches which was very time consuming.

So, one proposed improvement could be the ability to set individual matches to start at a given date/time; this alone would really make the work load a lot easier. Ideally, I’d love a system where the players could coordinate an appropriate time for their match on their own, however, that’s a whole complicated problem that has no easy solution.

Besides the ones already mentioned, continuous tournament formats would be an exception.

For example, King of the Hill style tournaments (for which we alredy have Ladders). Also, arguably, League Tournaments, where whatever happens in the previous season has an effect on the current season, ad infinitum.

In summary, here is my wishlist. I hope you’ll be willing to consider some of these:

  • The ability to schedule the start of a game/round.
  • A return of the lost formats (Simultaneous Elimination, Double Round-Robin, League)
  • The ability to award badges for custom tournaments (just like with regular tournaments).
  • The ability to create tournaments with fixed starting positions, e.g. Sunjang Baduk.
  • An API would be great. Love it. Nothing to complain.

If there’s room for it in the design, it would also be beneficial to fit Ladders in to the tournament system as well. The current ladder system is limited, and would benefit from some improvements that have been suggested for tournament system:

  • configurability: alternative time settings, initial_state, game settings
  • potential open source architecture
1 Like

For the longer live tournaments like Leira is talking about maybe the games could be created ahead of time and start paused. So like in a real tournament, spectators could start showing up and chatting ahead of the game.

Then the players show up, someone unpauses, and the game begins.

1 Like

I’ve run an online live arena go tournament using OGS!

I had BadukClub handle the pairings and point system and just used OGS to create games and record results.

So I can personally attest that an arena style system does indeed work for go players. (Heck I even run in person arena tournaments)

Games were played at relatively fast speeds and players were able to join and leave the event as they pleased.


We actually have a feature like that which NAGF is using: a lobby where people can chat and get taken to the game when it starts.

The feature is API driven … I’m looking at how to “expose” it or make it more widely useful.

Never came across the word rumination before. It has several meanings:

  • the act of thinking carefully and for a long period about something
  • the act of bringing up food from the stomach and chewing it again
  • mental disorder

From the context I conclude it refers to the first meaning, although it might in a figurative way also refer to the second one. It certainly doesn’t refer to the third meaning.

Maybe Dutch translations of those meanings would be

  • (over)peinzen
  • herkauwen
  • piekeren
1 Like

Features that may be useful:

  • For live tournaments: for each pair of players, the organizer can setup the time T when their game starts (generally T is the same for each pair of players at a given round but not necessarily). The first player (generally Black, unless it’s a handicap game) has to make a move between T and T+15 minutes, otherwise he loses by forfeit. The other player has to enter the game room between T and T+15 minutes, otherwise he loses by forfeit. The clock starts to run just after the first player made a move.
  • Alternatively, the two players can agree privately on the time T inside an interval decided by the organizer (like between Jan 1st 0:00 and Jan 7th 23:59), the clock starts only if both players are in the game room and the first player has made a move.
  • Team tournaments: each team consists of a pool of at least n players. At each round, each team selects players 1,…,n from their pool. If team A is paired against team B then player 1 of team A is paired against player 1 of team B, etc. Team A wins the match if it has more victories than team B. In case n is even and both teams have the same number of victories, the winner is decided by board 1. At the end of the tournament, teams may be ordered according to MMS, then BP (board points), then sum of opponents’ MMS, then sum of opponents’ BP.

Enough rumination.