Matchmaking rule set

0

Hello guys. I want to create a matchmaking rule for my game and to relax the player's rank after a certain time. The problem is that even if one player is level 0 and another one is level 100, a match is still created, even if I have the max distance between levels to 50. I think the problem is with the measurements which I don't really understand how it works. I've added the rule, after some examples. Here's my rule set.Enter image description here

{
    "name": "Matchmaking-8P",
    "ruleLanguageVersion": "1.0",
    "teams": [{
        "name": "Dragons",
        "minPlayers":8,
        "maxPlayers":8
    }],
    "playerAttributes": [{
        "name": "rank",
        "type": "number",
        "default": 0
    }],
    "rules": [{
        "name": "RankProximity",
        "type": "distance",
        "measurements": [ "avg(teams[*].players.attributes[rank])" ],
        "referenceValue":0,
        "maxDistance": 10
    }],
    "expansions": [{
        "target": "teams[Dragons].minPlayers",
        "steps": [{
            "waitTimeSeconds": 5,
            "value": 7
        }, {
            "waitTimeSeconds": 15,
            "value": 6
        }, {
            "waitTimeSeconds": 25,
            "value": 5
        }, {
            "waitTimeSeconds": 40,
            "value": 4
        }, {
            "waitTimeSeconds": 45,
            "value": 3
        }, {
            "waitTimeSeconds": 50,
            "value": 2
        }]
    }, {
        "target": "rules[RankProximity].maxDistance",
        "steps": [{
            "waitTimeSeconds": 5,
            "value": 20
        }, {
            "waitTimeSeconds": 15,
            "value": 30
        }, {
            "waitTimeSeconds": 20,
            "value": 40
        }, {
            "waitTimeSeconds": 25,
            "value": 50
        }]
    }]
}

Also there're no any teams (just one team). As you can see, I have a relax rule for the number of players and for the levels. I also attached the matchmaking game session data.

Thank you!

zerox
asked a month ago73 views
2 Answers
1

The reduced time, didn't affected the creation of a new game session. I can still connect with a player with rank 0 and another one with rank 100. I also checked if there's a problem on UE5, but since the Matchmaking data game session is returned with the values 0 and 100, it means it's working properly. I couldn't be a problem on the measurements since there is only one team and it calculates the average players from 'each team'? Thank you!Enter image description here
Enter image description here

zerox
answered a month ago
0

The primary issue appears to be with the rule expansion for RankProximity. The maxDistance in

Suggested Changes Tighten Initial Rank Proximity: Start with a stricter initial maxDistance. Adjust Expansion Timing: Increase the wait times between expansions to ensure that rank disparities are not relaxed too quickly.

Here is a revised version of your rule set with tighter initial proximity and slower expansion:

{
    "name": "Matchmaking-8P",
    "ruleLanguageVersion": "1.0",
    "teams": [{
        "name": "Dragons",
        "minPlayers": 8,
        "maxPlayers": 8
    }],
    "playerAttributes": [{
        "name": "rank",
        "type": "number",
        "default": 0
    }],
    "rules": [{
        "name": "RankProximity",
        "type": "distance",
        "measurements": [ "avg(teams[*].players.attributes[rank])" ],
        "referenceValue": 0,
        "maxDistance": 5  // Stricter initial distance
    }],
    "expansions": [{
        "target": "teams[Dragons].minPlayers",
        "steps": [{
            "waitTimeSeconds": 10,  // Increased wait time
            "value": 7
        }, {
            "waitTimeSeconds": 30,  // Increased wait time
            "value": 6
        }, {
            "waitTimeSeconds": 60,  // Increased wait time
            "value": 5
        }, {
            "waitTimeSeconds": 90,  // Increased wait time
            "value": 4
        }, {
            "waitTimeSeconds": 120,  // Increased wait time
            "value": 3
        }, {
            "waitTimeSeconds": 150,  // Increased wait time
            "value": 2
        }]
    }, {
        "target": "rules[RankProximity].maxDistance",
        "steps": [{
            "waitTimeSeconds": 30,  // Increased wait time
            "value": 10
        }, {
            "waitTimeSeconds": 60,  // Increased wait time
            "value": 20
        }, {
            "waitTimeSeconds": 90,  // Increased wait time
            "value": 30
        }, {
            "waitTimeSeconds": 120,  // Increased wait time
            "value": 40
        }, {
            "waitTimeSeconds": 150,  // Increased wait time
            "value": 50
        }]
    }]
}

Adjustments made:- Initial maxDistance: Reduced from 10 to 5 to ensure closer initial matches. Expansion Timing: Increased the wait times between each step to prevent quick relaxation of the rank proximity rule. Player Number Relaxation: Increased the wait times for reducing the minimum number of players to ensure the game does not start with too few players too quickly. These adjustments should help ensure that matches are made between player

profile picture
EXPERT
A_J
answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions