Devlog #5 - Project Space - Struktur
Mit meinem fünften Game Devlog zu Project Space wird es nun wie angekündigt etwas konkreter. Denn während ich in den ersten vier Beiträgen die Idee, generelle Ansätze, das Tooling und Konzepte beschrieben habe, so möchte ich nun näher an den eigentlichen Content herankommen, sowohl vom Inhalt her, wie auch zeitlich. Früher oder später wäre ich gerne auf dem aktuellen Stand mit meiner Entwicklung, sodass ich nicht aus der Vergangenheit referiere, sondern direkt aktuelle Ereignisse mit euch teilen kann. Dadurch hoffe ich das weniger verloren geht.
Das Thema heute ist der Einstieg ins eigentliche Projekt, also auf technischer Ebene in Godot open_in_new. Hier ist der Anfang natürlich gewohnt schwer, denn auf einem quasi leeren Blatt Papier anzufangen ist immer eine Herausforderungen. Ich startete mit einigen Recherchen bezüglich Best Practices im Kontext von Godot, denn ich lege viel Wert auf Code Quality und Strukturen. Mit besagter Code Quality sollte man übrigens vorsichtig sein, denn man steht sich hier gerne selber im Weg, aber dazu später mehr.
Toolbox App 2.0 für JetBrains Produkte
Für einen markanten Teil meiner Softwareentwicklung nutze ich JetBrains Produkte. Um regelmäßig Updates in diesem Kosmos zu erhalten bin ich vor einiger Zeit, nach längerem überlegen, auf die Toolbox App umgestiegen, um unter anderem Android Studio und IntelliJ IDEA zu aktualisieren. Dies läuft gut und unkompliziert, erlaubt Rollbacks und ist sehr verlässlich.
Es gab allerdings ein Manko, welches durchaus häufig spürbar war. Die Installationspfade der jeweiligen Tools änderten sich mit jedem Update, was Verbindungen mit externen Tools durchaus problematisch machte.
Mit dem Toolbox App 2.0 Update ändert sich dies nun und der Pfad der aktuell genutzte Version bleibt gleich. Dadurch ergeben sich nachvollziehbare Strukturen und externe Tools funktionieren zuverlässiger. Zusätzlich wurden kleinere Optimierungen bei der Systemintegration vorgenommen und neue Sprachen hinzugefügt. Durch die größeren Änderungen erfolgt nach der Installation des Updates eine kurze Migration, welche bei mir problemlos funktionierte. Ich kann die Toolbox App weiterhin nur empfehlen, vor allem wenn ihr mehrere JetBrains Produkte nutzt.
Raffle Companion - Update 1.3.0 veröffentlicht
In den letzten Wochen haben ich mal wieder an meinem Gewinnspieltool Raffle Companion gearbeitet. Das genannte Projekt ist eine Anwendung, welcher derzeit unter Windows funktioniert und über den dazugehörigen Store bezogen werden kann. Raffle Companion ermöglicht es euch Preise zu verwalten, zu exportieren und zu verwalten. Außerdem kann man direkt etwaige Gewinner benachrichtigen.
Das Update auf Version 1.3.0 bringt eine überarbeitete und besser strukturierte UI, sowie Unterstützung für ein Light und Dark Theme. Ebenfalls neu ist die Lokalisierung der Anwendung, welche derzeit die deutsche und englische Sprache unterstützt. Da nun aber die Basisarbeit erledigt ist, sind weitere Sprachen kein Problem. In diesem Kontext werde ich vermutlich die GitHub Readme aktualisieren, sodass interessierte Nutzer auch selber Übersetzungen beisteuern können. Zusätzlich wurde die Suchfunktion erweitert, sodass man nun auch nach Plattform Filtern kann. Abgerundet wird das Update von kleinen Performance-Optimierungen und Fehlerbehebungen.
Ich selbst nutze das Tool produktiv, z.B. für mein Games Gewinnspiel und kümmere mich entsprechend sorgsam um das Projekt. Falls ihr es selber ausprobieren wollt folgt einfach den Related Links, dort gibt es alle relevanten Links und Informationen.
droidcon & fluttercon - Die Sessions sind online
Vor ca. einem Monat war ich auf der droidcon & fluttercon und habe dort vieles Interessantes gesehen und einiges Neues gelernt. Doch man kann bekanntlich nur eine Sessions zur Zeit anschauen und somit musste ich mich, obwohl ich vor Ort war, damit abfinden einige interessante Themen zu verpassen.
Falls es euch ähnlich geht oder ihr gar nicht vor Ort sein konntet, aber Interesse an der droidcon & fluttercon habt, dann gibt es gute Neuigkeiten. Alle Talks sind nun online und können direkt über die droidcon & fluttercon Webseite, welche ihr in den Related Links findet, angeschaut und somit nachgeholt werden.
Ich habe bereits eine Liste von Sessions die ich noch anschauen will, werde aber trotzdem noch einmal stöbern gehen. Falls ihr euch ebenfalls Sessions anschaut, meldet euch gerne in den Kommentaren was ihr am spannendsten fandet.
Patchday - Device Marketing Names aktualisiert
Ein weiteres Update meiner Device Marketing Names Libraries für Android und Flutter erschien gestern. Die Versionen Dart / Flutter Version 0.6.7 open_in_new und Kotlin Version 0.4.6 open_in_new bringen dieses Mal ausschließlich aktualisierte Datensätze mit sich. Insofern sollten jegliche Updates problemlos auf Entwicklerseite funktionieren.
Abseits dieser monatlichen Updates plane ich für die Flutter Version und vielleicht auch in der Kotlin Welt, ein paar Optimierungen und Vereinfachungen vorzunehmen. Dabei geht es vor allem darum, das Erzeugen von Objekten komplett zu vermeiden und stattdessen mit globalen oder statischen Funktionen zu arbeiten. Je nachdem wann ich die Zeit finde etwas herumzuprobieren, wird es entsprechend ein größeres Update geben, welches dann auch Breaking Changes mit sich bringen wird. Die Migration wird allerdings denkbar einfach werden.
Solltet ihr Fragen oder Ideen zu meinen Libraries haben, meldet euch gerne in den Kommentaren.
Devlog #4 - Project Space - Die Godot Engine
Wie angekündigt ist heute das Thema Engine dran, denn wie bereits erwähnt habe ich in der zweiten Jahreshälfte 2022 von der Flame Engine open_in_new auf Godot open_in_new gewechselt. Dies ist auch zum Zeitpunkt dieses Artikels noch der Fall und derzeit gibt es keine Pläne dies zu ändern. Die Gründe habe ich hier zwar bereits kurz thematisiert, möchte sie aber auch in diesem Beitrag noch einmal zusammenfassen.
Ich bin ein erfahrener Entwickler im Bereich Apps und Server, doch Spiele habe ich, abseits von Game Jams, noch keine entwickelt. Entsprechend nehme ich dankbar jede Hilfe die ich bekommen kann. Bei der Flame Engine fehlten mir visuelle Tools, da die Entwicklung ganz normal in Android Studio stattfand und entsprechend stieß ich mit der Zeit an meine Grenzen.
Etwas Recherche später schloss ich Unity open_in_new und die Unreal Engine open_in_new aus, da ich ein reines 2D Spiel entwickle und die beiden genannten doch eher in der 3D Welt unterwegs sind. Beim Vergleich der 2D Engines stach Godot heraus und als ich mich tiefgehender mit GDScript open_in_new, der in Godot genutzten Programmiersprache, auseinandersetzte und den Editor näher betrachtete, fühlte ich mich immer mehr zu Hause. Dieses Gefühl hat sich bis dato nicht geändert, auch wenn natürlich nicht immer alles perfekt ist, so bin ich sehr froh auf Godot gesetzt zu haben.
droidcon & fluttercon - Mein Fazit
Es ist nun ungefähr eine Woche her, dass ich auf der droidcon bzw. fluttercon war und entsprechend hatte ich etwas Zeit das Event zu verarbeiten. Dieses Jahr war es für mich durchaus besonders, da es nach einigen Jahren Pause durch Corona und andere Dinge eine Rückkehr zur Konferenz war und dann direkt zwei auf einmal. Die droidcon war schon immer ein Team Event für mich, denn seit diversen Jahren bin ich dort mit meinen Kollegen unterwegs. Ich schätze es sehr von meiner Firma aus diese Events besuchen zu können und freue mich einige lustige Tage und Abende mit dem Team verbringen zu können. Dadurch ergibt sich im Socializing Bereich aber auch automatisch das man eher in seiner eigenen Bubble unterwegs ist und weniger den Kontakt zu anderen sucht.
Fachlich habe ich mich dieses Jahr vor allem auf den Flutter Bereich fokussiert. Im Android Kontext schaute ich mir lediglich einen GitHub Copilot Talk an und werde sobald alle Inhalte online verfügbar sind, dort noch einiges nachholen. In der Flutter Welt gab es mit Dart auf dem Server, Multi-Branding Apps, UI / UX Tipps & Tricks und sehr interessanten Keynotes einfach mehr neues für mich. Wobei ich auch hier sagen muss das ich Flutter nun seit ca. 5 Jahren nutze und sowohl im privaten, wie auch im professionellen Umfeld meine Erfahrungen mit dem Cross-Platform Framework sammeln konnte. Entsprechend waren einige Talks eher eine Bestätigung, ob Ansätze für die ich mich entschieden habe als Best Practices angesehen werden oder ob ich vielleicht noch einmal umdenken sollten.
Patchday - Device Marketing Names aktualisiert
Auch diesen Monat gibt es wieder neue Versionen meiner Device Marketing Names Libraries für Android und Flutter. Die neuen Versionen (Dart / Flutter Version 0.6.6 open_in_new und Kotlin Version 0.4.5 open_in_new) können über die gewohnten Kanäle heruntergeladen werden und weitere Informationen findet ihr in den Related Links.
Die Updates dieses Monats bringen vor allem aktualisierte Gerätedatenbanken mit sich. Außerdem wurden kleinere Aktualisierungen und Refactorings durchgeführt, sowie die Abhängigkeiten aktualisiert. Auf der Entwicklerseite sollten keine Änderungen nötig sein, da sich nichts an den APIs oder der Struktur der Libraries geändert hat.
Solltet ihr Fragen haben meldet euch gerne in den Kommentaren.
droidcon & fluttercon vom 05. - 07. Juli
Nur noch wenige Tage und es ist soweit, die droidcon und die fluttercon finden statt. Vom 05. - 07. Juli trifft man sich in Berlin zum Lernen, Programmieren und natürlich auch zum miteinander Reden. Nach einigen Jahren Pause, maßgeblich durch Corona, bin ich nun auch wieder mit dabei und freue mich auf interessante Sessions und Leute.
Ich bin gespannt wie die Kombination aus zwei Konferenzen so funktioniert, denke aber das es diverse gute Synergien gibt. Ich stelle mir aktuell meinen Plan (droidcon Agenda open_in_new & fluttercon Agenda open_in_new) zusammen und vermute das ich sogar etwas mehr Flutter, als Android Talks besuchen werde.
Ich hoffe an diesen Tagen einige neue und interessante Anregungen für meine professionellen und privaten Entwicklerprojekte mitnehmen zu können. Ich werde das Event sicherlich im Anschluss in einem gesonderten Beitrag verarbeiten. Sofern ihr Fragen habt meldet euch gerne direkt in den Kommentaren.
Devlog #3 - Project Space - Blender für die Assets
Der dritte Game Devlog steht an. Heute soll es nach zwei eher allgemeinen Beiträgen etwas konkreter werden. Denn genau dies ist auch in der zweiten Jahreshälfte 2022 geschehen. Während zuvor viel Planung, Recherche und Trial and Error auf der Tagesordnung stand, gab es in diesem Zeitraum diverse grundlegende Entscheidungen, welche bis dato gelten.
Das generell Konzept, wie im ersten Devlog beschrieben bleibt bestehen. Es gab und gibt weiterhin verschiedene Ideen zur Verfeinerung, doch derartige Dinge können erst entschieden werden wenn ein grundlegender Entwicklungsfortschritt gegeben ist.
Beim Tooling, was das Thema im zweiten Devlog war, gab es allerdings diverse massive Änderungen. Blender ersetzt GIMP und das bis dato durchaus erfolgreich. Blender open_in_new ist damit mein Haupttool zur Erstellung jeglicher Assets. Dies gilt für alle Tower, Feinde und weitere Objekte. Der Grund für den Wechsel sind meine fehlenden Fähigkeiten im Bereich Design und Zeichnen. Etwas bauen oder modellieren kann ich allerdings und entsprechend passt Blender wesentlich besser zu meinem aktuellen Skill-Set. Zusätzlich kann ich auf diesem Wege verschiedene Assets auf einmal erstellen.