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

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

Willkommen zu einer neuen Ausgabe der Brave GNU World, in der diesen Monat wieder einmal einige Möglichkeiten des kreativen Zeitvertreibs vorgestellt werden sollen.

Rocks'n'Diamonds

Das Spiel "Rocks'n'Diamonds" [5] von Holger Schemel hat große Ähnlichkeiten mit den Klassikern "Boulder Dash" (Commodore 64), "Emerald Mine" (Amiga) oder "Supaplex" (PC). Das kann nicht weiter überraschen, wurde es doch von einem Fan dieser Spiele für andere Fans geschrieben.

Für Nichteingeweihte: Der Sinn dieses klassischen 2D Arcade-Spiels ist, Diamanten einzusammeln, ohne dabei gewaltsam zu einem frühzeitigen Ende zu kommen. Dafür können u.A. Steine verschoben, Bomben gelegt und Monster ausgetrickst werden.

Das Spiel wurde in C geschrieben und sehr portabel gehalten. Es läuft auf nahezu jeder bekannten Spielart von Unix, sofern X11-Unterstützung vorhanden ist, und darüberhinaus unter Mac OS X, DOS und Windows. Durch weiches Scrolling der Level, Joystick-Unterstützung und eine frei wählbare Tastaturbelegung ist darüberhinaus sichergestellt, daß es die jeweiligen Vorlieben und Gegebenheiten der Nutzerinnen berücksichtigt.

Für den Spielspaß sorgt neben einer orgiginalgetreuen Grafik auch die Unterstützung von Soundeffekten und Musik auf den dafür ausgerüsteten Betriebssystemen.

Besonderen Reiz gewinnt das Spiel durch den Netzwerk-Support, der es zumindest unter Unix bis zu vier Spielerinnen erlaubt, miteinander die Level zu bestreiten. Außerdem existiert ein lokaler Multiplayer-Mode, der es auch auf einem einzelnen Rechner erlaubt, als Team die Level zu lösen.

Damit garantiert keine Langeweile aufkommt, gibt es tausende von Leveln, die gelöst werden wollen und wenn auch diese nicht mehr ausreichen, kann auf den Leveleditor zurückgegriffen werden.

Das Spiel wurde zwischen 1994 und 1995 erstmals für GNU/Linux und Solaris herausgebracht, bevor 1998 die MS-DOS und 2001 die Windows-Version folgten. Veröffentlicht wird es durch Holger Schemel als Freie Software unter der GNU General Public License.

Obwohl das Spiel bereits sehr ausgereift ist, steht die Entwicklung nicht still. Speziell die Emulation der unterschiedlichen Game Engines von Boulder Dash, Emerald Mine, Supaplex & Sokoban ist laut Holger noch nicht originalgetreu genug um deren gesamte Level spielen zu können.

Wer mithelfen möchte, darf dies gerne tun. Auch bei zusätzlichen Grafiken, Anpassungen an eine weitere Plattform oder neuen Leveln ist jede Hilfe willkommen.

Die oft interessanten Aspekte einer solchen Kooperation durfte Holger übrigens bereits Mitte der 90er Jahre erfahren, als das Kernforschungszentrum Jülich in Deutschland ihm mitteilte, sein Spiel würde einen ihrer AIX-Server zum Absturz bringen.

Da er den Fehler nicht reproduzieren konnte, wurde ihm ein Telnet-Zugang zum betroffenen System gewährt, wo er das Problem auf einen fehlerhaften X11-Funktionsaufruf zurückführen konnte. So behob er den Fehler in der Hoffnung, keine allzu negativen Auswirkungen auf nukleare Anlagen gehabt zu haben.

Das ist glücklicherweise wohl eher unwahrscheinlich, doch diese Geschichte zeigt sehr schön den verbindenden und kooperativen Charakter Freier Software, die einen manchmal an interessante Orte führen kann.

Mirror Magic

Auch Mirror Magic [6] wurde von Holger Schemel geschrieben. Um es zu seinem Recht kommen zu lassen, muß gesagt werden, daß es bereits 1988 von ihm für den Amiga unter dem Namen "Mindbender" proprietär und kommerziell vertrieben wurde. Nach Unix hat er es 1994 portiert und es dann unter der GNU General Public License als Freie Software herausgegeben.

