Alternativ kann man das auch mit reinem HTML und CSS machen. Bedingt halt nur sehr viele HTML-Dateien und zur Handlung passende Verweise/Links untereinander.
So in der Art: Willst du nach rechts oder links gehen an der Verzweigung? Links verweist dann auf ein anderes HTML-Dokument als rechts und gut ist. So mit allen Wahlmöglichkeiten verfahren und schon hat man einen schicken "Verzweigungsbaum".
Damit hast du im grunde genau 0 möglichkeiten wirklich was zu machen. ich habe schon mal ine 'Questengine' gemacht für solche Text adventures, da geht so unglaublich viel
Deine HTML Engine könnte in etwa so viel wie viele aktuelle Spiele.
Wenn du noch JS hinzunimmst, könnte es sogar was werden.
Danke für die vielen Antworten
Die größte Frage die sich mir stellt ist was eine OOP Sprach ist?
OOP ist ObjektOrientierte Programmierung.
Also zb. das eine Frage und deren Antworten jewiels ein Objekt sind (Mit Frage, Antwort1, ..., Antwortn. Sowie je einer verlinkung auf das Objekt von Antwort1 bis Antwortn).
Dadurch kannst du mit einer relativ einfachen Programmlogik (Du musst immer nur das aktuelle Objekt auswerten, wo du bist spielt keine rolle) sehr komplexe Quests und Textreihenfolgen aufbauen.
Entsprechend einfach ist das ganze dann auch zu warten.
Das Laden dess Textadventures von einer Textdatei aus, oder von einer DB aus ist dadurch sehr leicht zu implementieren.
Solche eine Quest klasse sähe dann etwa so aus:
Code:
public Class Quest{
public Quest(){}
public string frage="Wie geht es dir?";
public string antwort1="gut.";
public string antwort2="schlecht";
public Quest antwort1Quest;
public Quest antwort2Quest;
}
Die müsste man dann beim Starten des Programmes laden und die einzelnen Quests aufbauen.
Und danach anzeigen und jedesmal beim Auswählen einer Antwort die Angezeigte Quest durch die Quest der entsprechenden antwort ersetzten.
Im gegensatz dazu stehen die if Bäume die von Anfängern gerne gemacht werden: Kompliziert, fehlersuche schwer, es spielt eine rolle wo man in der Quest ist.
Versuch den If Baum mal dynamisch zu laden