Wie schon im ersten Teil erzählt, habe ich für eine Freundin ein paar Informatik-lastige Rätsel basierend auf dem Spiel „Die Legenden von Andor“ gebaut, die man mit ein bisschen Python-Code lösen konnte. Das erste Rätsel hätte man auch noch im Kopf lösen können, jetzt wird es schwieriger!
WeiterlesenTheoretisch
Gedanken zu Dialogen
Ok, ich gebe zu, der Titel ist blöd. In Englisch klingt er besser: Thoughts on Dialogue Systems. Aber das ist halt ein deutscher (und in letzter Zeit ein wenig vernachlässigter) Blog, also gibst blöde, deutsche Titel 😉
Aber nun zum eigentlichen Thema dieses Post: Wie macht ein gutes Dialogsystem? Fangen wir mit den Anforderungen an:
- Der Spieler muss verschiedene Optionen haben. Es gibt keinen festen Ablauf.
- Der Dialog wird zwischen dem Spieler und einem oder mehr NPCs geführt. Technisch gesehen ist der Spieler aber auch ein NPC.
- Zu bestimmten Zeitpunkten sollen Scripte ausgeführt werden können. Möglichst, wenn eine Dialogzeile zu Ende ist.
- Es soll durch Scripte möglich sein, zu bestimmen, ob eine Dialogzeile angezeigt wird, bzw. den Verlauf des Dialogs zu bestimmen.
- Es muss einen Editor geben, in dem man die Dialoge erstellt.
- Die Dialoge sollen über die Content Pipeline geladen werden können.
Ich habe jetzt angefangen, ein eigenes System zu schreiben. Dieses funktioniert auch relativ gut, und es hatte auch eine Integration der Content Pipeline. Nun bin ich aber auf ein Problem gestoßen: Die Auswahl durch den Spieler.
Mehrsprachige Anwendungen .NET?
Während der Entwicklung von SimpleScreenshot habe ich mich auch mal nach Möglichkeiten umgesehen mehrsprachige Anwendungen mit .Net zu erstellen. Glücklicherweise hat Microsoft sich da was ausgedacht: Einfach eine Eigenschaft im Designer umstellen, dann jeweils die Sprachen eintragen, und schon ist die Anwendung übersetzt. Klingt doch toll, oder? Ist es auch, aber nur wenn man Anwendungen macht, die nur in bestimmten Sprachen ausgeliefert werden.
Nur was ist, wenn man mal (wie bei SimpleScreenshot) dem Benutzer die Möglichkeit geben möchte die Anwendung zu übersetzen? Ich habe dazu ein kleines System geschrieben, dass das ermöglicht. Das hat nur einen großen Nachteil: Man kann den Designer aus dem Visual Studio nicht mehr benutzen, und wenn man die Warnungen ignoriert, wird der gesamte Text von allen Steuerelementen gelöscht, und die ganze Übersetzung aus dem Code geschmissen!
Die „richtige“ Übersetzung, hat übrigens auch mein gesamtes Formular zerstört… Diese Lösung ist für Anwendungen, die fertig übersetzt ausgeliefert werden sollen, sicherlich gut durchdacht, aber Microsoft muss IMHO auch mal an die „kleinen“ Privatprogrammierer denken, die die Anwender übersetzen lassen wollen. Auf Linux ist das Gang und Gebe!
Auf der Suche nach den Regeln
Da ich am Wochenende nicht zu hause bin, kann ich auch nicht am Spiel weiterarbeiten, aber ich suche schon ein bisschen Material raus. Darum such ich im Moment grade nach einem Regel System für die Kämpfe.
Da wären:
Das System von Dungens & Dragons
Das erste System verstehe ich nicht ganz, da mein English auch seine Grenzen hat… 😉 , das 2. System finde ich viel zu kompliziert, um es in einem Spiel umzusetzen. Ich wünschte es gäbe eine dll oder so, mit der man die Regeln anwenden könnte. Gibt es aber leider nicht!