Ziel des Spieles ist, einen Laserstrahl aus seinem Emitter in einen Detektor zu lenken. Dies könnte so einfach sein, wird jedoch durch allerlei Hindernisse erschwert, die unter Zuhilfenahme drehbarer Spiegel mit Laserkraft gesprengt oder umgangen werden können. Dabei ist zu beachten, daß unvorteilhafte Spiegelstellungen zur Überhitzung und letztlich zur Explosion des Lasers führen können, was eher unerfreulich ist.

Einfache Prinzipien führen häufig zu großem Spielspaß und Mirror Magic ist auch hier keine Ausnahme. Wie Rocks'n'Diamonds verfügt auch Mirror Magic über ansprechende Grafik, Soundeffekte und Musik.

Tatsächlich sehen sich die beiden Spiele verdächtig ähnlich, was kein Zufall ist, beruht doch Rocks'n'Diamonds auf der Engine von Mirror Magic.

Die Verwandschaft scheint sich übrigens auch in der Versionsnummer niederzuschlagen - zum Zeitpunkt des Schreibens dieser Kolumne sind beide Spiele in Version 2.0.1 erhältlich, die jeweils am 19. März 2002 veröffentlich wurden.

Verdanken tun die Leserinnen der Brave GNU World diese beiden Beiträge übrigens Glenn Alexander, der der Ansicht war, diese Spiele könnten auch für andere Leserinnen interessant sein und nach Absprache mit mir Holger Schemel darum bat, die Standardfragen für die Brave GNU World auszufüllen.

Dies ist ein Modell, das sich in der Vergangenheit bewährt hat und durchaus Nachahmer finden darf.

T.E.G.

Viele Dinge, die im realen Leben eher unangenehm auffallen würden, dürfen im virtuellen Raum mit Freude ausgeübt werden. Die Übernahme der Weltherrschaft gehört auch dazu.

T.E.G. ("Tenes Empanadas Graciela") [7] ist ein Klon des bekannten Spiels "Risiko", mit dessen Entwicklung Ricardo Quesada 1996 begonnen hat.

Das Spielkonzept von Risiko bedarf eigentlich keiner weiteren Vorstellung, doch für den Fall, daß einige Leser noch nicht das Vergnügen hatten: Risiko ist ein Brettspiel, bei dem es darum geht, mit Hilfe von Armeen die Herrschaft über bestimmte Regionen oder die ganze Welt zu erringen. Spielentscheidend sind taktische Fähigkeiten und Würfelglück.

Obwohl das Projekt im Laufe seiner Entwicklung mehrfach für tot erklärt wurde, entwickelte es sich seit Anfang 2000 kontinuierlich weiter. So verfügt es aktuell über drei verschiedene Karten, ist netzwerkfähig und es gibt Übersetzungen für Spanisch, Französisch, Deutsch und Polnisch.

Der Mangel an Karten und die eher komplizierte Erstellung neuer Karten gehört nach Aussage von Thomas R. Koll, der an T.E.G. als Übersetzer mitwirkt und die Brave GNU World Fragen beantwortete, zu den größten Schwächen. Aber auch mit dieser Schwäche ist T.E.G. eindeutig spielbar und bietet zudem eine sehr ansprechende Grafik.

Die weiteren Pläne konzentrieren sich zunächst auf die Erstellung verschiedener Regelsysteme, besserer Karten, intelligenterer Computerspieler, sowie eines Meta-Servers. Dabei ist Hilfe von interessierten Grafikern und Entwicklern außerordentlich willkommen.

T.E.G. wurde übrigens in C unter Verwendung der GTK+/GNOME Bibliotheken geschrieben und wird unter der GNU General Public License herausgegeben.

JTEG

Sollte die Wahl von C & GTK+ nicht nach dem individuellen Geschmack sein, gibt es mit J-TEG [8] von Jef De Geeter und Yves Vandewoude auch noch eine Java-Implementation von TEG, die zwar von TEG inspiriert wurde, in der Entwicklung jedoch vollkommen unabhängig ist.

Auch dieses Projekt steht unter der GNU General Public License, und dank Verwendung desselben Protokolls können TEG und JTEG problemlos miteinander kommunizieren.

