Text Adventure Erstellen

DjDomex3

Mitglied
Ich bin gerade dabei ein Text Adventure zu schreiben und wollte in diesem forum mal fragen ob mir leute beim schreiben helfen könnten. Ich bin noch anfänger. Ich bin mittlerweile soweit und weiß nicht wie ich weiter machen soll.

Java:
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class main {

   public static void main(String[] args) {
     // TODO Auto-generated method stub

Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Text Adventure");
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
   }

}
 
Zuletzt bearbeitet von einem Moderator:
Also ist Dein Ansatz bisher am Hello World Snippet von swt angekommen.

Der Ansatz so ist aber leider nicht zielführend:
- Du musst Dir zuerst klar werden, was Du genau machen willst. "Text Adventure" ist da einfach nicht genau genug. Du brauchst da schon eine genaue Vorstellung, was da wie geschehen soll. Also die Sicht von aussen ist wichtig.
- wenn du die Features festgelegt hast, dann suchst Du Dir ein möglichst kleines Subset davon raus, das du dann implementieren kannst. (so hast Du dann mehrere Versionen ... Halt eine erste Version, in der erst sehr wenig geht.) Hat den Vorteil, dass Du kleine, geschlossene Iterationen hast und Dich nicht verhaspelst
- dafür muss dann das Design gemacht werden. Wie sind diese Features umzusetzen?
- dann bildest du kleine Arbeitspakete - was muss zuerst entwickelt werden, was kommt später?

Verwendete Technology: Wieso willst Du auf SWT setzen? Zum einen stimmt die Reihenfolge nicht: Du hast noch nichts zum anzeigen und fängst aber damit an? Zum anderen: Als Anfänger würde ich die verwendeten Technologien klein halten. Statt swt würde ich mir an deiner Stelle erst Unit Tests ansehen. Und eine einfache Consolenanwendung wird es dann doch vielleicht auch tun ...
 
Woher finde ich herraus welches Subset gut dafür wäre. Ich wüsste zu dem auch nicht wie ich anfangen könnte, ich habe zu erst versucht über das ein Fenster geöffnet wird, wodrauf ich dann etwas machen könnte. Hättest du eine empfehlung wo ich mir "Unit Tests" ansehen könnte. bzw Daraus etwas lernen Könnte. Ich habe schon ein bild im kopf wie ich das machen will aber ich weiß nicht wie ich das Programm technich umsetzen kann, Da ich sehr unerfahren bin.
Danke für die schnelle Antwort.
 
Also bezüglich SubSet: Das ergibt sich meist relativ einfach, da man erkennen kann, was man ggf. weglassen kann.
Ich habe keine Ahnung, was in deinem Textadventure vorkommen soll und wie das aufgebaut sein soll, aber es wäre z.B. denkbar:
- Du hast Räume, die miteinander verbunden sind und die eine Beschreibung haben.
- Du hast Gegenstände. Du hast lebende Gegenstände, du hast Spieler, ...
- Lebende Wesen können dann kämpfen
- Es wird irgend eine Art der Eingabe und Ausgabe geben
- ...
Wenn man so eine Liste sieht, dann kann man schnell viele Dinge entdecken, die man verzögern kann. Räume die verbunden sind, werden wohl direkt benötigt. Aber Gegenstände und Spieler können am Anfang fast entfallen - die kommen nach dem Raum. Ein Kampfsystem kann ganz ans Ende kommen. Die Ein-/Ausgabe kommt dann zusammen mit dem Spieler (Vorher braucht man das nicht).
Also vieles ergibt sich über die Abhängigkeiten. Und dann muss man die Funktionen beschränken. Ein Gegenstand kann in Räumen, anderen Gegenständen oder einer Person sein. Er muss eine Beschreibung haben. Sehr viel mehr muss ja nicht sein. Dass man den für irgendwas nutzen kann, kommt dann erst später.

Unit Tests - da würde ich Dir einfach einmal raten, nach junit einführung zu suchen. Da findet sich dann schon einiges. Ich selbst bevorzuge eigentlich immer Bücher:
http://javarevisited.blogspot.de/20...-unit-testing-junit-tdd-Java-programmers.html (Wie man erkennen kann sind diese Bücher auf Englisch. An Englisch kommt man kaum vorbei in der Software-Entwicklung.)
Evtl. gibt es aber auch gute Tutorials auf Youtube - aber da kenne ich mich nicht aus.
 
