Multiplayer Gaming Features
|
|
Real-time Player Matching |
The Manic Gaming service currently provides developers with three primary methods for matching players together in a real-time fashion (all players being matched must be online at the same time). These three methods are
Once the player matching process completes successfully, the Manic API will then proceed to join the matched players together in a peer-to-peer fashion.This matching method can be used to match random players together. It is essentially a first-in, first-matched solution. That is, the Manic service will match players together as soon as they are available in the order in which they become available to play.
The random player matching process can optionally match players together who fall within a particular range of rank levels.
The developer also has the option to specify both the minimum number of players required for the match and the maximum number of players required for the match along with a timeout value which can be used to determine how long to wait for additional players once the minimum number of players has been reached.
For random player matches, no single player has any control over which players are matched together. Additionally, no single player has any control over when the matching phase completes. The matching phase will only complete once the required number of players has been reached (based on min/max settings and the timeout setting).
As players are matched together by the Manic player matching service, the names of the players who have been matched will be sent to all matched players. This allows the developer to display the list of matched players to the user as a visual indication of the matching progress. If a player cancels out of their game while matching is still taking place, the matching service will re-adjust the list of players currently matched together and potentially cancel the timeout if necessary.
This matching method can be used to match players together who are "friends". The players must setup the friend relationship beforehand (on the Manic website or using the in-game Manic Dashboard).
For the purposes of matching, each friend match has a "controller" (owner). The controller of a match has the ability to remove users from the list of matched players. Additionally, the controller determines when the matching phase is complete and when the game can begin. (The game cannot begin until the controller starts it).
Friend matching also includes the concept of a "lurker queue". Friends who are not yet matched together reside in the lurker queue and will receive a notification each time a friend match which they can enter becomes available or a friend match which was previously available becomes unavailable to enter. Players in the lurker queue can choose to enter any available friend match or startup their own friend match (in which case they would become the controller of the new match). Players in the lurker queue cannot see each other, regardless of whether or not they are friends.
The developer has a number of options which determine how the local player initiates a friend match request. These include
- if no friend match is initially available to pick from, start a new one and make this player the controller (this is the default option)
- regardless of whether a friend match is already available to pick from or not, start a new one and make this player the controller
- do not start a new match and immediately place the player into the lurker queue (and send the player a list of available friend matches to pick from)
If a controller decides to cancel a match while it is still in the matching phase, all players who have been matched so far (including the controller) will be placed back into the lurker queue.
As players are matched together, the names of the players who have been matched will be sent to all matched players. This allows the developer to display the list of matched players to the user as a visual indication of the matching progress. The developer should also provide the controller with interface options to remove (boot) a friend from the match list.
Private Matching allows players to initiate the matching process while preventing anybody (friend or non-friend) from seeing the match unless they have specifically been invited to the match. Each private match has an invitee list which controls which players can access the match. Similar to friend matching, the developer has a number of options which determine how the local player initiates a private-match request. These include
- if no private match is initially available to pick from, start a new one and make this player the controller - otherwise place the player into the private lurker queue and send them the list of available private matches (this is the default option)
- regardless of whether a private match is already available to pick from or not, start a new one and make this player the controller
- do not start a new match and immediately place the player into the private lurker queue (and send the player a list of available private matches to pick from)
- a player (A) can specify another player's (B) sub_id and if a private match exists which has B as the controller and B has invited A into the match, immediately place A into B's match (A will not be placed into the private lurker queue). If B has not yet initiated the match or not yet invited A into it, A will be placed into a "personal" queue (not the normal private lurker queue) and A will remain in the personal queue until B's match is available or A cancels the match attempt. If/when B creates the match and invites A to it, A will be automatically matched into B's match.
When a player creates a new Private match, they will become the controller for that match. The controller can (but does not have to) specify the list of invitees at the time of match creation. The controller can add/remove invitees from the match’s invitee list at anytime during the matching process. The private match does not start until the controller starts it. Invitees to a private match can be friends of the controller or any random player on the Manic service.
Players in the private-match lurker queue can only see private matches which they have been invited to.
If a controller boots someone from a private match during the matching process, that person will not be able to re-enter the match (they are removed from the invitee list). However, if the controller re-adds the player to the match's invitee list, the previously booted player could then reenter the match.
A controller has to somehow notify the invitees that he/she will be creating the private match at a particular time. This can be done using the In-Game-Invite functionality in the Manic API, or it could be done through some other external means.

