WandererXII / lishogi

☗ lishogi.org: the forever free, adless and open source shogi server forked from lichess.org ☗
https://lishogi.org
GNU Affero General Public License v3.0
272 stars 41 forks source link

Round-robin tournaments (arranged matches) #849

Open DiptaRising opened 4 months ago

DiptaRising commented 4 months ago

We have been discussing in our server on why it is so difficult to play tournaments in lishogi and we came to the conclusion that if we had the option of creating tournaments in the style they are found in 81dojo, that is, a simple table with the matches to be played, and the players themselves have a period of time to play said game and the result is registered in the table as well.

I am not 100% aware of how they work but I think tournament organizer has the power to arrange the participants in a different order so to match some people intentionally.

Why would this be good?

Many times we want to play tournaments but there is only 1-2 people in the tournament, and they are in pause; only some very big yearly tournaments gather 10-25 people.

Part of the problem is that we are few, or we are not used to find people on lishogi, or that we don't live in the same part of the world and have different timezones.

If we had the possibility of prearranged tournaments 81dojo-like when there is that period to play the game, such obstacles would be easily overcome.

Regular tournaments may still exist of course, but the versatility and activity that such new feature would bring would be very good for the site.

What do you think? Can we make it happen?

Thanks so much!!

ddugovic commented 4 months ago

I initially have thoughts about this:

  1. I imagine there must be a simpler solution to develop and to use, even if that solution requires new development.
  2. I am curious what solutions the Lichess team might come up with, if posed a similar question.
  3. I think #821 might help although perhaps I'm missing something.
  4. I am curious about possible addition of ladder standings to the lobby pairing buttons (like Yahoo! Games had, or like US Chess Live had) so there could be something like a permanent ongoing tournament in the lobby with players trying to dethrone the 3-minute champion, 5-minute champion, etc.
PraseodymiumSpike commented 4 months ago

I would like to add that multiple people on the Shogi Harbour server have stated that the lack of this feature is a sticking point for them.

LilyLionmane commented 4 months ago

This was discussed by a number of prolific players and community members in heavy detail via Discord. The idea is universally favored.

WandererXII commented 4 months ago

I really like this - definitely something I would like to add. It might solve the mostly empty tournaments we have. I was planning several more changes to tournaments already, like correspondence tournaments or different pairing systems, but I will try to do this before that, or together if it goes well.

Rough draft of specifics/things to specify:

  1. I am curious about possible addition of ladder standings to the lobby pairing buttons (like Yahoo! Games had, or like US Chess Live had) so there could be something like a permanent ongoing tournament in the lobby with players trying to dethrone the 3-minute champion, 5-minute champion, etc.

Sounds interesting. Maybe it's better to start a new issue about ladder tournaments. By this you mean players starting at the bottom of the 'ladder' and being able to challenge only the player above them in order to climb?

ddugovic commented 4 months ago

I apologize for taking an unpopular perspective here, but the existing Arena format has an advantage of allowing players to play as many games as they have time for within the tournament period. Tournaments without rounds are an interesting idea, but formats with rounds (where pairings are decided by players being online at the same time) doesn't solve the problem of players not being online at the same time.

On 81Dojo, the most popular tournament format is round-robin, so pairings are decided without requiring players to be online (and without any particular sequencing of games, which OTB I've seen cause delays when subsets of players have all played each other).

Lidraughts partially solves the no-pairing problem by allowing BOT accounts to join tournaments.

PlayStrategy partially solves the no-pairing problem by automatically forcing BOT accounts to join poorly attended tournaments.

Another possible solution might involve awarding tournament points for players to simply stick around waiting for games, although there is an obvious abuse vector (that once you have enough points, withdraw instead of playing future games).

I'm not particularly attached to the "ladder" idea (or "champion-challenger" idea) and am willing to create a separate issue for it. I think regardless of whatever the challenge rules would be, it would be successful.

WandererXII commented 4 months ago

I apologize for taking an unpopular perspective here, but the existing Arena format has an advantage of allowing players to play as many games as they have time for within the tournament period. Tournaments without rounds are an interesting idea, but formats with rounds (where pairings are decided by players being online at the same time) doesn't solve the problem of players not being online at the same time.

Two things are getting mixed together here - tournaments with arranged matches and solving tournament having little to no players. I just mentioned "It might solve the mostly empty tournaments we have." because if the tournament is open for registration for several days and the actual tournament is not restricted to one specific time and lasts for days, more games are likely to happen. Some scheduled arena tournaments could be replaced with this format, it might be better than an arena tournament with two paused players.

ddugovic commented 4 months ago

Thanks. Earlier, I heard:

The format would be round based,

so I feared that we weren't talking about the 81Dojo tournament format (which does feature long-running round-robin events which lack scheduled/sequenced rounds).

WandererXII commented 4 months ago

Also there are gonna be timezone issues, people from different timezones register for the same tournament but they will never be able to agree on game time. So I think we should just ignore games that players were not able to arrange and not punish the players for not playing them, I believe this is how 81dojo does it?

What limit for number of players? Because I don't think it's reasonable to expect players to arrange and play hundred of games plus it would take too long for the tournament to finish, if we expect players to play all the opponents. Or we can just not care and let players play what they can... That's what I'm leaning towards right now.

When I have a working example (which might take a while, because I'm working on adding more puzzles and starting to focus on the app) I will post the exact implementation details here.

ddugovic commented 4 months ago

Here is an example 81Dojo tournament: wins are worth 3 points, draw 2 points (I think?), losses 1 point. Each pair of players can play at most 1 match (I forget if 81Dojo supports double round-robin in which case matches would be 2 games rather than 1 game): https://system.81dojo.com/en/tournaments/4693

WandererXII commented 1 month ago

Here's what I have so far, I've hidden previous replies for now so this is more visible on top. page-table

I added new tournament format 'Round-robin'. Currently implemented like this:

  1. Players join tournament (joining allowed by default even after tournament starts)
  2. Players can arrange time when they want to play between each other
  3. To start a game, both players need to be present and click 'Start game' (doesn't require previous agreement, can be pressed anytime)
  4. After game is finished 3 points are awarded for win, 2 for draw and 1 for loss.

Peek 2024-10-11 01-14

Other features of Round-robin:

Still want to change the layout, no point reserving the right side for a featured game, when most of the time it would be an inactive game, might move the 'Recently played games' there. Not too sure about point 3, seems kinda clunky... This is first draft kinda, so If you have anything to add/ask please do.