Entwicklung eines Jump & Run Spiels Video-Tutorial

Ich finds auf jeden Fall ganz nett, schau mir jeden Abend mal eine Episode an. Meine Erfahrung beschränkt sich aufs Programmieren von Business Anwendungen von daher sind neue Einblicke in andere Konzepte immer interessant. Teilweise ein bißchen zu langsam für mich, aber es ist gute Unterhaltung für nebenher. :)

Teilweise bist Du etwas unpräzise, aber ich denke für die Zielgruppe mit weniger Erfahrung in Ordnung, um den Zuhörer nicht direkt mit Fachsprache zu erschlagen. Aber andererseits setzt Du auch auch einiges an Erfahrung voraus (zumindest die Grundlagen der Objektorientierung), evtl. sollte man da auch Fachsprache und das Handling der IDE (Stichwort Refactoring und Automatismen) schon voraussetzen.

Für einige Sachen nimmst Du Dir sehr viel Zeit für andere Kleinigkeiten dann sehr wenig, aber ich vermute das merkt man selbst beim Erklären ohne Feedback nicht so, z.B. Episode 4 glaub ich, wo Du die Koordinatenpunkte korrigierst, die außerhalb des Framebuffers liegen. An der Stelle wo Du sagst, dass man die Min Max Methoden auch verschachteln kannst, da musste ich kurz pausieren und kurz nachvollziehen warum Du das machst.
 
Drexel schrieb:
Ich finds auf jeden Fall ganz nett, schau mir jeden Abend mal eine Episode an. Meine Erfahrung beschränkt sich aufs Programmieren von Business Anwendungen von daher sind neue Einblicke in andere Konzepte immer interessant. Teilweise ein bißchen zu langsam für mich, aber es ist gute Unterhaltung für nebenher. :)

Freut mich das es unterhaltsam ist ;) Ja mir persönlich ist es auch viel zu langsam, aber das kommt halt dadurch dass ich halt alles erklären möchte, das kostet halt Zeit - grad das Thema Skalarprodukt, das kann man nicht oft genug wiederholen!

Drexel schrieb:
Teilweise bist Du etwas unpräzise, aber ich denke für die Zielgruppe mit weniger Erfahrung in Ordnung, um den Zuhörer nicht direkt mit Fachsprache zu erschlagen. Aber andererseits setzt Du auch auch einiges an Erfahrung voraus (zumindest die Grundlagen der Objektorientierung), evtl. sollte man da auch Fachsprache und das Handling der IDE (Stichwort Refactoring und Automatismen) schon voraussetzen.

Die Zielgruppe entspricht exakt dem was du gesagt hast, Java-Anfänger die mehr als "Hello World" kennen, vielleicht schon ein paar Anwendungen gebaut haben aber noch nicht alle Kniffe und so kennen. Und natürlich was am wichtigsten ist, lust haben was spannendes zu machen :-)

Drexel schrieb:
Für einige Sachen nimmst Du Dir sehr viel Zeit für andere Kleinigkeiten dann sehr wenig, aber ich vermute das merkt man selbst beim Erklären ohne Feedback nicht so, z.B. Episode 4 glaub ich, wo Du die Koordinatenpunkte korrigierst, die außerhalb des Framebuffers liegen. An der Stelle wo Du sagst, dass man die Min Max Methoden auch verschachteln kannst, da musste ich kurz pausieren und kurz nachvollziehen warum Du das machst.

Ja bei den Kleinigkeiten merk ich das tatsächlich nicht immer, aber naja solange man es irgendwie versteht - zur not einfach Kommentar schreiben, dann kann ichs gern mal im Detail erklären.
 
So grad ein kleines Update:

Wir stehen kurz vor der Kollsionslösung auf Basis von Kontakten, welches mein nächstes Thema ist, bei dem es dann endlich anfängt Spaß zu machen ;-)

