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 erarbeitet - basierend auf meiner 20+ jährigen Erfahrung als Anwendungeentwickler.
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
- 2D Rigid body Physik-Engine
- Game/Engine-Trennung
- ECS (Entity Component System)
- Asset-Management / Speicher-Management
- Eventhandling
- 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 wird Anfangs nachdem "Usage code first"-Prinzip umgesetzt, das bedeutet in dieser Phase wird alles so wie es passt runterprogrammiert - hier werden weder Programmierrichtlinien eingehalten noch Optimierungen gemacht. Der Grund dafür ist ganz klar: Ich will so schnell wie möglich nen fertigen Prototypen haben, der die Spielmechanik grundlegend implementiert.
In den nachfolgenden Phasen wird das natürlich anders.
Die Playlist findet Ihr hier:
https://www.youtube.com/playlist?list=PL…XT_COJrzQAI4oxL
Vorschläge, Kritik und generelles Feedback sind erwünscht und können entweder als Kommentar im Video oder hier als Reply angehängt werden.
Viel Spaß,
Final