Latency Cap of 65ms ping: 300 is unacceptable for even a mobile game. At worst an east coast usa or canadian player will be in west usa servers, as an example. High latency (when UNINTENTIONAL/ACCIDENTAL/NOT MALICIOUS!!!!) aggravates everyone including the person with high latency, and everyone feels it. Kicking them from the server benefits everyone and makes everyone happier. And those that are intentional mcdonald's wifi warriors won't find games till they grow a set of balls and decide to play the game on an even footing with everyone else.
Region Locking: Lock within regions of countries and/or continents. Its well known that there are some areas that don't have a very close server, ubisoft should remedy that, this issue is on them. Many times, even if its innocuously so to have friends play even if they're far away (especially with streamers), they bring a lot of latency into games. Region locking solves this issue as now streamers don't have to feel like *******s by saying "nah you too far your latency ruins the game" but rather can say "nah ubi region locks so sorry fam you in a different region".
Lower lag compensation. If you have higher latency, you should not be the one rewarded, period. This ties in to region locking and latency capping, so most ppl now in a game should have around the same amount of latency. I read a fascinating article detailing a multitude of steps a company can take to address artificial latency that would also apply to general lag, and although it was with regards to a (in)famous FPS game, I believe the ideas have merit here and they generally fall under 1 of 2 categories:
In game delayed actions for latency, example would be artificial latency, latency spikes, or high latency would have delayed responses from the server to client's inputs. This effect would stack/exponate/multiply/etc.. depending on severity and frequency and would alert ubisoft monitoring systems of outliers and issues. This is explained with regards to an FPS below verbatim:
["If lag spikes, or whatever the term is, has been detected, the server should simply start to mute the players' bullets for x seconds. It's not the enemies players' fault network issues are causing him to lose.
If the lag spikes continue over the match, continue to raise the dropped bullets time delay. Log this stuff on players account. Log additional info such as is this happening when players are around, with distances, and whatnot so the player can be investigated if need be. If it's never happening while in open field with no one around... why? I understand networks get more involved when in battle, but if it's always .5 seconds before he shoots, because he runs behind a rock engages his lag switch, then attacks, this stuff gets to be pinpoint obvious.
If you have a bad network, then you will be like ok, I have a bad network, but I like the game, so I realize I may lose some bullets... Fair Enough. That will be accepted. People who have bad networks know they have bad networks. Kicking because of spikes is not an answer, unless it's a continuous spike throughout entire client connection to server life.
As for the lag hacker, eventually he'll have to play fair. The extended loss of bullets will mean he won't use the hack. If anything it will turn into a tool to just run away, which will further expose that he is hacking. A bad network player won't realize he is lagging and losing bullets.
And finally, is the client having such a bad network because it is a bad network connection? Send an email saying, "Your network is showing signs of disarray, please seek support from your ISP to look into possible line problems. This is a courtesy warning, not a flag of cheating, however it does affect our servers and gameplay, so you might be queued with others who are having similar issues to be fair to our competitive players looking for a quality service we are trying to provide."]
2: Societal Constructs and/or Targeted Compensation:
To quote verbatim:
["With tongue only partly in cheek, I'm going to suggest that Xbox Live already has controls to limit the damage caused by lag switches. I'm going to channel my inner Schneier and say that where technical controls may be problematic to implement, reactive and societal controls are perfectly valid options:
Mark the player to "Avoid" - makes it unlikely you'll get matched up with them again
File a complaint for "System Tampering" - makes it possible their account will be revoked
This has proven to be an effective set of controls against the "mod" hackers in the game I play regularly, "Call of Duty: World at War". The one difficulty I see is that lag switching is difficult to prove; unlike someone flying through the air with noclip, it's not unusual to see innocent players with laggy connections that seem to help them sometimes.]
Allow players to maintain a block list. The reality is that if I don't want to play with someone because of their crappy connection, I've paid for the game and I shouldn't have to be matched with them. Referring to above, this ruins the experience for everyone involved. And its rather easy to tell when someone is intentionally creating artificial latency, whether its malicious, and/or whether they are just taking advantage of bad internet.
and:
Consider the arbitrary example:
["The server keeps a stack of data for each player that contains the position of the player and the time this update was received. The server expects an update every 10 ms because it is programmed in the client that way. Each update that is received is checked with the previous update.
Let assume the server is accepting X and Y coordinates for the player and the game only allows the change of 1.0 for X and Y every update, (because that is the maximum speed of the player). If the current time is 0.00 and the position of the current player is at (1.0,1.0), the maximum update position could be (2.0,2.0) at the current time of 0.01. We may have to allow some margin of error in this positioning such as +-(0.1,0.1).
However UDP packets are going to be dropped and the server will have to calculate the acceptable limits for the player given the current update. If in the previous paragraph, the update was dropped, and the player also sent a new update with time = 0.02 and position (2.0,2.0), this would be a legitimate update. The server would check and flag updates that are not real where if the time to change coordinates couldn't not have possibly been achieved, in this example, moving to (1000.0,1000.0) in the next update.
Since the server is expecting update every 10 ms, it needs to have an acceptable limited to the dropped packets it didn't receive. The limit may be 100 ms and if the server hasn't received an update within that time frame, we can consider that there is some lag. Once this lag has gone away the server will tell the player where they currently are so they can start sending new updates.
This lag should not effect other players because it is not their problem. It is quite frustrating to see other players in the game "teleporting" around because they are lagging. Lag happens and it is always the reason why I die in video games."]
Minor Matchmaking Fixes:
Matchmaking should have 3 primary focuses in this order: Player's average latency per match of that type, player's location with proximity to closest server and other players proximity to their closest server and proximity of those servers, and an arbitrary skill denomination easiest being a form of ELO rating. You could have differentiated elo ratings based on different modes taking into account: results of the match, individual results, time of the match, renown, style of results (were most deaths gank/team fight related were they 1v1 were they due to a teammate being a moron on ganking and feeding revenge and obviously this is a subjective arbitrary concept), and the difference in ELO/skill rating whatever you want to call it between teams/players.
Focus on creating and filling new lobbies instead of filling in progress games and remove entirely any and all leave penalties. Allows players to enter and leave games as needed, players that stick to the end should be compensated more if teammates left. Allows players to not have to carry a team or be pub stomped by opponents if matchmaking has a blip. All bots are level 3 bots. All bots are one of 4 heroes that arbitrarily serve one "role" in doms, based on the character that is being replaced. Kensei lvl 3 bot for "mid", glad lvl 3 bot for "ganker", black prior lvl 3 bot for "team fighter/zone fighter", and hitokiri lvl 3 bot for "roamer". This will hopefully make matches feel less one sided, and allow players that contribute to that one-sidedness primarily on the weaker end to leave without penalty. Also helps to end dominion matches quicker which means more rewards because more matches can be played in a specific time frame.
Additionally, should try and match a group of 4 with a group of 4 then 3 if possible, although this SHOULD be self-explanatory and already in place.