Allerdings fahre ich ende dieser Woche für 2-3 Wochen in den Urlaub, daher wird es in dieser Zeit keine neuen Episoden geben :(Eventuell schaffe ich es aber noch 1-2 Episoden aufzunehmen...

Ich hoffe Ihr habt soweit Spaß mit der Serie und versteht auch alles was ich da verzapf - wenn nicht, Kommentar ins Video hängen oder hier posten. Ebenfalls ist Feedback sehr erwünscht ;-)

Bis dann,
Final
 
Wieso benutzt eigentlich nahezu jeder Bufferedimage anstatt BufferedStrategy?

Ich habe jetzt schon öfters gehört/gelesen dass die Performance bei BufferedStrategy besser sein soll.

Stimmt das nun?
 
Hades85 schrieb:
Wieso benutzt eigentlich nahezu jeder Bufferedimage anstatt BufferedStrategy?

Ich habe jetzt schon öfters gehört/gelesen dass die Performance bei BufferedStrategy besser sein soll.

Stimmt das nun?

Also wenn man Graphics2D verwendet dann ist BufferedImage wichtig, da es sich drum kümmert das man kein flackern beim zeichnen in den Canvas bekommt. Bessere Performance wird nur erreicht, wenn man bisher immer direkt in der paint-Methode alles ins Canvas gekritzelt hat und die Graphics2D-Funktionen verwendet um zu zeichnen, z.b. drawImage(), drawRect() etc.

In meinem Fall aber benutze ich Graphics2D so gut wie nicht - nur einmal um mein BufferedImage pro Frame auf den Bildschirm zu bringen. Und bisher ist mir kein flackern oder so aufgefallen, allerdings ist mir das im Moment auch egal - da ich zuerst den "Usagecode" schreibe und danach dann alles verbessere/optimiere und im gleichen Zug eine entsprechende Engine -und Spielarchitektur aufsetze. Ebenfalls habe ich geplant ab einem bestimmten Punkt alles auf OpenGL umzustellen - dann wird BufferedStrategy oder BufferedImage eh kein Thema mehr sein.
 
So ich bin wieder zurück,

war 2 Wochen weg und habe mir in der Zeit ein wenig Gedanken gemacht wie ich das Projekt schneller vorantreiben kann - weil es mir persönlich viel zu langsam geht. Es gibt jetzt schon 23 Episoden und wir haben nicht wirklich viel gemacht - von einem Platformer sind wir noch weit entfernt.

Daher werde ich den Stil der Serie ein wenig ändern, um nicht mehr eine Episode komplett aufnehmen zu müssen oder bei fatalen Schnitzern nicht mehr komplett von Vorne anfangen muss.
Stattdessen werde ich einzelne Teile machen und diese dann zu einer Episode zusammenfügen. Das wäre wesentlich flexibler und ich könnte auch mehr vorbereiten - sofern das vom Thema her geht.

Aber zu aller erst muss ich mir erst noch nen Videobearbeitungsprogramm zulegen. Solange wirds aber wie gewohnt im alten Stil weitergehen - wenn ich Zeit und Ruhe finde.

Stay tuned,
Final
 
Ich habe noch nicht alle Episoden gesehen, aber ich finde auch, dass es zu langsam vorwärts geht. Die ersten Episoden haben noch ein angenehmes Tempo, aber dann wird es zu viel klein klein.
Einerseits setzt du gewissen Programmierkenntnisse voraus indem du einige Dinge nicht im Detail erklärst (was ich gut finde), aber andererseits machst du bei mathematischen Formeln etc. das genaue Gegenteil. Da erklärst du so, als wenn die Zuschauer gerade maximal die Grundschule abgeschlossen hätten. Dadurch finde ich es recht anstrengend zu gucken, weil es einfach nicht weiter geht.

Also mMn kannst du dem Zuschauer guten Gewissens ein höheres Tempo zumuten. Und ich hoffe, dass du nicht die Motivation verlierst und das Projekt bis zum Ende durchziehst. Ich werde es weiter verfolgen.
 
