COMMUNITY Projects PROJECTSAn up-to-date look at free software and its makers ON THE MOVE

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,"avoidU (['orc','wolf'],10.0)"), (il.avoid,"avoidU (['settler'],1.0)"), (il.flock,"flock()"), (il.peck,"peck()")]

Create virtual 3D worlds with Worldforge, and launch Windows To play the game, users use their own choice of client to sign on to the World- programs with the -derived ReactOS. forge server. Players are not restricted to the standard 3D that is so typical of this BY CARSTEN SCHNOBER AND MARTIN LOSCHWITZ kind of game. Besides the standard cli- ent, Sear, there are two-dimensional, and even text-based clients. All of these com- he preparations for GPLv3, the Online. Each player slips into the role of ponents can be downloaded from the first major change to the GNU a character who has to make his or her Worldforge homepage. TGeneral Public License since way through a computer-simulated Media sets organize the GUI-based 1991, have made good progress over the world (see Figure 1). The players are free view. They give creatures and buildings past few weeks. The core issues, such as to interact, although they do have to a visible texture and are exchangeable. how GPL handles software patents, keep to the rules for the virtual world. In theory, you really could design a wolf caused some discussion. And important A Worldforge server manages these in sheep’s clothing. The appearance has decisions remain in other core areas. In a worlds in a PostgreSQL database and no influence on the characteristics and posting to the debian-project mailing list parses the ruleset that governs the behavior of the object in question. The [1], Debian developer Florian Weimer behavior of the various entities: humans, new media server lets the client down- suggested that the Debian Project animals, and objects. Worldforge uses a load and integrate the media used by the become actively involved in discussions special Python dialect. The sample game server directly. focusing on the new license. And there world defines a village as follows: will be ample opportunity to do so, as Creating Your Own Worlds soon as the FSF throws its first draft into village=[('hall','location', U Worldforge lets you change almost any the ring for discussion. hall_xyz), elements. The main task facing the pro- ('butcher','location', U grammer is completing rulesets, graph- Worldforge butcher_stall_xyz), ics, sounds, and clients. The only fully- Worldforge [2] gives users a program- ('pig','location', U functional game, Acorn, is for demon- ming environment for creating fantastic pig_sty_xyz)] stration purposes. The aim of the game 3D worlds. You can use Worldforge to is trivial; players just have to feed a herd create online role-playing games similar The village object is just a holdall for of pigs and protect it against wolfs and to the popular commercial game, Ultima other objects that represent objects, zombies from the neighboring woods.

94 ISSUE 63 FEBRUARY 2006 WWW.- MAGAZINE.COM Free Software Projects COMMUNITY

Figure 1: Creating virtual worlds in the Worldforge environment. Figure 2: ReactOS emulates a Windows system completely.

If you are interested in contributing, version 0.9.1 and to release a beta ver- for the Debian-curiosa mailing list [7]. the excellent framework design will help sion of Wine for the first time. But the founding of the Nexanta project you get started. Check out the mailing [8] early in November changed this. The list and the project’s IRC server at irc. Emulator project aims to develop and distribute an worldforge. org for more details. The ReactOS [6] project (Figure 2), based on the Solaris which was launched in 1998, has a dif- kernel but with the Debian userland. Windows to Freedom ferent approach. The developers have set This project was actually made possi- Although you probably prefer free soft- the goal of emulating Windows and all ble by none other than Sun. A few ware in general, and Linux in particular of its interfaces to allow any Windows months ago, the Solaris vendor intro- as an operating system, you may have program to run on ReactOS. duced Open Solaris, placing the source no alternative to the odd Windows pro- The free operating system is still miles code under a free license, accompanied gram from time to time. In fact, the mere away from binary compatibility. But the with the sincere hope that the FOSS existence of projects that aim to run recent 0.2.8 version was a big step, with scene would adopt the system and do Windows programs without a Windows the developers improving hardware sup- something wonderful with it. Jörg Schil- installation is evidence enough to sup- port for USB, SCSI, and network devices. ling, the author of cdrecord, and a prom- port this theory. Although the list of supported hard- inent Solaris fan of many years’ stand- The oldest of these projects is proba- ware and software on the ReactOS ing, released SchilliX not much later bly the non-emulator Wine [3]. The proj- homepage is currently very preliminary, (although the system is of more interest ect is now twelve years old, almost as the pre-alpha GUI is already starting to to developers right now). Nexanta aims old as Linux itself. The acronym stands look like Windows. The developers are to bring Debian GNU/Solaris to the for “Wine Is Not An Emulator”: Wine not simply focusing on emulating Win- masses. I does not emulate the Windows environ- dows but also want to integrate useful ment but translates calls to the Windows features from free desktop environ- INFO API into their Linux counterparts. As ments, such as the ability to toggle [1] Message from Florian Weimer: always, success is a matter of the details. between multiple virtual desktops. http:// lists. debian. org/ debian-project/ Users can find it difficult to ascertain if The ReactOS homepage describes the 2005/ 11/ msg00035. html or how well a certain program should project mainly as an exercise in operat- [2] Worldforge: perform with Wine. And the Wine ing system programming, but the devel- http:// www. worldforge. org homepage has introduced a list to help opers would really like to achieve com- [3] Wine: http:// wine. sourceforge. net answer these users questions. patibility to Windows. The freely acces- The specialist commercial products sible source code lets developers track [4] Crossover Office: http:// www. Crossover Office [4] and Cedega [5] put down vulnerabilities, rather than expos- codeweavers. com/ products/ cxoffice Wine to more effective use to run Micro- ing users to the same issues that affect [5] Cedega: http:// www. cedega. com soft Office or Windows games on Linux. Windows. The completion of ReactOS, [6] ReactOS: http:// www. reactos. org The fact that these products really can however, is ultimately unachievable, as [7] Debian-Curiosa mailing list: help Linux users run selected Windows the Windows API itself is under continu- http:// lists. debian. org/ debian-curiosa/ applications shows that the Wine project ous development. [8] Nexanta project homepage: has turned out some useful fundamental http:// www. gnusolaris. org/ gswiki work. Debian GNU/Solaris [9] Suggestions: The developers have now decided to At first glance, you might think that projects@linux-magazine. com bring the alpha phase to a close with Debian GNU/Solaris would be an entry

WWW.LINUX- MAGAZINE.COM ISSUE 63 FEBRUARY 2006 95