Entwerfen Sie einen FlexMatch Regelsatz - 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.

Entwerfen Sie einen FlexMatch Regelsatz

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 macht zwei Dinge: Sie legen die Teamstruktur und -größe eines Spiels fest und teilen Sie dem Matchmaker mit, wie er Spieler auswählt, um das bestmögliche Spiel zu bilden.

Ihr Matchmaking-Regelsatz kann jedoch mehr. Beispielsweise ist Folgendes möglich:

  • Optimiere den Matchmaking-Algorithmus für dein Spiel.

  • Lege Mindestanforderungen an die Spielerlatenz fest, um die Qualität des Gameplays zu gewährleisten.

  • Lockere die Teamanforderungen und Spielregeln im Laufe der Zeit schrittweise, damit alle aktiven Spieler ein akzeptables Spiel finden können, wenn sie eines wollen.

  • Definieren Sie die Behandlung von Gruppen-Matchmaking-Anfragen mithilfe der Gruppenaggregation.

  • Verarbeite große Partien mit 40 oder mehr Spielern. Weitere Informationen zum Erstellen großer Streichhölzer finden Sie unterEntwerfen Sie einen FlexMatch Regelsatz für große Übereinstimmungen.

Beachten Sie beim Aufbau eines Matchmaking-Regelsatzes die folgenden optionalen und erforderlichen Aufgaben:

Sie können Ihren Regelsatz mithilfe der GameLift Amazon-Konsole oder der CreateMatchmakingRuleSet Operation erstellen.

Beschreiben Sie den Regelsatz (erforderlich)

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 mit Amazon angebenGameLift.

  • ruleLanguageVersion— Die Version der Sprache für Eigenschaftsausdrücke, die zur Erstellung von FlexMatch Regeln verwendet wurde. Der Wert muss sein1.0.

Passen Sie den Match-Algorithmus an

FlexMatchoptimiert den Standardalgorithmus für die meisten Spiele, um die Spieler mit minimaler Wartezeit in akzeptable Matches zu bringen. Sie können den Algorithmus anpassen und das Matchmaking für Ihr Spiel anpassen.

Im Folgenden finden Sie den FlexMatch Standard-Matchmaking-Algorithmus:

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

  2. FlexMatchGruppiert Tickets im Pool nach dem Zufallsprinzip in einen oder mehrere Chargen. Wenn der Ticketpool größer wird, werden weitere Chargen FlexMatch gebildet, um die optimale Chargengröße beizubehalten.

  3. FlexMatchsortiert die Tickets innerhalb jeder Charge nach Alter.

  4. FlexMatcherstellt ein Match, das auf dem ältesten Ticket jeder Charge basiert.

Um den Match-Algorithmus anzupassen, fügen Sie Ihrem Regelsatzschema eine algorithm Komponente hinzu. Die vollständigen Referenzinformationen finden Sie unter. FlexMatchRegelsatzschema

Verwenden Sie die folgenden optionalen Anpassungen, um verschiedene Phasen Ihres Matchmaking-Prozesses zu beeinflussen.

Sortierung vor dem Batch hinzufügen

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

Definieren Sie Sortiermethoden vor dem Batch mithilfe der Algorithmuseigenschaft. batchingPreference Die Standardeinstellung lautet random.

Zu den Optionen für die Anpassung der Sortierung vor dem Batch gehören:

  • Sortiere nach Spielerattributen. Geben Sie eine Liste der Spielerattribute an, um den Ticketpool vorab zu sortieren.

    Um nach Spielerattributen batchingPreference zu sorted sortieren, setzen Sie auf und definieren Sie Ihre Liste der Spielerattribute insortByAttributes. Um ein Attribut zu verwenden, deklarieren Sie das Attribut 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 Batches ähnlich fähige Spieler enthalten, die dieselbe Karte verwenden möchten.

    "algorithm": { "batchingPreference": "sorted", "sortByAttributes": ["map", "player_skill"], "strategy": "exhaustiveSearch" },
  • Sortiere 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 Matches mit mehr als 40 Spielern bilden.

    Stellen Sie die Algorithmuseigenschaft strategy auf einbalanced. Die ausgewogene Strategie begrenzt die verfügbaren Arten von Regelaussagen. Weitere Informationen finden Sie unter Entwerfen Sie einen FlexMatch Regelsatz für große Übereinstimmungen.

    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 die Spieler ihre niedrigsten Latenzwerte angeben. FlexMatchfasst dann Tickets mit geringer Latenz an denselben Orten zusammen und sorgt so für ein besseres Spielerlebnis. Es reduziert auch die Anzahl der Tickets in jedem Stapel, sodass das Matchmaking länger dauern kann. Um diese Anpassung zu verwenden, setzen Sie batchingPreferencefastestRegion, wie im folgenden Beispiel gezeigt, auf.

      "algorithm": { "batchingPreference": "fastestRegion", "strategy": "balanced" },
    • Die akzeptable Latenz passt schnell. Der Ticketpool ist vorsortiert nach Orten, an denen Spieler einen akzeptablen Latenzwert angeben. Dadurch entstehen weniger Stapel mit mehr Tickets. Mit mehr Tickets in jedem Stapel ist es schneller, akzeptable Treffer zu 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 istlargestPopulation.

