I included this as a small element in another post that was quite long and had a bunch of other topics in it. I would like to take the opportunity to describe this particular one in more detail, as I think it warrants separate consideration.
In the H4 system, players choose gametypes by searching in a list that contains several different gametypes. The voting options are randomly chosen from the available types. This has the following drawbacks - among many (quote box just for ease of reading):
> 1. You may have to play a gametype you do not want to play - especially as a lone wolf.
>
> 2. You cannot restrict players from leaving lobbies when a gametype they do not want is selected.
>
> 3. Skill matching is done on a playlist level rather than a gametype level, which matters for players (like me) who are reasonably good at one game but not at another.
>
> 4. You must limit the number of gametypes in the list, which limits the player pool available for matching and requires more playlists to cover all types.
>
> 4a. Due to limiting the player pool, skill matches are poorer, which dissuades players from playing, further limiting the pool.
>
> 4b. Population may not support all the lists, leading to cutting gametypes from the available options.
>
> 5. Gametypes with a different number of players cannot be combined into the same list.
>
> 6. Players can only search one list at a time.
There is a way to do matching that avoids all of these drawbacks. I have actually modeled and tested this in R (a statistical programming language). Here is how:
Instead of being done on a playlist basis, matching is done on a gametype basis. For each iteration, the matching algorithm orders all players based on time-in-queue for each gametype. It takes the oldest player in each queue and builds the best possible match. It compares all of the matches for the overall best match, and places those players into a game. Then it returns to the beginning, adds new players to the queues, and repeats.
Having it only draw matches from the oldest in queue ensures both a maximum wait time and removes the statistical bias for smaller team sizes (since those would normally make the better match). Note also that the gametype is pre-selected at the time the algorithm makes the match.
Playlists, then, become a GUI item - not a structural one. The purpose of the playlists is only to organize the gametypes in a logical manner for the players. So, for example, you could have:
Search by Category…[-] Search by Game Type…[-] Search by Team Size
RANKED GAMES
SLAYER
Expand
…[-] Doubles (2v2)
… Squad (4v4)
… Squad Regicide (4v4)
…[-] FFA (8 players)
…[-] FFA Regicide (8 players)
… Multi-Team (3v3v3)
…[-] SWAT (4v4)
OBJECTIVES
[-] Expand
SPORTS
Expand
… Grifball (4v4)
…[-] Ricochet (4v4)
SOCIAL GAMES
SLAYER
Expand
…[-] Squad (4v4)
… Heavies (6v6)
… Big Team (8v8)
ACTION SACK
[-] Expand
When the player goes to the MM screen, he sees only the underlined headers and the option to search by category (shown), or by gametype / team size (with their appropriate headers). The default is that all options under the header are enabled, but the header can be expanded to deselect certain games. So if someone wants to just jump into Slayer but doesn’t care about team size - click Slayer and go. If someone wants just CTF, search by gametype, click CTF, and go. If someone wants just Oddball, bring up Objectives, deselect everything but Oddball, and go. If a player is in a party, only those gametypes that allow that party size would be included in the selection.
The real benefit of this is that many players are willing to play multiple gametypes (CTF, Extraction, Dominion, 4v4 Slayer), but these are often separated into different lists. This forces them to choose one list, and prevents them from being part of the player pool from the other lists. If it is done by gametype, players can now be part of the player pool for multiple lists. This increases the player pool available for matching for EVERY gametype.
In the limit that every player only wants to play a single type, the player pool becomes the current system, but with the important advantage that the pool is limited before matching rather than by players backing out of the lobby once the match has been formed. If players select multiple gametypes, this system will always generate superior quality matches in less time than H4 does. Here’s an example why, using the defunct Slayer Pro list:
Total population who want to play Slayer: 5,000
% who only want to play Infinity: 70%
% who only want to play Pro: 5%
% who would play either: 25%
With the split lists, Pro would only have a population of 250, guaranteeing poor matches. But with the combined lists, Pro would (actually, did) get outvoted the vast majority of the time - so those players who wanted to play Pro were screwed. However, with the gametype-based search, the effective matching population becomes:
Infinity: 4,750
Pro: 1,500
And you can definitely get good games with reasonable match times in a 4v4 list with a population of 1,500 players.
The gametype matching method yields the following benefits:
> 1. Higher matching populations for every gametype = faster matches and better skill matching.
>
> 2. Since gametypes are preselected, lobbies can be locked, reducing the need for JIP due to people leaving lobbies.
>
> 3. No need to separate gametypes by number of players.
>
> 4. Skill matching can be done on a gametype-specific basis.
>
> 5. Lists can be consolidated further than possible today, making a less intimidating matching main menu.
>
> 6. Players can search across lists and gametypes to select all of the games they are willing to play.
>
> 7. Substantially more accurate statistics at 343i for tracking the popularity of gametypes.
>
> And, most of all:
>
> 8. Players are not forced to take a chance on having to play something they don’t want to play when searching for something they do want to play.
Please consider something like this for H5. It is one suggestion that, I think, virtually all players would appreciate.