Raybeez schrieb:
Ich habe noch nicht alle Episoden gesehen, aber ich finde auch, dass es zu langsam vorwärts geht. Die ersten Episoden haben noch ein angenehmes Tempo, aber dann wird es zu viel klein klein.
Einerseits setzt du gewissen Programmierkenntnisse voraus indem du einige Dinge nicht im Detail erklärst (was ich gut finde), aber andererseits machst du bei mathematischen Formeln etc. das genaue Gegenteil. Da erklärst du so, als wenn die Zuschauer gerade maximal die Grundschule abgeschlossen hätten. Dadurch finde ich es recht anstrengend zu gucken, weil es einfach nicht weiter geht.

Also mMn kannst du dem Zuschauer guten Gewissens ein höheres Tempo zumuten. Und ich hoffe, dass du nicht die Motivation verlierst und das Projekt bis zum Ende durchziehst. Ich werde es weiter verfolgen.

Ja ich muss definitiv das Tempo erhöhen, aber halt so das man noch mitkommt.

Zum Projekt selbst und der Dauer und Motivation werde ich demnächst ein Video-0 machen, um mal ein wenig mehr Licht ins Dunkeln zu bringen.
 
Klasse Tutorial, hat mir wirklich Spaß gemacht, habe 'ne Menge Neues gelernt und freue mich auf die nächsten Teile. Ich bin selbst noch nicht lange am Spiele-Entwickeln, habe mit der Godot-Engine angefangen und verstehe jetzt viel besser was da hinter den Kulissen vor sich geht.

Zum Inhalt:
‣ Ich finde das Tempo in Ordnung, es ist zwar langsam und ich hab viel übersprungen (die ganze Mathe- und Physik-Theorie) aber ich schätze für Zuschauer die mit Vektorrechnung noch nie in Kontakt gekommen sind ist das ein guter Einstieg.
‣ Du solltest im Video 0 den Zuschauer über den Detailgrad aufklären, gibt sicherlich Menschen die erwarten dass nach den ersten 10 Folgen schon ein spielbarer Prototyp entstanden ist
‣ Deine Handschrift ☹ — geht das auch irgendwie über die Tastatur? Konnte des öfteren etwas nicht lesen (gerade problematisch wenn man was übersprungen hat)
‣ Schön dass es dank Java programmunabhängig ist
‣ Veröffentlichst du irgendwo auch den Quellcode (bspw hier auf CB), so dass man auch selbst mal ein paar Zeilen ändern und etwas ausprobieren kann?
‣ Fand die Hinweise zu Eclipse interessant (hatte noch nie damit gearbeitet)
‣ Konnte auf meine Bildschirm blaue Kreise auf schwarzen Grund überhaupt nicht sehen, nimm bitte eine Farbe mit mehr Kontrast zu schwarz
‣ Neue Schriftgröße ist gut (aber besser nicht kleiner)
‣ Würde mich interessieren wenn du (viel) später auf OpenGL eingehst
 
jsowieso schrieb:
Klasse Tutorial, hat mir wirklich Spaß gemacht, habe 'ne Menge Neues gelernt und freue mich auf die nächsten Teile. Ich bin selbst noch nicht lange am Spiele-Entwickeln, habe mit der Godot-Engine angefangen und verstehe jetzt viel besser was da hinter den Kulissen vor sich geht.

Zum Inhalt:
‣ Ich finde das Tempo in Ordnung, es ist zwar langsam und ich hab viel übersprungen (die ganze Mathe- und Physik-Theorie) aber ich schätze für Zuschauer die mit Vektorrechnung noch nie in Kontakt gekommen sind ist das ein guter Einstieg.
‣ Du solltest im Video 0 den Zuschauer über den Detailgrad aufklären, gibt sicherlich Menschen die erwarten dass nach den ersten 10 Folgen schon ein spielbarer Prototyp entstanden ist
‣ Deine Handschrift ☹ — geht das auch irgendwie über die Tastatur? Konnte des öfteren etwas nicht lesen (gerade problematisch wenn man was übersprungen hat)
‣ Schön dass es dank Java programmunabhängig ist
‣ Veröffentlichst du irgendwo auch den Quellcode (bspw hier auf CB), so dass man auch selbst mal ein paar Zeilen ändern und etwas ausprobieren kann?
‣ Fand die Hinweise zu Eclipse interessant (hatte noch nie damit gearbeitet)
‣ Konnte auf meine Bildschirm blaue Kreise auf schwarzen Grund überhaupt nicht sehen, nimm bitte eine Farbe mit mehr Kontrast zu schwarz
‣ Neue Schriftgröße ist gut (aber besser nicht kleiner)
‣ Würde mich interessieren wenn du (viel) später auf OpenGL eingehst

