I feel like the problem is that if its opt-out only then those people won’t be able to find games because opt in is on by default and a mjaority of the playerbase is too lazy to care about changing it. I think statistically most people play Malice? Those people don’t really care who they play with because its already not that difficult.
Now we are thinking the same. That’s my only point. It’s either what you just described OR they force someone liek me to match up with Pc players who have it turned off and now I am screwed. That doesn’t make sense
Also, just to clarify ranking has nothing to do with leaderboards. You can definitely have both, but I was thinking more of MMR like dota 2
You rank goes up based on whatever criteria makes sense. It goes down if yo start doing worse. You are always playing with similar ranked players
Such as? We can all glance at LUA and draw conclusions from it
LUA error codes
[error_codes.CROSS_PLAY_DISABLED] = {
invite = "loc_party_invite_you_have_crossplay_disabled",
join = "loc_party_join_you_have_crossplay_disabled"
},
[error_codes.CROSS_PLAY_DISABLED_JOIN_REQUEST] = {
invite = "loc_party_invite_they_have_crossplay_disabled",
join = "loc_party_join_they_have_crossplay_disabled"
},
[error_codes.CROSS_PLAY_DISABLED_GLOBALLY] = {
invite = "loc_cross_play_disabled_globally",
join = "loc_cross_play_disabled_globally"
},
Localization string for party invite disabled, because of crossplay being disabled?
LUA functions
SocialService._check_cross_play_invite = function (self, other_player_info)
local platform_myself = self:platform()
local platform_other = other_player_info:platform()
local presence_myself = Managers.presence:presence_entry_myself()
if other_player_info:cross_play_disabled() then
if platform_myself ~= platform_other then
return false, "loc_cross_play_disabled_by_other"
elseif presence_myself:is_cross_playing() then
return false, "loc_cross_play_disabled_by_other_my_team_is_cross_platform"
end
end
if presence_myself:cross_play_disabled_in_party() and platform_myself ~= platform_other then
if presence_myself:cross_play_disabled() then
return false, "loc_cross_play_disabled_by_me"
else
return false, "loc_cross_play_disabled_in_my_team"
end
end
return true
end
SocialService._check_cross_play_join = function (self, other_player_info)
local platform_myself = self:platform()
local platform_other = other_player_info:platform()
local presence_myself = Managers.presence:presence_entry_myself()
if presence_myself:cross_play_disabled() then
if platform_myself ~= platform_other then
return false, "loc_cross_play_disabled_by_me"
elseif other_player_info:is_cross_playing() then
return false, "loc_cross_play_disabled_by_me_other_team_is_cross_platform"
end
end
if other_player_info:cross_play_disabled_in_party() and platform_myself ~= platform_other then
if other_player_info:cross_play_disabled() then
return false, "loc_cross_play_disabled_by_other"
else
return false, "loc_cross_play_disabled_in_other_team"
end
end
return true
end
Or a function that checks for cross-platform invite/join and blocks them?
Regardless, looking at the LUA is kind of dumb, because the LUA code is not the matchmaker.
When you log into a character, you send your crossplay preferences to queue for a Mourningstar instance.
The request you sent when joining a mission is much the same, the only difference being matchmakerType is set to mission instead of hub and the addition of a missionId field for the selected mission. In the interest of completeness, I’ve left the response completely intact, so there’s a bunch of latency metrics in the request
Big blob of JSON
{
"dedicatedAlias": "hub-v1",
"dedicatedAliases": [
"hub-v1",
"hub:hash:1e9071c9686a2edc",
"hub:xbs:RETAIL",
"hub:default"
],
"disableCrossPlay": false,
"latencyList": [
{
"fast_latency": 269,
"fast_stats": {
"avg": 270,
"diff_min_max": 8,
"jitter": 2,
"lost": 0,
"max": 276,
"median": 269,
"min": 268,
"sent": 10
},
"latency": 293,
"reefs": [
"ap-south"
],
"region": "aws-ap-southeast-2",
"stats": {
"avg": 294,
"diff_min_max": 9,
"jitter": 2,
"lost": 0,
"max": 300,
"median": 293,
"min": 291,
"sent": 10
}
},
{
"fast_latency": 89,
"fast_stats": {
"avg": 90,
"diff_min_max": 6,
"jitter": 3,
"lost": 0,
"max": 94,
"median": 89,
"min": 88,
"sent": 10
},
"latency": 104,
"reefs": [
"us-east"
],
"region": "aws-us-east-2",
"stats": {
"avg": 104,
"diff_min_max": 4,
"jitter": 1,
"lost": 0,
"max": 107,
"median": 104,
"min": 103,
"sent": 10
}
},
{
"fast_latency": 250,
"fast_stats": {
"avg": 251,
"diff_min_max": 12,
"jitter": 4,
"lost": 0,
"max": 259,
"median": 250,
"min": 247,
"sent": 10
},
"latency": 278,
"reefs": [
"ap-north"
],
"region": "aws-ap-northeast-2",
"stats": {
"avg": 281,
"diff_min_max": 22,
"jitter": 9,
"lost": 0,
"max": 296,
"median": 278,
"min": 274,
"sent": 10
}
},
{
"fast_latency": 81,
"fast_stats": {
"avg": 81,
"diff_min_max": 4,
"jitter": 2,
"lost": 0,
"max": 83,
"median": 81,
"min": 79,
"sent": 10
},
"latency": 96,
"reefs": [
"us-east"
],
"region": "aws-ca-central-1",
"stats": {
"avg": 97,
"diff_min_max": 5,
"jitter": 2,
"lost": 0,
"max": 100,
"median": 96,
"min": 95,
"sent": 10
}
},
{
"fast_latency": 140,
"fast_stats": {
"avg": 140,
"diff_min_max": 3,
"jitter": 2,
"lost": 0,
"max": 141,
"median": 140,
"min": 138,
"sent": 10
},
"latency": 156,
"reefs": [
"us-west"
],
"region": "aws-us-west-1",
"stats": {
"avg": 157,
"diff_min_max": 5,
"jitter": 2,
"lost": 0,
"max": 160,
"median": 156,
"min": 155,
"sent": 10
}
},
{
"fast_latency": 137,
"fast_stats": {
"avg": 137,
"diff_min_max": 7,
"jitter": 2,
"lost": 0,
"max": 141,
"median": 137,
"min": 134,
"sent": 10
},
"latency": 199,
"reefs": [
"mei"
],
"region": "aws-ap-south-1",
"stats": {
"avg": 199,
"diff_min_max": 4,
"jitter": 2,
"lost": 0,
"max": 202,
"median": 199,
"min": 198,
"sent": 10
}
},
{
"fast_latency": 131,
"fast_stats": {
"avg": 131,
"diff_min_max": 5,
"jitter": 2,
"lost": 0,
"max": 134,
"median": 131,
"min": 129,
"sent": 10
},
"latency": 175,
"reefs": [
"us-west"
],
"region": "aws-us-west-2",
"stats": {
"avg": 175,
"diff_min_max": 4,
"jitter": 2,
"lost": 0,
"max": 177,
"median": 175,
"min": 173,
"sent": 10
}
},
{
"fast_latency": 187,
"fast_stats": {
"avg": 188,
"diff_min_max": 20,
"jitter": 8,
"lost": 0,
"max": 197,
"median": 187,
"min": 177,
"sent": 10
},
"latency": 177,
"reefs": [
"ap-central"
],
"region": "aws-ap-southeast-1",
"stats": {
"avg": 178,
"diff_min_max": 5,
"jitter": 2,
"lost": 0,
"max": 181,
"median": 177,
"min": 176,
"sent": 10
}
},
{
"fast_latency": 231,
"fast_stats": {
"avg": 231,
"diff_min_max": 5,
"jitter": 3,
"lost": 0,
"max": 234,
"median": 231,
"min": 229,
"sent": 10
},
"latency": 258,
"reefs": [
"ap-north"
],
"region": "aws-ap-northeast-1",
"stats": {
"avg": 260,
"diff_min_max": 10,
"jitter": 4,
"lost": 0,
"max": 267,
"median": 258,
"min": 257,
"sent": 10
}
},
{
"fast_latency": 10,
"fast_stats": {
"avg": 11,
"diff_min_max": 2,
"jitter": 1,
"lost": 0,
"max": 12,
"median": 10,
"min": 10,
"sent": 10
},
"latency": 9,
"reefs": [
"eu"
],
"region": "aws-eu-west-1",
"stats": {
"avg": 10,
"diff_min_max": 3,
"jitter": 1,
"lost": 0,
"max": 12,
"median": 9,
"min": 9,
"sent": 10
}
},
{
"fast_latency": 37,
"fast_stats": {
"avg": 41,
"diff_min_max": 43,
"jitter": 10,
"lost": 0,
"max": 75,
"median": 37,
"min": 32,
"sent": 10
},
"latency": 36,
"reefs": [
"eu"
],
"region": "aws-eu-central-1",
"stats": {
"avg": 36,
"diff_min_max": 4,
"jitter": 2,
"lost": 0,
"max": 37,
"median": 36,
"min": 33,
"sent": 10
}
},
{
"fast_latency": 193,
"fast_stats": {
"avg": 194,
"diff_min_max": 9,
"jitter": 4,
"lost": 0,
"max": 199,
"median": 193,
"min": 190,
"sent": 10
},
"latency": 219,
"reefs": [
"sa"
],
"region": "aws-sa-east-1",
"stats": {
"avg": 219,
"diff_min_max": 7,
"jitter": 3,
"lost": 0,
"max": 223,
"median": 219,
"min": 216,
"sent": 10
}
},
{
"fast_latency": 22,
"fast_stats": {
"avg": 23,
"diff_min_max": 7,
"jitter": 3,
"lost": 0,
"max": 27,
"median": 22,
"min": 20,
"sent": 10
},
"latency": 21,
"reefs": [
"eu"
],
"region": "aws-eu-west-2",
"stats": {
"avg": 21,
"diff_min_max": 2,
"jitter": 1,
"lost": 0,
"max": 22,
"median": 21,
"min": 20,
"sent": 10
}
}
],
"matchmakerType": "hub",
"platformUserIdAvoidList": []
}
When I logged in with crossplay enabled, I got put into an empty Mourningstar instance and couldn’t matchmake with a single player. Maybe I just got unlucky, and zero WinPC players weren’t queueing during that time window. Separate hub server group as well.
With crossplay: aws-fleetiq--prod-green--eu--aws-eu-west-2--prod--dizzy-lavender-cockroach--1
Without crossplay: aws-fleetiq--prod-green--eu--aws-eu-west-1--prod--dizzy-lavender-cockroach--0
I can only assume that the --0 server group is the one that existed since launch, and --1 was set up when crossplay support was added.
Do you have anything to confirm that A can matchmake with B? I am speculating at the crossplay implementation, because there’s not exactly information readily available.
The source? The source is a conversation discussing the potential issues of one giant matchmaking pool. Of the three of us, we cannot state with 100% certainty what matchmaker implementation exists (and I am not saying that the matchmaker you describe is impossible) but… when you trivialize what’s involved to the point of
if not_working {
work();
}
Then of course it’s going to sound simple. If you’re going to criticise the source, consider the fact that the source of your rebuttal is "It’s just boolean logic
"
If you want to call it FUD, go right ahead. I’m not here to keep people from having crossplay; genuinely doesn’t bother me - I’ll be playing with whoever remains. I just think it’s a bit naive to believe that Steam crossplay is just going to keep you away from Xbox players - however, if Steam did get crossplay settings, I don’t think it’d be a ghost town like WinPC frequently was pre-crossplay.
This guy “reasons”
thanks dumblefudgle
All I’m saying is just “be careful what you wish for”. I have no idea how crossplay works, but it certainly seems complicated and it is at least interesting to speculate consequence.
My speculations only stems from
- I read that’s is how Warzone 1 worked on Reddit. Grain of salt there for sure
- You can read several posts from google of saying turning off crossplay is a “ghost town”. Again, big grain of salt there but it at least leads me to speculate
FNB ain’t looking so hot
Every once in a while I will join in on the bitching and moaning about console scrubs with my friends if it’s a particularly hard carry on a really hairy Auric Maelstrom, the console guys are like 30+2, and I’m getting one too many nets through the wall, but generally speaking, I don’t mind crossplay.
Get good enough to carry the occasional bad. This mantra applies to virtually every PVE game out there.
The source in this context was a person.
Extra conditions in an IF statement is complex?
No arguments here, hence the glanced part. Take a peek at matchmaker.lua or something edit: and social_service.lua or keyword “cross_play_disabled”.
Ahhhh snap boys!
Someone way smarter than me just dunked on FNB.
This has all been worth it. Moving on now
Okay then.
- I have crossplay on, you have crossplay off, we join the same lobby. The lobby is no longer crossplay-enabled, even though I have explicitly enabled crossplay support. Why should your settings indirectly be allowed to override my settings? Maybe I’d like the possibility of Xbox players in the lobby, but your crossplay settings are preventing that (without my knowledge)
- If 2 players join a lobby at the same time, one with crossplay, one without, is it fair/reasonable to deny them that slot (or worse, eject them from the lobby immediately after they join) because they have contradictory preferences?
- If there’s a problem, and the above situation occurs, is that going to create a mess?
- What if a player on WinPC/Xbox makes an issue of it with Microsoft? My MS privacy settings say “Don’t match outside my platform” and this game Darktide put me in a game with someone from another platform, what gives? Does this create a larger mess because now the game is violating MS requirements for crossplay?
Fatshark could decide to come up with an answer to all of those questions… or they could implement crossplay in a way that makes them a non-issue - I put Steam-only players in the Steam-only bucket, WinPC-only players in the WinPC-only bucket, Xbox-only players in the Xbox-only bucket, and everyone else in one large common bucket. Every player in a single bucket has the same crossplay preference - fewer conditions to enforce, fewer corner cases to handle, simple!
I answered the question myself, in my reply. That’s what the sentence immediately after the question was for
Thanks though.
What on earth is FNB? Never heard the term before. If it’s inappropriate for public discussion, feel free to DM ![]()
Fair enough, I guess there’s a limit on conditions and user settings (flags), no more than 2? 3? Curse the age we live in and its limitations!
But hey, if it’s simpler for FS then I’d be willing to keep it Steam Only if given the option.
My sincere apologies, I was alt-tabbed in game lobby (as I am now) and a bit under the weather; I should have taken more time to reply properly.
“Fat Nerd Bigot”, ironically, is his name for me because I told him his controller AND gameplay was sub-par for regular damnation pre-director update and it hurt his feeling(s); go watch his video and judge for yourself. I also said most xbox players are band and I don’t enjoy playing with them.
Fat Nerd Bigot
He likes to create alternative realities for some reason.
Go look up the 1st thread. He literally said all controller players are bad and when I asked would he rather have a good controller player or a bad MNK player he said bad MNK. He is clearly a bigot lol
Then when I tried to explain to him you typically don’t want to label a whole group of people as X or Y, he moved on to me being bad. He’s a bigot because of that. My feelings aren’t hurt that he thinks I’m bad at a video game LOL. Get real
Am I being hyperbolic? Yeaaaa but he thinks the same way as someone says “blacks are X or Asians are Y”. It’s dogmatic shallow thinking that doesn’t hold up to scrutiny, just like when I scrutinize him and the other circle jerks they don’t say anything meaningful back. It’s like talking to a wall
Hence, Fat Nerd Bigot
Hell, he tried to condescend to me just for speculating about crossplay. This guy has friends
Ultimately, it’s a question for Fatshark of “Is the benefit of implementing it this way worth the cost (time) required, versus the alternative”. I don’t know your background, but software can get gnarly, in ways you may not even predict, and that’s before you get into human error.
And I apologise for being overly snarky. Reacting to (what I would consider) a reasonable assessment of how crossplay may function with “that makes no technical sense” and “it’s just 2 if statements” bugged the hell out of me (hence the deep dive into the LUA, the HTTP requests made, etc).
My objective wasn’t to try and put you off crossplay or scaremonger, just to temper expectations that Steam crossplay may not be exactly what people imagine it to be.
Oh… not cool
I’ve no beef with either of you (I’m considering this fleeting beef squashed
), so I’m not taking sides, but no need for name calling. I can appreciate people being annoyed about “Xbox players ruining their games!!!111”, but (and this is not directed at you, or anyone in particular) there’s no need for people to be rude about it, from either side.
Personally, I’d be biased towards M+K - there’s a level of precision that (IMO) seems impossible to replicate with a controller, and I’m objectively bad at console shooters - but I’m content playing with whoever the matchmaker throws at me ![]()
I read most of that thread when it was active… but it devolved into a bit of a dumpster fire.
I would tend to agree with you and hopefully you think I’ve been nice to everyone else. I just don’t like bigots and I have zero tolerance for that nonsense. He deserves the criticism and name calling. His behavior is embarrassing
The whole thread starts as a dumpster fire and ends as one I guess.
Like how would you guys like it if a console player made a topic once month asking FatShark to block PC players who live in their parents basement because they are tired of hearing them munch on their Doritos? It’s just rude, prejudice, and should be scrutinized.
social_service.lua is where I came across those functions that appear to block partying up when crossplay is disabled.
matchmaker.lua’s primary function looks like preparing the request to send to the matchmaking service - it loads your crossplay state, block list, latency data then sends all that off, and that service returns your “ticket” in the matchmaking queue. I couldn’t extract any useful information out of the ticket though
Nah you’re good, snark is the lingua franca of the interwebs.
Nah not squashed, muted as I started not feeling well.
As these my be my last words, Trigger Warning:
I had a ~bipolar relative who was also a huge jerk, and it can be exhausting after a sort while. You get sucked back into it trying to interact with them and help on non-manic periods and it never turns out well, not for me at least. I should know better, fool me once, once being a value between 1 and infinity…
I meant between you and me ![]()
Unless you blocked me… ![]()
Jokes aside, I get it. Heated exchanges get tiresome after a while - I can be one of those “Oh, I’m gonna prove you so damn wrong” people, but once you snap out of it, it’s like “I’m not sure it was worth the effort”
oh LOL no, OFC not
Tiresome they may be, but they do shed light on many important topics, if only incidentally.
I.e. the value of combos that have been in the game since launch (beta), and made much better even since #13; stuff like that.
In some twisted way maybe it’s worth the effort, but it’s more likely I’m trying to rationalize it.
!Remind Me 1 year.
You can set a bookmark that will remind you in a year if you really want to.
Nah, but TY.
Not sure you should be throwing around the word Bigot for sectarian disagreements about input type, most MnK players have played on a controller, they know what they are talking about as far as the limitations compared to MnK.
I‘d go even further - we should have the ability to opt out of online play. The ability to play with your spare characters as bots would rid you of the obligation to play with console players.