Spiel installeren lassen und organisieren

SilverClaw

Aktives Mitglied
Guten Morgen,

erstmal entschuldige ich mich im voraus, falls das hier das komplett falsch Unterforum ist, aber ich bin mir nicht sicher, ob meine Sorgen noch zu Anfänger-Sachen oder sonstwo hin gehören, aber da ich das gerade an einem Spiel benutzen will, kommt es mal hier rein.

Mein Zwischenziel besteht gerade darin, ein kleines Spiel zu entwickeln, das vorerst nur mit Text auf einer 2D-Anzeige läuft, also mit Swing.
Man soll Waren auf einem Markt anbieten und erstehen können und kann Gebäude bauen, die erstmal Geld und Baumaterial kosten, dann aber wieder Waren produzieren.

Mein erster Stolperstein wäre allerdings schon die Installation auf verschiedenen Betriebssystemen, die ich bisher mehr schlecht als recht zusammen gebastelt habe:

aus der Main kommen:

public final static String home = System.getProperty("user.home");
public final static String sep = System.getProperty("file.separator");
public final static String checkFileLocation = home+sep+"check.txt";

Java:
package manager;

import java.io.File;
import java.io.IOException;

import javax.swing.JFileChooser;

public class Installer {

	private static String installPath = null;
	private static String [] checkText;
	private static String ressourcePath = null;
	static String sep = Main.sep;
	
	public static void installNew(String checkFileLocation) throws IOException {
		
		checkText = new String[10];
		
		JFileChooser fc = new JFileChooser();
		fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
		if(fc.showSaveDialog(JMainFrame.getWindow()) == JFileChooser.APPROVE_OPTION) {
			installPath = fc.getSelectedFile().getAbsolutePath();
			System.out.println(installPath);
			ressourcePath = installPath+sep+"ressource";
			
			//directories
			File ressource = new File(ressourcePath);
			ressource.mkdir();
			File goods = new File(ressourcePath+sep+"goods");
			goods.mkdir();
			File buildings = new File(ressourcePath+sep+"buildings");
			buildings.mkdir();
			
			//files
			File goodslist = new File(goods.getAbsolutePath()+sep+"goodslist.txt");
			goodslist.createNewFile();
			File readme = new File(installPath+sep+"Readme.txt");
			readme.createNewFile();
			
			FileHandler checker = new FileHandler(checkFileLocation);
				
				checkText[0] = "Damascus Pre-Alpha 0.3";
				checkText[1] = "installFolder :\n" + installPath;
				checkText[2] = "ressourceFolder:\n"+ ressourcePath;	
				
			checker.WriteLines(checkText);
		} else {
			installPath = "Kein Installationsverzeichnis ausgewählt.";
		}
	}
	
	public String getCheckFile() {
		File checkFile = new File(Main.checkFileLocation);
		if(checkFile.exists()) {
			return checkFile.getAbsolutePath();
		} else {
			return null;
		}
	}
}
Es läuft also darauf hinaus, dass der Speicherort in einer fest platzierten Check-Datei abgelegt wird und dadurch findet man später wieder die ganzen Dateien. Funktioniert wunderbar, bis jemand die Chech-Datei verschiebt, löscht oder ändert.
Habe zwar schon rumgesucht wie blöd, aber wrklich eine Lösung gefunden hab ich nicht.
Wie machen es denn versiertere Programmierer, wenn sie etwas auf Windows und Linux zum laufen kriegen wollen? :autsch:

Mein nächstes Problem wäre, dass ich nicht sicher bin, wie ich am besten mit den Daten umgehe, die aus Dateien geladen werden sollen.
Beispielsweise habe ich für Güter eine einfache Textdatei benutzt und darin steht dann:


WATER
"Eimer Wasser"
"Eimer Wasser"
0.2

WHEAT
"Sack Getreide"
"Säcke Getreide"
0.6

FLOUR
"Sack Mehl"
"Säcke Mehl"
2.0

...

Ich gehe bisher ja davon aus, dass es am sinnvollsten ist, die Waren dann zum Spielstart aus der Datei auslesen zu lassen und die ganze Zeit als HashMap gespeichert zu halten. Wenn dann ein Spieler etwas kauft, bekommt er eine Kopie der geladenen Waren. Dann stellt sich mir die Frage, ob es sinnvoll ist, dazu gleich die Mengen zu speichern, in welchen diese jeweils vorkommt oder ob das auch eleganter gehen würde.
Für Gebäude stelle ich mir das ganze etwas schwieriger vor, weil man für die auch irgendwie abspeichern können sollte, was diese produzieren, wobei z.B. Farmen gerne mehrere Optionen bieten sollten.

Also wäre meine Frage ganz allgemein:
Wie organisiert ihr es, wenn ihr auf Daten zugreifen wollt? Textdateien oder gibt es sinnvolleres?
Lädt man besser gleich alles raus, was man früher oder später ohnehin braucht oder ist es doch sinnvoller die Datenschnipsel jedes mal wieder aus der Datei zu holen?
Und hat irgendwer Erfahrung, mit welchen Datenstrukturen man am besten so etwas wie Warenlager abbildet? Ich schwanke da immernoch zwischen ArrayList und HashMap.

Falls irgendwer guten Rat weiß, wäre ich dankbar,
SilverClaw
 

Gucky

Top Contributor
Eine Möglichkeit für das Speichern des Spielstandes wäre die Serialisierung, bei der wirklich alles, nicht extra gekennzeichnetes, gespeichert wird. Deine Klassen müssten nur das leere Interface Serializable implementieren.

Für das Speichern von Informationen, wo keiner ran soll, gibt es unter Windows die Regestry. (ja man kommt doch ran aber nur schser und für gewöhnlich tut das keiner) Ich weiß nicht, wie das unter Mac oder Unix heißt aber etwas vergleichbares müsste es da auch geben.
 

SilverClaw

Aktives Mitglied
Hmmm, Minecraft z.B. speichert ja vor allem in /appdata.
Unter Linux wäre es wohl sowas wie /etc

Aber was wäre denn ein gängiger Weg, so etwas zu verteilen?
Sollte man alle "festen" Daten in einen sicheren (also versteckten, den normale Anwender eher nicht anfassen) Ordner speichern und für den Endnutzer eine Verknüpfung zur Verfügung stellen?
Ich hatte ja erwartet, dass es einfacher wäre, dazu etwas zu finden, allerdings steht in den meisten Foren, die ich bisher gesehen habe miest nur, dass es recht komplziert sein dürfte, weiter wird dann nicht darauf eingegangen.
Da ich Java vor allem wegen der angeblichen Plattformunabhängigheit mag, enttäuscht das doch ein wenig.

Serializable sieht interessant aus, allerdings frage ich mich ja eher, WO und WIE man die Daten ablegen sollte, sodass man relativ einfach neue Waren oder Häuser hinzufügen kann, ohne direkt im Java-Code herum pfuschen zu müssen. Dazu habe ich bisher auch recht wenig hilfreiches gefunden, was daran liegen könnte, dass das auf ganz andere Weise gelöst wird, als ich es mir denke.
Viele OpenSource-Spiele scheinen ja mit XML-Dateien zu arbeiten, wo man dann z.B. für Einheiten über den Internet-Browser beliebig andere Werte rein schreiben kann. Würde was hier schon Sinn machen?
Und falls es zu sowas irgendwo Tutorials gibt, in denen das ausführlich genug erklärt wird, wäre ich auch dafür dankbar. Vielleicht habe ich ja bisher nur das falsche gesucht. :rtfm:
 

Gucky

Top Contributor
Du pfushst nicht im Code rum. Nahezu alle Klassen aus der API implementieren Serializable und du musst nur dieses Interface implementieren.mehr nucht. Dann schreibst du mit einen ObjectOutputStream die Objekte in eine Datei. An diese speziallen, vom OS gebotenen Pfade ranzukommen, gibt es spezielle Methoden, die ich aber nicht kenne. Die müsstest du dir ergooglen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
O Texas Hold'em Poker als Online-Spiel mit Freunden Spiele- und Multimedia-Programmierung 5
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
Excess Spiel abzugeben Spiele- und Multimedia-Programmierung 1
I Superhelden - Spiel Spiele- und Multimedia-Programmierung 14
E Hauptmenü und Spiel ???? Spiele- und Multimedia-Programmierung 2
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
R Interaktives Spiel Spiele- und Multimedia-Programmierung 5
L Spiel im Editor testen Spiele- und Multimedia-Programmierung 4
Jackii dispatchUncaughtException in Quiz Spiel mit GUI Layout Spiele- und Multimedia-Programmierung 6
D Textbasiertes Spiel Spiele- und Multimedia-Programmierung 8
K Android Spiel Programmieren Spiele- und Multimedia-Programmierung 6
L BrickBreaker Spiel Spiele- und Multimedia-Programmierung 3
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
it_is_all Dialogbox im Spiel - Text in Blöcke aufteilen Spiele- und Multimedia-Programmierung 4
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
E Möchte Spiel Programmieren Spiele- und Multimedia-Programmierung 7
S Connect6 Spiel - Code in ei Spiele- und Multimedia-Programmierung 2
A Spiel nach Abfrage beenden oder neustarten Spiele- und Multimedia-Programmierung 1
G Welten Generierung 2D Spiel Spiele- und Multimedia-Programmierung 4
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
L Coordinate Space JavaFX 2d Spiel Spiele- und Multimedia-Programmierung 0
C Vier Gewinnt Spiel Programmiertipp Spiele- und Multimedia-Programmierung 11
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
K Spiel zum zuordnen von Dienstgraden und Dienstgradabzeichen Spiele- und Multimedia-Programmierung 5
M Textbasiertes Spiel programmieren Spiele- und Multimedia-Programmierung 4
T 2d-Spiel Licht Spiele- und Multimedia-Programmierung 5
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
T Spiel rendern Spiele- und Multimedia-Programmierung 2
Grevak Sounds im Spiel Spiele- und Multimedia-Programmierung 5
B Fehlerhafte Mob Bewegungen in Tower Defense Spiel Spiele- und Multimedia-Programmierung 2
F Spiel ähnlich wie SimCity/o.ä programmieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Kollisions abfrage bei 3D spiel? Spiele- und Multimedia-Programmierung 12
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
E GUI zum Spiel hinzufügen Spiele- und Multimedia-Programmierung 19
S 2D Spiel - Physics Spiele- und Multimedia-Programmierung 16
S 2D Spiel "Der Sprung" Spiele- und Multimedia-Programmierung 7
A 2D Spiel ohne Tiles Spiele- und Multimedia-Programmierung 10
V welche vorgehensweise beforzieht ihr bei einfachem Quizz Spiel ? Spiele- und Multimedia-Programmierung 4
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
G Methode sleepen während das Spiel weiterläuft Spiele- und Multimedia-Programmierung 3
T Spiel Überprüfung Spiele- und Multimedia-Programmierung 3
P Spiel laggt nach unbestimmter Zeit tierisch. Spiele- und Multimedia-Programmierung 27
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
W Spiel ist langsam/laggt Spiele- und Multimedia-Programmierung 18
J Ascii Spiel Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
O Vollständige Musik in Spiel einbauen (wav - Format) Spiele- und Multimedia-Programmierung 8
Y Quiz Spiel Spiele- und Multimedia-Programmierung 1
J Conways Spiel des Lebens nachprogrammiert Spiele- und Multimedia-Programmierung 1
B Spiel Programmieren, die Anfänge Spiele- und Multimedia-Programmierung 6
D [OpenGL] Spiel in der Art von Age of Empires Spiele- und Multimedia-Programmierung 4
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
J Lichtupdate in tile-basiertem Spiel Spiele- und Multimedia-Programmierung 4
P Erstes Spiel (Strategie) Spiele- und Multimedia-Programmierung 31
J Mein erstes Spiel [Spielevorstellung] Spiele- und Multimedia-Programmierung 2
Bananabert Spiel Renderer Images und Strings Spiele- und Multimedia-Programmierung 4
N Spiel Menü error ! Spiele- und Multimedia-Programmierung 5
S Anfangsmenü mit Spiel verknüpfen Spiele- und Multimedia-Programmierung 16
S Spiel ruckelt trotz 50 fps Spiele- und Multimedia-Programmierung 16
D Spiel-Bilddaten auswerten Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
Devil0s Spiel laggt trotz 90 FPS (bei der Anzeige) Spiele- und Multimedia-Programmierung 9
N Webanwendung als eine Art Spiel Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
J wohin mit der Logik des Spiel Spiele- und Multimedia-Programmierung 2
R Experimente mit Quaxlis Spiel Spiele- und Multimedia-Programmierung 12
W Spiel-Grundlagen selbst austüfteln: Kollisionen? Spiele- und Multimedia-Programmierung 3
Kenan89 Java 2D Spiel Spiele- und Multimedia-Programmierung 39
M Automaten Spiel Spiele- und Multimedia-Programmierung 27
J Tic tac toe spiel Neustart Spiele- und Multimedia-Programmierung 5
S 2D Spiel im Vollbild langsamer als im Fenster Spiele- und Multimedia-Programmierung 11
A TicTacToe Spiel Spiele- und Multimedia-Programmierung 3
S Verbesserungvorschläge Spiel Z Spiele- und Multimedia-Programmierung 31
S Spiel abbrechen Spiele- und Multimedia-Programmierung 3
J Greenfoot "Little Crab" Spiel Erweiterungen Spiele- und Multimedia-Programmierung 6
P Spiel HUD erstellen Spiele- und Multimedia-Programmierung 6
E Spiel neustarten Spiele- und Multimedia-Programmierung 4
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
V Basisprinzipien Breakout-Spiel Spiele- und Multimedia-Programmierung 8
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7
Gossi Erweiterung von Quaxlis Heli-Spiel Spiele- und Multimedia-Programmierung 16
M Hilfe bei Spiel Programmierung Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben