Umstrukturierung DereGlobus?

  • In den letzten Tagen habe ich eine Idee für eine Umstrukturierung der Art und Weise wie DereGlobus funktioniert ausgearbeitet. Zwei Ideen stehen dabei im Vordergrund:


    1. Inegration von anderen Sprachen: Der Anstoss dazu kam ursprünglich von Kennin bezüglich einer niederländischen übersetzung:

    Liegt es im Rahmen des Möglichen UND in der Interesse des noch existenten Teams, den Globus ins Niederländische zu übersetzen?
    Wobei wir (Leute der niederländischsprachigen Community) dann natürlich die Daten liefern. Das ist natürlich selbstredend. Nur Programiererkenntnisse haben wir gar nicht.

    Ich denke aber, dass zB auch eine englische Version sicherlich überlegenswert wäre. Idealerweise sollte dabei die übersetung und die Struktur unabhängig voneinander bleiben (zB sodass noch nicht übersetzte Inhalte trotzdem in den anderssprachigen Versionen erscheinen, halt noch ohne übersetztung). Dies ist vorallem gut damit zB Fehlerbehebungen automatisch in allen Sprachen passieren.

    2. Umstrukturierung der Entwicklung: Idealerweise stelle ich mir etwas wie eine Git-repository vor, die man klonen kann, änderungen lokal bei sich machen und austesten kann und sobald man damit zufrieden ist diese änderungen dann hochladen kann. Ich würde mir davon erhoffen, dass man damit die Entwicklung an DereGlobus möglichst vielen Leuten zugänglich machen kann und vielliecht den minimal nötigen Input des "Kernteams" darauf beschränkt eine änderung akzeptieren zu müssen.

    Zusätzlich dazu würde ich gerne den momentanen DereGlobus so wenig wie möglich beeinträchtigen. Auf jeden Fall sollten alle die ihn sich heruntergeladen haben weiterhin alles benutzen können was sie bisher hatten ohne eine neue Version herunterladen zu müssen oder so. Idealerweise würde man den Leuten die noch die alte Version benutzen auch so viel wie möglich von allen neuen inhalten zur Verfügung stellen.

    Vielleicht zuerst kurz eine Erklärung wie der DereGlobus momentan aufgebaut ist (basierend auf meinen Analysen der Files, wenn ich hier Blödsinn erzähle kann man mich gerne korrigieren): Der DereGlobus besteht aus einer grossen Anzahl .kml Dateien, unter anderem der einen .kml Datei die man herunterläd (verpackt in eine .kmz Datei, das ist mehr oder weniger einfach nur eine gezipte Version davon). Diese .kml Datein enthalten informationen die in Google Earth dargestellt werden und zusätzlich Links zu weiteren .kml Datein, in denen mehr Informationen und weitere Links zu .kml Datein stehen und so weiter.

    Meine Idee war jetzt, Google Earth nicht mehr direkt den Link zu den .kml Datein zu geben sondern statdessen einen Link zu einem php Skript und den Pfad der Datei die man haben wollte relativ zum Hauptordner des DereGlobus Projekts. Das php Skript holt dann die richtige .kml Date anhand dieses Pfads und gibt das an Google Earth. Damit Google Earth auch bei dieser .kml Datei wieder über das php Skript geht um sich die daten zu holen und nicht direkt zu dem ort an dem die .kml Datei liegt, kann ein link in einer .kml Datei mittels des "ExtendedData"-Features in kml markiert werden und dieser Link wird dann vom php Skript durch einen link zu sich selber (dem php skript) mit der information wo das .kml file relativ zum Hauptordner von DereGlobus liegt ersetzt. Das erscheint jetzt vielleicht alles unglaublich aufwändig um exakt das gleiche zu erreichen was man bisher schon hatte. Der springende Punkt ist, dass dadurch mehrere Versionen des DereGlobus an verschiedenen Orten haben kann, und damit an einer Version arbeiten kann und sobald man fertig ist, diese dann ohne weitere änderungen publizieren kann. Es ist auch eine essentielle vorraussetzung für ein git repository wie ich es mir vorgestellt habe. Zudem kann man an dem punkt an dem das Skript die Links ändert auch noch andere änderungen Einbauen. Wieder durch das "ExtendedData"-Feature können Texte markiert werden und angegeben werden wo man eine übersetzte Version des Texts finden kann. Das php Skript kann dann den Text durch die überstezung in der gewünschten Sprache ersetzen bevor es das .kml file an Google Earth gibt.

    Ich habe schon mal ein solches php Skript geschrieben (eine erste Version, es gibt sicher noch Raum für Verbesserungen) und es zusammen mit ein par Beispieldateien in ein Github-Repository gepackt, für die die es sich gerne mal anschauen wollen. Allerdings bruacht man natürlich einen Server um die php datei ausführen zu können (sollten wir DereGlobus tatsächlich darauf switchen, wäre natürlich die Idee, dass das Skript zusammen mit den Daten auf den Orkenspalter Server liegt und man einen eigenen Server nur noch für komplizieretere Entwicklungsschritte braucht). Ich habe zB. XAMPP verwendet, das ist einigermassen Schmerzfrei zum Aufsetzen, selbst wenn man wie ich keine Ahnung von Servern hat. Wenn jemand es damit testen will, einfach die Installation durchziehen (Man braucht nichts von den optionalen Features und der Installationsort is ziemlich egal). Danach kann man den Ordner von Github einfach in den "htdocs"-ordner ziehen der im xampp Ordner liegt (der wiederum dor liegt wo immer man xampp installiert hat). Den Server selber startet man indem man "xampp-control.exe" (im xampp ordner) startet und dort auf den Starten-Knopf drückt. Danach kann man in Google Earth einen neuen Netzwerk-Link hinzufügen und die Adresse: "http://localhost/*Pfad zum test.php skript relativ zu htdocs*" eingeben. Wenn alles richtig gelaufen ist, sollte man dann die ganzen DereGlobus Inhalte sehen. Die Wilkommens-Box habe ich mal probehalber ins Englische übersetzt. Um an die englische version zu kommen, muss man nur hinter dem link "?language=english" eingeben. Was auffällt, ist das alle nicht übersetzten Inhalte nicht einfach Fehlen sondern halt lediglich in Deutsch angezeigt werden.


    Vorteile der Idee:

    - Version Controll is integriert (Git)

    - Einfacher Austausch zwischen publizierter Version, Entwickler Version und möglichen lokalen Versionen

    - "reine" kml Version (jetztiger DereGlobus) funktioniert weiterhin mit dem gleichen Datenset (nur ohne "dynamische Vorteile wie änderung der Sprache"), neue Inhalte sind auch in der "reinen" kml Version verfügbar

    - Jetztiges Datenset kann ohne veränderungen übernommen werden (Ergänzungen sind nur notig wenn man tatsächlich etwas ändern/hinzufügen will)

    - Es ist möglich Teile des Datenset nur auf dem Orkenspalter Server zu haben (Ich denke da vorallem an die Karten, ist vielleicht ganz gut wenn es nicht so einfach ist die als ganzes Paket herunterzuladen)

    - übersetzungen sind getrennt von der Datanstruktur


    Nachteile von der Idee:

    - Komplizierteres Konzept

    - leicht komplizierterer Ablauf für änderungen am Inhalt (Theoretisch wäre es noch möglich die Daten genau wie früher zu ändern aber das würde die ganze Version-Controll umgehen und man könnte änderungen nicht zurückverfolgen, etc.)

    - änderung des Konzepts (never change a running system)

    - Zusätzliche Arbeit für den Orkenspalter Server (ich nehme mal nicht an, dass es zu signifikanten Verzögerungen beim laden der Daten kommt oder zu spürbaren mehrauslastungen des Servers aber man kann ja nie wissen), sollte das ein Problem werden könnte man jedoch auch nur die Entwickler-version mit dieser Idee machen und ein Skript schreiben welches daraus die Veröffentlichte Version "kompiliert", wäre kein grosser Mehraufwand, einfach nicht so "elegant" da zB jede Sprache dann ihren eigenen Datensatz bräuchte.

    Dieser Thread sollte dazu da sein um über diese Idee (und alle anderen Ideen die noch aufkommen könnten) zu einer möglichen Umstrukturierung zu diskutieren. Was haltet ihr von der Idee? (Ich bin besonders auf die Meinung derer gespannt die schon vorher an DereGlobus gearbeitet haben... ;) ) Ich weiss, dass es sehr technisch ist, aber ich glaube das ist bei solchen Fragen fast unausweichlich...

  • Klingt spannend. Ich selbst bin leider aktuell in zu vielen Projekten unterwegs, als dass ich ein Neues mit gutem Gewissen anfangen könnte. Ich werde aber gespannt der Entwicklung folgen :)


    Den Anfang habe ich ebenso verstanden wie du (hatte selbt mal ein wenig drüber geschaut). Mit dem php Script hast du aber definitiv schon weiter gedacht als ich ;) klingt vernünftig. Php hat sich da einfach dank einfacher "Schnittstelle" angeboten oder?

  • Klingt spannend. Ich selbst bin leider aktuell in zu vielen Projekten unterwegs, als dass ich ein Neues mit gutem Gewissen anfangen könnte. Ich werde aber gespannt der Entwicklung folgen :)


    Den Anfang habe ich ebenso verstanden wie du (hatte selbt mal ein wenig drüber geschaut). Mit dem php Script hast du aber definitiv schon weiter gedacht als ich ;) klingt vernünftig. Php hat sich da einfach dank einfacher "Schnittstelle" angeboten oder?

    Für php hatte ich ein Beispiel gefunden wie jemand ein funktionierendes .kml file generiert hat also wusste ich, dass es funktioniert. Zudem ist es vermutlich das was auf den meisten Servern problemslos funktioniert, denke ich. Es wäre also auch ideal falls man mal umziehen will weil zB anfangen Terabyte an Kartenmaterial zu generieren und Orkenspalter das nicht mehr haben will :P Ausserdem wollte ich immer schon mal php lernen und da hat es sich angeboten mit etwas anzufangen was ich auch wirklich machen will :D

    Falls du doch mal Zeit bekommst kannst du ja noch einsteigen ;)

  • Ich war keiner der "Techniker", aber das Grundprogramm müßte die leere Weltkarte sein, dann folgen einzelnd die Themen (u.a. Ortschaften, Grenzen, Abenteuer).

    Das hatte den Vorteil das jedes Thema einzelnd bearbeitet werden kann, neue Porjekte (wie Weißtobrien) eingefügt und nach bedarf ein-/ausgeschaltet werdfen konnte.

    Das letzte (sichtbare) Projekt war - neben 3d-Orte - die Grenzen.

    (Ja, ich müßte an der Historie des DG weiterschreiben ...)

    Pflicht des Historikers:
    das Wahre vom Falschen, das Gewisse vom Ungewissen, das Zweifelhafte vom Verwerflichen zu unterscheiden.

    (nach Johann W. von Goethe)


    Kinder deuten ohne Furcht in die Sterne, während andere, nach dem Volksglauben, die Engel damit beleidigen.

    (Vorrede der Grimms Märchen 1819)

  • Respekt, das liegt wirklich auf einem technisch ganz anderen Niveau.


    Als ich deinen Text las, ist mir eingefallen: Wir arbeiteten mittels eines Repositorys auf Soureforge. Dort liegt der ganze DereGlobus-Code, aufgeteilt in die Arbeitsversion "Arbeit" und die Releaseversion "Release".


    DereGlobus / Code / [r1368]


    zakkarus Ja, die Grenzen! Das wäre auch das erste mit dem ich weitermachen würde. Sehr hilfreich und wahnsinnig viel Arbeit. Vor allem wenn man diese zeitabhängig machen möchte. Aber für Tobrien ist uns das damals gelungen und JETZT bin ich in der Borbaradkampagne endlich soweit, dass ich daraus Nutzen ziehe. :)

  • Als ich deinen Text las, ist mir eingefallen: Wir arbeiteten mittels eines Repositorys auf Soureforge. Dort liegt der ganze DereGlobus-Code, aufgeteilt in die Arbeitsversion "Arbeit" und die Releaseversion "Release".

    Oh, cool, das muss ich mir mal genauer anschauen sobald ich etwas mehr Zeit habe.

    SVN ^^ Immerhin lässt sich das in Git importieren.

    Ich habe noch nie mit SVN gearbeitet, von dem her habe ich keine Ahnung wie prkatisch es ist. Ich denke mal dazu wird es auch noch Diskussionen geben. Ich würde aber mit einem etwaigen migrieren mal warten bis sich ein neues "Kern-Team" herauskristallisiert hat unter denen man das abstimmen müsste...

  • Es gab jetzt eine Weile schon nichts neues mehr dazu hier von meiner Seite. Das liegt daran, dass ich dabei bin den Plan für die Umstrukturierung den ich oben vorgestellt habe in die Tat umzusetzen. Das erfordert nochmal viel Arbeit, aber ich hoffe, dass es auf lange sicht alles etwas einfacher und besser strukturiert macht. Gleichzeitig arbeiten Kennin und ich daran die übersetzung ins niederländische vorzubereiten. Ich denke es wird sicher noch ein par Wochen dauern bevor ich etwas vorzeigbares präsentieren kann.

    Der eigentliche Grund warum ich schreibe ist, dass ich fragen wollte ob irgendjemand (speziell Thamor oder zakkarus) grade noch Zugriff auf das Skript hat, dass ihr verwendet habt um die Links in allen Datein auszutauschen (von Links auf das svn projekt zu Links auf orkenspalter). Falls es nicht grade zur Hand ist ist das nicht schlimm, ich kann auch ein eigenes schreiben. Ich dachte nur ich frage mal bevor ich mir die extra Arbeit mache ;)

  • Ich kann dir leider bei technischen Sachen gar nicht helfen.

    Pflicht des Historikers:
    das Wahre vom Falschen, das Gewisse vom Ungewissen, das Zweifelhafte vom Verwerflichen zu unterscheiden.

    (nach Johann W. von Goethe)


    Kinder deuten ohne Furcht in die Sterne, während andere, nach dem Volksglauben, die Engel damit beleidigen.

    (Vorrede der Grimms Märchen 1819)

  • Ich würde euch ja gerne weiterhelfen ... finde aber nur das: Werkzeuge für Weltenbauer - DereGlobus-Projekt

    Pflicht des Historikers:
    das Wahre vom Falschen, das Gewisse vom Ungewissen, das Zweifelhafte vom Verwerflichen zu unterscheiden.

    (nach Johann W. von Goethe)


    Kinder deuten ohne Furcht in die Sterne, während andere, nach dem Volksglauben, die Engel damit beleidigen.

    (Vorrede der Grimms Märchen 1819)