Ein traditioneller Weg, um dieses Ziel in der Spieleentwicklung zu erreichen, ist die Verwendung einer datengesteuerten Architektur für die Spielsysteme.
Im Wesentlichen bedeutet dies, dass der Code keine bestimmte Art von Waffe (eine Waffe) mit explizit definierten Werten für Reichweite / Schaden / Durchschlag implementiert, sondern die allgemeinen Konzepte einer Fernkampfwaffe (Reichweite / Schaden / Durchschlag ...) auffüllt. von einer externen (zum Code) Datenquelle. Diese externe Quelle kann von analysierbaren (möglicherweise XML-) Dateien, die von der Festplatte eingelesen wurden, bis zu Binärdateien oder Datenbankelementen variieren, die über interne oder externe Tools der Game Engine selbst generiert wurden.
Das KI-System definiert so etwas wie einen Feind und kann so konzipiert sein, dass es eine Reihe allgemeiner Verhaltensweisen (aggressiv, defensiv, unterstützend, feige) unterstützt, die dann durch datengesteuerte Elemente optimiert werden.
My New Enemy beginnt mit dem aggressiven Basis-KI-Verhalten mit datengesteuerten Werten für: - Spieler> mein Level + X - Verfolge Spieler bis zu X Einheiten jenseits des Spawn-Punktes - Flee, wenn Gesundheit <X -Range-Fähigkeitsprioritäten - Nahkampffähigkeitsprioritäten (wenn Spieler zu nahe kommen)
Ein komplizierteres datengesteuertes Schema kann die Definition bestimmter Datenpunkte (Ereignisse) ermöglichen, an denen ein AI-Zustand (endliche Zustandsmaschine) in einen anderen Zustand übergeht (oder sogar die Möglichkeit, in einen von N anderen Zuständen überzugehen) komplizierte Hierarchie von Verhaltensweisen.
All dies ist natürlich mehr Arbeit als nur das explizite Codieren eines Verhaltens, aber es ist eine unterhaltsame Herausforderung, es Benutzern zu ermöglichen, Inhalte ohne Änderung der Quelle zu erstellen.
Es gibt Bonuspunkte zu erreichen:
- Wenn Sie Daten dynamisch aktualisieren und die Änderungen in der Spiel-Engine wiedergeben können, ohne die Anwendung neu zu starten
- Wenn Sie benutzerfreundliche Benutzeroberflächen über den Daten erstellen, sodass Benutzer über eine Schnittstelle mit den Daten interagieren können, anstatt Textdateien (XML oder was auch immer) direkt zu bearbeiten
Für ein Tutorial-Spiel, das sich an eine eher technische Zielgruppe richtet, besteht der größte Teil der Arbeit stattdessen aus entworfenen Klassen / Objekten, die saubere Schnittstellen für die Benutzer bereitstellen, die erweitert werden können, was wiederum auch datengesteuert sein kann.