An Übersetzungen bietet JTEG augenblicklich Holländisch, Französisch, Deutsch und Italienisch.

Dank der Verwendung von Java ist JTEG prinzipiell auf allen Plattformen lauffähig, die Java 1.3 oder höher unterstützen. Doch bedeutet dies natürlich auch, daß es die üblichen Java-Probleme mit sich bringt.

Es wäre gut, wenn Sun verstärktes Interesse daran zeigte, Java zu einer wirklich offenen Sprache zu machen und Freie Referenzimplementationen zu unterstützen.

GNU Chess

GNU Chess [9] gehört zu den ältesten Projekten des GNU-Systems, bereits 1984 wurde mit seiner Entwicklung begonnen. Dennoch wird es bis heute gepflegt und weiterentwickelt, und es soll auch seinen Platz in der Brave GNU World finden.

Zum Spiel "Schach" selbst muß eigentlich nicht viel gesagt werden. Wenn auch nicht als Kennerin der Regeln oder Spielerin, so sind doch viele Schülerinnen spätestens beim Erklären der Potenzrechnung anhand von Reiskörnern mit ihm in Berührung gekommen.

Auch die Wahl der GNU General Public License und C als Programmiersprache kann angesichts des Alters und der Herkunft des Projekts kaum überraschen.

Die aktivsten Entwickler von GNU Chess sind im Moment Simon Waters, der auch die Brave GNU World Fragen beantwortete, und Lukas Geyer. Stuart Cracraft, der das Projekt über lange Jahre betreut hat, unterstützt sie noch immer mit Rat und beantwortet gelegentlich Bug-Reports, zieht sich aber ansonsten langsam aus GNU Chess zurück.

Im Laufe der Jahre haben viele Leute an GNU Chess mitgearbeitet, die hier nicht alle aufgeführt werden können, jedoch sollte noch Chua Kong-Sian erwähnt werden, der maßgeblich zur Codebasis von GNU Chess Version 5 beigetragen hat.

Der aktuelle Schwerpunkt der Entwicklung liegt für Simon darauf, die sehr hohe Portabilität weiter auszubauen, bzw. beizubehalten und eine Endspiel-Datenbank, sowie einen "Analyse-Mode" zu implementieren.

Speziell der Analyse-Mode ist im Moment sein Hauptaugenmerk, da besonders komplexe Programme seiner Erfahrung nach maßgeblich davon profitieren. Als Beispiel dafür führt er ein Programm der Feuer-Forschungs Einrichtung der UK an, bei dem erst nach Einführung einer Visualisierung festgestellt wurde, daß im Modell eines brennenden Hauses die unterste Stufe der Treppe fehlte.

Zusammen mit der bereits vorgenommenen Bereinigung des Codes sollte der Analyse-Mode helfen, auch die Spielstärke von GNU Chess weiter zu erhöhen.

Obwohl es viele kostenlose Schach-Programme gibt, für die teilweise sogar der Sourcecode verfügbar ist, herrscht gerade an GNU Chess großes Interesse von Betreibern von Webseiten und Autoren grafischer Programme, die ein Schach-Programm benötigen, daß ihnen die nötige Freiheit gibt, es einfach und effizient zu portieren und integrieren.

Nach Simons Erfahrung ist gerade diese Freiheit ein wesentlicher Vorteil, der sehr geschätzt wird, wie er an der großen Zahl eingesandter Patches feststellen durfte.

Wer GNU Chess einfach nur spielen möchte, kann das natürlich tun, obwohl sich dann eines der grafischen Frontends empfiehlt. Das Bekannteste von Ihnen ist vermutlich XBoard [10] von Tim Mann, ein grafisches Frontend unter der GNU GPL.

Scid

Wer Schach eher vom Spielen kennt, der wird ab einer gewissen Spielstärke sicherlich die Dienste einer Schach-Datenbank zu schätzen wissen.

Scid ("Shane's chess information database") [11] ist eine solche Datenbank, die von Shane Hudson unter der GNU General Public License entwickelt wird.

Mit Scid können Spiele schnell und einfach in die Datenbank eingegeben werden, um später nach unterschiedlichen Kriterien in der Datenbank zu suchen. Da die Möglichkeiten zur Pflege der Datenbank wesentlich über die Nützlichkeit einer Schachdatenbank entscheiden, wurde auf diese besonderer Wert gelegt.

