Jump and run Spiel - wo anfangen / weitermachen?

Niky

Mitglied
Hallo, bin so ziemlich neu hier (hab gemerkt, dass ich mich schon zu einem früheren Zeitpunkt angemeldet habe, aber ich glaube das hier ist auch mein erster Post, wie auch immer...). Ich habe ein ziemlich großes Problem und ich hoffe, dass mir hier weitergeholfen werden kann.

Das heißt: Ich soll ein Jump and Run Spiel für die Schule programmieren. Ich habe bereits mehrere klägliche Versuche hinter mir, das zum Laufen zu bringen (mehrere Neuversuche). Während meinen Versuchen musste ich lernen, dass ich das Konzept der Objektorientierung nur schwach verstanden habe, doch durch die Praxiserfahrung, die ich während dem Projekt sammeln konnte, fühle ich mich nun ziemlich sicher mit den Grundkonzepten in weniger komplexen Situationen.

Trotzdem kriege ich nichts auf die Beine, da so ein Spiel einfach zu komplex ist. Ich laufe ständig auf neue Probleme (was auch normal ist), die ich in der Regel auch alle bewältigen kann. Doch irgendwann stoße ich in meinem Quelltext auf Probleme, die ich nicht mehr lösen kann, da ich das ganze wohl nicht sauber genug programmiert habe und auf einem instabilen Fundament baue. Mir fehlt es letztlich immer noch an Wissen und Praxiserfahrung.

Die Tutorials, die ich lese, sind alle zu überladen für ein Schulprojekt und es ist auch für das Projekt eine Voraussetzung, dass man den Code versteht, den man schreibt bzw. den Code, den man nicht selber geschrieben hat, eindeutig markiert. Es gibt im Internet viele gute Tutorials für Tetris, Pacman und ähnliches, doch ich finde nichts angemessenes für ein Jump and Run Spiel. Ich brauche ein simples Tutorial, an dem ich mich etwas festhalten kann, das nicht zu voll mit Schickschnack ist und das auch anpassbar ist. Dazu kommt, dass ich das ganze mit dem Dreischichtenmodell programmieren muss (sprich, eine Steuerung, eine GUI und Fachklassen, wobei Steuerung und GUI eine bidirektionale Beziehung haben und die Steuerung die Verbindung zwischen GUI und den Fachklassen herstellt).

Das Spiel muss nicht sehr komplex sein, d.h. es reicht ein Spielcharakter, eine einfache Möglichkeit Maps zu erstellen, ein Item, das man einsammeln kann, 2 bis 3 Hindernissen, die man überwinden muss und die man in der Map verwenden kann (sonst verliert man das Spiel, also sowas wie spitze Zacken, die aus dem Boden ragen), ein simpler Gegner (z.B. ein Geist), der sich auf und ab bewegt und den man nicht berühren darf, einen normalen Angriff und einen Distanzangriff für den Spieler und natürlich ein Startmenü.

Ich bin momentan einfach nur noch frustriert, dazu kommt noch, dass ich meinen USB-Stick verloren habe und dadurch nicht einmal Code-Fragmente von meinem vorherigen Versuch wiederverwenden kann. Ich wäre euch wirklich sehr, sehr dankbar, wenn ihr mich in irgendeine Richtung lenken könnt. Das Projekt steht schon fest (seit ca. 3 Monaten) und ich muss es in ca. 3 Wochen abgeben.

Das letzte, was ich geschrieben habe, liegt als Anhang dabei. Bringt zwar wohl nicht viel, aber habe es mal vollständigkeitshalber zugefügt.

Schon mal vielen Dank!
 

Anhänge

  • Game.zip
    19 KB · Aufrufe: 24

Jardcore

Top Contributor
Ich würde dir schonmal empfehlen dir das MVC Entwurfsmuster anzuschauen.
Weiterhin glaube ich das Vectoren für ein kleinen 2D Jump and Run zu viel sind.
Benutzte einfach den Satz des Pythagoras, das sollte reichen.

Schwierig bei einem Game ist immer auch die Idee, für ein Schulprojekt würde ich zuerst einmal etwas ganz einfaches versuchen.

Die Idee:
Ein Spieler läuft von links nach rechts durch den Bildschirm und muss Diamanten sammeln, dabei muss er von Plattform zu Plattform springen. Die Anforderung sollte schon mal ausreichen um anzufangen.

