Subscribe to the Free Software Supporter — the monthly update from the Free Software Foundation
 [image of a Brave GNU World]
Brave GNU World - Issue #39
Copyright © 2002 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

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

Welcome to another issue of the Brave GNU World that will inform you about some more ways to creativly free yourself of free time.

Rocks'n'Diamonds

"Rocks'n'Diamonds" by Holger Schemel is a game which bears a striking resemblance with classics like "Boulder Dash" (Commodore 64), "Emerald Mine" (Amiga) or "Supaplex" (PC). This isn't overly suprising since it was written by a fan of these games for other fans.

For the unenlightened: the point of this classic 2D Arcade-game is to collect diamonds without suffering a premature end. To achieve this, you can (among other things) move rocks, drop bombs and fool monsters.

The game was written in C and with an eye on portability. It runs on pretty much any flavor of Unix - given that X11 is supported - and also under Mac OS X, DOS and Windows. With smooth scrolling of levels, joystick support and a freely customizable keyboard binding it also makes sure to be aware of the preferences and circumstances of its users.

On top of the quite original-looking graphics, the playing fun is increased by support for sound effects and music on all operating systems allowing this.

The game gains an additional attractiveness through its networking support under Unix that allows up to four players to play levels together. Also it has a local multi-player mode that allows to solve levels as a team on a single machine.

To make sure there will be no boredom the game has literally thousands of levels that need solving and once you have finished those, there is still the level editor.

The game was first published between 1994 and 1995 for GNU/Linux and Solaris before the MS-DOS version in 1998 and the Windows version in 2001. Holger Schemel publishes it as Free Software under the GNU General Public License.

Although the game is already very mature, development is still active. According to Holger, especially emulating the different game engines of Boulder Dash, Emerald Mine, Supaplex & Sokoban is still posing some problems since it is not good enough to play all their original levels.

If you would like to help, you're welcome to do so. Also contributions in terms of graphics, help on porting it to another platform or new levels are very welcome.

Holger himself was able to experience the sometimes very interesting aspects of such a cooperation sometime in mid-90ies when nuclear research center Jülich in Germany told him his game was crashing one of their AIX servers.

Since he wasn't able to reproduce that bug, he was provided with a telnet access to the affected system and tracked the problem down to a faulty X11-system call. So he was able to fix the bug while hoping he did not have too much of a negative impact on some nuclear gear.

Fortunately that is not very likely, but this little story nicely shows how the connecting and cooperative spirit of Free Software can sometimes being you to interesting places.

Mirror Magic

Like the last game, Mirror Magic [6] was also written by Holger Schemel. To do it justice, one has to say that it was written in 1988 already and distributed commercially and as proprietary software under the name "Mindbender" for the Amiga. He then ported it to Unix around 1994 and published it unter the GNU General Public License as Free Software.

The goal of the game is to guide a laser beam out of its emitter into a detector. Given a couple of player-adjustable mirrors this could be so easy but is made increasingly difficult by all kinds of obstacles that can either be circumvented or destroyed by laser power. In some positions, the mirrors will cause the beam to feedback into the emitter, causing the laser to overheat and eventually explode; which is a rather undesirable outcome.

Simple priciples can lead to a low of fun and Mirror Magic is no exception to this rule. And just like Rocks'n'Diamonds, Mirror Magic also provides nice graphics, sound effects and music.

In fact both games have a suspiciously similar look, which is no circumstance since Rocks'n'Diamonds is based on the engine of Mirror Magic.

Their relationship goes as far as the version number, which - at the time this column was written - is 2.0.1 released on March 19th 2002 for both games.

Readers of the Brave GNU World owe their thanks for both these project introductions to Glenn Alexander, by the way. He was convinced that other readers might also like to know about them and after talking to me he asked Holger Schemel to fill out the Brave GNU World standard questions.

This has proven to be a very good and functional approach in the past and should definitely adopted by more people.

T.E.G.

Many things that would raise complaints in real life can be enjoyed freely in virtual space. Achieving world domination is one of them.

T.E.G. ("Tenes Empanadas Graciela") [7] is a clone of the well-known game "Risk" started by Ricardo Quesada in 1996.

The game concept of Risk shouldn't need much explanation, but in case that some readers have not yet enjoyed themselves with it: Risk is a board-game in which the players compete with their armies in taking over control over certain regions or the whole world. Winning depends on tactical ability and some luck rolling the dice.

