Drifting Souls Wiki
Advertisement

Initiale Einrichtung[]

Diese Anleitung wurde am Beispiel eines Ubuntu-Betriebsystems entwickelt. Drifting Souls 2 (DS2) kann aber natürlich auch unter anderen Betriebssystemen entwickelt und gestartet werden.

1. Die grundlegenden Komponenten wie Java, Maven, Git, MySQL, Tomcat, etc. sollten vorher schon installiert sein.

2. MySQL Datenbank anlegen. Dafür in der MySQL Konsole Folgendes ausführen:

CREATE DATABASE ds2;
 CREATE USER 'ds2user'@'localhost' IDENTIFIED BY 'pw';
 GRANT ALL PRIVILEGES ON ds2.* TO 'ds2user'@'localhost';
 FLUSH PRIVILEGES;

Damit wird die leere Datenbank 'ds2' angelegt, mit dem Nutzer 'ds2user' und dem Passwort 'pw'. Diese 3 Dinge sind frei wählbar.

Alle folgenden Pfadangaben und Befehle gehen von dem ‚driftingsouls‘-Verzeichnis als Basis aus, das über Github heruntergeladen wurde.

3. Das Projekt erstmals mit Maven kompilieren: 'mvn clean package' im driftingsouls-Hauptverzeichnis ausführen. Dies kann einige Minuten in Anspruch nehmen.

4. Starte das Installationsprogramm aus dem driftingsouls-Verzeichnis mit ''sh install.sh.

Dies startet das eben kompilierte Installationsprogramm, um die Konfigurationen und Datenbanktabellen anzulegen. Das Programm fragt einige Daten vom Nutzer ab. Die Werte in den eckigen Klammern sind die Defaultwerte, die mit Enter übernommen werden können. Oder man gibt eigene Werte an. Dort müssen Datenbank, Nutzer und Passwort angegeben werden, die in Schritt 2 definiert wurden.

Die am Ende der erfolgreichen Installation wird der Befehl angezeigt, um DS2 zu starten und unter http://localhost:8080/driftingsouls-game/ abrufen zu können:

mvn clean install tomcat7:run-war
  • Bei meiner Installation ist immer folgender Fehler aufgetreten:

The server time zone value 'CEST' is unrecognized or represents more than one time zone.

Als Lösung einfach Folgendes in der MySQL-Konsole ausführen, und die Installation erneut starten:

SQL: SET GLOBAL time_zone = '+1:00';

DS2 .war Datei deployen und Spiel starten[]

Wie am Ende der Installation bereits angezeigt, kann der lokale DS2-Server einfach mit folgendem Befehl gestartet werden:

mvn clean install tomcat7:run-war

Dabei wird der Code vorher neu kompiliert (kann mehrere Minuten dauern), um mögliche Änderungen mit zu deployen, und anschließend gestartet. Das Spiel ist anschließend erreichbar unter http://localhost:8080/driftingsouls-game/

Sobald die Meldung 'INFO [framework.DefaultServletContextListener] DS is now ready for service' angezeigt wird, wurde das Deployment erfolgreich abgeschlossen. Die Konsole bleibt offen, und gibt zeigt den Server-Output an. Mit der Tastenkombination Strg+C in der aktiven Konsole wird der Server wieder gestoppt.

Natürlich kann die .war-Datei alternativ auch manuell wie jede andere Anwendung auf einem eigenen tomcat-Server deployt werden, was hier aber nicht weiter erläutert wird.

Nächste Schritte[]

Der Server läuft, und die Startseite ist erreichbar. Aber was muss als nächstes gemacht werden?

Die lokale Instanz ist noch weit vom offiziellen Drifting-Souls 2 entfernt. Es wurden nur einzelne Beispielwerte in die Datenbank eingefügt, und bei weitem nicht alle Bilder nachgeladen. Will man dies haben, muss man manuell herausfinden, was an Dingen fehlt, und wie man diese Lokal nachstellt. Hier ist oftmals der Output auf der Konsole oder Logdateien sehr hilfreich, um fehlende Dateien zu identifizieren. Das Ziel der lokalen Installation war jedoch nie, ein inhaltliches Abbild des echten DS2 zu sein.

Idealerweise verbindet man die lokale DS2-Instanz nicht mit einem Mailserver, da sonst lokale Fehler per Mail an die echten Administratoren geschickt werden. Ohne Mails erhält man aber auch nicht das Passwort, wenn man sich neu registriert hat.

Lokal kann man sich beispielsweise mit

http://localhost:8080/driftingsouls-game/ds?module=main&devUserId=-2

direkt als User mit Id -2 (GTU) einloggen. So kann man lokal zwischen beliebigen IDs wechseln, ohne sich mit Benutzername und Passwort einloggen zu müssen. Darüber kann man dann auch das Passwort eines neu registrierten User setzen. Alternativ in der Datenbank den Hash eines bekanntes Passworts in den neuen User kopieren, sich mit dem bekannten Passwort in DS2 einloggen, und dann das gewünschte Passwort über die Weboberfläche setzen.

mvn clean install[]

Infos zum Befehl mvn clean install:

  • Das clean entfernt vorher gebaute Dateien, sodass alles neu gebaut werden kann. Ohne clean kann es manchmal zu unerwarteten Nebenwirkungen kommen, bei denen teilweise noch alte Konfigurationen oder Codezeilen aktiv sind.
  • Das install kompiliert alles, und packt es in jar oder war Dateien. Zusätzlich werden die fertigen Dateien im lokalen Maven Repository abgelegt, sodass andere Projekte darauf zugreifen können. Da der Code in die beiden Module game und template aufgeteilt ist, werden sie im Maven Repository benötigt.
  • Beim install mit maven werden immer die Testfälle durchlaufen. Das ist natürlich etwas Gutes, und sollte gerade vor dem Abschicken von Commits auch durchgeführt werden! Beim Entwickeln und Herumprobieren beansprucht der Schritt aber einiges an Zeit, und kann mit dem mvn Parameter '-Dmaven.test.skip=true' übersprungen werden.

Weitere mögliche Verbesserungen der Doku:[]

  • Screenshots
  • Definieren, welche externen Programme genau benötigt wird, mit Anleitungen oder Verlinkungen.
  • Infos zum Entwickeln. Git, Merges, Branches, Forks, etc.
  • Einen Weg finden den Server zu starten, ohne alles mehrfach neu kompilieren zu müssen
Advertisement