Auch die Möglichkeit des Trainings der eigenen Spielstärke war Shane wichtig und schließlich kann Scid in Verbindung mit einer WinBoard-kompatiblen Schach-Engine auch dazu verwandt werden, Spiele zu analysieren.

Anders als die auf diesem Gebiet sonst verbreiteten und zum Teil sehr teuren proprietären Programme läuft Scid nicht ausschließlich unter Windows, sondern auch unter Unix und hat zudem - nach Meinung seines Autors - ein einfacheres, saubereres Interface.

Natürlich entscheidet auch die Größe der Datenbank ganz maßgeblich über den Nutzen eines solchen Projekts, proprietäre Programme haben z.T. über 1.000.000 Spiele in ihrer Datenbank. Auf der Scid Webseite kann daher eine Datenbank mit über 500.000 Spielen heruntergeladen werden, die ausschließlich Spiele auf Meisterniveau und wenige Doubletten enthält.

Die Entwicklung von Scid begann 1999 und es ist mittlerweile stabil einsetzbar und unterstützt 12 verschiedene Sprachen. Geschrieben wurde es in C++, wobei für die grafische Benutzeroberfläche Tcl/Tk eingesetzt wurde.

Daher sind die aktuell dringendsten Aufgaben wohl die Wartung der Hilfe-Seiten und das Erstellen eines Tutorials für neue Nutzer. Wer also gerne Zeit beim Schachspiel verbringt, sollte durchaus mal einen Blick auf Scid riskieren.

GNU oSIP Bibliothek

RFC2543 [12] beschreibt das "Session Initiation Protocol" (SIP), ein Protokoll, mit dem Multimedia-Verbindungen initiiert, modifiziert und terminiert werden können. Gedacht ist SIP als Ersatz für das H323 Protokoll, um speziell Hardware und Software Internet-Telefone zu ermöglichen. Es sieht dabei u.A. auch Proxies als Vermittler zwischen Netzwerken und Registrare zur Auffindung dynamischer Benutzer vor.

Das Protokoll weist beabsichtigte Ähnlichkeiten mit den MAIL und HTTP Protokollen auf und so wie es heute Möglich ist, über die "mailto:greve@gnu.org" URL Emails an mich zu schicken, macht SIP es prinzipiell möglich, mich eines Tages über "sip:greve@gnu.org" telefonisch zu erreichen.

Mit der zunehmenden Umstellung von H232 auf SIP und aufgrund der Tatsache, daß Release 5 des UMTS-Protokolls auf SIP basiert, wird es zunehmend wichtig, dieses Protokoll Frei zu implementieren.

Die GNU oSIP ("Omnibus SIP") Bibliothek [13] von Aymeric Moizard ist eine solche Freie Implementation unter der GNU Lesser General Public License und wurde kürzlich Teil des GNU-Projekts.

oSIP wurde in C geschrieben, wobei die Abhängigkeiten bewußt auf die libc6 beschränkt wurden, um es nach Möglichkeit auf allen Systemen einsetzen zu können. Das macht es möglich, oSIP auch in Embedded Systemen einzusetzen und bildet eine Grundlage für Internet-Handys basierend auf Freier Software.

Die Hauptvorteile von oSIP gegenüber proprietären Projekten liegen darin, klein, flexibel und Frei zu sein. Doch auch bei den Freien Projekten gibt es nach Wissen des Autors keinen vergleichbaren SIP C Stack.

Es ist durchaus denkbar, daß SIP-basierte Internet-Telefonie in absehbarer Zukunft das herkömmliche Telefon mit den bekannten Anbietern ersetzen wird.

Kombiniert man die gesellschaftliche und wirtschaftliche Bedeutung der Kommunikation per Telefon mit der Neigung proprietärer Software zur Monopolisierung, wird unmittelbar klar, daß die Kommunikation mit Freier Software möglich sein muß, um langfristig ein globales Monopol auf Telekommunikation zu erschweren.

Mit oSIP hat Aymeric also einen weiteren wichtigen Baustein für das GNUCOMM Projekt [14] geliefert.

Libferris