Although the project was declared dead multiple times during its development, it is under continuous development since early 2000. It currently contains three maps, capable of network play and translations into Spanish, French, German and Polish.

Lack of maps and the relatively complicated procedure of generating new ones is one of the biggest weaknesses according to Thomas R. Koll, who contributes to T.E.G. as a translator and answered the Brave GNU World questions. But even with this weakness T.E.G. is clearly playable and the graphics are quite nice.

Further plans focus on the generation of different rule-systems, better maps, increased intelligence of robots and a meta-server. Help with these tasks by interested graphics designers or developers is certainly welcome.

T.E.G. was written in C using the GTK+/GNOME libraries and is published under the GNU General Public License.

JTEG

Should the choice of C & GTK+ not suit your individual taste, you could try JTEG [8] by Jef De Geeter and Yves Vandewoude. It is a Java implementation of TEG that has been inspired by TEG although codebase and development are entirely independent.

This project is also published under the GNU General Public License and since it uses the same networking protocol as TEG, both games can communicate with each other.

In terms of translations, JTEG currently offers Dutch, French, German and Italian.

Thanks to using Java, JTEG should be able to run on almost all platforms supporting Java 1.3 or higher. But of course this also means it will have the Java-related problems.

It would be good if Sun showed more interest in making Java a fully open language and support Free reference implementations.

GNU Chess

GNU Chess [9] is among the oldest projects of the GNU system, its development began in 1984. It is under maintenance and development until today and should also find its place in the Brave GNU World.

The game "Chess" itself shouldn't need explanation. Even if the non-players often know the rules and many people have gotten in contact in school when taking numbers to the nth power was explained with a chess board and grains of rice.

Given origin and age of the project the choices of GNU General Public License and C as the programming language can hardly surprise anyone.

The most active current developers of GNU Chess are Simon Waters, who answered the Brave GNU World questionnaire, and Lukas Geyer. Stuart Cracraft, who maintained the project for many years, still helps them with advice and occasional replies to bug-reports, however, even if he is slowly pulling out of GNU Chess.

Over the years many people have contributed to GNU Chess and it seems impossible to mention them all, but Chua Kong-Sian should still be mentioned since he contributed the major part of the GNU Chess version 5 codebase.

Simon sees the current development focus on maintaining and further expanding the high portability and on implementing a end-game database and an "analysis mode."

Especially the analysis mode is something he considers important since in his experience complex programs can profit enormously from such a mode. As an example he mentioned a program of the fire research unit in the UK in which they included visualization features and then discovered that in their burning building model the staircase was one step short of the landing.

Along with the already finished code-cleanup, the analysis mode should also help further increasing the playing strength of GNU Chess.

Even if there are many gratis Chess programs for some of which you can even get the source code, GNU Chess seems to be very popular with maintainers of web sites and authors of graphical chess programs who need a Chess engine that will give them the necessary freedom to port and integrate it easily and efficiently.

According to Simons experience this freedom offered by GNU Chess is a major advantage that is very much valued as he was able to discover by the large amount of patches sent in.

If you just want to play GNU Chess, you can of course do so, but a graphical front end would probably be useful. The best known frontend is probably XBoard [10] by Tim Mann, a graphical frontend under the GNU GPL.

Scid

Those who know Chess from playing will certainly know the value of a good Chess database - at lease once you reached a certain level of playing strength.

Scid ("Shane's chess information database") [11] is such a database, developed by Shane Hudson under the GNU General Public License.

Games can easily and quickly be entered in Scid in order to later search in the database for certain search parameters. Since the use of any database is largely determined by the capabilities of maintaining it, this part of the functionality has been given a lot of the attention.

Also the possibility of training your own playing strength was important to Shane and with the help of a WinBoard-compatible Chess engine you can even use it for analyzing games.

Other than the in this area predominant proprietary and sometimes very expensive programs Scid does not only support Windows but also runs under Unix and has - according to its author - a much easier, cleaner interface.

Of course the size of the accompanying game database is also an important factor for the usefulness of such a project. Some proprietary programs have more than 1.000.000 games in their database. From the Scid web site, you can download a high-quality database with over 500.000 games of master level and with little duplicity.

The development of Scid began in 1999. Today it is clearly a stable project with translations into 12 languages. As a program language, Shane used C++ with Tcl/k for the graphical user interface.

Therefore the most important tasks are maintenance of the help pages and the creation of a tutorial for new users. So if you like spending time pondering over Chess, you should risk a look at Scid.

GNU oSIP Library