Ich wollte zuerst Damit anfangen das mann zwischen ein paar verschiedenen Räumen gehen kann. Dafür wollte ich wissen wie ich ein programm schreibe das mir ein fenster öffnet, deswegen habe ich mit swt angefangen, da ich dachte das ich da fuß fassen könnte. Also ich woltle jetzt einfach nur damit anfangen das man zwischen räumen gehen kann. Damit ich bischen erfahrungung mit dem Programmieren bekomme. Ich habe mir auch gestern ein Buch bestellt(http://www.amazon.de/dp/3836217880/ref=pe_386171_38075861_TE_item_image). Ich habe mir dazu vorgestellt das ich ein kleines fenster habe und das im oberen Drittel eine beschreibung steht (wo du gerade bist) und das du dann im unteren drittel möglichkeiten genannt bekommst was du jetzt tuen kannst , also jetzt zum beispiel das man nach süden osten etc, gehen kann. Dazu soll am unteren Rand noch eine eingabe zeile exestieren. Daher ist meine frage wie ich überhaupt drauf komme so ein fenster beschreiben zu können.
Ich habe mich jetzt ein wenig zu "JUnit" informiert, wie ich das alles verstanden habe ists das nur ein programm um geschriebene Programme zu testen?!
- Liege ich da Falsch
- Wie kann mir das bei der Programmierung weiter helfen?
 
Zuletzt bearbeitet:
Ich wollte zuerst Damit anfangen das mann zwischen ein paar verschiedenen Räumen gehen kann. Dafür wollte ich wissen wie ich ein programm schreibe das mir ein fenster öffnet, deswegen habe ich mit swt angefangen, ....
Diesen Ansatz finde ich falsch! Ein TextAdventure eignet sich super dafür mit der Konsole zuarbeiten, da eben nur Text gebraucht wird und keine Grafik oder ähnliches. Natürlich kann man es später noch mit einem passenden UI versehen, aber das ist eine hübsche Verpackung vom eigentlichen Programm.
Daher solltest du meiner Meinung nach vorerst bei einer einfachen Konsolenanwendung bleiben.

(Diese entsprechend aufgebaut ist das spätere einfügen einer UI ein Klacks)

Ich habe mich jetzt ein wenig zu "JUnit" informiert, wie ich das alles verstanden habe ists das nur ein programm um geschriebene Programme zu testen?!
Nein damit liegst du nicht falsch.
Die Unit Tests testen die Methoden deiner Klasse auf richtige Funktionsweise. Sprich willst du ein neues Feature einbauen in Klasse XY kann es vorkommen das du Methoden anpassen musst. Damit du aber sichergehen kannst das diese richtig funktionieren danach, lässt man die Unit Tests laufen.
 
Danke Für den tipp, Aber ich weiß noch immer nicht
-Wie sollte ich jetzt anfange
-ist auf der konsole gemeint ganz normal den code schreiben?
-Hättet ihr irgendwelche nützlichen tipps
Danke Für die Hilfe 🙂
 
Vielleicht solltest du erst einmal Java lernen, bzw. eine andere Programmiersprache.
Oder du benutzt eine kostenlose GameEngine, bei der du dir alles zusammen klicken kannst.
Egal für was du dich entscheidest, du musst dich bei beiden hinsetzen und lernen.
 
Das ist mir klar. ich bin auch Bereit mich hinzusetzen ich wollte nur nach ein paar tipps fragen, wie ich am besten bei so einem projekt vorgehe.
 
Also mein Tipp wäre, erst einmal in Ruhe das Buch durchzuarbeiten. Ich kenne das Buch zwar nicht, aber ich denke, dass Du danach einen ersten Überblick hast über Java und auch erste Applikationen schreiben kannst. In dem Buch wird es bestimmt auch Informationen geben, wie Du auf der Konsole Daten einliest und ausgibst (Konsole ist ein Terminalfenster - auch Eingabeaufforderung oder CMD Fenster genannt). Vielleicht wird auch eine GUI wie AWT oder swing erläutert - dann hättest Du Deinen Einstieg in grafische Programme.

Unit Tests kannst Du Dir dann ggf. danach ansehen. Unit Tests sind kleine Tests, die Deine Klassen / Methoden testen um so sicher zu stellen, dass die genau das machen, was sie machen sollen.

Mein nächster Tipp wäre, deine Idee mit dem Textadventure evtl. noch etwas aufzuschieben. Konzentriere Dich auf das Buch. Da werden ja auch Beispiele drin sein: Spiel mit denen rum. Erweiter diese. Stell sicher, dass Du die Inhalte wirklich verstanden hast. Dann kannst Du an Dein Projekt gehen.

Und dann machst Du auf jeden Fall erst einmal ein Design! Nicht direkt anfangen zu entwickeln - das bringt meiner Erfahrung nach nichts. So kommst Du nie zu einem sauberen Design. Am Anfang mag es gehen, aber auf Grund des fehlenden Designs wird der Code schnell nicht mehr handlebar und dann wird der Spass auch schnell nachlassen. (Ich spreche da auch aus Erfahrung. Das habe ich ja auch alles mal hinter mich gebracht!)
 

Zurück
Oben