Aus Linux-Magazin 02/2002

Die monatliche GNU-Kolumne

Diese Kolumne berichtet über aktuelle Entwicklungen innerhalb des GNU-Projekts und versucht, Einblicke in die zugrunde liegende Philosophie zu vermitteln. In dieser Ausgabe: Nethack – Falcon's Eye, Vega Strike, GNU Scientific Library, GNU Gama, GNU Indent und "Wir sprechen von freier Software".

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

Nethack – Falcon’s Eye: Grafisch ist zeitgemäßer

Bei Falcon’s Eye[5] handelt es sich um eine grafische Benutzeroberfläche für das Spiel “Nethack”[6], das 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-Spiel, bei dem es darum geht, zumeist in unterirdischen Katakomben auf Entdeckungsreise zu gehen und Begegnungen mit zum Teil unfreundlichen Gestalten zu überstehen. Ein bekanntes proprietäres Spiel dieses Genres ist “Diablo” von Blizzard. Vom Inhalt und Spielfluss her ist Nethack recht komplex, die Oberfläche jedoch ist sehr einfach strukturiert – ohne Sound und mit reiner Ascii-Oberfläche ist die Phantasie des Spielers gefordert. Obwohl dies den Vorteil bietet, Nethack auf der Konsole oder am Terminal spielen zu können, hat auch eine aufwändige Oberfläche ihre Freunde.

Hier kommt Falcon’s Eye ins Spiel. Es ersetzt die Ascii-Grafik durch eine hoch auflösende isometrische Darstellung mit dynamischen Lichteffekten, mehreren Interface-Bildschirmen und einer grafischen Einführungssequenz (siehe Abbildung 1). Außerdem stellt es Soundeffekte für die unterschiedlichen Ereignisse im Spiel bereit 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 kontextsensitive Menüs. Eine Beschreibung der Spielobjekte über so genannte Tooltips erleichtert Anfängern den Einstieg. Dabei ist das Interface in hohem Maße anpassbar 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 stammen 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. Das wurde aber unter anderem dadurch verhindert, dass 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 gearbeitet – so gab es in dieser Zeit nicht weniger als fünf neue Versionen des Interface.

Zurzeit 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, bestehen solche Möglichkeiten nur in Grenzen, jedoch sollten zumindest statische Animationen wie zum Beispiel flackernde Fackeln zu realisieren sein. Außerdem wird die nächste Version viele neue Grafiken enthalten, die das Äußere noch ansprechender gestalten sollen, auch ein Zoom-Feature ist angedacht. Geschrieben wurde Falcon’s Eye in C mit Anreicherungen in C++, wenn dies zum Beispiel zur Ansteuerung von Direct-X 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 teils recht problematisch, doch glücklicherweise gibt’s etliche Hilfestellungen sowie vorbereitete Pakete. 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, die 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. Das soll jedoch niemanden davon abhalten, sich mit Falcon’s Eye zu beschäftigen oder daran mitzuarbeiten.

Abbildung 1:Falcon's Eye ersetzt die Ascii-Grafik von Nethack (links) durch eine hoch auflösende isometrische Darstellung mit dynamischen Lichteffekten und mehreren Interface-Bildschirmen (rechts).

Abbildung 1:Falcon’s Eye ersetzt die Ascii-Grafik von Nethack (links) durch eine hoch auflösende isometrische Darstellung mit dynamischen Lichteffekten und mehreren Interface-Bildschirmen (rechts).

Vega Strike: Wenn die Luft immer dünner wird

“Vega Strike”[7] 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. Damals war er aber noch nicht mit freier Software oder GNU/Linux in Berührung gekommen und schrieb dieses Spiel daher zunächst mit Hilfe von OpenGL beziehungsweise D3D unter Windows.

Auch wenn er dies ursprünglich nicht vorhatte, beschloss er dann im Januar 2001, das Spiel auch nach GNU/Linux zu portieren und Vega Strike plattformunabhängig zu machen. In der aktuellen Version setzt Vega Strike auf C++ und verwendet die OpenGL-, OpenAL-, Glut-, SDL- und Expat-Bibliotheken. Letztere dienen der Bearbeitung von XML-Daten, über die Vega Strike die gesamte Konfiguration und Kommunikation abwickelt. Der umfassende Einsatz von XML ist nach dem Verständnis von Daniel einer der großen Vorteile von Vega Strike, was auch Nicht-Programmierern die Konfiguration und Weiterentwicklung von Vega Strike erlaubt.