Priorisieren Sie Backfill-Tickets

Wenn dein Spiel automatisches oder manuelles Auffüllen implementiert, kannst du je nach Art der Anfrage anpassen, wie Matchmaking-Tickets FlexMatch verarbeitet werden. Der Anforderungstyp 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. Die Priorisierung von Backfill-Prioritäten erfordert, dass Regelsätze die umfassende Suchstrategie anwenden.

FlexMatchordnet nicht mehrere Backfill-Tickets zusammen.

Um die Priorisierung für Backfill-Tickets zu ändern, legen Sie die Eigenschaft fest. backfillPriority

  • Ordnen Sie zuerst die Backfill-Tickets zu. Diese Option versucht, Backfill-Tickets abzugleichen, 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 Auto-Backfill verwendet. Das automatische Auffüllen wird häufig in Spielen mit kurzen Spielsitzungen und hohem Spieler-Turnaround verwendet. Das automatische Auffüllen hilft diesen Spielen dabei, möglichst wenige Matches zu bilden und sie zu starten, während FlexMatch nach weiteren Spielern gesucht wird, um freie Plätze zu besetzen.

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

    "algorithm": { "backfillPriority": "high", "strategy": "exhaustiveSearch" },
  • Spielen Sie die Backfill-Tickets zuletzt ab. Diese Option ignoriert Backfill-Tickets, bis alle anderen Tickets ausgewertet werden. Das bedeutet, dass FlexMatch neue Spieler in bestehende Spiele einsteigen, wenn sie nicht in neue Spiele aufgenommen werden können.

    Diese Option ist nützlich, wenn du das Auffüllen als letzte Chance nutzen möchtest, um Spieler für ein Spiel zu gewinnen, z. B. wenn nicht genügend Spieler für ein neues Spiel vorhanden sind.

    Setzen Sie backfillPriority auf low.

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

Bevorzugen Sie ältere Tickets mit Erweiterungen

Die Erweiterungsregeln lockern die Spielkriterien, wenn Spiele schwierig zu beenden sind. Amazon GameLift wendet die Erweiterungsregeln an, wenn Tickets für ein teilweise abgeschlossenes Spiel ein bestimmtes Alter erreichen. Die Erstellungszeitstempel der Tickets bestimmen, wann Amazon die Regeln GameLift anwendet. Standardmäßig wird der Zeitstempel des zuletzt zugeordneten Tickets FlexMatch protokolliert.

Um zu ändern, wann Erweiterungsregeln FlexMatch angewendet werden, legen Sie die Eigenschaft expansionAgeSelection wie folgt fest:

  • Erweitern Sie anhand der 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 sind die Ergebnisse in der Regel qualitativ hochwertiger, aber es dauert länger, bis sie abgeglichen werden. Match-Anfragen können zu lange dauern, bis sie abgeschlossen sind. Stellen Sie expansionAgeSelection aufnewest. newestist Standard.

  • Erweitern Sie anhand der ältesten Tickets. Diese Option wendet Erweiterungsregeln an, die auf dem ältesten Ticket im potenziellen Spiel basieren. Mit dieser Option werden Erweiterungen schneller FlexMatch angewendet, wodurch die Wartezeiten für die Spieler, die am frühesten gefunden wurden, verbessert, aber die Spielqualität für alle Spieler sinkt. Setzen Sie expansionAgeSelection auf oldest.

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

Spielerattribute deklarieren

