An up-to-date look at free software and its makers

Projects on the Move


Create virtual 3D worlds with Worldforge, and launch Windows programs with the Wine-derived ReactOS.

By Carsten Schnober and Martin Loschwitz

The preparations for GPLv3, the first major change to the GNU General Public License since 1991, have made good progress over the past few weeks. The core issues, such as how GPL handles software patents, caused some discussion. And important decisions remain in other core areas. In a posting to the debian-project mailing list [1], Debian developer Florian Weimer suggested that the Debian Project become actively involved in discussions focusing on the new license. And there will be ample opportunity to do so, as soon as the FSF throws its first draft into the ring for discussion.

Worldforge

Worldforge [2] gives users a programming environment for creating fantastic 3D worlds. You can use Worldforge to create online role-playing games similar to the popular commercial game, Ultima Online. Each player slips into the role of a character who has to make his or her way through a computer-simulated world (see Figure 1). The players are free to interact, although they do have to keep to the rules for the virtual world.

Figure 1: Creating virtual worlds in the Worldforge environment.

A Worldforge server manages these worlds in a PostgreSQL database and parses the ruleset that governs the behavior of the various entities: humans, animals, and objects. Worldforge uses a special Python dialect. The sample world defines a village as follows:

village=[('hall','location', hall_xyz),
('butcher','location', butcher_stall_xyz),
('pig','location', pig_sty_xyz)]

The village object is just a holdall for other objects that represent objects, buildings, and creatures. The developers have managed to minimize the vector between the programming language and English, reducing the learning curve for programming newcomers. For example, the Worldforge Python dialect defines the behavior of a chicken like this:

chicken_goals=
 [(il.avoid,"avoid(['orc','wolf'],10.0)"),
 (il.avoid,"avoid(['settler'],1.0)"),
 (il.flock,"flock()"),
 (il.peck,"peck()")]

To play the game, users use their own choice of client to sign on to the Worldforge server. Players are not restricted to the standard 3D that is so typical of this kind of game. Besides the standard client, Sear, there are two-dimensional, and even text-based clients. All of these components can be downloaded from the Worldforge homepage.

Media sets organize the GUI-based view. They give creatures and buildings a visible texture and are exchangeable. In theory, you really could design a wolf in sheep's clothing. The appearance has no influence on the characteristics and behavior of the object in question. The new media server lets the client download and integrate the media used by the game server directly.

Creating Your Own Worlds

Worldforge lets you change almost any elements. The main task facing the programmer is completing rulesets, graphics, sounds, and clients. The only fully-functional game, Acorn, is for demonstration purposes. The aim of the game is trivial; players just have to feed a herd of pigs and protect it against wolfs and zombies from the neighboring woods.

If you are interested in contributing, the excellent framework design will help you get started. Check out the mailing list and the project's IRC server at irc.worldforge.org for more details.

Windows to Freedom

Although you probably prefer free software in general, and Linux in particular as an operating system, you may have no alternative to the odd Windows program from time to time. In fact, the mere existence of projects that aim to run Windows programs without a Windows installation is evidence enough to support this theory.

The oldest of these projects is probably the non-emulator Wine [3]. The project is now twelve years old, almost as old as Linux itself. The acronym stands for "Wine Is Not An Emulator": Wine does not emulate the Windows environment but translates calls to the Windows API into their Linux counterparts. As always, success is a matter of the details. Users can find it difficult to ascertain if or how well a certain program should perform with Wine. And the Wine homepage has introduced a list to help answer these users questions.

The specialist commercial products Crossover Office [4] and Cedega [5] put Wine to more effective use to run Microsoft Office or Windows games on Linux. The fact that these products really can help Linux users run selected Windows applications shows that the Wine project has turned out some useful fundamental work.

The developers have now decided to bring the alpha phase to a close with version 0.9.1 and to release a beta version of Wine for the first time.

Emulator

The ReactOS [6] project (Figure 2), which was launched in 1998, has a different approach. The developers have set the goal of emulating Windows and all of its interfaces to allow any Windows program to run on ReactOS.

Figure 2: ReactOS emulates a Windows system completely.

The free operating system is still miles away from binary compatibility. But the recent 0.2.8 version was a big step, with the developers improving hardware support for USB, SCSI, and network devices.

Although the list of supported hardware and software on the ReactOS homepage is currently very preliminary, the pre-alpha GUI is already starting to look like Windows. The developers are not simply focusing on emulating Windows but also want to integrate useful features from free desktop environments, such as the ability to toggle between multiple virtual desktops.

The ReactOS homepage describes the project mainly as an exercise in operating system programming, but the developers would really like to achieve compatibility to Windows. The freely accessible source code lets developers track down vulnerabilities, rather than exposing users to the same issues that affect Windows. The completion of ReactOS, however, is ultimately unachievable, as the Windows API itself is under continuous development.

Debian GNU/Solaris

At first glance, you might think that Debian GNU/Solaris would be an entry for the Debian-curiosa mailing list [7]. But the founding of the Nexanta project [8] early in November changed this. The project aims to develop and distribute an operating system based on the Solaris kernel but with the Debian userland.

This project was actually made possible by none other than Sun. A few months ago, the Solaris vendor introduced Open Solaris, placing the source code under a free license, accompanied with the sincere hope that the FOSS scene would adopt the system and do something wonderful with it. Jörg Schilling, the author of cdrecord, and a prominent Solaris fan of many years' standing, released SchilliX not much later (although the system is of more interest to developers right now). Nexanta aims to bring Debian GNU/Solaris to the masses.

INFO
[1] Message from Florian Weimer: http://lists.debian.org/debian-project/2005/11/msg00035.html
[2] Worldforge: http://www.worldforge.org
[3] Wine: http://wine.sourceforge.net
[4] Crossover Office: http://www.codeweavers.com/products/cxoffice
[5] Cedega: http://www.cedega.com
[6] ReactOS: http://www.reactos.org
[7] Debian-Curiosa mailing list: http://lists.debian.org/debian-curiosa/
[8] Nexanta project homepage: http://www.gnusolaris.org/gswiki
[9] Suggestions: projects@linux-magazine.com