Im Laufe des Jahres wurde Vega Strike gemeinsam mit Kommilitonen aus Berkeley und anderen Mitstreitern der Freie-Software-Gemeinde weiterentwickelt und ist zu einer der besten Raumkampf-Simulationen geworden. Die Entwicklung ist jedoch noch lange nicht abgeschlossen; so ist es beispielsweise noch geplant, einige Probleme mit den 3D-Modellen besser zu lösen, mehr Effekte und Terraineigenschaften zu implementieren und das Gameplay zu vervollständigen.

Nachdem die technischen Fragen geklärt sind, soll Vega Strike 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 allerdings auf Mithilfe unterschiedlichster Art angewiesen. So braucht das Projekt grafisch versierte Freiwillige, die sich der 3D-Modelle annehmen, Entwickler, die sich mit plattformunabhängiger Programmierung befassen wollen, und Spieltester, die für ausgewogene Missionen und Werte der einzelnen Komponenten sorgen. Auch das physikalische Modell ist nach Daniels Ansicht verbesserungswürdig. Wer sich für Vega Strike interessiert, sollte die Homepage[7] besuchen.

Abbildung 2: Im Laufe des Jahres wurde Vega Strike gemeinsam mit Mitstreitern der Freie-Software-Gemeinde weiterentwickelt und ist zu einer der besten Raumkampf-Simulationen geworden.

Abbildung 2: Im Laufe des Jahres wurde Vega Strike gemeinsam mit Mitstreitern der Freie-Software-Gemeinde weiterentwickelt und ist zu einer der besten Raumkampf-Simulationen geworden.

Szene aus Vega Strike.

Szene aus Vega Strike.

GSL: Numerische Bibliothek mit 1000 Funktionen

Die GNU Scientific Library (GSL)[8] ist eine moderne numerische Bibliothek mit einer Vielzahl von mathematischen Routinen in C und C++. Geschrieben ist die unter der GNU General Public License stehende GSL in Ansi-C. Bei mehr als 1000 enthaltenen Funktionen geht es zum Beispiel auch um Zufallszahlen-Generatoren, 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 etwas Erfahrung mit C vorhanden ist, sollte die Benutzung keinerlei Probleme bereiten – und im Zweifelsfall hilft die mit zirka 500 Seiten recht umfangreiche Dokumentation. Zudem wird es bald ein Handbuch zu kaufen geben, das auch 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 Bibliothek Thread-safe.

Seinen Anfang nahm das Projekt vor etwa fünf 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. Seither wurde es von einer Gruppe Physiker mit Erfahrung in computergestützter Physik weiterentwickelt.

Um Fehler in den Algorithmen zu vermeiden, griffen die Programmierer nach Möglichkeit auf bereits existente und ausgiebig getestete Fortran-Algorithmen zurück, die für GSL neu implementiert wurden. 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.

Die Kosten durch Softwarelizenzen, die Beschränkungen bei der Anwendung und die mangelnde Transparenz proprietärer Programme machen freie Software zur einzig akzeptablen Wahl für die Wissenschaft. Die GSL setzt bewusst auf die GNU General Public License, da auf diese Weise sichergestellt ist, dass wissenschaftliche Anwendungen nach Veröffentlichung auch dauerhaft der wissenschaftlichen Gemeinschaft zur Verfügung stehen.

Es sei noch einmal betont, dass 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 offensichtlich.

GNU Gama: Position beziehen mit XML

Der Name des nächsten Projekts – Gama[9] – ist eine (nicht ganz einfach herzuleitende) Abkürzung für “Geodesy and Mapping”, womit zumindest Geografen klar sein sollte, dass dieses Projekt sich mit Erdvermessung/Fernerkundung und Kartografie beschäftigt.

Fachleute mögen die Vereinfachungen verzeihen, doch für alle Nicht-Geografen hier ein paar einführende Worte: Um Karten zweidimensional anfertigen zu können, werden 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 Werte gemessen, die in der Geografie als Beobachtungen bezeichnet werden.

Diese Beobachtungen zu korrelieren, 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. GNU Gama kann lokale (später hoffentlich auch globale) geodätische Netzwerke berechnen und dabei prinzipiell beliebig viele Beobachtungen unterschiedlicher Typen miteinander kombinieren.

