Nouron – Stand: April 2014

Stand: November 2013
Stand: Januar 2013
Stand: März 2014
Stand: April 2014

Fast ein halbes dreiviertel Jahr ist die letzte News zu Nouron her… und noch schlimmer: ich habe mehrmals einen neuen Blogeintrag angekündigt und es dann nicht eingehalten! Das tut mir leid für die 1-2 Leute die wirklich interessiert sind und darauf gewartet haben.
Wie du an den (symbolischen) Streichungen oben im Text sehen kannst habe ich durchaus mehrfach angefangen diesen Blogpost zu schreiben aber nie richtig vollendet und veröffentlicht. Das hole ich nun hiermit nach.

Und auch wenn es so von außen aussieht als ob sich nix getan hätte, ist das Gegenteil der Fall.
In den letzten Wochen gab es auch wieder vermehrt Commits auf GitHub – Meine Aktivität ist also wieder deutlich gestiegen. Aber ich erläutere einfach mal was sich so im letzten Jahr getan hat:

Phase 1: Sommer 2013 – November 2013

Es gab zwei sehr große Baustellen in dieser Zeit

Restrukturierung der Techtree-Objekte

Teil 1 von 2 großen Umbauten in diesem Jahr. Letztendlich eine sehr technische Sache von der man im Frontend gar nichts spürt. Aber für diesen Umbau musste ich gefühlt 60-70% des bestehenden Codes umschreiben. Statt alle Technologie-Arten (Gebäude, Forschungen, Schiffe, Berater) wie bisher in einer Tabelle der DB zu speichern werden sie jetzt in jeweils einzelnen Tabellen gespeichert. Also ein Schritt weg von ‚Oh, erfinde jetzt mal was bahnbrechend Neues und lege mir dabei selbst Steine in den Weg’… Bitte nicht falsch verstehen: Das Konzept hätte aufgehen können, aber es wurde einfach zu kompliziert für einen einzelnen Entwickler den Überblick zu bewahren. Und es ist schwer verständlich für andere Entwickler die vielleicht mal in das Projekt einsteigen wollen.
Insofern jetzt der klassische Ansatz den jeder Browsergame-Programmierer versteht.
Aber es mussten ja nicht nur die Tabellen der Datenbank umgeschrieben werden sondern auch die zugehörigen Model-Klassen. Außerdem mussten fast alle bereits implementierten Funktionen (Techtree, Flottenzusammenstellung, Handelsangebote) nochmal angefasst werden. Also das war schon eine Menge Arbeit.
Ich kann noch nicht mal behaupten, dass das wirklich schon 100% abgeschlossen ist. Hier und da stoße ich noch auf Probleme die mit dieser Umstellung zusammen hängen, wobei die Lösung mittlerweil recht einfach ist, da ich genau weiß wie ich es haben möchte! (das war auch nicht immer so😉

Beim Techtree habe ich optisch nichts verändert. Bei der Flottenzusammenstellung jedoch habe ich die Oberfläche in diesem Zusammenhang komplett überarbeitet. Es ging dabei vor allem um eine Vereinfachung und die Möglichkeit auch auf kleinen Bildschirmen (Smartphones, Tablets) gut bedienen zu können.

Einführung von Aktionspunkten

Das war der zweite ganz große Umbau in diesem Jahr. Es gab so ein Gefühl in mir das irgendetwas an dem Spiel noch nicht stimmte aber ich wusste nicht was. Irgendwo fehlte einfach etwas.
Dann machte ich zusammen mit meinem besten Freund ein Brainstorming und heraus kam die Idee der Aktionspunkte. Personal gibt Aktionspunkte pro Tick. So wird neben dem statischen Supply auch eine dynamische Ressource eingesetzt. Es fühlt sich jedenfalls richtig an. Bei rundenbasierten Brettspiele ist der Einsatz von Aktionspunkten ja auch gang und gebe. Und ich glaube hier konnte ich eine große Lücke im Spieldesign schließen. Nach der Idee der Einführung der Aktionspunkte sprudelten die Ideen was man damit anfangen könnte nur so über. Ich bin jedenfalls schwer begeistert und denke dass da in Zukunft noch einiges kommen wird was ich dann genauer erklären kann.

Sonstiges

Neben diesen großen Umbauten gab es noch kleinere Baustellen und Experimente

  • Migration vom Frontend-Framework Bootstrap 2 zu Bootstrap 3
  • Update der verwendeten JQuery-Version
  • Behaviour Tests mit Behat [experimentell]
  • Kontaktaufnahme mit einem Texter der vielversprechend war, aber leider ist der Kontakt wieder ohne Ergebnisse abgebrochen

Phase 2: Dezember 2013 – Anfang Januar

Hier passierte nichts! Nicht weil ich nicht wollte, sondern weil daran gehindert wurde:
Zum einen hatte ich über einen Zeitraum von mehr als 2 Wochen kein Inet und zum anderen gab meine Festplatte den Geist auf und musste ersetzt werden. Ich hatte also eine neue Platte ohne die Tools die ich zum programmieren brauchte und kein Inet um mir die Tools zu besorgen aber ich hatte ganz viel Zeit die ich sonst nicht habe …
Scheiß Kombination >:-/

Phase 3:

Im Januar konnte ich dann wieder anfangen und habe erstmal die Umstellung auf Bootstrap 3 und JQuery-Update fertig gemacht. Dann war erstmal alles auf einen guten Stand und ich wollte mich daran machen die Aktionspunkte auch bei Flottenbewegungen zu implementieren. Nach längerem Überlegen bin ich zu dem Schluss gekommen, dass die momentane Karte nicht gut ist: alles viel zu klein und fummelig – außerdem nicht ansatzweise auf mobilen Geräten tauglich. Also Flottenbewegungen erstmal nach hinten verschoben. Jetzt muss erstmal eine neue Karte her…

Phase 4:

… und weils sonst langweilig wird, ist daraus ein eigenes Projekt entstanden. Naja es gab gute Gründe dafür:

  • ich will mehr SVG einsetzen und mit den aktuellen Browsern ist das nicht mehr so ein Krampf wie früher
  • ich will meine Javascript/JQuery/Ajax-Skills trainieren
  • ich will Teile meines Browsergames wiederverwertbar machen… so eine Karte kann man auch leicht in andere Browsergames einbauen
  • ich will damit die Einstiegshürde für Entwickler die mir evtl. helfen wollen verringern, da bei diesem Projekt keine Einarbeitungszeit in das komplexe Zend Framework 2 nötig ist
  • und nicht zuletzt: eine Referenz mehr auf GitHub😉

Das Projekt heißt momentan ‚Nouron Galaxy Map‘ (Name kann und wird sich wohl noch ändern) und ist unter https://github.com/tector/ngm erreichbar.
Ich würde es auf dem aktuellen Stand noch niemandem empfehlen produktiv einzusetzen! Aber ich werde weiter dran arbeiten, dass das irgendwann mal der Fall ist.

Jedenfalls bin ich seit ein paar Wochen wieder deutlich aktiver und öfter am programmieren. Vielen Dank auch an @xBlackScorpx für die zusätzlich Motivation🙂

BlackScorp hat mich auch auf das Tool Scrutinizer.com gestoßen, mit dem man leicht die CodeQualität seines Projekts überprüfen kann – was auch sehr motiviert diese zu verbessern. Tja, da ist mir erstmal aufgefallen an wievielen Stellen im Code man deutlich erkennen kann, dass ich meine Arbeit mittendrin aufgrund von Zeitmangel eingestellt habe und dann vergessen habe.. Solche Probleme versuche ich derzeit zu fixen. Und in diesem Zusammenhang schreibe ich nun auch wieder vermehrt Unittests. In der alten Version mit ZF1 hatte ich schon einiges an Unittests zusammengetragen und eine Code Coverage von ca. 75%. Das ist jetzt nicht mehr der Fall.. ich würde gerne wieder da hin kommen… momentan sind es aber gerademal 20%.

So das war doch jetzt mal ein sehr ausführlicher Blogpost😉 Entschuldigt evtl. Rechtschreib/Grammatikfehler.. ich werde sie nachträglich beseitigen sollten mir welche auffallen aber jetzt wollte ich den Post endlich mal fertig stellen und nicht weiter verzögern. Deshalb leider auch NUR Text und keine Bilder… ich bin leider kein guter Blogger😦

Abschließend möchte ich noch betonen, dass ich mich wie immer über jede Form von Feedback freue!
Folgt Nouron auch auf Twitter, Facebook und Google+
Vielen Dank und bis zum nächsten Mal! Have Fun!

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s