I'm currently setting up MatchMaking for a UE4 Game. I saw that the "FindMatchRequest" Node has a "Skill" input.
I assume that value is used in the Match Threshold stuff. Why is this on the Client?
I would assume, since the User is known (authenticated), the GameSparks MatchMaking pulls the number from the PlayerData, as well as that I can update the Data via Server when a game is won/lost.
I had this in mind similar to Overwatch, where you gain or loose Ranked Points and you are matched based on them.
Letting the Client pass the Number is just not a thing.
Manual matching the Players also results in this SKILL number being used.
How can I get MatchMaking to use a value that a Client can't access?
Okay I assume I can get my own Variable going for that by overriding the original FindMatchRequest.
Yeah, I ended up doing it like this:
Created a new event called "findMatch".
Add this code for it:
var MatchShortCode = Spark.getData().matchShortCode;
// Create new MatchRequest
var MatchRequest = new SparkRequests.MatchmakingRequest();
// Fill in ShortCode and Skill
MatchRequest.matchShortCode = MatchShortCode;
MatchRequest.skill = Spark.getPlayer().getScriptData("rank");
// Send the Request
The "rank" script data is a value a add to a Player's script data when they register.
And I later modify that for the actual skill.
The FindMatchRequest has been deprecated and has been replaced with the MatchMakingRequest. The skill value could be a value from a collection or one that is stored on the player in scriptData.