Beobachtungen werden im XML-Format angegeben und können sogar per E-Mail in Gama eingespeist werden. Als Programmiersprache kam für GNU Gama C++ zum Einsatz, wobei der Code bewusst plattformunabhängig genug gehalten wird, um auch auf Windows-Systemen lauffähig zu sein. Als Teil des GNU-Projekts steht Gama natürlich unter der GNU General Public License.

Begonnen wurde das Projekt 1998 von Ales Cepek, der auch schon bald Unterstützung von Studenten seines Fachbereichs erhielt, vor allem Jiri Vesely, Petr Doubrava, Jan Pytel, Jan Kolar und Petr Soucek. Hilfe wird zur Überarbeitung der Dokumentation und bei der Erstellung des geplanten Qt-GUI benötigt, mit dem sich momentan Jan Pytel beschäftigt. Wer sich darüber hinaus für das Thema Geografie am Computer interessiert, dem sei die FreeGIS-Homepage[10] ans Herz gelegt.

C-Code besser lesen mit 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.

In der Standardeinstellung wandelt GNU Indent den C-Sourcecode gemäß den GNU Coding Standards. Darüber hinaus überprüft Indent die C-Syntax und hilft so bei der Fehlersuche und Codepflege. Seine herausragende Eigenschaft ist sicherlich die enorme Flexibilität. Geschrieben ist es in Ansi-C. Herausgeber ist die FSF unter der GNU General Public License.

Der Maintainer, David Ingamells, hat GNU Indent vor kurzem von Carlo Wood übernommen. Hilfe braucht er gegenwärtig vor allem bei der Internationalisierung, denn bislang gibt’s das Projekt in Englisch und Taiwanisch. Wer also mit seinen Sprachkenntnissen dabei helfen möchte, ein so altehrwürdiges Programm mehr Leuten nahe zu bringen, 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 waren Unternehmen in diesem Umfeld, die sich über den Missbrauch und die Aufweichung des Begriffs Open Source beschwerten und die FSF Europe darum baten, deutlich zu machen, warum freie Software auch als Begriff so viel besser und solider ist.

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 darum gebeten, auf die Seite der Kampagne aufgenommen zu werden. Auch von privater Seite war der Zuspruch groß. In einem Fall wurde die berühmte Ausnahme von der Regel gemacht und der Unterstützer auf der Seite vermerkt: Bruce Perens, Mitbegründer der Open-Source-Bewegung und Autor der Debian Free Software Guidelines sowie der Open-Source-Definition hatte gebeten, als Unterstützer der Kampagne aufgeführt zu werden. Wie er bekannt gab, spricht auch er mittlerweile von “freier Software”.

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

Abbildung 3: Der Zuspruch auf die FSF-Kampagne ist von privater wie von Firmenseite groß.

Abbildung 3: Der Zuspruch auf die FSF-Kampagne ist von privater wie von Firmenseite groß.

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. (jk)

Infos

[1] Ideen, Anregungen, Kommentare an die Brave GNU World: [column@brave-gnu-world.org]

[2] Homepage des GNU-Projekts: [www.gnu.org/]

[3] Homepage von Georg’s Brave GNU World: [http://brave-gnu-world.org]

[4] “We run GNU”-Initiative: [www.gnu.org/brave-gnu-world/rungnu/rungnu.de.html]

[5] Homepage Nethack – Falcon’s Eye: [www.hut.fi/~jtpelto2/nethack.html]

[6] Nethack-Homepage: [www.nethack.org]

[7] Vega-Strike-Homepage: [http://vegastrike.sourceforge.net]

[8] Homepage GNU Scientific Library: [www.gnu.org/software/gsl/]

[9] Homepage GNU Gama: [www.gnu.org/software/gama/]

[10] FreeGIS-Homepage: [www.freegis.org]

[11] GNU-Indent-Homepage: [www.gnu.org/software/indent/]

[12] Homepage Free Software Foundation Europe: [http://fsfeurope.org]

[13] “Wir sprechen von freier Software”- Homepage: [http://fsfeurope.org/documents/whyfs.de.html]

Der Autor

Dipl.-Phys. Georg C. F. Greve beschäftigt sich seit etlichen Jahren mit freier Software und kam früh zu GNU/Linux. Nach Mitarbeit im GNU-Projekt und seiner Aktivität als dessen europäischer Sprecher hat er die Free Software Foundation Europe initiiert, deren Präsident er ist. Mehr Informationen finden sich unter [http://gnuhh.org].

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben