[image of a Brave GNU World]
Brave GNU World - Issue #35
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. As announced in the previous issue, a few more entertaining ways to spend cold January days will be presented for inhabitants of the northern hemisphere. The more serious readers will find some scientific software.

NetHack - Falcon's Eye

Falcon's Eye [5] is a graphical user interface for the game NetHack, [6] which has a well-deserved community of fans for about 20 years now. This makes NetHack one of the oldest computer games still seeing further development.

NetHack is a single-player roguelike game in which a player aims to explore usually subterranean dungeouns and survive the encounters with often unfriendly creatures. A rather well-known proprietary game of this genre is "Diablo" by Blizzard, for instance.

Content and gameplay of NetHack are rather complex, so players with a "if it moves, kill it" attitude will find their characters facing an untoward end pretty quickly. The interface of NetHack is very simplistic, though. Without sound and being based on ASCII only, the phantasy of the player is being challenged. This certainly offers the advantage of being able to play NetHack in a console or on a terminal, but some more "Eye-Cand" is also nice at times.

This is where Falcon's Eye comes into play. It replaces the ASCII art by a high-resolution isometric display with dynamic lighting effects, several interface screens and a graphical introduction sequence. Also it provides sound effects for the different events in the game and allows for MIDI and MP3 background music.

Falcon's Eye also adds new ways of controlling the game as it allows using the mouse, movement via "autopilot" and context-sensitive menus. A description of objects with so-called "Tooltips" allows beginners to get into the game more easily.

The interface is highly customizable. Not only can the screen resolution be chosen, sound effects and key mapping can also be modified.

The game content itself is delivered by NetHack, which is why the combination is being referred to as "NetHack - Falcon's Eye."

Falcon's Eye was written almost single-handedly by the Finnish developer Jaakko Peltonen - he not only did the programming and the interface, he also did the graphics and music. An important part of the development process were user requests and feedback, however, since they allowed him to improve the project in many ways.

Jaakko first thought about this project in 1999, when he experimented with isometric graphics. He only discovered NetHack later when he realized that his original plan, outfitting Ultima IV with a graphical user interface, failed because Ultima is proprietary software.

Development began October 2000 and since then a lot of time and work has been spent on Falcon's Eye - the interface alone saw five revisions. At the moment Jaakko is busy fixing some bugs and problems and thinking about making the interface more attractive by including animations. The turn-based nature of NetHack makes this a little difficult, but at least "static" animations like flickering torches should be possible.

Also the next version will contain a lot of new graphics that will improve the overall attractiveness and a zoom-feature is also planned. Especially in this area there is a lot of freedom for potential volunteers willing to work on Falcon's Eye.

The complexity of NetHack makes it also impossible for Jaakko to discover all problems himself, so he needs people to playtest it. I'm sure there should be no problem to find people willing to make this "sacrifice."

Falcon's Eye was written in C with some C++ parts where this became necessary - to access DirectX, for instance. NetHack - Falcon's Eye is tested to run on GNU/Linux, DOS, Windows (95+), BeOS and Solaris SPARC.

Installing NetHack and Falcon's Eye from scratch is still problematic, but fortunately there are prebuilt packages and on-line help available to make this step much easier.

Just like NetHack itself, Falcon's Eye is release under the "NetHack General Public License" by M. Stephenson, which was written to be like the "BISON General Public License" by Richard M. Stallman although that license has been replaced by the "GNU General Public License" by now.

After all these years of development without copyright assignments, changing the NetHack license is probably impossible. But it might have been more useful to release Falcon's Eye under the GNU General Public License as it does not have this legacy.

But this should not keep you from having a lot of fun with Falcon's Eye or possibly contributing to it.

VegaStrike

The second game of this issue, VegaStrike, [7] is a 3D space-combat simulation under the GNU General Public License that certainly doesn't have to be afraid of competing with proprietary games.

In the beginning, Daniel Horn, a student of the University of Berkeley, California, wrote a GLide based clone of the unfree game "Wing Commander," that was even mentioned on the Origin home page.

According to Daniel, this code was extremely ugly and unclean, because at the time he didn't know a whole lot about programming. So he decided to start over and write an entirely customizable space-combat simulator without any connection to the "Wing Commander" game.