Danke für das Feedback.

"Was hast du gegen meine Handschrift, die ist doch dufte"... ...nee klar, merk ich selbst dass es wenn es schnell gehen muss eher kritzel als schreibe - naja.

Ja die Farbe sollte ich mal ändern und was helleres nehmen - auch muss ich die Bitrate vom Encoding erhöhen damit man auch Sachen besser erkennt.

Den Rest werde ich in Video 0 erklären, aber das mit dem Detailgrad erwähnen ist nen guter Tip. Danke.
 
So ich habe nun ein kleines Einführungsvideo aufgenommen, welches alle offenen Fragen bezüglich des Projekts klärt. Ihr findet es im ersten Post.
 
Zuletzt bearbeitet:
So ich habe mich jetzt entschieden, ab Ep 33 (folgt in ein paar Tagen) nur noch 15 min Episoden zu machen.
Das ist einfacher für mich und ich hab auch das Gefühl dass würde alles enorm beschleunigen.

Die Idee mit dem schneiden und so habe ich ausprobiert, allerdings klappt das nicht so wie ich mir das vorgestellt habe. Da muss man deutlich mehr Aufwand reinstecken als man denkt - hut ab vor denen die das können und die Zeit dafür haben.

Ebenfalls habe ich mir Gedanken um die Veröffentlichung des Quellcodes gemacht, welcher jetzt schon des öfteren angefragt wurde und um das ganze ein wenig spannender zu machen, bzw. um Eure und meine Motivation zu steigern wird das ganze ab Episode 100 auf Github unter einer OpenSource-Lizenz gestellt.

Achja und Feedback ist jederzeit willkommen!

Haut rein,
Final
 
Zuletzt bearbeitet:
Hier mal einen kleinen Zwischenstand nach nun nen Monat Pause hier:

Die Entwicklung kommt gut voran, wir machen tolle Fortschritte und bauen Systematisch eine komplette eigene Physik-Engine die als Basis für unser Jump & Run Spiel verwendet wird. Ebenfalls meine Entscheidung die Folgen auf ~15 Minuten zu begrenzen war korrekt, da ich mittlerweile schon ca. 70 Episoden aufgenommen habe - daher rückt mein/unser Ziel "das Projekt als OpenSource zu veröffentlichen" immer näher ;-)

Wie immer gilt, wer Ideen, Verbesserungsvorschläge, Kritik für mich hat - immer her damit.

Und wer schon immer wissen wollte, wie lange man für einen Platformer-Prototypen brauchen kann - der ist herzlichst Eingeladen das Projekt anzuschauen.

In diesem Sinne,

Gruß,
Final
 
Ja es läuft super, 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
 
Zuletzt bearbeitet:
Ich habe mal angefangen mir das ganze anzuschauen und mir ein paar Sachen abgeschaut.
Ich möchte gerne etwas ähnliches programmieren, aber eben doch nicht einfach nur alles abschauen.
Dazu gehört das zeichnen einer Linie.

