Problem:An issue that's been around a long time, and one I'm not particularly fond of. Essentially what happens is that groups of players 'stack' one team and devour the other team. It might be a clan or group of friends that communicate well, or just players with more experience. The problem is that the opposing team is generally less experienced players, and the absolute curb stomping they receive cause them to have a poor experience with the game. This can lead to raging, complaining, calling hacks, or simply quitting.
And while I dislike how often it happens, I dislike even more how often it happens at the same time. I can hop from game lobby to game lobby, and run into three or four different clans all stacked on the same team facing off against random groups of players significantly less experienced (and leveled) than they are. They might be practicing for upcoming tournaments, trying to rapidly increase their bounty/hunter points, or just hanging out; but I feel that they would have a more interesting time having a match against one of the other clans/groups that are more around their skill level and experience, and let the random players get some confidence and practice by playing against each other.
In an effort to remedy this, I'd suggest (like others before me) a system to more 'fair' matches and lobbies.
Considerations:There are a few things to keep in mind when trying to solve the problem:
- Guns of Icarus Online does not currently have a system to 'rank' players by skill. (The current level system is not skill based)
- You still want friends and clans to be able to play together.
- Should it be optional or mandatory?
- If optional, how do you encourage players to play fair matches/discourage them from playing unfair matches?
- Do rank players by their Role performance, or overall performance?
- Take into account that this is a highly complex team oriented game. Player performance is directly related to their teammates performance.
Possible SolutionsThe first steps to make even teams is to develop a system for ranking players based on skill. The current level system gives a general indication for experience, but it can easily be ignored or avoided to give a false impression of low experience/skill.
GoIO already keeps lots of player data and statistics, which is a great place to begin. As per the considerations, you first have to choose whether to do an overall skill rating, or one based purely on the chosen role. You might be a great pilot, but a terrible gunner for instance. Although if you tend to engineer a lot, you might have a very high engineer rank, but a very low gunner rank, while your skill at gunning might still be very high.
I would suggest using weighted statistics to give a ranking for each role. So your overall accuracy will affect both your engineer and gunner ranking, but has a much greater affect on your gunner rank. Where your ability to repair affects all your roles, but engineering the most, and piloting the least.
Then you have to take into account the team. A bad pilot can really reduce a gunner's accuracy by swinging the ship about randomly, where a bad engineer can keep your ship from staying alive, despite your great piloting skills. And a really good pilot and gunner can prevent the enemy from doing significant damage to your ship, giving you a lower rebuild/repair score.
This part is the hardest to consider, and my best suggestion would be to just use the win/loss ratio as you playing that role as a large part of your rank overall. So even if you get a low score from someone else's performance (good or bad), in the long run, your performance should level out to where it belongs. Which also brings up the point that your rank shouldn't be from the beginning of your GoIO career to the end of it, but perhaps just an average of the previous 50 matches or so for each role. Even if you do awful in the beginning, you'd still be able to get near the highest ranks by improving. (Or you can just use a +/- system to increase or decrease their score based on win/loss/performance).
Once you've hammered out a way to rank players, you need to start tossing individual players together to form teams. At this point you have to consider the desire of players to play with their friends. For this, it's pretty easy to use the 'Form Crew' and let them get into a ship (or possibly 2 ships). I wouldn't recommend letting them fill three ships, as that would make it much harder to find a match against equally skilled players.
For random players, you can have them pick their first and second role choices and then be put into a queue. Once enough players are found (8-12) they can be tossed into the 'Form Crew' lobby in their respective roles on the ships. At which point they can discuss the ships they're going to use, and the loadouts they're going to bring. I would recommend to not let them swap roles or ships, as that might change their rank/scores; and more importantly invites people to be stubborn about their role (ie: People saying they won't fix the ship as the engineer unless someone lets them be captain). At this point, they should also be allowed to vote for a map. Once they hit ready, they'll be tossed into a final queue that will pair them with an opponent, and whichever map has the most votes (total the votes from both sides) will be the one that's played. Or just do a random map.
Now that each player has a rank, and they can play with their friends, and are put into ships/teams, you have to look into how to compare ranks. Do you do it player to player? As in if you have someone with a score of 200, do you find another player with a score around 200 and put them on opposite teams? Or do you take an average or weighted average of the players on the ship, then match it by a ship to ship basis? How would you go about weighting the scores? For instance, I find that pilots have possibly the largest impact on a ship's performance. So you might give their score a higher weight than the gunners or engineers.
I'd recommend doing it on a ship average, as finding a compatible player for every player might be difficult.
Then it's a matter of playing the match, recording the stats afterwards, recalculating the ranks. Then you have to consider what to do with the players after. The people who entered as a team might want to remain a team, so they should likely be tossed back to the 'Form Crew', where the random players who were put together may or may not want to be on the same team again. I'd recommend tossing them back to the main lobby or right back into the queue if they so choose. They can always friend their previous team mates and try to form a crew after. And this helps keep the teams balanced and fresh.
Other Thoughts:Ultimately this should be optional, allowing players to still form their own matches and go wherever they please. But to encourage for more fair teams more often, I'd recommend that the Bounty system and achievements only work in the Ranked play. This allows players to still group up for practicing, but discourages them from stacking unfair teams for 'farming' points and achievements.
Finally, the whole idea of Ranked/Fair Matches may be beyond the scope of GoIO (skirmish). These types of ranking/scores are often used in other types of games that have a much larger player base, and aren't as heavily team oriented. I am uncertain whether Muse has the resources to attempt this, or if the game is capable of using it successfully. During a sale period or event, the number of players increases to the point where it could be used, but during the lower population times, it might take far too long to get even matches. And players may end up facing the same people over and over again due to the match length and them leaving and entering the queue around the same time repeatedly.
If it were to be put into place, there may have to be other considerations, such as allowing for unfair teams during a low period. One such system might be to spend a minute looking for teams with a score within a certain range of each other, then after that minute the range increases. Thirty seconds later it increases again, after two minutes it might take anyone. At which point, the aftermatch calculations would have to be weighted. The difference between the loss and addition of points would be affected by the difference in rank. A team with a score of 1500 might not see an increase in points at all if they beat a team with a score of 300, and the team of 300 might not see a reduction. While if the team with the score of 300 won, they might have a huge increase in rank/points, where the 1500 would suffer a huge loss.
Then you might have to also have the queue system weighted to discourage setting the same teams against each other repeatedly, and even so that one person doesn't get to be the captain/pilot over and over and over again.
TLDR:A not entirely friendly issue that is quite complicated to solve, and may never see an acceptable resolution.
Thoughts?