Die Seelenfragmente – Ein Rollenspiel entwickelt sich weiter


Nach langer Abstinenz und unzähligen motivationslosen Zeiten konnte ich endlich wieder an einem meiner Lieblingsprojekte arbeiten. Die Seelenfragmente ist ein 2D Rollenspiel im klassischen Stil oder soll es mal werden.

Es ist zwar ein paar Tage her aber ich konnte schon ein paar wesentliche Änderungen an der Code Basis vornehmen.

Migration zu Gradle

Ich kenne und benutze das Libgdx Framework schon seit einer kleinen Ewigkeit. Ich war immer ein Fan von Maven, konnte Ant nie leiden und habe vor kurzem erst Gradle entdeckt. Es gibt zwar eine Maven Integration für libgdx aber nach unzähligen Tests mit beiden Build-Tools, habe ich mich doch für Gradle entschieden. Es ist zwar ähnlich wie Maven aber Gradle macht für mich bis jetzt einen guten Eindruck. Auch wenn, die Builds für das Android Projekt noch fehl schlagen. Aber das bekomme ich auch noch hin 😉

Das große Refactoring

Was ist passender als ein groß angelegtes Refactoring, wenn man lange nicht am Projekt gearbeitet hat? Gar nichts. Branch für das Refactoring angelegt und los gelegt. Ein altes Test Projekt und mehrere nicht verwendete Code Zeilen mussten sich schon verabschieden. Außerdem habe ich für das gesamte Game-Model ein neues Projekt erstellt.

Mit dem Refactoring kamen auch einige Anpassungen, welche durch die Änderungen von der Libgdx Api her rühren. z.B musste ich die Initialisierung der Screens anpassen.

1
2
3
4
@Override
public void show() {
  setStage(new Stage(new StretchViewport(Gdx.graphics.getWidth(), Gdx.graphics.getHeight())));
}

Beim Erstellen einer neuen Stage hat man die Möglichkeit eine vordefinierte Viewport Klasse zu verwenden. Mehr dazu kann man hier lesen.

Verbesserung der Steuerung / kleinere Bugfixes

Zu guter Letzt habe ich die Steuerung des Spiels ein wenig angepasst. Jetzt lässt sich das Spiel mit einem Controller (PS3 Controller) oder per Tastatur kontrollieren. Es gibt allerdings noch einiges zu tun an dieser Baustelle. Ein paar kleinere Bugfixes kamen auch noch dazu sowie das Abspielen von Musik im Menü Screen.

Das war es fürs erste. Es gab nicht viele visuelle Änderungen aber doch wichtige Refactoring Maßnahmen. Das ganze Thema wird mich noch ein wenig beschäftigen. Wenn dies abgeschlossen ist, wird als nächstes das Event-System für die Welt implementiert 🙂

Ich wünsche euch eine schöne Woche!

Ruby gem TypeError während gem Installation

Bei der Verwendung von ruby gems habe ich diesen Fehler bei der Installation einer neuen gem bekommen:

ERROR:  While executing gem ... (TypeError)
no implicit conversion of nil into String

Das Problem ist bekannt und wurde in der neusten Version der Ruby gems behoben (v. 2.6.6). Führt einfach folgende Befehle im Terminal aus um auf die neuste Version der ruby gems upzudaten.

gem install rubygems-update
update_rubygems
gem --version