Dabei ist mir relativ früh eine Sache aufgefallen. Wobei ich nicht weiß ob das an mir liegt oder vielleicht im späteren Verlauf schon korrigiert wurde(70 Episoden hab ich nich lange nicht durch ^^).
Und zwar gehts um das Zeichen einer Linie(ca. EP6).
Wenn ich das richtig sehe können Linien nur mit einem Winkel bis 90 grad gezeichnet werden.
Also gemeint ist:
Wenn die positive Y-Achse 0 grad hat, hat die positive X-Achse 90 grad. Wenn ich jetzt eine gerade mit mehr als 90 grad zeichnen will, geht das schief. Das hängt soweit ich das verstehe mit der Zuweisung von MinX(bzw. Y) und maxX(bzw. Y) zusammen, wo die beiden Punkte sozusagen auseinander gerissen werden können.
Kann man das so verstehen? xD

also Kurzform: es können keine geraden von oben links nach unten rechts gezeichnet werden?!
Vielleicht hab ich auch einfach ein kleines Verständnisproblem oder so? :D
 
Frieso schrieb:
Ich habe mal angefangen mir das ganze anzuschauen und mir ein paar Sachen abgeschaut.
Ich möchte gerne etwas ähnliches programmieren, aber eben doch nicht einfach nur alles abschauen.
Dazu gehört das zeichnen einer Linie.

Dabei ist mir relativ früh eine Sache aufgefallen. Wobei ich nicht weiß ob das an mir liegt oder vielleicht im späteren Verlauf schon korrigiert wurde(70 Episoden hab ich nich lange nicht durch ^^).
Und zwar gehts um das Zeichen einer Linie(ca. EP6).
Wenn ich das richtig sehe können Linien nur mit einem Winkel bis 90 grad gezeichnet werden.
Also gemeint ist:
Wenn die positive Y-Achse 0 grad hat, hat die positive X-Achse 90 grad. Wenn ich jetzt eine gerade mit mehr als 90 grad zeichnen will, geht das schief. Das hängt soweit ich das verstehe mit der Zuweisung von MinX(bzw. Y) und maxX(bzw. Y) zusammen, wo die beiden Punkte sozusagen auseinander gerissen werden können.
Kann man das so verstehen? xD

also Kurzform: es können keine geraden von oben links nach unten rechts gezeichnet werden?!
Vielleicht hab ich auch einfach ein kleines Verständnisproblem oder so? :D

Ja das mit min/max ist nen Fail der ein paar Episoden später korrigiert wird ^^
Man macht natürlich kein min/max bei Linien, das macht überhaupt keinen Sinn, sondern lässt einfach nur die Pixel weg die Außerhalb des Pixelarrays liegen. Besser ist natürlich um CPU-Zyklen zu sparen einfach die Linien an alle Viewport-Kanten zu schneiden - das fällt aber dann unter den Punkt Optimierung.
 
Zuletzt bearbeitet:
So nach langer Zeit gibt es wieder ein Update!

Wir sind jetzt bei Episode 90 und haben nun unsere Physikengine auf nen robusten und funktionieren Stand gebracht. Beliebige Polygone, Kreise, Linien und Ebenen sind nun kein Problem mehr - dank generischer Kontaktgenerierung und stabilem Kontaktlöser.

Daher können wir endlich unseren Renderer zu verbessern: Das bedeutet konkret wir werden unser Spiel Auflösungsunabhängig machen und implementieren das Zeichnen von Bitmaps inkl. Bilinärer-Filterung + Bitmap Fonts - welche wir dringend benötigen für unseren Editor sowie für Debugvisualisierungen!

Auch möchte ich am Editor weitermachen, da z.b. unsere Skalierung nicht funktioniert wenn die Objekte gedreht sind.

Vom Entwicklungsstand bin ich recht zufrieden, da wir in 90 Episoden ne komplette Physikengine, simplen Software-Renderer sowie erste Platformer Mechanik programmiert haben - das ist ja schonmal was wo man drauf aufbauen kann.

Mal schauen wo die Reise hingeht.
 
Hallo Leute!

Nun habe ich gerade die 100. Episode hochgeladen und daher auch den Sourcecode veröffentlicht!
Auch wird noch ne größere Umstrukturierung des Projektes angekündigt...

Bleibt dran,
Final
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:
Zurück
Oben