

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.

# Entwerfen Sie einen FlexMatch Regelsatz
<a name="match-design-ruleset"></a>

Dieses Thema behandelt die grundlegende Struktur eines Regelsatzes und wie man einen Regelsatz für kleine Spiele mit bis zu 40 Spielern erstellt. Ein Matchmaking-Regelsatz hat zwei Aufgaben: Er legt die Teamstruktur und -größe eines Spiels fest und teilt dem Matchmaker mit, wie er die Spieler auswählt, um das bestmögliche Spiel zu bilden. 

Ihr Matchmaking-Regelsatz kann jedoch noch mehr. Beispielsweise ist Folgendes möglich:
+ Optimiere den Matchmaking-Algorithmus für dein Spiel.
+ Richten Sie Mindestanforderungen für die Latenz der Spieler ein, um die Qualität des Spiels zu schützen.
+ Lockern Sie die Teamanforderungen und die Spielregeln im Laufe der Zeit schrittweise, sodass alle aktiven Spieler ein akzeptables Spiel finden können, wann immer sie wollen.
+ Definieren Sie die Behandlung von Gruppenzuweisungsanfragen mithilfe der Gruppenaggregation.
+ Verarbeite große Spiele mit 40 oder mehr Spielern. Weitere Informationen zum Erstellen großer Matches finden Sie unter[Entwerfen Sie einen FlexMatch Regelsatz mit großen Übereinstimmungen](match-design-rulesets-large.md).

Beachten Sie beim Erstellen eines Regelsatzes für die Spielerzuweisung die folgenden optionalen und erforderlichen Aufgaben: 
+ [Beschreiben Sie den Regelsatz (erforderlich)](match-rulesets-components-set.md)
+ [Passen Sie den Match-Algorithmus an](match-rulesets-components-algorithm.md)
+ [Deklarieren Sie Spielerattribute](match-rulesets-components-attributes.md)
+ [Definieren Sie Spielteams](match-rulesets-components-teams.md)
+ [Lege Regeln für das Spieler-Matching fest](match-rulesets-components-rules.md)
+ [Lassen Sie zu, dass sich die Anforderungen im Laufe der Zeit entspannen](match-rulesets-components-expansion.md)

Sie können Ihren Regelsatz mithilfe der Amazon GameLift Servers Konsole oder der `[CreateMatchmakingRuleSet](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateMatchmakingRuleSet.html)` Operation erstellen.

# Beschreiben Sie den Regelsatz (erforderlich)
<a name="match-rulesets-components-set"></a>

Machen Sie nähere Angaben zum Regelsatz.
+ *name* (optional) — Eine beschreibende Bezeichnung für Ihren eigenen Gebrauch. Dieser Wert ist nicht mit dem Namen des Regelsatzes verknüpft, den Sie bei der Erstellung des Regelsatzes angeben. Amazon GameLift Servers
+ *ruleLanguageVersion*— Die Version der Sprache für Eigenschaftsausdrücke, die zur Erstellung von FlexMatch Regeln verwendet wurde. Der Wert muss sein`1.0`.

# Passen Sie den Match-Algorithmus an
<a name="match-rulesets-components-algorithm"></a>

FlexMatchoptimiert den Standardalgorithmus für die meisten Spiele, sodass Spieler mit minimaler Wartezeit zu akzeptablen Spielen kommen. Du kannst den Algorithmus und das Matchmaking für dein Spiel anpassen.

Im Folgenden ist der FlexMatch Standard-Matchmaking-Algorithmus aufgeführt: 

1. FlexMatchplatziert alle offenen Matchmaking-Tickets und Backfill-Tickets in einem Ticketpool.

1. FlexMatchgruppiert Tickets im Pool nach dem Zufallsprinzip in einen oder mehrere Stapel. Wenn der Ticketpool größer wird, werden zusätzliche Stapel FlexMatch gebildet, um die optimale Batchgröße aufrechtzuerhalten.

1. FlexMatchsortiert die Tickets innerhalb jedes Stapels nach Alter.

1. FlexMatcherstellt ein Match auf der Grundlage des ältesten Tickets jeder Charge. 

Um den Match-Algorithmus anzupassen, fügen Sie Ihrem Regelsatzschema eine `algorithm` Komponente hinzu. Die vollständigen Referenzinformationen finden Sie unter. [FlexMatch Regelsatzschema](match-ruleset-schema.md) 

