Gradivus

Projektbeschreibung

Ziel des Gradivus-Projektes ist, ein Strategiespiel zu erstellen. Die Truppen, die dabei eingesetzt werden, benutzen historische Waffen und Ausrüstungsgegenstände. Dennoch geht es nicht darum, Konflikte der Vergangenheit nachzuspielen.

Das Projekt ist recht vielfältig angelegt und eigentlich viel zu groß geraten, als jemals von einer einzigen Person bewältigt werden zu können. Allerdings erscheint die Fertigstellung auch als gar nicht so wichtig. Wichtiger ist vielmehr die Beschäftigung mit dem Projekt als solchem. Insofern ist dessen Hauptzweck, Spielwiese und Experimentierfeld zu sein.

Im Rahmen des Gradivus-Projektes sind inzwischen ein Rechner zum Umrechnen historischer Preisangaben entstanden, eine Software zur Verwaltung eines mehrsprachig angelegten militärhistorischen Wörterbuchs, eine Programmbibliothek für ballistische Berechnungen (zur Zeit alles nicht verfügbar wegen des Systemumstiegs). Weiterhin entstehen im Rahmen des Projektes Abbildungen historischer Uniformstücke. — Mit der Software des Projektes läßt sich durchaus schon etwas machen, nur Spielen auf absehbare Zeit nicht.

Das Gradivus-Projekt ist frei und quelloffen. Die Daten unterliegen der Creative-Commons-Lizenz vom Typ Namensnennung 4.0 International, die Programmteile der GNU Affero General Public License 3.0.



Freitag, 16. September 2016

Die ältesten Commits bei Github sind mittlerweile einen Monat alt. Heute habe ich noch einen Fehler beseitigt (hoffentlich vollständig). Das Programm kann eigentlich noch nichts, dies aber auf recht angenehme Weise. Das mit der Übersetzung funktioniert soweit gut, ein paar Einstellungen lassen sich vornehmen (mit Undo-Funktion) und sichern. Eine HTML-Seite wird in einem Browserfenster angezeigt und ein Klick auf einen externen Link an das System weitergeleitet. Es ist halt ein Rahmen, den ich geschaffen habe.

Als nächstes gedenke ich die Eingabe von Bezeichnungen zu programmieren. In diesem Zusammenhang stellt sich einmal mehr die Frage, wie ich das mit den Objektbezeichnungen handhaben soll. Diese sind unter anderem wichtig, da auf ihnen interne Links basieren. Bisher hatte ich eine der Bezeichnungen genommen (eine möglichst kurze), und der interne Link bestand im Wesentlichen aus der Darstellung im Base64-Format. Nun überlege ich, ob ich für die Objektbezeichnung nicht lieber eine UUID verwenden sollte. Ausgeschrieben wäre solch eine 36 bzw. 38 Zeichen (inkl. Klammern) lang, dargestellt in Base64 22 Zeichen. Außerdem stellt sich mir die Frage, ob die Zuweisung von UUID vielleicht nicht besser netzbasiert gestaltet werden sollte (wobei das eine noch eher diffuse Vorstellung ist).

Sonntag, den 20. August 2016

Ich habe nun eine niederschwellige Möglichkeit hinzugefügt, zu meinem Projekt Stellung zu nehmen (durch Stellen einer Frage, Beisteuern einer Idee, Kommentierung all dessen, etc.). Sie findet sich verlinkt als Feedback in der Seitennavigation.

Ich bin gespannt, ob das funktioniert.

Montag, den 15. August 2016

Schon längere Zeit ist die Arbeit am Handbuch des Projektes ein Hemmschuh. Als es jetzt darum ging, das Handbuch für den Bildverfremder zu schreiben, bin ich jedoch an eine anscheinend unüberwindbare Grenze gestoßen. Es gibt in mir eine massive Verweigerungshaltung, anderen zu erklären, wie das funktioniert, was ich so schreibe. Das liegt sicher nicht daran, daß ich etwas zurückhalten will. Ich sehe da nur schlicht keine anderen, denen ich etwas zu erklären hätte. Das Interesse an diesem Projekt ist gleich null. Ich habe den Verdacht, wenn es jemals fertig werden sollte, dann kommen vielleicht welche. Die wollen sich das dann fertig runterladen und es mit möglichst geringem Lernaufwand beherrschen. Ehrlich gesagt habe ich nicht das geringste Interesse, solch eine Konsumentenhaltung zu bedienen.

Wenn ich mir jemand vorstelle, für den ich gerne arbeiten würde, dann wäre es jemand, der versteht, was ich da gemacht habe. Deshalb finde ich es auch genial, die Programme nicht mehr als Kompilat zu verteilen, sondern nur mehr den Quellcode über Github anzubieten. Aber auch ein anderer Programmierer ist auf lange Sicht aufgeschmissen, wenn ich ihm nur den Quellcode gebe und kein Handbuch.

