Beispiel: Erstelle zwei Teams mit gleichwertigen Spielern - Amazon GameLift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiel: Erstelle zwei Teams mit gleichwertigen Spielern

In diesem Beispiel wird gezeigt, wie Sie zwei gleichmäßig abgeglichenen Spielerteams mit den folgenden Anweisungen erstellen.

  • Erstellen Sie zwei Spielerteams.

    • Nehmen Sie zwischen vier und acht Spieler in jedes Team auf.

    • Fertige Teams müssen die gleiche Anzahl von Spielern haben.

  • Berücksichtigen Sie die Qualifikationsstufe eines Spielers (falls nicht vorhanden, standardmäßig 10).

  • Wählen Sie Spieler abhängig davon aus, ob ihre Qualifikation ähnlich der der anderen Spieler ist. Stellen Sie sicher, dass beide Teams durchschnittliche Spielerqualifikationen innerhalb einer Toleranz von 10 Punkten zueinander aufweisen.

  • Wenn das Match nicht schnell gefüllt wird, lockern Sie die Qualifikationsanforderung, um innerhalb einer angemessenen Zeit ein Match zu erstellen.

    • Nach 5 Sekunden erweitern Sie die Suche so, dass Teams mit durchschnittlichen Spielerqualifikationen in einem Bereich von 50 Punkten zulässig sind.

    • Nach 15 Sekunden erweitern Sie die Suche so, dass Teams mit durchschnittlichen Spielerqualifikationen in einem Bereich von 100 Punkten zulässig sind.

Hinweise zur Verwendung dieses Regelsatzes:

  • Dieses Beispiel lässt Teams einer beliebigen Größe zwischen vier und acht Spielern zu (obwohl sie dieselbe Größe haben müssen). Für Teams mit mehreren gültigen Größen, versucht der Matchmaker, die maximale Anzahl zulässiger Spieler so gut wie möglich zu erfüllen.

  • Die FairTeamSkill-Regel stellt sicher, dass die Teams basierend auf den Spielerqualifikationen gleichmäßig abgeglichen sind. Um diese Regel für jeden neuen potenziellen Spieler auszuwerten, fügt FlexMatch den Spieler vorläufig einem Team hinzu und berechnet die Durchschnittswerte. Wenn eine Regel fehlschlägt, wird der potenzielle Spieler dem Match nicht hinzugefügt.

  • Da die Strukturen beider Teams identisch sind, könnten Sie nur eine Teamdefinition erstellen und als Teamanzahl „2“ festlegen. Wenn Sie dem Team in diesem Szenario den Namen „aliens“ geben würden, dann würden Ihren Teams die Namen „aliens_1“ und „aliens_2“. zugewiesen werden.

{ "name": "aliens_vs_cowboys", "ruleLanguageVersion": "1.0", "playerAttributes": [{ "name": "skill", "type": "number", "default": 10 }], "teams": [{ "name": "cowboys", "maxPlayers": 8, "minPlayers": 4 }, { "name": "aliens", "maxPlayers": 8, "minPlayers": 4 }], "rules": [{ "name": "FairTeamSkill", "description": "The average skill of players in each team is within 10 points from the average skill of all players in the match", "type": "distance", // get skill values for players in each team and average separately to produce list of two numbers "measurements": [ "avg(teams[*].players.attributes[skill])" ], // get skill values for players in each team, flatten into a single list, and average to produce an overall average "referenceValue": "avg(flatten(teams[*].players.attributes[skill]))", "maxDistance": 10 // minDistance would achieve the opposite result }, { "name": "EqualTeamSizes", "description": "Only launch a game when the number of players in each team matches, e.g. 4v4, 5v5, 6v6, 7v7, 8v8", "type": "comparison", "measurements": [ "count(teams[cowboys].players)" ], "referenceValue": "count(teams[aliens].players)", "operation": "=" // other operations: !=, <, <=, >, >= }], "expansions": [{ "target": "rules[FairTeamSkill].maxDistance", "steps": [{ "waitTimeSeconds": 5, "value": 50 }, { "waitTimeSeconds": 15, "value": 100 }] }] }