A clean lobby is a must for viable multiplayer community. I would like to suggest a clean, uncluttered, adjustable font lobby with ignore, banned, friendlist and chat features. I elaborate:
1. COMMON GAMES PANE
1.1 GAME LIST all games listed in this pane (game matchmaker server maintains a list of created and on going games and broadcast it to every clients each time a game change states; client may need to receive the updated info, not every thing to limit the bandwidth. Even so, the game list wouldn't be enormous, full broadcast isn't a bad idea);
1.2 FILTER filter feature may limit the games displayed on the common games pane (clients has filter and display only the interested games. Common filterable parameters are: game status (waiting to fill up, started, finishing); number of players; money per player; lag, etc. This could be implemented entirely on clientside. Since clients has nothing to do in lobby except chatting, CPU on client side isn't a problem);
1.3 SORT sort feature may sort the games according to parameters. (Again, this is entirely clientside implementation).
1.4 LIMIT filter feature may limit what kind of parameter to display. A parameter that is interesting to have is "who host the game and who are currently in the game". (The game server already has that information, when a client click join a game) A client may display for example "Name of game, host, who joined". (Again, this is entirely a clientside implementation, as long as the game server has the relevant parameters and broadcast along to the clients).
2. PLAYERS PANE
Similar to games pane in implementation:
2.1 LIST All players are listed in this pane.
2.2 FILTER filter feature may limit the list. Useful filter parameter: name prefix (to include/exclude clans), in or out of friend list, in or out of ban list; in or out of game, etc.)
2.3 SORT sort feature will prioritize the players in list
3. CHAT PANES
Chat panes implementation is strictly client side. Technically, all chat snippets are broadcasted: client->server->all clients. Clients filter and display chat in separate "windows".
3.1 COMMON CHAT PANE
everyone has this chat pane. Presses "Enter" will start text message to send to this chat pane. It will limit the display to the last few lines, but the history is scrollable, savable.
3.2 PRIVATE/CONFERENCE CHAT PANES
Must allow people to select names and start a conference.
3.3 ALL CHAT PANES ARE COLLAPSIBLE
Chat panes, including Common Chat, are collapsible to display only a tab which flashes if the pane has new messages.
4. PREGAME CHAT
When a player join a game, the game list is replaced by current game parameters (such as who take which color, etc.) All other feature stay the same, with the addition of two default chat panes. Players can still chat to outside players, to common chat, etc. all existing panes before the player join the game stays the same. The two new panes are: Conference to current players in game, and conference to allies in game.
When player join a game, they may still want to finish up current convo in existing conferences.
5. FRIEND LIST
Friendlist is strictly clientside. Friendlist is crucial to have effective ignore/mute and ban features.
5.1 CLANS: First circle of friends are people in my clan. This list could be used to filter display of players and sort it so that the first circle of friends is always displayed on top of the player list. For people who don't join clans, it is still possible to use this to denote closest friends. You can conference to these people at a click of a menu. When you ask someone to be in that circle, they must also mutually agree too.
5.2 FRIENDS/ALLIES: Second circle of friends are those who are not in the first circle, but are special or notable, so you may want to see next on friendlist. You can add someone to your friendlist but they don't have to add you to their friend list.
5.3 IGNORE/MUTE: these people you don't want to see their chat.
5.4 BAN: these people you don't want to join your games.
5.5 Send IGNORE/MUTE/BAN lists to clanies or friends. They may merge their list to yours to make a more comprehensive policing of the community. They may decline your offer. With this, hope is that there is no need for Mr. ChatMonitor. (Caveat: needs to make sure worm/virus cannot be propagate this way. It is similar to a chat text save in a way).
All this is done again strictly on client-side. The server needs only to pass on the messages.
6. PRESENTATION: Please abandon presentation of arcade games of old, with garish background, unreadable/overside fonts, etc.
6.1 FONT: Normal sans-serif font is good. Size must be compatible to what their monitor can display. It is a waste to have a good graphic card (necessary to play the game) which can display 1600x1024, a matching monitor, but the lobby can only display 80 characters across with busy background that hurts the eye (yes, I single out R:TW yellow on red theme as particularly bad). Better yet, let player choose font type, font size and background!
6.2 MENU: Menu across the top of the display may be useful (such as setting filter parameters, etc.)
6.3 FRIEND LIST MANAGEMENT. Facilitate add/remove/merge lists. Since friendlist is a text file anyway, a way to edit it.
For the love of the game, am I asking too much?
Annie
Bookmarks