[image of a Brave GNU World]
Brave GNU World - Ausgabe 35
Copyright © 2002 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

[DE | EN | FR | IT | JA | ES | KO | PT]

Herzlich willkommen zu einer weiteren Ausgabe der Brave GNU World. Wie schon in der letzten Ausgabe angekündigt, sollen den Nordhalbkugelbewohnern zwei weitere Möglichkeiten vorgestellt werden, kalte Januartage stilecht zuzubringen. Für die eher ernsthaften Leser wird zudem wissenschaftliche Freie Software vorgestellt werden.

NetHack - Falcon's Eye

Bei Falcon's Eye [5] handelt es sich um eine grafische Benutzeroberfläche für das Spiel NetHack [6], welches bereits seit etwa 20 Jahren eine treue Fangemeinde hat. Damit gehört NetHack zu den ältesten Computerspielen, die noch heute weiterentwickelt werden.

NetHack ist ein "single-player roguelike game", bei dem es darum geht, zumeist in unterirdischen Katakomben auf Entdeckungsreise zu gehen und die Begegnungen mit zum Teil unfreundlichen Gestalten zu überstehen. Ein bekanntes proprietäres Spiel dieses Genres ist z.B. "Diablo" von Blizzard.

Vom Inhalt und Spielfluß her ist NetHack recht komplex und die von manchen Spielen geförderte "wenn es sich bewegt, mach' es platt"-Haltung wird einen Charakter bei NetHack schnell zu einem unrühmlichen Ende führen. Die Oberfläche von NetHack ist jedoch sehr simplizistisch angelegt - ohne Sound und mit reiner ASCII-Oberfläche ist die Phantasie des Spielers gefordert. Auch wenn dies den Vorteil bietet, NetHack auf der Konsole oder am Terminal spielen zu können, hat auch eine Oberfläche mit mehr "Eye-Candy" ihre Freunde.

Hier kommt Falcon's Eye ins Spiel. Falcon's Eye ersetzt die ASCII-Grafik durch eine hochauflösende isometrische Darstellung mit dynamischen Lichteffekten, mehreren Interface-Bildschirmen und einer grafischen Einführungssequenz. Außerdem stellt es Soundeffekte für die unterschiedlichen Ereignisse im Spiel zur Verfügung und erlaubt MIDI- oder MP3-Hintergrundmusik.

Auch die Benutzerführung wird durch Falcon's Eye erweitert, so erlaubt es die Steuerung per Maus, Bewegung per "Autopilot" und kontext-sensitive Menüs. Eine Beschreibung der Spielobjekte über sogenannte "Tooltips" erleichtert Anfängern den Einstieg.

Dabei ist das Interface in hohem Maße anpaßbar und es kann nicht nur die Bildschirmaufläösung frei gewählt werden, auch Soundeffekte oder Tastaturbelegung können geändert werden.

Der Spielinhalt wird dabei jedoch weiter von NetHack geliefert, weshalb die Kombination als "NetHack - Falcon's Eye" bezeichnet wird.

Falcon's Eye wurde von dem Finnen Jaakko Peltonen nahezu im Alleingang geschrieben - von ihm stammt nicht nur die Programmierung und das Interface, er hat auch die Grafik und die Musik zusammengestellt. Dabei waren für ihn das Feedback und die Anfragen von Nutzern überaus wichtig, um die Qualität und Benutzerfreundlichkeit zu optimieren.

Die Idee zu diesem Projekt kam Jaakko 1999, als er mit isometrischen Grafiken experimentierte. Dabei entdeckte er NetHack erst später, denn ursprünglich sah sein Plan vor, Ultima IV mit einer grafischen Oberfläche zu bereichern. Dies wurde aber u.A. dadurch verhindert, daß Ultima IV nur proprietär vertrieben wird, daher wandte er sich NetHack zu.

Die eigentliche Entwicklung begann im Oktober 2000 und seitdem wurde viel an Falcon's Eye gerarbeitet - so gab es in dieser Zeit u.A. 5 neue Versionen des Interfaces. Im Moment beschäftigt Jaakko neben der Behebung von Fehlern und Beseitigung von Problemen auch der Gedanke, die Oberfläche durch Animationen anzureichern. Da NetHack zugbasiert ist, ist dies nur begrenzt möglich, jedoch sollten zumindest "statische" Animationen wie z.B. flackernde Facken zu realisieren sein.

