Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am implementing a before-match setup in following way:

  1. Users request a multiplayer match (click "New Game" button or similar)
  2. After enough users request the match – connection is established
  3. Users are then moved into Select level view
  4. On that view, there is "Become Master" button, which an user can use to become Master
  5. The Master has ability to select level to play
  6. After clicking "Become Master" – the users vote – simple popup appears "Accept User X becoming Master?"
  7. If > 50% agrees, user X becomes master.
  8. Master then selects level he wants. After 10 seconds, game starts – all users are moved to In-game view, to play selected level.

Question: I am wondering if I am not doing this too complicated? Shouldn't I randomly choose the master, or somehow make selection mechanism simpler?

share|improve this question
up vote 1 down vote accepted

There are several potential problems with your protocol: First, if several players want to become Master, there can be several polls, which might be annoying for some players. Second, and more important, if no player gets >50% of the votes, your protocol does not yield a Master at all.

I would suggest to give your players a couple of seconds to decide whether or not they want to be the Master. Then let them vote for any of the contenders. The player with the most votes becomes the Master. If there is a tie, I would recommend to choose a player randomly, but you can also have another poll as a tie-breaker.

share|improve this answer

Why not just have users vote on the level or other selectable options instead of the master?

Many times it might be hard to get over 50% of the players to vote on anything; so there may never be a master in most games.

What you should have is the ability to vote on a level and the level or options with the most votes will be played regardless of what percentage of votes have been cast.

If there is a tie then choose randomly between the tied options.

share|improve this answer
Voting on options seems to be more complex. With the master approach, whole level selection code is fully reused, and no other code is needed – if only Master is selected (to be precise, code needed is: a) sending selected level to players, b) sending and displaying current proposal – the 10 sec before match starts) – AllCoder Aug 26 '12 at 19:01
If you can write code to send a selected master player to users, display that, and get an answer back, then you have all the code you need to negotiate a level or any other option. There's no reason you'd need to rewrite all of that for every individual option. – Sean Middleditch Aug 26 '12 at 19:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.