Wie auch bei dem vorherigen Projekt wird ein normaler Nutzer nur selten direkt in Kontakt mit der Ferris Bibliothek [15] kommen. Auch wenn der unmittelbare Nutzen sich vermutlich nur den Entwicklern erschließt, denke ich doch, daß ein gewisses Verständnis für die Vorgänge hinter dem Vorhang auch für den ausschließlichen Nutzer vorteilhaft ist.

Die libferris ist ein "Virtual File System" (VFS), das im Adressraum des Nutzers läuft. Ihre Aufgabe ist, als Zwischenschicht den Applikationen - und damit dem Nutzer - unterschiedlichste Datenquellen möglichst einfach und konsistent zugänglich zu machen.

Die libferris ermöglicht es, Datenbanken, relationale Datenbanken, XML, Mailboxen, FTP-Zugänge, Sockets, komprimierte Archive, RPM-Archive und SSH2-Server als transparente Verzeichnisstrukturen zugänglich zu machen. Außerdem erlaubt es die gezielte Extraktion bestimmter Daten/Informationen aus unterschiedlichen Dateitypen, so z.B. ID3, MPEG2 oder allen Bildformaten, die von der Imlib2 oder ImageMagick Bibliothek unterstützt werden.

Der Vorteil für die Nutzerinnen ist, daß es unwichtig wird, wo und in welcher Form sich ihre Daten befinden, diese Details werden von der libferris gehandhabt.

Entwicklerinnen hingegen können sich darauf beschränken, eine Anbindung an die libferris zu verwirklichen, um in ihren Programmen Zugriff auf alle von der libferris unterstützten Dateiformate und Zugriffsmöglichkeiten zu erlangen.

Der Autor der libferris, Ben Martin, hat im April/Mai 2001 mit der Arbeit begonnen und bereits im Juni 2001 die erste Version herausgegeben.

Als Programmiersprache kam C++ zum Einsatz, da er die C++ "Standard Template Library" (STL) verwenden wollte, was im Übrigen auch der Grund ist, warum er nicht das gnome-vfs für seine Zwecke erweitert hat.

Die Objekt- und Streamorientierung der libferris macht ihre Erweiterung recht einfach und erlaubt es beispielsweise, eigene Module zu schreiben, die andere Quellen oder Formate innerhalb der libferris zugänglich machen.

Hilfe ist Ben vor allem in Form von Modulen willkommen, die das Einbinden anderer Protokolle als Filesysteme oder aber das extrahieren von Informationen aus bisher nicht unterstützten Filetypen erlauben. Schöne, schnelle Hardware sei ihm übrigens auch willkommen, ließ er mich wissen.

Auch wenn hier die technischen Details nicht behandelt werden konnten, ist doch zu hoffen, daß die wesentlichen Anhaltspunkte vermittelt wurden. Interessierten Entwicklern ist der Blick definitiv zu empfehlen.

Bis zum nächsten Mal

Damit genug Brave GNU World für diesen Monat. Wie in jeder Ausgabe möchte ich dazu anregen, mir Mails mit Anregungen, Ideen, Kommentare und interessanten Projekten an die übliche Adresse [1] zu schicken. Oft waren es gerade die Ideen von Lesern, die zu den interessanten Features geführt haben, also nur zu.

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] Rocks'n'Diamonds Homepage: http://www.artsoft.org/rocksndiamonds/
[6] Mirror Magic Homepage: http://www.artsoft.org/mirrormagic/
[7] T.E.G. ("Tenes Empanadas Graciela") Homepage: http://teg.sourceforge.net
[8] JTEG Homepage: http://jteg.sourceforge.net
[9] GNU Chess Homepage: http://www.gnu.org/software/chess
[10] XBoard & WinBoard Homepage: http://www.tim-mann.org/xboard.html
[11] SCID Homepage: http://scid.sourceforge.net
[12] RFC2543 http://www.ietf.org/rfc/rfc2543.txt
[13] GNU oSIP Bibliothek Homepage: http://www.gnu.org/software/osip/
[14] GNUCOMM Homepage: http://www.gnu.org/software/gnucomm/
[15] Libferris Homepage: http://witme.sourceforge.net/libferris.web

[ 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: Tue May 14 13:09:14 CEST 2002