Not knowing about Free Software or GNU/Linux at the time, he originally wrote it for Windows using OpenGL and D3D. It wasn't planned, but in January 2001 he decided to port it to GNU/Linux and make VegaStrike platform-independent.

The current version of VegaStrike uses C++ and the OpenGL, OpenAL, glut, SDL and expat libraries. The latter is used to process XML data, which VegaStrike uses extensively for all configuration and communication. In Daniel's eyes, this exclusive and wide usage of XML is one of the big advantages of VegaStrike, since it allows even non-programmers to configure and expand VegaStrike.

Over the past year, VegaStrike was improved with the help of other students from Berkeley and other members of the Free Software community, which made it one of the best space-combat simulations available at the moment.

But development is still far from being finished. After the technical issues have been settled, VegaStrike will develop in two directions simulaneously. On one side, the explorative side and the social interaction will be expanded for players to experience alone or with friends. It will be possible to gain financial resources by trade, piracy or opening a business and players can engage in politics.

On the other hand, strategic aspects will be expanded, so players can control several ships at once, leading big fleets into combat.

In order to realize all these plans, the project team still seeks help in many forms. It needs people with a talent for artworks to work on the 3D models, developers willing to work on a platform-independent basis or game testers balancing out the values of the different parts and components. Daniel would also like find someone to further improve the physical model.

Enough said. If you are interested in VegaStrike, take a look at the home page. [7]

GSL

The "GNU Scientific Library" (GSL) [8] is a modern numercial library providing a huge number of mathematical routines under C and C++. The library itself, which is available under the terms of the GNU General Public License, was written in ANSI C.

The over 1000 functions provided by GSL cover areas like random number generation, fast Fourier transforms (FFT), histograms, interpolation, Monte Carlo integration, functions for vectors and matrices, permutations or linear algebra.

The library follows the object-oriented design and allows loading or changing functions dynamically without needing to recompile the program. Users with a little experience in C should have no problems using the GSL, thanks to the pretty extensive 500 page documentation available on-line. In the near future it will also be possible to buy a handbook that will simultaneously be available under the GNU Free Documentation License.

The interface was designed specifically to allow using GSL in high-level languages like GNU Guile or Python and of course the GSL is thread-safe.

The project began about 5 years ago, when Dr. M. Galassi and Dr. J. Theiler of the Los Alamos National Laboratory began working on a consistent and solid Free Software computational library. Since these days, it has been developed by a group of physicists with experience in the computational physics field.

In order to avoid mistakes in the algorithms, tried and tested Fortran-algorithms were reimplemented for GSL whenever possible.

Further plans include adding more functionality, but preserving the consistence and stability is paramount, so after a rather work-intensive period, the GSL can be considered stable and ready for daily use now.

Especially in science, where working cooperatively in international groups with reproduceable results is essential, using proprietary software is something that cannot be understood.

Brian Gough, who filled out the Brave GNU World questionaire for GSL, emphasized this in his email. The additional costs for software licenses, the limitations in using the software and later publication of results resulting from them as well as the lack of transparency inherent in proprietary software make Free Software the only acceptable choice for science.

The GSL very consciously chose the GNU General Public License to ensure that scientific applications would remain available to the scientific community after their publication.

Out of practical considerations and respect for privacy, the GNU General Public License allows "in-house" modifications and applications that do not have to be published.

Only after they are being distributed outside a company, house or institute, the terms of the GPL must be upheld. There is an amazingly obvious parallel to generation and publication of scientific results in this.

GNU GaMa

The name of the next project, GaMa, [9] is an acronym for "Geodesy and Mapping." At least geographers should now be aware that the project stems from the geologic metrology, remote sensing and cartography areas.

Geographers may pardon the simplification, but this requires some introductory words for non-Geographers: as most people know, the shape of our planet has always held some challenges for cartographers. In order to be able to create two-dimensional maps, different projections are being used, all of which distort some features.

But even in three-dimensions exact metrology is non-trivial, because a rotating geoid tumbling through space, which is what the planet earth really is, has no fixed reference points. Every position measurement is always an error-prone, relative measurement between two arbitrary points.

