One of the most frustrating aspects of Halo multiplayer is seeing your teammates quit during an online match. Everyone left in the game must suffer through a diminished experience that will only worsen as more people quit. What can be done to reduce the number of “DNF” labels seen in the post-game carnage report?
There are a lot of factors to consider when searching for a solution to the quitter problem:
- You don’t want to be too harsh on people with temporary internet issues, but if someone has a consistently unstable connection it’s still damaging to other people’s experience.
- There should be short-term effects as well as the threat of long-term punishment for habitual quitters.
- The punishment should fit the crime. Not everyone cares about credits, so if your punishment is credit-based some people will quit anyways.
- Players should hesitate to quit without cause, but shouldn’t be afraid to quit when faced with an unpleasant experience.
The first step is to figure out why people are quitting and fix that. I’d guess a list of the major reasons people quit would look something like this:
1. Players unhappy with the map/gametype picked.
2. Uneven team skills. (Losing by a large margin.)
3. Uneven team sizes due to other quitters. (e.g. 4v2, 8v4)
4. Griefing. (e.g. betrayals, teabagging, objective holding)
5. Outside/real-world causes. (e.g. connection drops, house fire, spouse unplugs Xbox)
6. Player can earn credits faster elsewhere.
We can’t do anything to fix #5 (beyond recommending a new ISP, home insurance, and marriage counseling) but the others can be minimized by putting better systems in place:
- A better map/gametype voting process. (#1)
- An improved skill-based matchmaking algorithm. (#2) (I won’t be addressing this in the article.)
- A surrender/forfeit option. (#2, #3, & #4)
- Harsher, yet more consistent betrayal booting. (#4)
- Credit incentives for game completion streaks. (#6)
ROCK THE VOTE
The matchmaking experience has improved with each successive Halo game, giving players more control over what gametypes and maps they play. Halo 2 had no voting round at all, as the entire playlist system was a new to consoles. Halo 3 added a single veto option that, once a majority was reached, would force a new gametype and map to be selected. Halo: Reach presents players with up to three gametype/map combinations to choose from, with a fourth “none of the above” option to start a second round of voting on new combinations.
The problem with Reach’s system is that it uses “first-past-the-post” style voting. This keeps things simple, but a quick perusal of the Wikipedia page can highlight some of its inherent problems:
“To a greater extent than many other electoral methods, the first-past-the-post system encourages tactical voting. Voters have an incentive to vote for one of the two candidates they predict are most likely to win, even if they would prefer another of the candidates to win, because a vote for any other candidate will likely be “wasted” and have no impact on the final result.”
I think a better method for gametype and map selection in Halo would be a simplified version of “instant-runoff” voting wherein each option is ranked in order of preference. This does pose challenges for maintaining a clear and efficient UI, but I think it can be done with a few adjustments.
Asking players to rank the options can easily lead to clutter and confusion, so it might be more intuitive if we replaced the numbers with a visual upvote/downvote system. This works better with an odd number of choices, so let’s expand the candidate pool from Reach’s four candidates to five with the fifth choice being “None of the Above”. The other choices can be four unique options or a mix of two gametypes and two maps (as pictured below).
All five options start tied with each other in a neutral position. Players can then adjust the sliders to cast upvotes (+1, +2) and downvotes (-1, -2) for each option depending on their preferences. The system will not let players downvote more than two of the options, nor will it let them upvote more than two. Players can only cast one +2 vote and one -2 vote as well. This forces voters to unknowingly rank the options 1-5 while also allowing ties.
Behind the scenes, the game assigns a point value to each position and once the voting round has ended it sums the point value for the options over the entire voting pool. Ties for the winning option are very unlikely and will simply be resolved via random draw.
Why design the voting system this way? Because no vote is wasted, be it an upvote or downvote. Players get no benefit from trying to exploit the system and are better off just voting according to their actual preferences. Anyone that is ambivalent can simply leave all of the choices at the default neutral setting, or might only choose to upvote/downvote a single option they feel strongly about. (As a side note, the start of the voting round should be signaled by a distinct and clearly audible sound. Reach attempts this but the sound is too quiet and players often miss it while browsing the start menu, Xbox guide, or refrigerator.)
WAVE THE WHITE FLAG
How many times have you been in a game where your team is losing so badly that you want to quit? Isn’t it frustrating to be on a team with far less players than your opponent? Perhaps the solution would be to let teams surrender to their opponents once either of the following conditions have been met:
Condition A – Your team is losing by over 50% of the score required to win. For example, a slayer game to 50 kills would allow the losing team to surrender once the spread between the two teams exceeds 25 kills (e.g. if the score was 36-10). A game of CTF to 3 captures would make the surrender option available when the score reaches 2-0.
Condition B – Your team is losing and one team has two fewer players than the other team (due to quitting, connection drops, etc.). This prevents games of 8v6, 4v2, etc. from dragging on forever due to uneven teams. Note that the surrender option isn’t limited to the team with fewer players, just the side that is losing when there are uneven teams. Sometimes having fewer players is an advantage and playing in an 8v1 game can be very frustrating even for the team of 8.
What happens once the surrender option unlocks? A notification pops up on the respawn screen: “Surrender available, Press Start”. The normal pause/start screen now has an extra menu where you can vote to surrender.
Once you choose to vote, a text string pops up on everyone’s screen to signal your intentions and the number of votes needed for it to pass: “ncsuDuncan has voted to surrender (1/4)”. Surrendering must be a unanimous decision for your team. If one player wants to finish the game he shouldn’t be penalized because everyone else wants to give up.
Games that end due to surrender will still count as a win or loss, the same as any other game, except with a slightly reduced Game Complete credit payout for everyone involved. Choosing to surrender is merely a way for players to let the game know that they want to quit without being punished.
GIVE ‘EM THE BOOT
Being intentionally killed by a teammate can be a very annoying and rage-inducing experience. Ideally you would be able to punish every intentional betrayal, but not all team kills are done on purpose. The betrayal booting system has to find that balance of allowing justified punishment while preventing the abuse of innocents. If it’s too difficult to boot a team-killing asshole then some players will quit in frustration. Yet making it easy to boot players can cause just as much frustration – how many times have you or a friend accidentally betrayed a teammate and been immediately removed from the game?
Reach’s betrayal booting system is both mysterious and unreliable – the option to boot a player doesn’t always show up and the conditions for it appearing are unknown. When the option does present itself, a snap judgement and quick tapping of two buttons is all it takes to boot the offending player. Have you ever been betrayed by a teammate and out of frustration pressed the X button even when you knew it was an accident? Now your team is down a player and at a disadvantage because of your hasty decision.
My solution? A clear, consistent system wherein every betrayal gives the victim the opportunity to make a deliberate decision to either Forgive or Punish the transgression. Each time you are killed by a teammate, a dialogue box pops up on your screen:
The box will not disappear until you make your decision and the quickest way to do that is to Forgive the betrayal by hitting the B button. The box immediately disappears, you continue playing as normal and your forgiven teamkiller does not see any lasting effects other than those seen in previous Halo games (-1 to score and a slightly longer respawn time).
Where the Forgive option took a single tap of B to get you back in the game, the Punish option requires you to HOLD the X button for a second or two – tapping it won’t work. A second dialog box then appears:
You now have highlight “Yes” and hold the A button for a few seconds, while a brief tap of the B button will cancel and take you back to the game. The end result is that choosing to Punish your betrayer is more time-consuming than choosing Forgive, so impatient and indifferent players will be more likely to forgive accidental betrayals so that they can continue playing the game. Players that feel like they were purposely and maliciously betrayed won’t mind the extra hassle it takes to Punish.
So what happens when a betrayal results in punishment? The new system operates on a three strike rule:
- 10% penalty to your Game Complete credit payout.
- 1 second added to each respawn time.
- Lasts for 5 minutes (then disappears).
- 25% penalty to your Game Complete credit payout.
- 3 seconds added to each respawn time.
- Lasts for 10 minutes (then downgrades to Strike One).
- You are booted from the game and do not receive any credits for it. This counts as a quit.
- You cannot rejoin matchmaking playlists that have teams enabled.
- Lasts for 20 minutes (then downgrades to Strike Two).
Strikes carry over between games, so your punishment follows you. The extra seconds added to your respawn are there every time you die, not just after your first post-betrayal death like in previous Halo games. This extra wait time is signaled by a buzzer and flashing red notice on your screen that reminds you of why your respawn is longer than normal.
Other players will not know how many strikes you have, but the stat-tracking servers will record your punishment history. Players with a history of unforgiven betrayals in matchmaking might eventually receive longer bans from the team-enabled playlists.
UPDATE: After discussing this on the forums, I think we came upon a better way to implement the Three Strike system:
- Your next five respawns in that game take an extra 1 second.
- Your Game Complete bonus (for that game only) is reduced by 10%.
When you start your next matchmaking game, you are still at Strike One (no matter how long the first game took). There are no negative effects for this new game unless you betray someone and get punished – you go straight to Strike Two and its negative effects.
Quitting your second game will not make Strike One go away – you have to finish a matchmaking game for it to completely disappear.
- Your next ten respawns in the game you earn Strike Two take an extra 3 seconds.
- Your Game Complete bonus (for that game only) is reduced by 25%.
In order for you to downgrade a Strike you have to complete a matchmaking game without betraying anyone.
- You are booted from the a game and locked you out of team-based matchmaking for 20 minutes (regardless of how close the game was to ending), after which you are still at Strike Three. You have to complete one game to be downgraded to Strike Two, and complete another to go down to Strike One (meaning you are one betrayal away from being booted for two games).
REAP THE REWARDS
This one is simple enough: if a player completes a certain number of matchmaking games in a row without quitting, the system should reward that good behavior with a credit bonus. It could be presented as a challenge or commendation, but with one important difference: this reward can be earned again and again. In fact, it has multiple levels with higher credit payouts for longer streaks of game completion:
- Complete 10 games in a row without quitting. (1000 credits.)
- Complete 20 games in a row without quitting.
(1200 credits, in addition to the 1000 you earned at 10.)
Eventually the payout stops increasing:
- Complete 50 games in a row without quitting.
(1500 credits, in addition to the 1400 you earned at 40.)
- Complete 60 games in a row without quitting.
(1500 credits, in addition to the 1500 you earned at 50.)
- Every 10 games after that earns you 1500 more credits.
A game completion streak is not restricted to a single play session, but if you quit a game (or get disconnected) your streak ends and you start back at zero. All is not lost, because the challenge also resets and it will only take 10 games to start earning bonus credits again.
This same method of positive reinforcement could be used for other aspects of the game:
- Complete 10 matchmaking games in a row without betraying any teammates. (1000 credits.)
- Play at least 10 matchmaking games with your microphone enabled and party chat disabled. (1000 credits.) The games do not have to be in a row, this challenge only resets after it is completed.
- Stay in the post-game lobby and play another match 10 times (instead of exiting to restart matchmaking). (1000 credits.) Again, these games do not have to be in a row and the challenge resets after it is completed.
So we’ve done our best to stop people from wanting to quit. Now how do we punish those that quit anyways? Hit ‘em where it hurts: their precious time and money. (Well, virtual money.)
PAY THE FEE
One way that quitting hurts your teammates is that it becomes harder for them to win and earn credits. Slayer games with quitters also tend to take longer to finish, reducing the potential credits/hour for everyone involved. The solution?
- You don’t receive ANY credits until the game ends. I’m not just talking about the game completion credits, I’m talking about Challenges, Commendations, EVERYTHING. If you’re willing to quit a game you should also be willing to walk away from the credits you’ve already earned in that game.
- Quitting should also SUBTRACT credits from your career total. This won’t ever cause you to lose a career rank (like the Halo 3 de-rankers would like) but it will make it take longer for you to level up. The online stats page should keep track of the total number of credits you’ve been charged for quitting as a permanent black mark on your record.
SIT IN TIME-OUT
Not everybody cares about credits (I certainly don’t), so we also need an appropriate punishment for those people. Quitting a matchmaking game wastes your teammates’ time. It isn’t fair that they’re still stuck in that game while you can jump back into the matchmaking pool to get paired with new unsuspecting teammates. How are we going to punish bad teammates?
- If you quit a team-based matchmaking game, you cannot rejoin any team-based hopper until the game you quit is over.
- You can still play custom games, offline modes, campaign, and can enter FFA lobbies (Rumble Pit, Score Attack) while on probation.
How it works: This will be implemented on your local console and will require minimal server work. When a matchmaking game starts, your Xbox looks at the gametype you’re about to play and the current server time. It calculates the theoretical maximum time the gametype could take and determines the corresponding server time for that. This value is saved to your local Halo game save, so even if you turn off your Xbox you’ll still be on probation when you turn it back on. If you stay in the game and see it to its finish, your Xbox deletes the theoretical end time and allows you to enter matchmaking.
The end result is that quitting a game means you’re on probation for the maximum possible time that game could last. You’re better off staying in the match since games often end earlier than the maximum time limit. This process would of course include the standard idle detection system to prevent people from just walking away from the TV.
UPDATE: As some community members have pointed out, this is pretty harsh on people who get dropped due to an internet hiccup. One solution for this would be to allow you to rejoin a game you left if you’ve reconnected to Xbox Live and the game is still in progress. This could be done from the Matchmaking menu or through your Recent Players menu. Also, keep in mind that “Time-Out” only applies when you quit a team-enabled matchmaking game. Quitting a Lone Wolves match to go join a party in Team Slayer will still have credit penalties, but you won’t be locked out of matchmaking because you didn’t have teammates to leave at a disadvantage.
If the above changes were implemented in the next Halo game, would they stop everyone from quitting? Of course not. I don’t even know if these ideas are possible or practical from a game development viewpoint. I just think that they’re interesting thoughts to consider and discuss. (And to be clear, these aren’t all original ideas of mine, many of them have already been proposed within the community. I just wanted to spread them around a bit more and throw together some pretty pictures to go with them.). By all means, poke holes in the above plans and post them in the comments below.
Thank you for reading to the end of my article. (I was worried you would quit.)