Außerdem wird die nächste Version viele neue Grafiken enthalten, die das Äußere noch ansprechender gestalten sollen und auch ein Zoom-Feature ist angedacht. Gerade in diesem Bereich bietet Falcon's Eye Freiwilligen viel Gestaltungspotential.

Da NetHack sehr komplex ist, ist es nahezu ausgeschlossen, daß Jaakko alle problematischen Situationen selber entdecken kann, er ist also auf den Input von Spieltestern angewiesen, eine Aufgabe, für die sich eigentlich ausreichend Freiwillige finden sollten.

Geschrieben wurde Falcon's Eye in C mit Anreicherungen in C++ wo dies z.B. zur Ansteuerung von DirectX notwendig war. Lauffähig ist NetHack - Falcon's Eye auf GNU/Linux, DOS, Windows (95+), BeOS und Solaris SPARC.

Die Installation von NetHack und Falcon's Eye gestaltet sich teilweise recht problematisch, doch glücklicherweise existieren hier etliche Hilfestellungen sowie vorbereitete Pakete, die die Installation deutlich erleichtern sollten.

Falcon's Eye untersteht ebenso wie NetHack der "NetHack General Public License" von M. Stephenson, die der alten "BISON General Public License" von Richard M. Stallman nachempfunden ist, welche mittlerweile durch die "GNU General Public License" abgelöst wurde.

Nach so vielen Jahren der Entwicklung ohne Copyright-Assignments ist eine Änderung der NetHack Lizenz vermutlich nicht mehr praktikabel, für Falcon's Eye wäre es aber wohl sinnvoller gewesen, direkt die GNU General Public License einzusetzen.

Dies soll jedoch niemand davon abhalten, sich mit Falcon's Eye zu beschäftigen oder aber daran mitzuarbeiten.

VegaStrike

VegaStrike [7], das zweite Spiel dieser Ausgabe, ist ein 3D-Raumkampfsimulator unter der GNU General Public License, der den Vergleich mit den normalerweise im Handel befindlichen, proprietären Spielen nicht zu scheuen braucht.

Ursprünglich schrieb Daniel Horn, ein Student der University of California, Berkeley, einen GLide-basierten Klon des unfreien Spiels "Wing Commander", der sogar auf der Homepage der Herstellerfirma Origin erwähnt wurde.

Nach eigenen Aussagen war dieser Code jedoch extrem unsauber, auch da er zu diesem Zeitpunkt noch kein wirklich guter Programmierer war. Daher beschloß Daniel, von Grund auf neu anzufangen und einen vollständig anpaßbaren Raumkampfsimulator ohne Verbindung zum Spiel "Wing Commander" zu schaffen.

Damals war er noch nicht mit Freier Software oder GNU/Linux in Berührung gekommen und schrieb dieses Spiel zunächst mit Hilfe von OpenGL bzw. D3D unter Windows. Auch wenn er dies ursprünglich nicht vor hatte, beschloß er dann im Januar 2001, das Spiel auch nach GNU/Linux zu portieren und VegaStrike plattformunabhängig zu machen.

In der aktuellen Version setzt VegaStrike auf C++ und verwendet die OpenGL, OpenAL, glut, SDL und expat Bibliotheken. Letztere dient der Bearbeitung von XML-Daten, über die bei VegaStrike sämtliche Konfiguration und Kommunikation abgewickelt wird. Dieser umfassende Einsatz von XML ist nach dem Verständnis von Daniel einer der großen Vorteile von VegaStrike, da er auch nicht-Programmierern die Konfiguration und Weiterentwicklung von VegaStrike erlaubt.

Im Laufe des Jahres wurde VegaStrike gemeinsam mit Kommilitonen aus Berkeley und anderen Mitstreitern der Freien Software Gemeinde weiterentwickelt und ist mittlerweile zu einer der besten verfügbaren Raumkampfsimulationen geworden.

Doch die Entwicklung ist noch lange nicht abgeschlossen, so ist beispielsweise geplant, einige Probleme mit den 3D-Modellen besser zu lösen und mehr Effekte und Terraineigenschaften zu implementieren.

Doch auch das Gameplay ist noch nicht vollständig. Nachdem die technischen Fragen geklärt sind, soll VegaStrike sich simultan in zwei Richtungen entwickeln. Einerseits wird die Komponente des Erforschens und der sozialen Interaktion ausgebaut, die Spieler alleine oder mit Freunden gemeinsam ausleben können. Es soll möglich sein, Geld durch Handel, Piraterie oder das Eröffnen eines Unternehmens zu verdienen und sich auch politisch zu engagieren.