Die Vorarbeit:
Überlege dir welche Objekte du brauchst um dein Spiel zu realisieren.
Wahrscheinlich brauchst du eine Welt in der der Spieler herumläuft. (World)
Dann brauchst du natürlich den Spieler himself (Player)
Jetzt Fehlen noch die Diamanten und die Plattformen (Diamond, Platform).
Jetzt kommt man zu dem Punkt an dem man überlegt was Dinge gemeinsam haben.
Die Player, Diamond und Platform Objekte müssen alle in der World platziert werden können, deshalb benötigen alle zwei Koordinaten. Ich habe gesehen, dass du ein Entity Objekt angelegt hast. Dort kannst du die Koordinaten implementieren und dann den Player, Diamond und die Platform vom Entity Objekt erben lassen.
Jetzt hast du alle Grundobjekte für das Spiel.

So, jetzt wäre es an der Zeit zu überlegen welche wichtigen Konstrukte der Spielentwicklung du noch brauchst und welche zusätzlichen Objekte dadurch entstehen.
1. GameLoop
2. InputHandler
3. Rendering

Sag bescheid wenn du dir Gedanken zu diesen Themen gemacht hast, und wie weit deine Fortschritte bisher sind.
 

Niky

Mitglied

Danke für dieses Tutorial, es ist einfach und verständlich geschrieben und erläutert vor allem, warum etwas nötig ist, damit es nicht zu Problemen kommt. Bin schon zu einem Drittel durch und werde mein Spiel darauf basieren.

Ich würde dir schonmal empfehlen dir das MVC Entwurfsmuster anzuschauen.
Weiterhin glaube ich das Vectoren für ein kleinen 2D Jump and Run zu viel sind.
Benutzte einfach den Satz des Pythagoras, das sollte reichen.

Da gebe ich dir Recht, ich glaube inzwischen auch, dass das unnötig für mein kleines Spiel ist. Ich habe im Prinzip für jede Kleinigkeit einen Vektor erstellt, obwohl ich auch einfach die Koordinaten direkt hätte übergeben können.

Das MVC Muster dürfen wir explizit nicht verwenden, wir müssen es mit dem Drei-Schichten-Modell lösen. Nach meinen Versuchen vermute ich zwar, dass dieses Modell ungeeignet ist für meine Aufgabe, aber unser Lehrer besteht darauf.
 

dayaftereh

Top Contributor
Na ja MVC behandelt nur die Anzeige, als drei Schichtenmodell könnte man auch folgendes Einführen.
  1. Anzeige mit MVC
  2. Spiel Logik
  3. Persistenz ( Spiel Daten )
 

Niky

Mitglied
Hallo Leute, bin nun etwas weitergekommen, allerdings haben sich zwei Bugs in meinen Code eingeschlichen, die ich nicht nicht lösen kann :(

Des weiteren wäre ich dankbar, wenn mir irgendjemand Feedback zu dem Code geben könnte, speziell zur Gesamtstruktur / Übersichtlichkeit / Effizienz etc.

Die zwei Bugs wären:
a) Entweder es stimmt bei der Berechnung etwas nicht, oder die Zeitverzögerung ist so nicht ganz richtig. Jedenfalls zeigt meine FPS-Anzeige, wenn ich sie mittels VSync limitiere etwas weniger als den doppelten Wert an, als ich ihn eingestellt habe. Ich habe schon alle Variablen und die GameLoop mehrfach durchgecheckt, kann es mir aber einfach nicht erklären :(

b) Das Menü ruft beim Drücken der Enter-Taste, wenn "Play" selected ist, das Spiel auf. Wenn es schon aufgerufen ist, werden die Werte zurückgesetzt auf einen Standardwert. Bei mehrfachem Wechseln zum Spiel mit Enter und zum Menü mit Esc reagiert das Spiel irgendwann nicht mehr, ich nehme an, dass der GC die Objekte nicht wegwirft, obwohl diese immer neu zugewiesen werden. Deswegen initialisiere ich jetzt nicht mehr, so wie ich es vorher gemacht habe, die "World" und das "Menü" jedes Mal komplett neu, sondern resette sie mit einer dafür vorgesehenen Methode, falls deren Konstruktor schon aufgerufen wurde. Allerdings habe ich jetzt folgendes Problem entdeckt: Der KeyListener des Menüs feuert weiter, wenn ich im Spiel bin, allerdings erst ab dem zweiten Aufruf des Menüs. Eigentlich entferne ich den KeyListener von meinem JFrame bei jedem Druck auf die Enter Taste, aber das will nicht funktionieren, warum auch immer... Beim zweiten Druck im Spiel wird der Druck auf die Taste allerdings korrekt umgesetzt. Die Konsole gibt bei jedem Druck des Menü-KeyListeners eine Zahl auf, die entsprechend hochgezählt wird. Habe sie drin gelassen, falls es mal jemand probieren möchte..

