Modifikation und Optimierung meines Textadventure

Katheleit

Cadet 1st Year
Registriert
Apr. 2018
Beiträge
12
Hallo liebe Community,

dies ist mein erster Beitrag, deshalb bitte ich um Geduld mit mir.
Ich bin ein Fortgeschrittener Programmierer und bin nicht sicher ob meine Frage hier richtig aufgehoben ist.

Seid fast 3 Monaten programmiere ich mit Java an einem Textadventure welches schon einen ordentlich Umfang hat. Nun programmiere ich mit BlueJ (dümmster Fehler überhaupt, das Programm schafft die Größe meiner Klassen nicht mehr) und biete das Textadventure aus Spaß meinen Freunden auf meiner Website an. Dort trage ich dann die neuen Highscores ein und so weiter.

Nun wollte ich zwei Sachen fragen:

1.
Zum einem wollte ich das Textadventure über eine Exe oder sonstiges starten lassen, also, dass man nicht mehr BlueJ braucht um das Textadventure (TA) zu spielen. Das TA selbst könnte dann natürlich, wenn man keinen Client hat, über den CMD laufen lassen. Nun habe ich in der Hinsicht keinerlei Erfahrung oder Vorstellung wo ich da Anfangen soll oder wie man so etwas bewerkstelligt.

2.
Zum anderen war ich am überlegen, ob ich es wie MorgenGrauen mache, und man mein TA direkt auf der Website spielen kann. Aber auch hierfür fehlen mir die nötigen Kenntnisse wie man so etwas bewerkstelligt.

Über hilfreiche Kommentare würde ich mich freuen und falls wir diese Fragen gelöst haben, hätte ich noch eine weitere Frage, die dann aber auch wirklich etwas mit der Java Programmierung zu tun hat.

mfg

Katheleit


hier mal der Link zu MorgenGrauen, schaut da mal vorbei ^^

http://www.mud.de
 
Also BlueJ ist eine Entwicklungsumgebung für Java. Falls BlueJ nicht reicht, kann man Eclipse nehmen.
Eine exe erstellen ist da ein bisschen komplizierter, da Java dafür nicht gemacht ist. Die normale Vorgehensweise mit Java wäre eine jar-Datei und man installiert dann einfach Java für z.B. Windows. Anschließend klickt man die jar-Datei an und dein Spiel sollte starten.

Java konnte man früher auch im Browser laufen lassen, aber heutzutage wird es von jedem Browser geblockt. Deine verlinkte Webseite "mud.de" benutzt JavaScript, das ist eine andere Programmiersprache. Es gibt aber Möglichkeiten um von Java zu JavaScript zu kommen mit z.B. "Google Web Toolkit". Ist aber nicht in 5 Minuten erledigt, mit deiner Erfahrung vielleicht sogar länger als die Programmierung deines Spiels selbst.
 
Zuletzt bearbeitet:
Wie Teiby schon schrieb, handelt es sich bei Java um JAR Dateien, welche mit einem Doppelklick gestartet werden können. Du kannst Dir aber auch eine "Pseudo" Exe Datei bauen, in welcher eben diese JAR Datei aufgerufen/ausgeführt wird. Es macht aber bei der Ausführung der Datei keinen Unterschied.

Ich würde persönlich die JAR Datei belassen, außer du möchtest ein schickes Icon auf dem Desktop haben, auf welches die Benutzer klicken sollen.
 
Erstmal, danke für eure Rückmeldung!

Ich werde mich dahingehend informieren. Falls jemand noch ein paar hilfreiche Links oder Tipps kennt, würde ich mich freuen.
Ergänzung ()

So habe mir das alles angeschaut und festgestellt das BlueJ das sogar anbietet eine Jar Datei für einen zu erstellen.
Jedoch passiert einfach nichts, wenn ich diese Jar datei starten will.

Da ich nicht an meinem Spiel herum experimentieren wollte, habe ich eine Test klasse erstellt um das mal zu testen. Hier der recht simple Code.

public class Test
{

public static void main(String[] args)
{
new Test();
}

public Test()
{
System.out.println("Hallo Welt!");
}
}

Ich programmiere wie gesagt einen Textadventure. Das heißt ich brauche ein Eingabefeld und eine Ausgabe. BlueJ bietet mir das ja an, wie funktioniert das mit einer Jar datei?
 
Zuletzt bearbeitet:
2 Anmerkungen:
Wenn deine Klassen so groß werden, dass die IDE dadurch langsam wird wäre es vielleicht schlau mal darauf hin zu arbeiten mit kleineren Klassen auszukommen.

Und wenn du Schiss hast an deinem Projekt etwas zu ändern, dann solltest du dich mit Git oder einer anderen Versionsverwaltung beschäftigen.
 
Ich habe nicht Schiss an meinem Projekt was zu ändern, ich wollte es lieber einfach kurz wo anders ausprobieren. Von "Schiss" kann da nicht die rede sein.

Ich habe bereits meine Klassen so weit ausgelagert wie möglich.
 
Du hast beim Erstellen die Main-Klasse angegeben und die Sourcen hinzugefügt? Was passiert, wenn du eine Eingabeaufforderung öffnest und
Code:
java -jar Texadventure.jar
eingibst?
 
Ich habe ja erstmal die test klasse versucht mit der jar aufzurufen. und wie man die Eingabeaufforderung öffnet,weiß ich nicht. ich habe mich bis heute noch nicht mit jar datein auseinander gesetzt.
 
Anfänger lernen meist, den Code manuell per Konsole zu compilieren und dann auszuführen. Erst später wird gelernt mit einer IDE umzugehen. Jetzt hast du ein Problem und kannst es mit dem tollen klicki-bunti BlueJ nicht lösen. Also nochmal die Schulbank drücken.
Pro-Tipp: Im Ordner, in der die jar liegt, Shift gedrückt halten, Rechtsklick auf einer freien Fläche und „Eingabeaufforderung hier öffnen“ klicken.
 
Okay, danke Darlis jetzt habe ich verstanden was du meinst. Wenn ich den Befehl eingebe, bekomme ich ein Error und zwar, "Error: Unable to access jarfile Textadventure.jar"
 
Entweder befindest du dich (also die Konsole) nicht im Ordner mit der Textadventure.jar oder die jar nennt sich gar nicht so.
 
Ich hoffe ich habe es richtig gemacht

Textadventure.PNG
 
In dem Ordner ist keine Textadventure.jar zu sehen...

@metal: Es geht darum, die bereits erstellte jar-Datei zu testen, nicht per javac zu kompilieren. Außerdem ist bereits kompiliert worden, wenn ich mir die .class-Dateien so ansehen.
 
Okay danke für deine Geduld Darils, es funktioniert und man kann es nun über cmd aufrufen.
Wie bekomme ich das jetzt hin, das man die jar nicht über cmd aufrufen muss?
 
Indem du Google fragst?!

https://www.google.de/search?dcr=0&...i10i30k1j33i22i29i30k1j33i160k1.0.glhaQT7b5ak

oder auch

https://www.google.de/search?dcr=0&...0k1j0i22i10i30k1j0i13i5i30i19k1.0.35FJd1kcwfE

Zu Erläuterung: Im 1. Post schreibst du, dass du ein erfahrener Programmierer seist. Hast aber Probleme mit der Konsole, beim Erstellen von .jar Files und anscheinend auch beim selber suchen. Gewöhne dir an möglichst viel selbst zu suchen und zu lesen. Eins was erfahrene Programmierer ausmacht ist u.a. auch Wissen sehr schnell selbst zu finden.
 
Zuletzt bearbeitet:
Danke für deine Konstruktive Kritik @Piktogramm. Ich hatte 3 Jahre Informatik und programmiere selbst viel Zuhause. Leider gibt es aber auch Sachen, nach denen man nicht gefragt hat, oder die man nicht Unterrichtet bekam, weil diese entweder nicht wichtig waren oder nicht in den Kontext passten. Bis heute brauchte ich nun einmal nie wirklich jar Datein oder cmd.

Des weiteren habe ich mich sehr wohl lang und breit im Internet versucht zu informieren, da mir die Auskünfte jedoch nicht ausreichten und weil ich zu meiner zweiten Frage "Textadventure auf der Website spielen" gar nichts gefunden habe, habe ich mich entschlossen freundlich mal ein paar Experten aufzusuchen.

Ich hoffe doch sehr das dies in einem dafür erstellen Forum möglich ist.
Danke für deine Links ich werde mir sie direkt anschauen.
Ergänzung ()

Okay, jetzt verstehe ich deine Reaktion. Auf eine Bat hätte ich wirklich selber kommen können. Aber wie gesagt, bis heute noch nicht gebraucht. Trotzdem danke.
 
Ich möchte nochmal auf die Frage zur Website zurück kommen.

Also es ist nicht möglich, ein schlichtes Textadventure, was nur eine Eingabe benötigt und einen Text ausgibt, in eine Website einzubinden?

Ich habe mich mit JavaScript auseinander gesetzt und es wäre viel zu aufwendig mein Programm umzuschreiben.
 
Java im Browser nennt sich Applet. Das ist sicherheitstechnisch aber eine ganz schlechte Idee, das mach so gut wie keiner mehr. Außerdem muss der Nutzer das JRE installiert haben, mach also keinen Unterschied zur jar.

Du kannst aber auch Java auf dem Server verwenden und auf Clientseite simples HTML.
 
Katheleit schrieb:
Also es ist nicht möglich, ein schlichtes Textadventure, was nur eine Eingabe benötigt und einen Text ausgibt, in eine Website einzubinden?

Abstrahiere die Ein/Ausgabe, falls das noch nicht der Fall ist, dann kannst Du verschiedene Clients bedienen. Eine Webschnittstelle ist nicht sehr aufwändig. Die Einbindung verlangt natürlich immer noch Java auf dem Server, was für Lernzwecke aber kostenlos möglich wäre (OpenShift Starter). Applets sind keine Option mehr.

Naheliegender wäre heutzutage eine App für das Smartphone.
 
Zurück
Oben