Die andere Richtung ist eine Erweiterung für strategische Aspekte, bei denen Spieler mehrere Schiffe kontrollieren können, um große Flotten in die Schlacht zu führen.

Um alle diese Pläne umzusetzen ist das Projekt-Team jedoch auf Mithilfe unterschiedlichster Art und Weise angewiesen. So braucht das Projekt u.A. grafisch versierte Freiwillige, die sich der 3D-Modelle annehmen, Entwickler, die sich mit plattformunabhängiger Programmierung befassen wollen oder Spieltester, die für ausgewogene Missionen und Werte der einzelnen Komponenten sorgen. Auch das physikalische Modell kann nach Daniels Ansicht noch immer verbessert werden.

Genug der Worte, wer sich für VegaStrike interessiert, sollte die Homepage [7] besuchen.

GSL

Die "GNU Scientific Library" (GSL) [8] ist eine moderne numerische Bibliothek, die eine Vielzahl an mathematischen Routinen unter C und C++ zur Verfügung stellt. Geschrieben wurde die unter der GNU General Public License verfügbare GSL in ANSI C.

Die über 1000 Funktionen, die durch die GSL zur Verfügung gestellt werden, beinhalten z.B. Zufallszahlengeneratoren, Fast Fourier Transformationen (FFT), Histogramme, Interpolation, Monte Carlo Integration, Funktionen für Vektoren und Matrizen, Permutationen oder Lineare Algebra.

Die Bibliothek folgt einem objektorientierten Design und erlaubt das dynamische Laden oder Ändern von Funktionen ohne das Programm neu übersetzen zu müssen. Sofern Erfahrung mit C vorhanden ist, sollte die Benutzung keinerlei Probleme darstellen und im Zweifelsfall steht dem Nutzer die mit c.a. 500 Seiten recht umfangreiche Dokumentation zur Verfügung. Zudem wird es bald ein Handbuch zu kaufen geben, welches darüberhinaus unter der GNU Free Documentation License verfügbar sein wird.

Das Interface wurde speziell im Hinblick darauf entworfen, es möglichst einfach zu machen, die GSL auch mit Hochsprachen wie GNU Guile oder Python zu benutzen und natürlich ist die Biliothek "thread-safe".

Seinen Anfang nahm das Projekt vor etwa 5 Jahren, als Dr. M. Galassi und Dr. J. Theiler vom Los Alamos National Laboratory mit der Arbeit an einer konsistenten und soliden Freien Software-Bibliothek begannen. Seitdem wurde es von einer Gruppe Physiker mit Erfahrung in computergestützter Physik weiterentwickelt.

Um dabei Fehler in den Algorithmen zu vermeiden, wurde nach Möglichkeit auf bereits existente und ausgiebig getestete Fortran-Algorithmen zurückgegriffen, die für GSL neu implementiert wurden.

Weitere Pläne sehen zwar vor, mehr Funktionen hinzuzufügen, doch die Bewahrung der Konsistenz und Stabilität wird dabei ein wesentlicher Gesichtspunkt sein, denn nach einer recht arbeitsintensiven Zeit kann die GSL mittlerweile als stabil und für den allgemeinen Gebrauch bereit angesehen werden.

Gerade im Feld der Wissenschaften, für die das internationale gemeinsame Arbeiten und die Nachvollziehbarkeit von Ergebnissen wesentliche Anforderungen sind, ist eigentlich nicht einzusehen, warum proprietäre Software eingesetzt wird.

Dies betont auch Brian Gough, der die Fragen zur GSL beantwortete, in seiner Email. Die zusätzlichen Kosten durch Softwarelizenzen, die Beschränkungen bei der Anwendung und späteren Verfügbarmachung von Forschungsergebnissen, die sich daraus ergeben, sowie die mangelnde Transparenz proprietärer Software machen Freie Software zur einzig akzeptablen Wahl für die Wissenschaft.

Die GSL setzt bewußt auf die GNU General Public License, da auf diese Art und Weise sichergestellt wird, daß wissenschaftliche Anwendungen nach Veröffentlichung auch dauerhaft der wissenschaftlichen Gemeinschaft zur Verfügung stehen.

Da dies teilweise nicht ausreichend bekannt ist, sei noch einmal betont, daß die GNU General Public License aus Gründen des Respekts vor der Privatsphäre sehr wohl "in-house" Applikationen oder Modifikationen ohne Veröffentlichung erlaubt.