RFC2543 [12] describes the "Session Initiation Protocol" (SIP), a protocol to initiate, modify and terminate multimedia sessions. SIP was invented as a lightweight replacement of H323 in order to allow especially hardware and software internet telephones. Among other things it allows for proxies as gateways between networks and registrars to locate dynamic users.

The protocol bears a - wanted - resemblance to the MAIL and HTTP protocols and just like it is possible today to mail me with the "mailto:greve@gnu.org," SIP will make it possible to call me over the "sip:greve@gnu.org" URL one day.

Given that more and more companies shift from H232 to SIP and given that release 5 of the UMTS protocol is based on SIP, it becomes increasingly important to implement this protocol freely.

The GNU oSIP ("Omnibus SIP") library [13] by Aymeric Moizard is such a Free implementation under the GNU Lesser General Public License and has recently become part of the GNU-Project.

oSIP was written in C, deliberately limiting dependencies to the libc6 only in order to be able to use it on as many systems as possible. This allows using oSIP in embedded devices and creates the foundation of mobile internet phones based on Free Software.

The major advantages of oSIP compared to proprietary projects are that it is very small, flexible and Free. But to the knowledge of Aymeric, there also no other Free Software SIP C stack that is comparable to oSIP.

It is quite possible that SIP-based internet-telephony will completely replace the current telephone with its well-known players.

If one combines the social and economic importance of communication by phone with the tendency of proprietary software to create monopolies, it immediately becomes apparent that communication as to be possible with Free Software in order to help preventing a global monopoly on telecommunication.

So it is easy to understand why oSIP is a seminal contribution to the GNUCOMM project [14] by Aymeric.

Libferris

Like the previous project, the Ferris library [15] is also a part that most "normal users" will never come in direct contact with. But even if these features are only immediately useful to developers, I believe it to be useful to have a certain understanding for whats happening "behind the curtains" - even for pure users.

The libferris is a "Virtual File System" (VFS) running in user-space. Its function is to provide transparent, easy and consistent access to many different sources of data for programs - and therefore the users.

The libferris allows to make databases, relational databases, XML, mailboxes, FTP-accounts, sockets, compressed & RPM-archives and SSH2 servers available as transparent directory structures. Also it allows the direct extraction of certain information/data out of different file formats like ID3, MPEG2 and all image formats supported by the Imlib2 or ImageMagick librairies.

Users gain the advantage that it becomes irrelevant where or in which format data is stored, all such details are handled by the libferris.

Developers don't have to worry about supporting dozens of file formats and transport layers anymore - all they need to write is a binding to libferris.

Ben Martin began working on the libferris in April/May 2001 and already released the first version in June 2001.

As the programming language for the project he chose C++, since he wanted to make extensive use of the C++ "Standard Template Library" (STL), which is also the reason why he decided against expanding the gnome-vfs for his purposes.

The object and steam orientation of libferris makes its expansion pretty easy and allows writing your own modules to make other sources or formats accessible through the libferris.

Ben is mostly seeking help in form of modules that allow including different protocols or extracting information out of previously unsupported file formats. But he also wouldn't mind being provided with nice, fast hardware as he pointed out.

Even if the technical details could not be discussed here, I still hope you got the basic concept and most important key features. Interested developers should definitely risk a look.

Until the next time

That's enough Brave GNU World for this month. As in every issue, I'd like to encourage you to send mail with ideas, feedback, comments and interesting projects to the usual address. [1] Very often it was the ideas of readers leading to interesting features, so don't hesitate.

Info
[1] Send ideas, comments and questions to Brave GNU World <column@brave-gnu-world.org>
[2] Home page of the GNU Project http://www.gnu.org/
[3] Home page of 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 home page http://www.artsoft.org/rocksndiamonds/
[6] Mirror Magic home page http://www.artsoft.org/mirrormagic/
[7] T.E.G. ("Tenes Empanadas Graciela") home page http://teg.sourceforge.net
[8] JTEG home page http://jteg.sourceforge.net
[9] GNU Chess home page http://www.gnu.org/software/chess
[10] XBoard & WinBoard home page http://www.tim-mann.org/xboard.html
[11] SCID home page http://scid.sourceforge.net
[12] RFC2543 http://www.ietf.org/rfc/rfc2543.txt
[13] GNU oSIP library home page http://www.gnu.org/software/osip/
[14] GNUCOMM home page http://www.gnu.org/software/gnucomm/
[15] Libferris home page 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:08:51 CEST 2002