In diesem Abschnitt listet ihr die Attribute einzelner Spieler auf, die in Matchmaking-Anfragen berücksichtigt werden sollen. Es gibt zwei Gründe, warum du Spielerattribute in einem Regelsatz deklarieren könntest:

  • Wenn der Regelsatz Regeln enthält, die von Spielerattributen abhängen.

  • Wenn Sie ein Spielerattribut über die Spielanfrage an die Spielsitzung weitergeben möchten. Du könntest zum Beispiel 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 oder Zeichenfolgenzuweisung.

  • default (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.

Definiere Spielteams

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 Matches mit bis zu 40 Spielern sind kleine Matches, Matches mit mehr als 40 Spielern sind große Matches. 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 in FlexMatch Referenzen für die Matchmaking-Daten in einer Spielsitzung.

  • MaxPlayers (erforderlich) — Geben Sie die maximale Anzahl von 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 Nummer. Zum Beispiel Red-Team1Red-Team2, undRed-Team3.

FlexMatchversucht, Teams bis zur maximalen Spielergröße zu besetzen, bildet 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 FlexMatch Beispiele für Regelsätze Thema.

Lege Regeln für das Matching von Spielern fest

Erstellen Sie eine Reihe von Regelerklärungen, in denen die Spieler bewertet werden, ob sie in ein Spiel aufgenommen werden. Regeln können Anforderungen festlegen, die für einzelne Spieler, Teams oder ein gesamtes Match gelten. Wenn Amazon eine Spielanfrage GameLift bearbeitet, beginnt es mit dem ältesten Spieler im Pool der verfügbaren Spieler und erstellt ein Match um diesen Spieler herum. Ausführliche Hilfe zum Erstellen von FlexMatch Regeln finden Sie unterFlexMatchRegeltypen.

  • 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.

  • Beschreibung (optional) — Verwenden Sie dieses Element, um eine Freitextbeschreibung anzuhängen.

  • type (erforderlich) — Das Typ-Element identifiziert die Operation, die 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 FlexMatchRegeln, Sprache.

  • Regeltypeigenschaft (möglicherweise erforderlich) — Abhängig vom definierten Regeltyp müssen Sie möglicherweise bestimmte Regeleigenschaften festlegen. Weitere Informationen zu Eigenschaften und zur Verwendung der FlexMatch-Eigenschaftsausdruckssprache finden Sie unter FlexMatchRegeln, Sprache.

Sorgen Sie dafür, dass sich die Anforderungen im Laufe der Zeit entspannen

Erweiterungen ermöglichen es dir, die Regelkriterien im Laufe der Zeit zu lockern, wenn FlexMatch du keinen Treffer findest. Diese Funktion stellt sicher, dass FlexMatch eine Bestleistung verfügbar ist, wenn sie nicht perfekt zusammenpasst. Indem Sie Ihre Regeln mit einer Erweiterung lockern, erweitern Sie nach und nach den Spielerpool, der zu einem akzeptablen Spiel passt.

Erweiterungen beginnen, wenn das Alter des neuesten Tickets im unvollständigen Spiel einer Wartezeit für die Erweiterung entspricht. Wenn FlexMatch dem Spiel ein neues Ticket hinzugefügt wird, wird die Wartezeit für die Erweiterung möglicherweise zurückgesetzt. Sie können im algorithm Abschnitt des Regelsatzes anpassen, wie Erweiterungen beginnen.

Hier ist ein Beispiel für eine Erweiterung, die die für das Spiel erforderliche Mindestqualifikationsstufe schrittweise erhöht. Der Regelsatz verwendet eine Abstandsregel, die so benannt SkillDeltaist, dass alle Spieler in einem Spiel innerhalb von 5 Fähigkeitsstufen voneinander entfernt sein müssen. Wenn fünfzehn Sekunden lang keine neuen Spiele gespielt werden, sucht diese Erweiterung nach einem Unterschied 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 }] }]

Wenn Matchmaker die automatische Auffüllung aktiviert haben, sollten Sie Ihre 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, mit der Erweiterung zu beginnen, nachdem das automatische Auffüllen für Ihre Spiele in der Regel aktiviert wird. Der Zeitpunkt der Erweiterung hängt von der Zusammensetzung deines Teams ab. Teste also, um die beste Erweiterungsstrategie für dein Spiel zu finden.