Welche Tools, Muster oder Best Practices würden Sie zur Implementierung der unten aufgeführten Questmechaniken empfehlen?
Ich spreche über die Softwarearchitektur (wie allgemein sollten Sie sein) und die Auswahlmöglichkeiten für die Objektverdrahtung, das Ereignisabonnement und die Darstellung von Bedingungen. Erwähnung von Tools / Bibliotheken, die Sie erfolgreich verwendet haben, sind willkommen. Bearbeiten: Wenn Sie Skripte verwenden, welches Setup empfehlen Sie?
Bedarf:
- einfaches 2D mmo (rpg)
- Alle Spieldaten, einschließlich Quests, werden in einer relationalen Datenbank gespeichert
- Jedes Ereignis im Spiel kann eine neue Quest für Spieler oder die Weiterentwicklung bestehender Quests auslösen
- Eine Quest kann eine beliebige Anzahl von Bedingungen haben, die erfüllt sein müssen, bevor die Quest Spielern zur Verfügung steht
- Eine Quest kann aus einer beliebigen Anzahl von Unterquests / Schritten mit beliebigen Bedingungen bestehen
Quests würden von einfach reichen:
rede mit A - töte 5 B - rede mit A - erhöhe dauerhaft die Gesundheit
zu ziemlich involviert:
benutze den Gegenstand in Bereich X - gehe zu Bereich Y - ein Bot wird erscheinen - töte den Bot ohne mehr als 10% Schaden zu erleiden - Bot lässt den Gegenstand fallen - nimm den Gegenstand auf - Portal entriegelt - bringe den Gegenstand zu J hinter dem Portal - erhalte Gold und Erfahrung - Portal erneut passieren lassen - Portal für diesen Spieler sperren
Level-Instanzen sind eine Möglichkeit (Spieler können bestimmte Quests in Teams oder in Isolation abschließen, wodurch der Level-Standort nur für diese Teilnehmer entsteht).
- Quests sollte vorzugsweise überschaubar , ein Welt - Editor ohne Scripting oder Programmierkenntnisse ( Edit: nicht gegen Scripting im Allgemeinen obwohl befürworten)
- Ich gehe von C ++ als Implementierungssprache aus
Ich dachte, wenn ich eine Kette von Ereignissen und Bedingungen kombinieren könnte, könnten wir komplexere und damit möglicherweise spannendere Aufgaben modellieren. Ich habe mit dem Rollen meiner eigenen ECA-Engine (Events-Conditions-Actions) experimentiert, aber das könnte übertrieben sein. Es war besonders schwierig, generische Bedingungen zu modellieren, ohne Skripte zu verwenden.