Text-Adventure programmieren

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

NathanielBlack

Betreff: Text-Adventure programmieren

BeitragSa, Sep 12, 2009 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute!

Ich bin neu hier, und wollte mal wissen, wie schwer es ist, ein Text-Adventure mit BlitzBasic Plus(Demoversion) zu programmieren.

Kann ich es als "Programmierer im (sehr) frühen Status" schaffen ein solches zu erstellen?


Ich hoffe auf viele nützliche Antworten

Mfg
euer Newbie NathanielBlack
 

aletes

BeitragSa, Sep 12, 2009 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Textadventure ist nicht sehr schwer, du bräuchtest nur 'Input' und 'If-Abfragen' Wink

Starwar

BeitragSa, Sep 12, 2009 19:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo und willkommen.
Ich glaube, wenn du ein Pong schaffst, bekommst du auch ein TA hin.
Ob dus dann "intelligent" und organisiert programmieren kannst ist was anderes.
Überleg dir gut, wie dus strukturierst. Wie du die Teile zusammenhängst. Bei einem TA sind diese Sachen wichtig und komplizierter als die eigentliche Programmierung. Und wenn du da nicht weiter kommst kannst du ja fragen.
Hast du denn Robs Tuts schon durchGEARBEITET?
MFG
 

NathanielBlack

BeitragSa, Sep 12, 2009 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Is ja geil, dass man hier nach 5 min schon so gute antworten kriegt;)

Thx Jungs!

1. Robs tut?
Wenn ihr diesen Monster beitrag meint, der auf so´nem Wikipedia-Klon zu sehen ist: den hab ich gespeichert!
Durchgelesen aber nicht.


2. "Input" und "if" Abfragen sagt mir nichts. Kann man damit auch Karten mit seinem Standort, Inventare, Kampfsysteme usw. erschaffen?

Nicdel

BeitragSa, Sep 12, 2009 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Nein, gemeint ist eines der Tutorials, dass du hier findest: https://www.blitzforum.de/foru...php?t=6114

2. Wenn du nicht einmal If und Input kennst, solltest du dir dringend mal ein Tutorial anschauen.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Xeres

Moderator

BeitragSa, Sep 12, 2009 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme an, du willst Multiple-choice, kein Parser.
Das sollte kein großes Problem sein - wie bei jedem Projekt ist nur die Frage, ob du einfach drauf los tippst (und eine Funktion nach der anderen schreibst wie es die Geschichte erfordert) oder ein Plan erstellst (und erst eine Engine schreibst die Textadventures verarbeiten kann, bevor du dich der eigentlichen Geschichte widmest).
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

NathanielBlack

BeitragSa, Sep 12, 2009 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx again!

1. Lieber Xerxes, wenn du mir noch erklären könntest was "Multiple-choice, kein Parser" bedeutet werde ich dir sehr dankbar.

2. Eine TA Engine zu schreiben? Hört sich zielich schwer und komplizerit an! Stimmt das???


Ich werde mich heute Nacht(xd) daran setzten die Tuts zu durchstöbern.

Goodjee

BeitragSa, Sep 12, 2009 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde dir empfehlen erstmal ohne engine anzufangen bis du genug skills hast, dann wirst du merken dass du eine engine brauchst weil das programmieren einfach irgendwie unflexibel und unübersichtlich wird und weißt was diese engine können muss und wie man sie schreibt

für eine engine wirst du dich mit types, textbefehlen und strings auseinandersetzen müssen und eine geeignete datenstruktur für räume/objekte/personen und was du sonst noch so willst finden
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

NathanielBlack

BeitragSa, Sep 12, 2009 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ahh danke!

Hört sich sehr kompliziert an, aber ich versuchs;)

Wenn ich das richtig verstanden habe, brauche ich eine Engine damit ich Objekte, Inventar, NPC´s usw. platzieren kann, wenn das nicht der Fall sein sollte verbessere mich, please;)

mfg
Nathaniel

Xeres

Moderator

BeitragSa, Sep 12, 2009 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Multiple-choice Textadventure bietet üblicher weise ein paar Optionen an, von denen der Spieler eine auswählen kann (während der Rest den Spieler entweder tötet oder nach einem kurzen Text wieder vor die gleiche Wahl stellt) und so sehr linear durch eine Erzählung führt.
Ein Parser untersucht die Benutzereingabe wie z.B. "schaue ins Boot" und erkennt Befehle und Objekte und handelt entsprechend - Point'n'click ohne Grafik.

Je nach dem wie viel die Engine können soll, kann sie einfacher oder komplizierter werden.
Die simpelste Methode wäre, die Geschichte komplett Hard zu coden, d.h. alles direkt in den Quelltext zu tippen. Damit hast du 100% Kontrolle was wo wann wie passiert, aber eben nur für exakt diese Geschichte.
Andererseits könntest du den Code so schreiben, dass er ein Adventure-Skript einliest und darstellt - mit genau so vielen (oder wenigen) Möglichkeiten wie die Skriptsprache dann vorsieht. Dafür kannst du dann beliebig viele Adventures schreiben, ohne dich über die Technik zu kümmern.

In jedem Fall musst du dich aber erst mit den Grundlagen auskennen und wissen was du tust -> Tutorials wurden dir schon empfohlen, die deutsche Onlinehilfe gibt's hier im Portal unter "Hilfe" auch als Ersatz für die englische original-hilfe.

Viel Spaß & Erfolg in jedem Fall.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

FWeinb

ehemals "ich"

