Referenz: Verwende eine zusammengesetzte Regel, um ein Spiel mit Spielern mit ähnlichen Attributen oder ähnlichen Auswahlen zu erstellen - 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.

Referenz: Verwende eine zusammengesetzte Regel, um ein Spiel mit Spielern mit ähnlichen Attributen oder ähnlichen Auswahlen zu erstellen

Dieses Beispiel zeigt, wie Sie einen Regelsatz für Spiele einrichten, bei denen zwei Teams verwendencompound. Im Beispiel:

  • Die SimilarLeagueDistance Regel stellt sicher, dass alle Spieler in einem Spiel einen Abstand league von weniger als 2 anderen Spielern haben.

  • Die SimilarSkillDistance Regel stellt sicher, dass alle Spieler in einem Spiel einen Abstand von skill höchstens 10 anderen Spielern haben. Wenn ein Spieler 10 Sekunden gewartet hat, wird die Entfernung auf 20 erhöht. Wenn ein Spieler 20 Sekunden gewartet hat, wird die Entfernung auf 40 erhöht.

  • Die SameMapComparison Regel stellt sicher, dass alle Spieler in einem Spiel dasselbe angefordert habenmap.

  • Die SameModeComparison Regel stellt sicher, dass alle Spieler in einem Spiel dasselbe verlangt habenmode.

  • Die CompoundRuleMatchmaker Regel stellt sicher, dass ein Spiel stattfindet, wenn mindestens eine der folgenden Bedingungen erfüllt ist:

    • Die Spieler in einem Spiel haben dasselbe map und dasselbe verlangtmode.

    • Spieler in einem Spiel haben skill vergleichbare league Eigenschaften.

{ "ruleLanguageVersion": "1.0", "teams": [{ "name": "red", "minPlayers": 10, "maxPlayers": 20 }, { "name": "blue", "minPlayers": 10, "maxPlayers": 20 }], "algorithm": { "strategy":"balanced", "balancedAttribute": "skill", "batchingPreference":"fastestRegion" }, "playerAttributes": [{ "name": "league", "type": "number" },{ "name": "skill", "type": "number" },{ "name": "map", "type": "string" },{ "name": "mode", "type": "string" }], "rules": [{ "name": "SimilarLeagueDistance", "type": "distance", "measurements": ["max(flatten(teams[*].players.attributes[league]))"], "referenceValue": "min(flatten(teams[*].players.attributes[league]))", "maxDistance": 2 }, { "name": "SimilarSkillDistance", "type": "distance", "measurements": ["max(flatten(teams[*].players.attributes[skill]))"], "referenceValue": "min(flatten(teams[*].players.attributes[skill]))", "maxDistance": 10 }, { "name": "SameMapComparison", "type": "comparison", "operation": "=", "measurements": ["flatten(teams[*].players.attributes[map])"] }, { "name": "SameModeComparison", "type": "comparison", "operation": "=", "measurements": ["flatten(teams[*].players.attributes[mode])"] }, { "name": "CompoundRuleMatchmaker", "type": "compound", "statement": "or(and(SameMapComparison, SameModeComparison), and(SimilarSkillDistance, SimilarLeagueDistance))" }], "expansions": [{ "target": "rules[SimilarSkillDistance].maxDistance", "steps": [{ "waitTimeSeconds": 10, "value": 20 }, { "waitTimeSeconds": 20, "value": 40 }] }] }