matchmaking brainstorming
okay here goes matchmaking system i came up with just because why the fuck not
matchmaking table, which is used to find apropriate matches
id | playerStatus | nick | ELO_player | time
1 | LookingFor | rapist | 1605 | 13:58
2 | LookingFor | child | 1600 | 14:00
3 | Ranking | scrub | 1650 | 13:58
4 | Finished | noob | 1500 | 14:00
"there could just be an option to matchmake and an option to go to server browser. This way, the tourneys can still exist and be ranked. All matchmaking will be executed in official competitive mods that can be chosen as a filter."(c) Bercat
how? by adding new column with mod player selected and adding one more filter for mod selected
anyway table explanation:
playerStatus is a value that dictates the state of player, if he is looking for match or not
can be 3 values:
LookingFor - means player is looking for match
Ranking - means player is playing ranked match
Finished - means player finished his match or his search for match
this thing is called fl0w chart
okay, so whats going on here?
1) player click multiplayer, he is given option to go ranked or not. if he goes unranked he goes to server browser and just plays as usual
2) player select to play ranked, matchmaking is initialized
3) checking if the player have an entry in matchmaking table ( played ranked match before ) if he didn't, new entry created and neutral ELO is set, if entry exist, continue
4) playerStatus in player's matchmaking entry is changed to
LookingFor,
ELO_player is retrieved from database and added to entry, current
timestamp added
5) checking entries in matchmaking table if there are other players
LookingFor, if not found, ask to cancel search, change playerStatus to
Finished to exclude his entry from search,
if not, wait and check again
6) if players are found, compare ELO, by making and interval of
ELO_player +/- 10,
filter entries in matchmaking table
that fit the interval, if not found, return to cycle and add +/-10 more, each time untill opponents are found
7) from players found select the one with
oldest timestamp why? the key priority is speed of matchmaking, therefor it's a deciding criteria
8.) set both players playerStatus to
Ranking to exclude their entries from search
9)
actual gameplay, can be first to 3 session or just one game, after match is resolved, update each players
ELO_player and set their playerStatus to
Finished
10) start looking for another opponent
Last edited by snake; Aug 6, 2015 at 02:25 AM.