BeitragSa, Sep 12, 2009 20:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine Engine würde dann Sinn machen, wenn du die Spiel Geschichte im Nachhinein ändern willst, oder mit wenig Code ganz viele Adventure machen willst.

Zu einfach ist es einfacher es Hard-codet (also die Geschichte ist im Code Verankert) zu Programmieren als sich erst eine Engine zu schreiben.

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs
 

NathanielBlack

BeitragSo, Sep 13, 2009 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
so, hab die ersten erfolge. Die meisten hab ich gelöscht. Angefangen mit einem TA hab ich schon.

Der Quellcode umfasst ganze 10oder weniger Zeilen Very Happy

Ich wollte wissen, wie ich es schaffe, dass ich das ganze besser hinkriege als so siehts momentan aus:

Code: [AUSKLAPPEN]
Graphics 1280,1024,32,1
Print "Test"
Wahl$ = Input ("")

Select Wahl                       ;Die Variable "Wahl" soll im folgenden überprüft werden...
Case "ende"                          ;Antwort "b"
  End                                ;Programm beenden
Case "start"
Print "Du hast soeben das Spielprinzip verstanden! Herzlichen Glückwunsch! Versuch weiter zu kommen:"
Wahl$ = Input ("")

Select Wahl                       ;Die Variable "Wahl" soll im folgenden überprüft werden...
Case "weiter"                         
  Print "Genau! Weiter war das richtige Verb! Schon wieder ein Erfolg!                               
End Select
Default
Print "Idiot!"
End Select


Meine Frage genauer erklärt:
Es gibt ja diesen Abschnitt für sich selbst:
Code: [AUSKLAPPEN]
Graphics 1280,1024,32,1
Print "Test"
Wahl$ = Input ("")

Select Wahl                       ;Die Variable "Wahl" soll im folgenden überprüft werden...
Case "ende"                          ;Antwort "b"
  End                                ;Programm beenden
Case "start"
Print "Du hast soeben das Spielprinzip verstanden! Herzlichen Glückwunsch! Versuch weiter zu kommen:"



So, dazischen ist dieser Abschnitt, der, wenn man "start" eingibt bekommt, und der wenn man danach "weiter eingibt". Danach kommt wieder, dass was zu besseren übersicht eigentlich direkt hinter:
Code: [AUSKLAPPEN]

Graphics 1280,1024,32,1
Print "Test"
Wahl$ = Input ("")

Select Wahl                       ;Die Variable "Wahl" soll im folgenden überprüft werden...
Case "ende"                          ;Antwort "b"
  End                                ;Programm beenden
Case "start"
Print "Du hast soeben das Spielprinzip verstanden! Herzlichen Glückwunsch! Versuch weiter zu kommen:"


Und zwar müsste da dann das stehen:
Code: [AUSKLAPPEN]
Default
Print "Idiot!"
End Select


Wie kann ich machen, dass die weiterführung vom "start" Befehl, unter dem "Idiot" Print kommt. Das macht das ganze übersichtlichr und glaubich überhaupt möglich, komplexere Sachen estellen.

Hab ich das gut genug erklärt? Ich brauche dringends EURE hilfe!

mfg
Nathaniel

Xeres

Moderator

BeitragSo, Sep 13, 2009 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich glaube nicht, dass ich so ganz verstehe, was du erreichen möchtest... Möchtest du den einen Select...case Block in eine Function auslagern?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Nicdel

BeitragSo, Sep 13, 2009 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Function, Gosub und vielleicht Goto (Achtung: Goto ist Böse!)
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

NathanielBlack

BeitragSo, Sep 13, 2009 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
thx!

Wieso ist goto bööösssee? (Und ich dachte Blizard ist böööööööseeee(GS)Very Happy)

Starwar

BeitragSo, Sep 13, 2009 14:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil Goto Spagetticode verursacht.
D.h. du springst immer hin und her im Code und "verläufst" dich irgendwann. Du verlierst den Überblick und die Programmablauflogik ist hin.
 

NathanielBlack

BeitragSo, Sep 13, 2009 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte mal ein geiles Text-Adventure gesehen:
http://www.adventure-box.de/content/view/129/72/

Krieg ich das mit der Demoversion von Blitzbasic3D so ähnlich hin? Brauch ich dafür ne Engine? Geht das auch nur mit If und Input befehlen?

mfg
Nathaniel

Nicdel

BeitragSo, Sep 13, 2009 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das ist zu machen. If unde Input werden wohl nicht reichen, Color ist auch noch wichtig, für Bilder brauchst du LoadImage und DrawImage.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Xeres

Moderator

BeitragSo, Sep 13, 2009 14:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist mehr ein Tastaturgesteuertes RPG - aber die Grenzen sind ja immer fließend... Klar kann man das mit BB machen. Dafür brauchst du aber eine konkrete Planung und sicherlich eine allgemeine Spielmechanik. Wer da nur so vor sich hin tippt, scheitert in seiner eigenen Unordnung.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

NathanielBlack

BeitragSo, Sep 13, 2009 14:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Mehr nicht?


weitere Fragen:
1. Wie packe ich ein programm in eine "Anwendungs-Datei" sodass ich es ausführen kann.

2.Kann ich mehrere Dateien(.bb files) verlinken oder so? Dass eine Datei nicht Tausende Zeilen umfasst, sondern es sogesagt aufgeteilt ist.

3.Brauch ich ne Engine für so ein Adventure? Wenn ja, wie schreibt man eine Engine?

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group