Finalspace
Lt. Junior Grade
- Registriert
- Sep. 2009
- Beiträge
- 390
[Java] Entwicklung eines Jump & Run Spiels Video-Tutorial
Hallo,
ich möchte euch mein Projekt vorstellen, bei dem ich ein Jump & Run Spiel komplett von Grund auf programmiere und dabei aber jedes noch so kleine Detail kommentiere/erkläre.
Dazu werden alle Grundlagen wie Vektor-Mathematik, Physik, Spielmechanik, Architektur in einem sehr hohen Detailgrad - basierend auf meiner 20+ jährigen Erfahrung als Anwendungeentwickler euch näher gebracht.
Das Spiel selbst wird ein aufwendiger Vektor-basierter Puzzle-Action-Physik-Geschicklichkeits-Platformer in 2.5D - also schonmal recht ambitioniert.
Grob wird das ne Mischung aus Mega Man, Zelda, Mario, Turrican, Commander Keen und vielen Weiteren.
Daher wird das hier kein einfacher kachelbasierter Platformer, den man in ein paar Std. zusammenzimmert, sondern eher ein etwas längeres Projekt bei dem ich unter anderem folgende Themen durchnehme:
- Fenstererstellung / Game Loop
- einfacher 2D Software-Renderer zum Zeichnen von Pixeln/Linien/Kreisen/Rechtecken/Bitmaps/Fonts
- Eingabenverarbeitung
- Vektorgrundlagen
- Kollision und Reaktion
- Geometrie
- Visualisierungen
- Bewegungsintegration
- Kontaktgenerierung
- 2D Rigid body Physik-Engine
- Game/Engine-Trennung
- Asset-Management / Speicher-Management
- Animationen
- Kamera
- Eventhandling
- Debug-Techniken
- Deployment
- Spatiale-Strukturen
- Optimierungen
- und viele Weitere die sich während der Entwicklung ergeben.
Das ganze wird realisiert mit Java 7/8 in der Entwicklungsumgebung Eclipse - ohne Nutzung von Fremdbibliotheken oder einer fertigen Engine. Daher setzte ich auch entsprechende Programmierkenntnisse in Java voraus und werde nur Programmiertechniken erklären, die relevant für die Spielentwicklung sind oder nicht als Grundlagen zählen wie z.b. Threading, Reflection, Programmiermuster usw. Normale (Schul-)Mathematikkenntnisse reichen in der Regel aus. Ihr braucht also keine Physiker oder Mathematiker sein um, das zu verstehen - ich habe mir viel selbst erarbeitet und erschlossen.
Das Projekt läuft folgendermassen ab:
Wir beginnen damit ein kleines Framework zu bauen mit dem wir überhaupt mal was auf den Bildschirm bringen können und erweitern dieses Systematisch. Hier werde ich nicht viel Wert auf sauberen Programmierstil oder Architektur legen. Allerdings werden notwendige "Generische Ansätze" getrennt damit diese mehrfach verwendet werden können und logischer zusammenhängen. Dadurch entsteht automatisch eine sogenannte "Game Engine".
Das ganze wird dann in mehreren Iterationen zu einem Prototypen entwickelt, indem dem dann die gesamte Spielmechanik implementiert werden soll - allerdings ohne große Optimierungen.
Zeitgleich werden wir einen Leveleditor entwickeln, mit dem der gesamte Inhalt des Spiels erstellt werden kann.
Ab einem Punkt wird dieser Prototyp dann auf Performance optimiert und wir gehen dann zum "Fancy"-Part über. Das Rendering wird dann komplett auf OpenGL umgestellt und wir versuchen ein 2.5D Grafikstil zu etablieren.
Die letzte Episode: (Ep 103 - Geisterkontakte ein für alle mal aus der Welt schaffen)
https://www.youtube.com/watch?v=TKL7Zy03D-Q
Den Sourcecode zur letzten Episode findet man hier: https://github.com/f1nalspace/leverman-devlog/tree/v0.1
Viel Spaß,
Final
Hallo,
ich möchte euch mein Projekt vorstellen, bei dem ich ein Jump & Run Spiel komplett von Grund auf programmiere und dabei aber jedes noch so kleine Detail kommentiere/erkläre.
Dazu werden alle Grundlagen wie Vektor-Mathematik, Physik, Spielmechanik, Architektur in einem sehr hohen Detailgrad - basierend auf meiner 20+ jährigen Erfahrung als Anwendungeentwickler euch näher gebracht.
Das Spiel selbst wird ein aufwendiger Vektor-basierter Puzzle-Action-Physik-Geschicklichkeits-Platformer in 2.5D - also schonmal recht ambitioniert.
Grob wird das ne Mischung aus Mega Man, Zelda, Mario, Turrican, Commander Keen und vielen Weiteren.
Daher wird das hier kein einfacher kachelbasierter Platformer, den man in ein paar Std. zusammenzimmert, sondern eher ein etwas längeres Projekt bei dem ich unter anderem folgende Themen durchnehme:
- Fenstererstellung / Game Loop
- einfacher 2D Software-Renderer zum Zeichnen von Pixeln/Linien/Kreisen/Rechtecken/Bitmaps/Fonts
- Eingabenverarbeitung
- Vektorgrundlagen
- Kollision und Reaktion
- Geometrie
- Visualisierungen
- Bewegungsintegration
- Kontaktgenerierung
- 2D Rigid body Physik-Engine
- Game/Engine-Trennung
- Asset-Management / Speicher-Management
- Animationen
- Kamera
- Eventhandling
- Debug-Techniken
- Deployment
- Spatiale-Strukturen
- Optimierungen
- und viele Weitere die sich während der Entwicklung ergeben.
Das ganze wird realisiert mit Java 7/8 in der Entwicklungsumgebung Eclipse - ohne Nutzung von Fremdbibliotheken oder einer fertigen Engine. Daher setzte ich auch entsprechende Programmierkenntnisse in Java voraus und werde nur Programmiertechniken erklären, die relevant für die Spielentwicklung sind oder nicht als Grundlagen zählen wie z.b. Threading, Reflection, Programmiermuster usw. Normale (Schul-)Mathematikkenntnisse reichen in der Regel aus. Ihr braucht also keine Physiker oder Mathematiker sein um, das zu verstehen - ich habe mir viel selbst erarbeitet und erschlossen.
Das Projekt läuft folgendermassen ab:
Wir beginnen damit ein kleines Framework zu bauen mit dem wir überhaupt mal was auf den Bildschirm bringen können und erweitern dieses Systematisch. Hier werde ich nicht viel Wert auf sauberen Programmierstil oder Architektur legen. Allerdings werden notwendige "Generische Ansätze" getrennt damit diese mehrfach verwendet werden können und logischer zusammenhängen. Dadurch entsteht automatisch eine sogenannte "Game Engine".
Das ganze wird dann in mehreren Iterationen zu einem Prototypen entwickelt, indem dem dann die gesamte Spielmechanik implementiert werden soll - allerdings ohne große Optimierungen.
Zeitgleich werden wir einen Leveleditor entwickeln, mit dem der gesamte Inhalt des Spiels erstellt werden kann.
Ab einem Punkt wird dieser Prototyp dann auf Performance optimiert und wir gehen dann zum "Fancy"-Part über. Das Rendering wird dann komplett auf OpenGL umgestellt und wir versuchen ein 2.5D Grafikstil zu etablieren.
Die letzte Episode: (Ep 103 - Geisterkontakte ein für alle mal aus der Welt schaffen)
https://www.youtube.com/watch?v=TKL7Zy03D-Q
Ep 0 - Einführung:
https://www.youtube.com/watch?v=0FUuXQW9jq8
https://www.youtube.com/watch?v=0FUuXQW9jq8
Den Sourcecode zur letzten Episode findet man hier: https://github.com/f1nalspace/leverman-devlog/tree/v0.1
Viel Spaß,
Final
Zuletzt bearbeitet:
(Neue Episoden)