Hallo Besucher, der Thread wurde 8,3k mal aufgerufen und enthält 25 Antworten

letzter Beitrag von Brotbox64 am

Multiple-Choice-Adventure-"Engine"

  • Hi!
    Dank der Shoutbox kam ich vorhin auf die blöde Idee, eine "Engine" für Multiple-Choice-Adventures zu schreiben. Das Ergebnis der letzten zwei Stunden kann hier bewundert werden:

    Der Sourcecode befindet sich, zusammen mit dem Beispielprogramm, im angehängten Archiv. Es handelt sich zwar um Assembler, als Benutzer braucht man jedoch keinerlei Assembler-Kenntnisse: Man muss nur mit einem Texteditor in der Datei "situations.a" die Situationsbeschreibungen und Verzweigungen angeben und alles durch ACME jagen, fertig.


    Die "Engine" benötigt weniger als 180 Bytes, man hat also genug Speicher frei für kreative Beschreibungen. ;)

  • Wie verhält sich die Spielführung? Baumartig? Oder Knotenmäßig mit Eigenschaften pro Knoten, welcher bei seinen Eigenschaften andere Knoten anfragen kann?


    Letzteres habe ich als kleines Kind ausgearbeitet, schade, daß mein altes Textadventure kaputt ist. :(


    Edit: So, habe Deinen ASM-Code gelesen. Und muß feststellen, daß man mit Deiner Miniengine kein Interessantes Adventure machen kann. Aber ist nichts schlimmes, habe als Kind auch erstmal es so versucht. Das Problem ist, daß Du zu einem bestimmten Knoten von Knoten zu Knoten mit Tastendruck kommst und wenn man es so macht wie du, dann kannst Du Hunde töten und plötzlich sind sie wieder da.


    Deshalb kannst Du pro Knoten ein Byte machen und in dem hast du dann 256 verschiedene Zustandsmöglichkeiten, das reicht.


    Gut, als Kind habe ich dann jeden Knoten für sich programmiert und so konnte ich auch Variablenzustände anderer Knoten erfragen.

  • habe Deinen ASM-Code gelesen. Und muß feststellen, daß man mit Deiner Miniengine kein Interessantes Adventure machen kann. Aber ist nichts schlimmes, habe als Kind auch erstmal es so versucht. Das Problem ist, daß Du zu einem bestimmten Knoten von Knoten zu Knoten mit Tastendruck kommst und wenn man es so macht wie du, dann kannst Du Hunde töten und plötzlich sind sie wieder da.

    Oh mann oh mann. Das ist ja Respektlosigkeit der Spielmechanik gegenüber. Du kannst ja nicht einfach gegen die Regeln spielen, du musst lernen mit ihnen zu spielen. Stell dir vor du kannst im Schach nicht zwischen den Feldern deine Figuren plazieren. Das ist auch gut so. Das würde Schach kaputt machen. MCA ist eine perfekte Entscheidungs basierte Adventure Engine. Da will man stets exakt seine Aktionen planen und ausführen können und nicht quer Hunde töten wie man will, das macht doch die Adventure Engine kaputt.

    :weg:

  • Jedenfalls kein Vergleich mit meinem letzten Versuch ein MC-Adventure zu machen :)


    Ich werd mir das mal näher anschauen.

  • Wenn wirklich jemand damit ein Spiel baut, wäre ich glatt bereit, auch noch die Bildschirmfarben zu setzen und ein automatisches Wordwrap zu spendieren - im Augenblick muss man ja selbst darauf achten, dass keine Wörter am Zeilenende zerrissen werden, und sowas kann ruhig der Computer erledigen...

  • Einen ähnlichen Ansatz hatte ich vor kurzem für eine App umgesetzt.
    Im Gegensatz zu den Zuständen in den Knoten habe ich allerdings dem Spieler Zustände gegeben (im Priziep ein sichbares und ein unsichbares Inventar). Das hat den Vorteil, dass eich auch Knoten aufeinander auswirken können.
    Tötest Du also den Hund, so kommt der tote Hund in Dein (unsichbares) Inventar. Dies kann abgefragt werden wenn Du das Feld wirder betrittst und der Hund graift Dich nicht nochmal an. Aber auch wenn Du ein anderes Feld betrittst, kann Sich dieses nun anders verhalten, weil Du den Hund getötet hast.
    Ist das ganze im Sichbaren Invantar angelegt, so kannst Du dieses beeinflussen. Den Gang welche von dem Vampier bewacht wird kannst Du mit Knoblauch im Invantar durchschreiten. Gibst Du später der Kräuterhexe den Knoblauch für ihren Trank, so ist der Gang für Dich erst mal wieder unpassierbar.
    Man braucht da zwar mehr als ein Byte, weil man wegen der Permutationen nur 8 Zustände im Byte speichern kann, aber dafür ist allse zentral Speicher und Ladbar.

  • Seit April hat Mac Bacon die Engine ausgebaut und mittlerweile gibts auch ein kleines WiP-Demo-Spielchen. Den Part hab ich übernommen, das Gemecker wegen der Flachwitze also bitte direkt an mich, nicht an Mac ^^ .


    Ich wollte den Thread hier mal mit ein paar Bildern updaten:


    (Ja, der Artikel bei Zauberstab ist u.a. noch falsch. Aber ist ja noch nicht fertig :) )
    (Jegliche optische Ähnlichkeit mit lebenden oder toten Textadventures war von mir so gewünscht ^^ )



    P.S: Soll ich da jetzt noch paar Hunde zum töten einbauen? Als Hochleistungstest für die Engine? Einen der tot bleibt, und einen der wiederaufersteht? :D

  • Namen hat es noch keinen und Axt kommt auch keine vor.


    Auch keine Kettensäge, weil die haben ja nie Benzin.


    Edit: Wenn wir das Hundetöten einbauen, soll man das also mit einer Axt machen? Wie hätte es der Herr denn gerne, Holzfälleraxt oder zwergische Runenstreitaxt? ^^

  • Ist es schon spielbar?
    Kann ich mirs wo runterladen?

  • Das Problem ist, daß Du zu einem bestimmten Knoten von Knoten zu Knoten mit Tastendruck kommst und wenn man es so macht wie du, dann kannst Du Hunde töten und plötzlich sind sie wieder da.

    Damit wenn ich mal garnicht weiterkomme erstmal alle ANWENDEN Axt und dann gibt es keine Hunde mehr.

    Ja was denn nun? :sonicht:


    Entscheide dich, willst du "Hundstag der 13." oder willst du "Army of Dogs - The Resurection"?


    Oder willst du am Ende doch lieber :choplifter::?:

  • Ist es schon spielbar?
    Kann ich mirs wo runterladen?

    Spielbar ja, fertig nein, auch wenn es generell kein sehr sehr langes Spiel werden wird. Ist ja ein Demo für die Engine.


    Zumindest ein Start- und Endscreen muss noch rein. Und ein paar Korrekturen gibts auch noch zu machen.

  • Damals als Kind programmierte ich ja schon ein Textadventure. Und es tat meinem Game damals gut, daß ich in Basic keine hochauflösende Grafik konnte.


    Man muß eben so schreiben, daß das Kopfkino einsetzt. Viele Adjektive und Adverben gehören dazu, vermisse ich noch bei Shmendric. Wobei ich die Grenzen des Systems auch kenne.


    Man muß auch nicht nur sehen und hören können im Spiel. Man muß auch schmecken, riechen und wenn es die Story erwartet auch sich ein Bein brechen oder kotzen können.

  • Wird es die Möglichkeit geben zwischendurch auch Grafiken einzublenden? Wie sieht es mit Musik aus? Wird es eventuell auch dafür was geben?

    Fragen zu Engine selber musst du Mac Bacon stellen. Ich bin nur der Beta-Tester und reiche meine Wünsche an ihn weiter. Über Grafiken und Musik haben wir noch nicht gesprochen.

  • Man muß eben so schreiben, daß das Kopfkino einsetzt. Viele Adjektive und Adverben gehören dazu, vermisse ich noch bei Shmendric. Wobei ich die Grenzen des Systems auch kenne.


    Man muß auch nicht nur sehen und hören können im Spiel. Man muß auch schmecken, riechen und wenn es die Story erwartet auch sich ein Bein brechen oder kotzen können.

    Erster Absatz: Naja, das ist halt mein Stil und ich hab mit die Beschreibungen jetzt auch eher aus dem Ärmel geschüttelt. Literaturpreis hab ich da keinen erwartet. Sicher, besser geht immer :)


    Zweiter Absatz: Befehle zum riechen und hören könnte Mac sicher ganz problemlos einbauen, weil die aus Programmierersicht genau so wären wie der Untersuche-Befehl. Fraglich ob es nützlich wäre, schliesslich kann man Geruch und Geschmack auch gleich bei U wie Untersuche mit beschreiben.


    Du darfst jetzt auch nicht vergessen, dass wir hier nicht Infocom Konkurenz machen wollen. Das Programm entstand aus einer ShoutBox-Blödelidee. Und die Sache hat jetzt schon Hand und Fuss und ist ja noch nicht fertig :)

  • Das riechen gehört zu "untersuche" finde ich schon. Also es ist aus meiner Sicht nicht Programierproblem.


    Das Demospiel beginnt im Zimmer über einer verwesenen Leiche. Man muß das stinken. Aber kein Wort davon. Fast so schlimm, als ob man fernsieht und den hervorragenden Duft einer Rose ist nicht zu riechen.