Hi,
ich arbeite zur Zeit an einem Dialog System.
Da @Traumwolf mich darauf angesprochen hat und es sicher auch den einen oder anderen interessiert wie die Konzeption eines solchen Projektes aussehen könnte, habe ich mal dieses Thema eröffnet.
Da so ein System sehr komplex werden kann und ich kein Programmierer bin, kann ich natürlich auch jede Hilfe, Vorschläge oder Ideen gebrauchen.
Es ist somit jeder eingeladen hier mitzuwirken.
Wenn wir hier zusammen ein System entwickeln können das flexibel genug ist um in den verschiedensten Projekten genutzt zu werden, würde ich das ganze dann in einem Wiki Tutorial zusammenfassen.
Meine Anforderungen an ein Dialog System
Da ich selbst an einem Action Adventure in der Tradition von Gothic arbeite, brauche ich ein System das mit sehr viel Text umgehen kann aber auch auf alle mögliche Bedingungen reagieren kann.
Auch ist es mir wichtig das es später beim Dialog/Story Design einfach zu handhaben ist, sprich NPC in die Welt stellen, Text geben und fertig.
Was habe ich bis jetzt
Im Moment benutze ich eine CSV-Datei die ich als DataTable importiere.
In dieser stehen Zeile für Zeile die Infos für jede Dialogzeile. Das heißt einmal natürlich der Text aber auch welche Bedingungen erfüllt sein müssen um diesen anzuzeigen.
Da das in meinem Fall sehr umfangreich ist, werde ich mir wohl ein Tool programmieren das die CSV-Datei generiert.
Es ist geplant das jeder NPC seine eigenen Texte und die des Spielers hat, so hab ich alles an einer Stelle beisammen und muss nicht bei Änderungen mit verschiedenen Datensätzen arbeiten.
Also Spieler spricht NPC an und der übernimmt die Steuerung über den Dialog.
Per Interface schicke ich dann ein TextArray ans HUD.
Dieses schaut dann ob es NPC oder Spieler-Texte sind und zeigt diese dann entsprechend an.
Was brauche ich
Wie verwalte ich am besten die Daten?
Da man DataTables scheinbar nicht ändern kann, kopiere ich alles in ein Struct das lauter Arrays enthält. Die Frage ist jetzt ob jeder NPC sich seinen Datensatz holt oder ob alle auf den grossen globalen Datensatz zugreifen.
Die Logik für die Auswertung.
Die Macht mir sorgen. Wenn ich das mit massig if-Abfragen mache wird das sehr unübersichtlich und Fehleranfällig und lässt sich zudem noch schwer warten.
Ich frage da mal gezielt die Informatiker.
Gibt es da etwas wie man Entscheidungen treffen kann. Ein paar Begriffe zum googeln wären nicht schlecht.
Das war es jetzt erstmal, hab mich extra versucht kurz zu fassen denn sonst liest es ja keiner. Aber ich hoffe mal wir werden das hier noch ausführlich diskutieren.
Fragen, Ideen, Kritik sind ausdrücklich erwünscht.
Gruss
DarkFaces