Toribash
Prev Previous Post   Next Post Next
Original Post
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.
tell me about aikido
~referencing Dark Souls in suicidal threads since 13/01/15