Sobald diese jedoch außerhalb des eigenen Unternehmens, Hauses oder Instituts weitergegeben werden, müssen die Bedingungen der GPL Beachtung finden. Die Parallele zur normalen Veröffentlichung wissenschaftlicher Ergebnisse ist dabei geradezu offensichtlich.

GNU GaMa

Der Name des nächsten Projektes, GaMa [9] ist eine Abkürzung für "Geodesy and Mapping", womit zumindest Geographen klar sein sollte, daß dieses Projekt sich mit Erdvermessung/Fernerkundung und Kartografie beschäftigt.

Geographen mögen mir die Vereinfachungen verzeihen, doch für alle nicht-Geographen hier ein paar einführende Worte: Wie recht allgemein bekannt ist, hat die Form der Erde für Kartographen schon immer eine besondere Herausforderung dargestellt. Um Karten zweidimensional anfertigen zu können, werden daher verschiedene Projektionen verwandt, die jeweils andere Aspekte verzerrt darstellen.

Doch auch im dreidimensionalen Raum ist die genaue Vermessung nicht trivial, da es bei einem rotierenden, im Weltraum trudelnden Geoid wie der Erde keine naturgegebenen Fixpunkte gibt. Jede Positionsbestimmung ist demnach eine relative Angabe zwischen zwei Punkten, die zudem fehlerbehaftet ist.

Wie in vielen anderen empirischen Disziplinen werden auch hier möglichst viele Meßwerte gemacht, die in der Geographie sinnvollerweise als Beobachtungen bezeichnet werden. Diese Beobachtungen miteinander zu korrellieren, um ein möglichst gutes Modell der tatsächlichen Gegebenheiten zu erhalten, ist Aufgabe der Geodäsie, eines Zweiges des angewandten Mathematik.

Zu den Anforderungen gehört dabei die Bestimmung der Genauigkeit des Endresultats, die sich aus den Genauigkeiten der einzelnen Beobachtungen ergibt - wer in der Ausbildung mit Fehlerrechnung in Berührung gekommen ist, wird sich ungefähr vorstellen können, wie dies vonstatten geht.

GNU GaMa kann lokale geodätische Netzwerke berechnen und dabei prinzipiell beliebig viele Beobachtungen unterschiedlicher Beobachtungstypen miteinander kombinieren. Beobachtungen selber werden im XML-Format angegeben und können sogar per Email in GaMa eingespeist werden.

Als Programmiersprache kam für GNU GaMa C++ zum Einsatz, wobei der Code bewußt plattformunabhängig genug gehalten wird, um auch auf Windows-Systemen lauffähig zu sein. Als Teil des GNU-Projektes ist es natürlich unter der GNU General Public License verfügbar.

Die weitere Entwicklung geht in Richtung unabhängiger Komponenten, die über XML miteinander kommunizieren sollen, um GaMa noch leistungsfähiger zu machen, außerdem soll GNU GaMa eines Tages in der Lage sein, auch globale geodätische Netzwerke zu berechnen.

Begonnen wurde das GaMa Projekt übrigens 1998 von Ales Cepek, der jedoch bald Unterstützung u.A. von Studenten seines Fachbereichs erhielt. Namentlich waren vor allem Jiri Vesely, Petr Doubrava, Jan Pytel, Jan Kolar und Petr Soucek an der Weiterentwicklung von GaMa beteiligt.

Hilfe wird zur Überarbeitung der Dokumentation und bei der Erstellung des geplanten Qt GUI, mit dem sich momentan Jan Pytel beschäftigt, benötigt, da zu erwarten ist, daß dies eine deutliche Erleichterung für neue Anwender bedeuten wird.

Wer sich darüberhinaus für das Thema Geographie am Computer interessiert, dem sei die FreeGIS Homepage [10] ans Herz gelegt.

GNU indent

Die Geschichte von GNU indent [11] begann 1976 als Teil von BSD UNIX, um später der Free Software Foundation "gespendet" zu werden. Das Programm ist also fast so alt wie Unix selber.

Aufgabe von GNU indent ist die Verbesserung der Lesbarkeit von C-Sourcecode, außerdem kann es Sourcecode verschiedener Formatierungsarten ineinander überführen. Da verschiedene Entwickler, Projekte oder Unternehmen oft unterschiedliche Formatierungsarten aufgrund ihrer Gewöhnung als besser lesbar einschätzen, kann dies sehr nützlich sein. In der Standardeinstellung wandelt GNU indent dabei den C-Sourcecode gemäß der "GNU Coding Standards".

