tournament-js / tournament

A tournament base class for static tournament types
MIT License
64 stars 13 forks source link

dynamic tournaments #14

Closed clux closed 10 years ago

clux commented 11 years ago

At the moment all tournaments are static, in the sense that all matches are pre-created an there is not really any room for adding matches to the match list as the tournament progresses because of assumptions we have based tournament on, and this is fine.

TieBreaker add this kind of dynamic behaviour of having new matches suddenly introduced by setting a freezing point, then forwarding to it.

However, this is actually a lot more common than previously anticipated. Example FFA without the arfiticial scoring limit need tiebreakers at each round: https://github.com/clux/ffa/issues/1

Thus, what we really need is a dynamic tournament, that can have freezing points, but really encapsulate some of this progression to a new stage logic. Initially we can have a dynamic FFA tournament type that features this, creates tiebreakers automatically after each round, then forwards the winners of the tiebreaker to a new ffa round based on advancers / sizes parameters. Essentially, the API would be unchanged, except for the addition of the freezing points.

This would only really necessitate an extra id parameter short for "stage" so that ALL these dynamic matches can be bunched into one "giant" array. Obviously, we also need a module to actually treat these types of tournaments differently by not expecting the matches array to stay static.

clux commented 10 years ago

tourney takes care of these things now - although it is still a bit experimental. Example implementations of ffa with tiebreakers and groupstage with tiebreakers exist. Will add a link in README then close this.