Opened 13 years ago

Closed 10 years ago

#700 closed defect (fixed)

Multiplayer - Server should better handle player assignments

Reported by: historic_bruno Owned by:
Priority: Should Have Milestone: Alpha 16
Component: Core engine Keywords:
Cc: Patch:

Description

Currently, in multiplayer games it is possible that more players may join a game than there are slots available, a player may be unassigned by the host, or the map can be changed to one with fewer slots resulting in same. If a game is started with unassigned players, they will appear to load but mostly fail because the game data has not be initialized for them.

Here's some suggestions to handle these and related issues:

  • When a game is started, have the server disconnect unassigned players. They should of course receive an appropriate message like "Unfortunately, available slots for this game have been filled. You have been disconnected..."
  • Alternately, don't allow the game to start until all connected players are assigned. This causes an issue if there are more connected players than slots, a player is unresponsive or disruptive, etc.
  • Allow unassigned players to become observers. They enter a special observer mode instead of a normal session, and are able to see game play but not interact. If implemented this should be an option enabled at the host's discretion.
  • Allow host to set maximum connections
  • Give host a way to "kick" players out of the game - this would ideally be integrated with some type of lobby system to support kicking and banning, but even with a simple direct connect game it would be handy in some circumstances. It would require a GUI list of connected players, possibly in a new dialog.

Change History (3)

comment:1 by historic_bruno, 11 years ago

#1926 was a report of this problem

comment:2 by Stan, 10 years ago

Keywords: unanswered added

comment:3 by Josh, 10 years ago

Keywords: unanswered multiplayer network server removed
Milestone: BacklogAlpha 16
Resolution: fixed
Status: newclosed

Fixed in r14221, r14849, and r15171.

Note: See TracTickets for help on using tickets.