How do I track scores and matchmaking for Multiplayer rooms.

0 favourites
  • 3 posts
From the Asset Store
Weather Wind Sounds - Mountains contains 10 tracks (3 tracks and 7 seamless loops)
  • Currently working on a multiplayer game.

    When people join a game i would to try having people of similar skill level to get matched for games. Current status of the game is that anyone can join the a room. (max 4 players)

    Any pointers on the logic behind matchmaking? What stats would be good to track to determine player skill level? Kill/Death Ratio? Score? Number of games Games played? or a combination of those?

    I guess i would also need to store this data somewhere. Any good suggestions where to save these kind of stats, scores? Locally or on some Server? Highscore board?

    I'm not in a hurry to add this functionality since it could be added later. It won't make or break the game, but would be good to investigate at an early point since it probably have to be implemented at some point, because i don't want to ruin the experience of newbies, getting their a** handed to them on their first try.

    Maybe a solution where number of games played is tracked? 0-10 Games played - you would only join newbie rooms.

    10+ games played - you would join regular rooms?

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Matching is generally done based on experience.

    As to logic, for my suggestion, simply add to experience for various actions, such as kills.

    As to implementation, whether based on games played or experience, you could have the host set a room name, involving his games played amount, or experience level.

    Like, host creates a room called: "deathmatch-10" (set room name: "deathmath-"&user.experience)

    when sorting the room lists, you can check the value of the experience level ( int(tokenat(roomname,1,"-")) )

    Then you can see the games host experience level before joining .... from there you can either directly allow if your level is higher or equal, or have a range allowed (host level + or - 5)

  • Thanks for the info.

    I figured I'm gonna track some things like kills anyway, and have some kind of scoring system for a Leaderboard. I still want to have a little bit of a randomness to who you encounter, so I was thinking of having a newbie zone for people that have not passed a certain score. You could gain bonus scores from various things, (not only kills) surviving a complete round without deaths for instance (even if you don't kill anyone) So i was thinking somewhere in line of:

    Score = 0-500 (for example) (Newbie room) You will always play against other people with scores in these areas.

    Score above 500 (Regular rooms) You could get matched with anyone, by this time you got the hang of it.

    I just want the first 5-10 matches to be with other "new" people...

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)