Vielen Dank schonmal! :)
 

Anhänge

  • NEW Game Project - 42 Light Years.zip
    23,9 KB · Aufrufe: 19

Niky

Mitglied
Ok, Problem 2 habe ich nun lösen können. Das Problem war, dass ich mit zwei verschiedenen Threads KeyListener dem JFrame hinzugefügt und entfernt habe. Deswegen habe ich das Ganze separat in eine processInput() Methode ausgelagert, in der u.a. auch der KeyListener bei entsprechendem Input entfernt wird und diese von meinem GameLoop Thread ausgeführt. Habe noch nie so richtig mit Threads gearbeitet, bin froh, dass das jetzt wenigstens läuft. Wenn jemand noch irgendwie Feedback hätte, wäre ich trotzdem froh.

Grüße :)
 

Niky

Mitglied
Ok, wie auch immer, jedenfalls danke für eure Hilfe. Bin inzwischen recht gut weitergekommen. Mein größtes Problem war denke ich, dass ich viel zu früh optimiert habe. Der Schuss ist nach hinten losgegangen. Thread kann geschlossen werden.
 

Jardcore

Top Contributor
"Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%." - Don Knuth"

Am besten erst optimieren, wenn es zu Problemen kommt :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
K Mein Jump and Run charakter bewegt sich nicht mehr rückwärts... Spiele- und Multimedia-Programmierung 0
E Möchte Jump and Run programmieren Spiele- und Multimedia-Programmierung 2
F Jump'n Run Background wiederholen Spiele- und Multimedia-Programmierung 3
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
Finalspace Entwicklung eines Jump & Run Spiels Video-Tutorial Spiele- und Multimedia-Programmierung 12
C Doodle Jump Sprung Physik? Spiele- und Multimedia-Programmierung 4
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
M Empfehlungen für ein 2D-Jump'n'run Spiele- und Multimedia-Programmierung 4
W Doodle Jump Spiele- und Multimedia-Programmierung 6
H Jump&Run Tutorial Spiele- und Multimedia-Programmierung 3
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
K Jump'N'Run Hügel Spiele- und Multimedia-Programmierung 11
T Jump and Run - Unklarheiten Spiele- und Multimedia-Programmierung 5
Arcus Jump and Run etwas komplizierter - Benötige Starthilfe Spiele- und Multimedia-Programmierung 12
T Ist meine Jump and Run Engine zu genau? Spiele- und Multimedia-Programmierung 4
N Grundlagen für ein Jump&Run Spiele- und Multimedia-Programmierung 3
F "Doodle Jump" Projekt Spiele- und Multimedia-Programmierung 8
U Jump n' Run 2D Geometrie und Kollisionsabfrage? Spiele- und Multimedia-Programmierung 11
L Jump-n-Run Auslastung verringern Spiele- und Multimedia-Programmierung 16
Apo Kollisionserkennung bei Jump'n'Run Spiele- und Multimedia-Programmierung 69
F jump and run idee Spiele- und Multimedia-Programmierung 2
T Umsetzung eines 2D Jump and Runs Spiele- und Multimedia-Programmierung 7
K Jump n Run Keylistener und Schleifen Spiele- und Multimedia-Programmierung 8
F DJADD Jump and Run Spiele- und Multimedia-Programmierung 10
D Jump 'n run die 2. [spielerbewegen mit zeit] Spiele- und Multimedia-Programmierung 6
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
S Kollisionsprob bei Jump&Run Spiele- und Multimedia-Programmierung 9
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
B Server für Spiel aufsetzen, was Shutdown ist Spiele- und Multimedia-Programmierung 3
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
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
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
S Spiel installeren lassen und organisieren Spiele- und Multimedia-Programmierung 3
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

Ähnliche Java Themen

Neue Themen


Oben