Überblick

Das Balancing Framework ist ein Unity-Plugin zur Vorbereitung und Unterstützung des Game Balancings.

Es ist Teil eines Gesamtsystems, das aus zwei Komponenten besteht:

  • dem Unity-Plugin
  • dem externen Balancing Tool

Das Unity-Plugin wird verwendet, um balancerelevante Daten innerhalb eines Unity-Projekts zu kennzeichnen und zu erfassen.
Dazu gehören insbesondere Parameter, die angepasst werden sollen, sowie Werte, die während des Spiels geloggt und später ausgewertet werden können.

Grundidee

Damit das Framework mit Spielinhalten arbeiten kann, müssen relevante Objekte und Parameter im Projekt entsprechend markiert werden.

Hierfür stehen aktuell zwei zentrale Attribute zur Verfügung:

  • BalanceParameter
    Markiert Werte, die vom Framework als Balancing-Parameter erkannt und verwaltet werden sollen.

  • BalanceLog
    Markiert Werte, die während der Laufzeit geloggt werden, damit sie später im externen Tool ausgewertet werden können.

Balancierbare Entitäten

Damit das Framework Parameter erkennen kann, müssen Objekte im Projekt als balancierbare Entitäten definiert werden.

Je nach Objekttyp erfolgt dies auf unterschiedliche Weise.

GameObjects und Prefabs

Für GameObjects und Prefabs wird das Component EntityDescriptorComponent verwendet.

Dieses Component enthält grundlegende Informationen über die Entität:

  • eine eindeutige ID
  • einen Display Name
  • eine Kategorie

Das Component muss dem Root-Objekt eines Prefabs oder GameObjects hinzugefügt werden.

ScriptableObjects

ScriptableObjects können ebenfalls als balancierbare Entitäten verwendet werden.

Dafür muss das ScriptableObject das Interface IBalanceableObject implementieren.

Parametererkennung

Das Framework durchsucht die markierten Objekte nach Feldern, die mit BalanceParameter versehen wurden.
Aktuell werden dabei vor allem Parameter vom Typ int und float unterstützt.

Zusätzlich ist eine Erweiterung über eigene Parametertypen möglich.
Diese Funktion ist für fortgeschrittene Anwendungsfälle gedacht und wird separat beschrieben.

Logging

Über das Attribut BalanceLog können Werte für das Laufzeit-Logging markiert werden.
Diese Daten können später im externen Balancing Tool analysiert werden.