Hallo,
ich möchte euch mein Projekt "Leverman Devlog" vorstellen - eine Art "Videodokumentationsserie" bei dem ich einen aufwendigen Platformer Schritt für Schritt von Grund auf mit Java entwickele 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 vermittelt.
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 ein 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 Rigidbody Physik-Engine
- Transformationen
- Game/Engine-Trennung
- ECS (Entity Component System)
- 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 aktuellste Episode: (Ep 100 - Seiten verschieben!):
https://www.youtube.com/watch?v=thhh3lqayXM
Erste Episode (Ep 0 - Einführung):
https://www.youtube.com/watch?v=0FUuXQW9jq8
Vorschläge, Kritik und generelles Feedback sind erwünscht und können entweder als Kommentar im Video oder hier als Reply angehängt werden.
Den Sourcecode findet man hier: https://github.com/f1nalspace/leverman-devlog
Viel Spaß,
Final
[Projekt] Leverman Devlog
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.
Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.
This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.
Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.
This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
-
- Beiträge: 3
- Registriert: 10.11.2015, 14:58
[Projekt] Leverman Devlog
Zuletzt geändert von Finalspace am 21.03.2016, 11:35, insgesamt 2-mal geändert.
-
- Beiträge: 3
- Registriert: 10.11.2015, 14:58
Re: [Projekt] Leverman Devlog
Ja so langsam sieht man die ersten Züge eines Platformers, daher es geht vorran (nach 66 Episoden) ;-)
Wir werden auf jedenfall dann mit dem integrierten Editor anfangen und die Physik-Engine nach und nach ausbauen.
Ebenfalls möchte ich dann auch noch am Renderer weiter machen - Transformationen, Bitmaps, Fonts usw.
Zum Schluß habe ich noch eine Frage an euch:
Ist bisher alles verständlich oder gibt es noch Erklärungsbedarf? Wenn ja, in welchen Bereichen?
Gruß,
Final
Wir werden auf jedenfall dann mit dem integrierten Editor anfangen und die Physik-Engine nach und nach ausbauen.
Ebenfalls möchte ich dann auch noch am Renderer weiter machen - Transformationen, Bitmaps, Fonts usw.
Zum Schluß habe ich noch eine Frage an euch:
Ist bisher alles verständlich oder gibt es noch Erklärungsbedarf? Wenn ja, in welchen Bereichen?
Gruß,
Final
-
- Beiträge: 3
- Registriert: 10.11.2015, 14:58
Re: [Projekt] Leverman Devlog
Hallo Leute!
Nun habe ich gerade die 100. Episode hochgeladen und daher auch den Sourcecode veröffentlicht!
Ebenfalls wird diesen Monat noch eine größere Umstellung gemacht - die ich entsprechend noch ankündigen werde.
Bleibt dran,
Final
Nun habe ich gerade die 100. Episode hochgeladen und daher auch den Sourcecode veröffentlicht!
Ebenfalls wird diesen Monat noch eine größere Umstellung gemacht - die ich entsprechend noch ankündigen werde.
Bleibt dran,
Final