Verwenden Sie die folgenden optionalen Anpassungen, um verschiedene Phasen Ihres Matchmaking-Prozesses zu beeinflussen. 
+ [Fügen Sie Sortierung vor dem Batch hinzu](#match-rulesets-components-algorithm-presort)
+ [Bilden Sie Stapel auf der Grundlage von BatchDistance-Attributen](https://docs.aws.amazon.com//gameliftservers/latest/flexmatchguide/match-rules-reference-ruletype.html#match-rules-reference-ruletype-batchdistance)
+ [Priorisieren Sie Backfill-Tickets](#match-rulesets-components-algorithm-backfill)
+ [Bevorzugen Sie ältere Tickets mit Erweiterungen](#match-rulesets-components-algorithm-expansion)

## Fügen Sie Sortierung vor dem Batch hinzu
<a name="match-rulesets-components-algorithm-presort"></a>

Sie können den Ticketpool sortieren, bevor Sie Batches bilden. Diese Art der Anpassung ist am effektivsten bei Spielen mit großen Ticketpools. Die Sortierung vor dem Batch kann dazu beitragen, den Matchmaking-Prozess zu beschleunigen und die Einheitlichkeit der Spieler bei den definierten Merkmalen zu erhöhen.

Definieren Sie mithilfe der Algorithmuseigenschaft Methoden zur Sortierung vor dem Batch. `batchingPreference` Die Standardeinstellung lautet `random`.

Zu den Optionen für die Anpassung der Sortierung vor dem Batch gehören:
+ **Sortiert nach Spielerattributen.** Stellen Sie eine Liste mit Spielerattributen bereit, um den Ticketpool vorab zu sortieren. 

  Um nach Spielerattributen `batchingPreference` zu sortieren, stellen Sie auf `sorted` ein und definieren Sie Ihre Liste der Spielerattribute in`sortByAttributes`. Um ein Attribut zu verwenden, deklarieren Sie es zunächst in der `playerAttributes` Komponente des Regelsatzes. 

  Im folgenden Beispiel wird der Ticketpool nach der bevorzugten Spielkarte der Spieler und dann nach den Fähigkeiten des Spielers FlexMatch sortiert. Es ist wahrscheinlicher, dass die resultierenden Stapel Spieler mit ähnlichen Fähigkeiten enthalten, die dieselbe Karte verwenden möchten.

  ```
  "algorithm": {
      "batchingPreference": "sorted",
      "sortByAttributes": ["map", "player_skill"],
      "strategy": "exhaustiveSearch"
  },
  ```
+ **Sortiert nach Latenz.** Erstellen Sie Matches mit der niedrigsten verfügbaren Latenz oder erstellen Sie schnell Matches mit akzeptabler Latenz. Diese Anpassung ist nützlich für Regelsätze, die große Spiele mit mehr als 40 Spielern bilden. 

  Stellen Sie die Algorithmuseigenschaft `strategy` auf ein`balanced`. Die ausgewogene Strategie schränkt die verfügbaren Typen von Regelanweisungen ein. Weitere Informationen finden Sie unter [Entwerfen Sie einen FlexMatch Regelsatz mit großen Übereinstimmungen](match-design-rulesets-large.md). 

  FlexMatchsortiert Tickets auf der Grundlage der von Spielern gemeldeten Latenzdaten auf eine der folgenden Arten: 
  + *Standorte mit der niedrigsten Latenz.* Der Ticketpool ist vorsortiert nach den Orten, an denen Spieler ihre niedrigsten Latenzwerte melden. FlexMatchdann werden Tickets mit niedriger Latenz an denselben Orten gebündelt, was für ein besseres Spielerlebnis sorgt. Außerdem wird dadurch die Anzahl der Tickets in jedem Stapel reduziert, sodass das Matchmaking länger dauern kann. Um diese Anpassung zu verwenden, stellen Sie `batchingPreference``fastestRegion`, wie im folgenden Beispiel gezeigt, auf ein.

    ```
    "algorithm": {
        "batchingPreference": "fastestRegion",
        "strategy": "balanced"
    },
    ```
  + *Die akzeptable Latenz stimmt schnell überein.* Der Ticketpool ist nach Orten vorsortiert, an denen Spieler einen akzeptablen Latenzwert melden. Dadurch entstehen weniger Stapel mit mehr Tickets. Je mehr Tickets in jedem Stapel enthalten sind, desto schneller lassen sich akzeptable Treffer finden. Um diese Anpassung zu verwenden, setzen Sie die Eigenschaft `batchingPreference` auf` largestPopulation`, wie im folgenden Beispiel gezeigt.

    ```
    "algorithm": {
        "batchingPreference": "largestPopulation",
        "strategy": "balanced"
    },
    ```
**Anmerkung**  
Der Standardwert für die ausgewogene Strategie ist`largestPopulation`.

## Priorisieren Sie Backfill-Tickets
<a name="match-rulesets-components-algorithm-backfill"></a>

Wenn dein Spiel automatisches oder manuelles Auffüllen implementiert, kannst du je nach Art der Anfrage anpassen, wie Matchmaking-Tickets FlexMatch verarbeitet werden. Der Anfragetyp kann eine neue Match- oder Backfill-Anfrage sein. Standardmäßig werden beide Arten von Anfragen gleich FlexMatch behandelt.

Die Priorisierung von Backfill-Prioritäten wirkt sich darauf aus, wie Tickets FlexMatch behandelt werden, nachdem sie gebündelt wurden. Für die Priorisierung von Backfill-Prioritäten müssen Regelsätze die umfassende Suchstrategie verwenden. 

FlexMatchordnet nicht mehrere Backfill-Tickets zusammen.

Um die Priorisierung für Backfill-Tickets zu ändern, legen Sie die Eigenschaft fest. `backfillPriority`
+ **Ordnen Sie zuerst Backfill-Tickets zu.** Diese Option versucht, Backfill-Tickets zuzuordnen, bevor neue Treffer erstellt werden. Das bedeutet, dass neue Spieler eine höhere Chance haben, einem bestehenden Spiel beizutreten. 

  Es ist am besten, dies zu verwenden, wenn dein Spiel automatisches Backfill verwendet. Automatisches Backfill wird häufig in Spielen mit kurzen Spielsitzungen und hoher Spielerzahl verwendet. Automatisches Backfill hilft diesen Spielen dabei, mindestens brauchbare Spiele zu bilden und sie zu starten, während FlexMatch nach weiteren Spielern gesucht wird, um offene Slots zu besetzen.

  Legen Sie den Wert für `backfillPriority` auf `high` fest.

  ```
  "algorithm": {
      "backfillPriority": "high",
      "strategy": "exhaustiveSearch"
  },
  ```
+ **Das Spiel mit den Backfill-Tickets wird zuletzt gespielt.** Diese Option ignoriert Backfill-Tickets, bis alle anderen Tickets ausgewertet wurden. Das bedeutet, dass eingehende Spieler in bestehende Spiele FlexMatch zurückgeladen werden, wenn sie nicht neuen Spielen zugeordnet werden können. 

  Diese Option ist nützlich, wenn Sie Backfill als letzte Chance verwenden möchten, um Spieler für ein Spiel zu gewinnen, z. B. wenn nicht genügend Spieler vorhanden sind, um ein neues Spiel zu bilden. 

  Setzen Sie `backfillPriority` auf `low`. 

  ```
  "algorithm": {
      "backfillPriority": "low",
      "strategy": "exhaustiveSearch"
  },
  ```

## Bevorzugen Sie ältere Tickets mit Erweiterungen
<a name="match-rulesets-components-algorithm-expansion"></a>

Die Erweiterungsregeln lockern die Spielkriterien, wenn Spiele schwer zu beenden sind. Amazon GameLift Serverswendet die Erweiterungsregeln an, wenn Tickets für ein teilweise abgeschlossenes Spiel ein bestimmtes Alter erreichen. Die Zeitstempel der Erstellung der Tickets bestimmen, wann die Regeln Amazon GameLift Servers angewendet werden. Standardmäßig wird der Zeitstempel des Tickets aufgezeichnet, FlexMatch für das zuletzt ein Treffer gefunden wurde. 

Um zu ändern, wann Erweiterungsregeln FlexMatch gelten, legen Sie die Eigenschaft `expansionAgeSelection` wie folgt fest: 
+ **Erweitern Sie basierend auf den neuesten Tickets.** Diese Option wendet Erweiterungsregeln an, die auf dem neuesten Ticket basieren, das dem potenziellen Spiel hinzugefügt wurde. Jedes Mal, FlexMatch wenn ein neues Ticket gefunden wird, wird die Uhr zurückgesetzt. Mit dieser Option weisen die resultierenden Treffer in der Regel eine höhere Qualität auf, der Abgleich dauert jedoch länger. Match-Anfragen können vor Abschluss eines Timeouts enden, wenn der Abgleich zu lange dauert. Auf `expansionAgeSelection` eingestellt`newest`. `newest`ist Standard.
+ **Erweitern Sie basierend auf den ältesten Tickets.** Diese Option wendet Erweiterungsregeln an, die auf dem ältesten Ticket im potenziellen Spiel basieren. Mit dieser Option werden Erweiterungen schneller FlexMatch angewendet, was die Wartezeiten für die Spieler mit der frühesten Übereinstimmung verbessert, aber die Spielqualität für alle Spieler verringert. Setzen Sie `expansionAgeSelection` auf `oldest`. 

```
"algorithm": {
    "expansionAgeSelection": "oldest",
    "strategy": "exhaustiveSearch"
},
```

# Deklarieren Sie Spielerattribute
<a name="match-rulesets-components-attributes"></a>

In diesem Abschnitt listet die individuellen Spielerattribute auf, die in Matchmaking-Anfragen aufgenommen werden sollen. Es gibt zwei Gründe, warum du Spielerattribute in einem Regelsatz deklarieren könntest: 
+ Wenn der Regelsatz Regeln enthält, die auf Spielerattributen basieren.
+ Wenn Sie über die Spielanfrage ein Spielerattribut an die Spielsitzung weitergeben möchten. Möglicherweise möchten Sie die Charakterauswahl eines Spielers an die Spielsitzung weitergeben, bevor jeder Spieler eine Verbindung herstellt. 

Beim Deklarieren eines Spielerattributs geben Sie die folgenden Informationen an: 
+ *name* (erforderlich) — Dieser Wert muss für den Regelsatz eindeutig sein.
+ *type* (erforderlich) — Der Datentyp des Attributwerts. Gültige Datentypen sind Zahl, Zeichenfolge, Zeichenfolgenliste oder Zeichenkettenzuweisung.
+ *Standard* (optional) — Geben Sie einen Standardwert ein, der verwendet werden soll, wenn eine Matchmaking-Anfrage keinen Attributwert bereitstellt. Wenn kein Standard deklariert ist und eine Anfrage keinen Wert enthält, FlexMatch kann die Anfrage nicht erfüllt werden.

# Definieren Sie Spielteams
<a name="match-rulesets-components-teams"></a>

Beschreiben Sie die Struktur und Größe der Teams für ein Match. Jedes Match muss über mindestens ein Team verfügen, und Sie können beliebig viele Teams definieren. Ihre Teams können die gleiche Anzahl von Spielern haben oder asymmetrisch sein. Sie definieren z. B. möglicherweise ein Singleplayer-Monster-Team und ein Jäger-Team mit 10 Spielern.

FlexMatch verarbeitet Match-Anforderungen entweder als kleines Match oder als großes Match, je nachdem, wie Teamgrößen im Regelsatz definiert sind. Mögliche Spiele mit bis zu 40 Spielern sind kleine Spiele, Spiele mit mehr als 40 Spielern sind große Spiele. Um die potenzielle Match-Größe eines Regelsatzes zu bestimmen, addieren Sie die *maxPlayer*-Einstellungen für alle im Regelsatz definierten Teams. 
+ *Name* (erforderlich) — Weisen Sie jedem Team einen eindeutigen Namen zu. Du verwendest diesen Namen in Regeln und Erweiterungen sowie als FlexMatch Verweise für die Spielerzuweisungsdaten in einer Spielsitzung.
+ *MaxPlayers* (erforderlich) — Geben Sie die maximale Anzahl an Spielern an, die dem Team zugewiesen werden sollen.
+ *minPlayers* (erforderlich) — Geben Sie die Mindestanzahl an Spielern an, die dem Team zugewiesen werden sollen. 
+ *Menge* (optional) — Geben Sie die Anzahl der Teams an, die mit dieser Definition gebildet werden sollen. Wenn ein Spiel FlexMatch erstellt wird, erhalten diese Teams den angegebenen Namen mit einer angehängten Zahl. Zum Beispiel `Red-Team1``Red-Team2`, und`Red-Team3`. 

FlexMatchversucht, Teams bis zur maximalen Spielergröße zu füllen, erstellt aber Teams mit weniger Spielern. Wenn Sie möchten, dass alle Teams im Match die gleiche Größe haben, können Sie eine Regel dafür erstellen. Ein Beispiel für eine `EqualTeamSizes` Regel finden Sie im [FlexMatchBeispiele für Regelsätze](match-examples.md) Thema.

# Lege Regeln für das Spieler-Matching fest
<a name="match-rulesets-components-rules"></a>

Erstelle eine Reihe von Regelerklärungen, anhand derer Spieler hinsichtlich ihrer Zulassung zu einem Spiel bewertet werden. Regeln können Anforderungen festlegen, die für einzelne Spieler, Teams oder ein gesamtes Match gelten. Wenn Amazon GameLift Servers eine Match-Anforderung verarbeitet, beginnt es mit dem ältesten Spieler im Pool verfügbarer Spieler und baut um diesen Spieler ein Match auf. Ausführliche Hilfe zur Erstellung von FlexMatch Regeln finden Sie unter[FlexMatchRegeltypen](match-rules-reference-ruletype.md).
+ *name* (erforderlich) — Ein aussagekräftiger Name, der die Regel innerhalb eines Regelsatzes eindeutig identifiziert. Regelnamen werden auch in Ereignisprotokollen und Metriken verwendet, in denen die Aktivitäten im Zusammenhang mit dieser Regel verfolgt werden. 
+ *description* (optional) — Verwenden Sie dieses Element, um eine formlose Textbeschreibung anzuhängen.
+ *type* (erforderlich) — Das Type-Element identifiziert den Vorgang, der bei der Verarbeitung der Regel verwendet werden soll. Jeder Regeltyp erfordert eine Reihe von zusätzlichen Eigenschaften. Eine Liste gültiger Regeltypen und Eigenschaften finden Sie unter [FlexMatch Sprache der Regeln](match-rules-reference.md). 
+ Eigenschaft des Regeltyps (möglicherweise erforderlich) — Je nach Art der definierten Regel müssen Sie möglicherweise bestimmte Regeleigenschaften festlegen. Weitere Informationen zu Eigenschaften und zur Verwendung der FlexMatch-Eigenschaftsausdruckssprache finden Sie unter [FlexMatch Sprache der Regeln](match-rules-reference.md).

# Lassen Sie zu, dass sich die Anforderungen im Laufe der Zeit entspannen
<a name="match-rulesets-components-expansion"></a>

Erweiterungen ermöglichen es Ihnen, die Regelkriterien im Laufe der Zeit zu lockern, wenn keine Übereinstimmung gefunden FlexMatch werden kann. Diese Funktion stellt sicher, dass die FlexMatch beste Version verfügbar ist, wenn keine perfekte Übereinstimmung gefunden werden kann. Indem Sie Ihre Regeln mit einer Erweiterung lockern, erweitern Sie schrittweise den Pool an Spielern, die ein akzeptables Match bieten. 

Erweiterungen beginnen, wenn das Alter des neuesten Tickets in einem unvollständigen Spiel mit der Wartezeit für Erweiterungen übereinstimmt. Wenn FlexMatch dem Spiel ein neues Ticket hinzugefügt wird, wird die Wartezeit für die Erweiterung möglicherweise zurückgesetzt. Du kannst im `algorithm` Abschnitt des Regelsatzes anpassen, wie Erweiterungen beginnen.

Hier ist ein Beispiel für eine Erweiterung, mit der die für das Spiel erforderliche Mindestfertigkeitsstufe schrittweise erhöht wird. Der Regelsatz verwendet eine Abstandsregel, die so benannt *SkillDelta*ist, dass alle Spieler in einem Spiel nicht mehr als 5 Fähigkeitsstufen voneinander entfernt sein müssen. Wenn innerhalb von fünfzehn Sekunden keine neuen Spiele ausgetragen werden, sucht diese Erweiterung nach einem Unterschied zwischen den Fertigkeitsstufen von 10 und zehn Sekunden später nach einem Unterschied von 20.

```
"expansions": [{
        "target": "rules[SkillDelta].maxDistance",
        "steps": [{
            "waitTimeSeconds": 15,
            "value": 10
        }, {
            "waitTimeSeconds": 25,
            "value": 20
        }]
    }]
```

Bei den Matchmakers, bei denen das automatische Auffüllen aktiviert ist, solltest du deine Anforderungen an die Spieleranzahl nicht zu schnell lockern. Es dauert einige Sekunden, bis die neue Spielsitzung startet und mit dem automatischen Backfill beginnt. Ein besserer Ansatz besteht darin, deine Erweiterung zu starten, nachdem das automatische Auffüllen in deinen Spielen in der Regel aktiviert wird. Der Zeitpunkt der Erweiterung hängt von der Zusammensetzung Ihres Teams ab. Testen Sie also, um die beste Erweiterungsstrategie für Ihr Spiel zu finden.