As in many other disciplines, this is being countered by making as many measurements as possible. In Geography these measurements are being referred to as "observations." To correlate all these observations with each other in order to generate the best possible model of reality is the goal of "geodesy," a branch of applied mathematics.

It needs to be taken into account that geodesy has to make a statement about the quality and error-range of the result based on the quality of the initial observations. Anyone ever doing error calculation will have a rough idea of what this means.

GNU GaMa can calculate local geodetic networks with an essentially unlimited amount of observations of different observation types. Observations are being specified in XML format and can even be entered into GNU GaMa via email.

The programming language used for GNU GaMa is C++ and the code was kept platform-independent enough to compile on GNU and Windows systems. Being a part of the GNU Project, GaMa is available under the GNU General Public License.

Further development of GaMa seeks to create independent components communicating through XML in order to improve efficiency and GNU GaMa will hopefully be able to calculate global geodetic networks one day.

Ales Cepek began work on GaMa in 1998 but quickly got help from students of his department and others. Especially Jiri Vesely, Petr Doubrava, Jan Pytel, Jan Kolar and Petr Soucek contributed to GNU GaMa.

Help is needed to revise the documentation and to create the planned Qt GUI that Jan Pytel is currently working on. The latter will hopefully make GNU GaMa much more attractive to the end user.

If you are further interested in computer-based geography, please take a look at the FreeGIS home page. [10]

GNU indent

The history of GNU indent [11] began in 1976 as a part of BSD UNIX in order to be "donated" to the Free Software Foundation later, which makes the program almost as old as Unix itself.

GNU indent helps improving the readability of C source code and can transduce different types of formatting C source code into each other. Since different developers, projects or company very often consider different types of formatting to be most comprehensible, this can be extremely useful. The standard setting of GNU indent is to convert the source code according to the "GNU Coding Standards."

Additionally, GNU indent may be used to check C syntax and help hunting for bugs and maintaining projects that way.

The project was written in ANSI C and is released under the GNU General Public License by the FSF; especially its age and flexibility make the program quite special.

The current maintainer, David Ingamells, who recently took over GNU indent from Carlo Wood, seeks help with the internationalization, because it is only available in English and Taiwanese at the moment.

So if you would like to help keeping one of the old-timers alive and attractive for other users, this is your chance.

"We speak about Free Software"

The Free Software Foundation Europe [12] issued the "We speak about Free Software" initiative [13] in mid-November 2001.

Originator of the campaign were companies in and around Free Software complaining about the abuse and fuzzyness of the term "Open Source" who asked the FSF Europe to point out publicly why Free Software is not only the better concept but also the better term.

Central arguments are that Free Software is easier to understand as it refers to the freedoms defining the phenomenon, that it is harder to abuse and that the definition is more solid. Also Free Software provides additional values that are not part of Open Source.

The initiative received a very positive echo, especially from companies being involved in Free Software a little longer. Ten of them immediately asked to be listed on the web page of the campaign.

The feedback by private people was also quite good. In one case the FSF Europe made an exception and listed the support on the page: Bruce Perens, co-founder of the Open Source movement and author of the Debian Free Software Guidelines and the Open Source Definition asked to be listed as a supporter of the initiative. As he announced earlier, he speaks about Free Software again.

If you are interested in the initiative or would like to get your company listed, please take a look at the home page. [13]

see you...

So much for the Brave GNU World this month, I hope some of you received interesting suggestions and impressions.

As usual I'd like to encourage a lot of feedback containing ideas, questions, comments and introductions to interesting projects to the usual addess, [1] because only the steady support of the Free Software community makes the Brave GNU World possible.

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] NetHack - Falcon's Eye home page http://www.hut.fi/~jtpelto2/nethack.html
[6] NetHack home page http://www.nethack.org
[7] VegaStrike home page http://vegastrike.sourceforge.net
[8] GNU Scientific Library home page http://www.gnu.org/software/gsl/
[9] GNU GaMa home page http://www.gnu.org/software/gama/
[10] FreeGIS home page http://www.freegis.org
[11] GNU indent home page http://www.gnu.org/software/indent/
[12] Free Software Foundation Europe home page http://fsfeurope.org
[13] "We speak about Free Software" home page http://fsfeurope.org/documents/whyfs.en.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: Sat Dec 22 19:05:04 CET 2001