Darüberhinaus kann GNU indent die C Syntax überprüfen und so bei der Fehlersuche und Codepflege helfen.

Geschrieben wurde es in ANSI C und es wird von der FSF unter der GNU General Public License herausgegeben; seine herausragende Eigenschaft ist sicherlich die enorme Flexibilität.

Der aktuelle Maintainer, David Ingamells hat GNU indent vor kurzem von Carlo Wood übernommen. Hilfe braucht er im Moment hauptsächlich bei der Internationalisierung, die bisher neben Englisch nur in Taiwanesisch vorliegt.

Wer also helfen möchte, ein so alterwürdiges Programm mehr Leuten nahezubringen, dem bietet sich hier die Gelegenheit.

"Wir sprechen von Freier Software"

Die Free Software Foundation Europe [12] hat Mitte November 2001 die "Wir sprechen von Freier Software" Kampagne [13] ins Leben gerufen.

Auslöser der Kampagne waren Unternehmen in und um Freie Software, die sich über den Mißbrauch und die Aufweichung des Begriffes "Open Source" beschwert haben und die FSF Europe baten, deutlich zu machen, warum Freie Software auch als Begriff so viel besser ist.

Zentrale Punkte sind hierbei, daß der Begriff Freie Software aufgrund seines Bezugs zu den das Phänomen definierenden Freiheiten leichter verständlich ist, daß der Begriff sich schwieriger mißbrauchen läßt und die Definition Freier Software solider ist. Außerdem beinhaltet Freie Software aufgrund ihrer Freiheit Mehrwerte, die die Begrifflichkeit "Open Source" nicht vermittelt.

Die Kampagne erhielt innerhalb der ersten Wochen ein sehr positives Echo, vor allem von Unternehmen, die sich bereits länger mit Freier Software beschäftigen. Zehn von Ihnen haben unmittelbar darum gebeten, auf die Seite der Kampagne mit aufgenommen zu werden.

Auch von privater Seite war der Zuspruch groß. In einem Fall wurde die berühmte Ausnahme von der Regel gemacht und die Unterstützung wurde auf der Seite vermerkt: Bruce Perens, Mitbegründer der Open Source Bewegung und Autor der Debian Free Software Guidelines sowie der Open Source Definition hat darum gebeten, als Unterstützer der Kampagne aufgeführt zu werden. Wie er öffentlich bekannt gab, spricht auch er mittlerweile wieder von Freier Software.

Wer sich für die Details der Kampagne interessiert oder das eigene Unternehmen dort mit einbringen möchte, der sei auf die Homepage [13] verwiesen.

Bis bald...

Das war die Brave GNU World für diesen Monat, ich hoffe, wieder einige interessante Anregungen und Einblicke vermittelt zu haben.

Wie üblich bitte ich um zahlreiche Rückmeldungen mit Ideen, Fragen, Anregungen, Kommentaren und Hinweisen auf interessante Projekte an die übliche Adresse [1], denn nur durch die stetige Unterstützung der Freien Software Gemeinschaft ist die Brave GNU World möglich.

Info
[1] Ideen, Anregungen, Kommentare an die Brave GNU World: column@brave-gnu-world.org
[2] Homepage des GNU-Projektes: http://www.gnu.org/
[3] Homepage von Georg's Brave GNU World: http://brave-gnu-world.org
[4] "We run GNU" Initiative http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] NetHack - Falcon's Eye Homepage: http://www.hut.fi/~jtpelto2/nethack.html
[6] NetHack Homepage: http://www.nethack.org
[7] VegaStrike Homepage: http://vegastrike.sourceforge.net
[8] GNU Scientific Library Homepage: http://www.gnu.org/software/gsl/
[9] GNU GaMa Homepage: http://www.gnu.org/software/gama/
[10] FreeGIS Homepage: http://www.freegis.org
[11] GNU indent Homepage: http://www.gnu.org/software/indent/
[12] Free Software Foundation Europe Homepage: http://fsfeurope.org
[13] "Wir sprechen von Freier Software" Homepage: http://fsfeurope.org/documents/whyfs.de.html

[ previous issue | Brave GNU World home | next issue ]

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org.
There are also other ways to contact the FSF.

Please send comments on Georg's Brave GNU World (in English or German) to column@gnu.org,
send comments on these web pages to webmasters@www.gnu.org,
send other questions to gnu@gnu.org.

Copyright (C) 2001 Georg C. F. Greve

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Last modified: Mon Dec 17 12:42:31 CET 2001