Zwei Möglichkeiten sind mir eingefallen. Die erste schon vor einiger Zeit, die andere erst heute. Zum einen könnte ich so etwas wie eine Download-Zeitschrift mit dem Projekt verbinden. Da werden dann Konzepte erklärt und Themen, die in Zusammenhang mit dem Projekt stehen, besprochen. Klingt nach viel Arbeit und nach dem kräftigen Bedienen von Konsumenten. Insofern habe ich diese Möglichkeit zumindest schon halb wieder verworfen. Prinzipiell denke ich, so etwas könnte sich lohnen, aber das stemme ich sicher nicht alleine.

Die andere, erst heute aufgetauchte Möglichkeit besteht darin, statt eines klassischen Handbuchs so etwas wie eine Quelltextdokumentation zu erstellen. Dann geht es nicht nur darum, wie das Programm zu bedienen ist, sondern jede einzelne Funktion wird dokumentiert. Ich denke, das werde ich zumindest ausprobieren. Falls das nicht funktionieren sollte, wird das Projekt tatsächlich sterben, zumindest wenn es darum geht, es anderen Leuten anzubieten.

An dem Bildverfremder werde ich zunächst nicht weiter arbeiten. Für mich ist dieses Teilprojekt soweit abgeschlossen. Ich werde die Dokumentation, soweit sie existiert, noch nach Github hochladen. Aber das wird es dann damit auch gewesen sein.

Freitag, den 19. Juli 2016

Das Programm für das Training neuronaler Netzwerke zum Zwecke der Bildverfremdung läuft soweit stabil und funktioniert auch. Allerdings bin ich noch immer im Stadium des Ausprobierens. Das ganze wandert in ein Handbuch (pdf). Immerhin habe ich es heute geschafft, den Quellcode bei Github hochzuladen. Einem versierten Qt-Programmierer sollte es nicht schwer fallen, es zum laufen zu bringen. Compiliert wurde es unter Qt 5.3 und unter Linux. Es sollte aber auch unter Windows funktionieren.

Ach ja, der Projektname klingt eventuell etwas ungewohnt: Bildon transformilo. Das soll Esperanto sein (Bildverfremder). Ich habe mir überlegt, daß ich nicht wirklich gerne in Englisch programmieren möchte. Ja ich weiß, alle Welt programmiert in Englisch. Aber warum soll ich zu jemanden werden, der nur mühsam drei halbwegs vernünftige Brocken hinbekommt (Hilfsschülerniveau), nur weil andere erwarten, daß das bitteschön in Englisch zu geschehen hat? Da aber auch andere etwas mit dem Code anfangen können sollen (das erscheint mir bei einem quelloffenen Projekt nicht so weit hergeholt), verbietet sich das Denglisch, in dem ich mir bisher angewöhnt hatte, zu programmieren. Schließlich habe ich mich dann eben für Esperanto entschieden, das ja zu genau eben diesem Zweck - Brücke zu sein zwischen verschiedensprachigen Menschen - erfunden worden ist. Das kann ich nicht, und vermutlich die potentiellen Leser des Quellcodes auch nicht. Insofern haben wir dann alle was zu lernen.

Montag, den 4. Juli 2016

Mit KDE neon bin ich nicht wirklich klargekommen. Schließlich habe ich dann Debian 8 Jessie auf dem neuen Rechner installiert. Als Pakete läßt sich dort zur Zeit QT 5.3 installieren. Das hinkt dem aktuellen Stand zwar um einiges hinterher (5.3 wurde 2014 veröffentlicht), aber immerhin ist es damit möglich, auf vorhandene Pakete zu verweisen.

Ich habe auch schon ein erstes Programm geschrieben. Dieses verfremdet mit Hilfe eines (oder mehrerer) künstlicher neuronaler Netze ein Bild. Ziel ist, die bisherige Bearbeitung von Bildern mit Akvis Sketch zu ersetzen. Die künstlichen neuronalen Netze wurden über die Funktionsbibliothek FANN realisiert. Momentan bin ich noch dabei, die Netze zur trainieren. Das Ergebnis sieht schon recht vielversprechend aus. Sobald das Training abgeschlossen ist, werde ich dann auch Bilder zeigen.

Pfingstsonntag, der 15. Mai 2016

Einmal mehr beginne ich neu mit der Projektseite. Aber nicht allein diese Seite gilt es neu zu füllen, auch was die Software des Projektes angeht, beginne ich sozusagen noch einmal von vorn.

Gestartet habe ich das Projekt unter .Net. Nach gut einem Jahr kam der Wechsel auf QT. Weiterhin sollte es unter Windows laufen. Nun bleibe ich zwar bei QT, doch aus verschiedenen Gründen soll das Projekt nun unter Linux (genauer unter KDE neon) realisiert werden. Ein entsprechender Rechner ist bestellt. Bis ich mich dort eingearbeitet und die Software in einen vorzeigbaren Zustand gebracht habe, wird allerdings eine Zeit vergehen.