Meet the GNU contributors in person at the GNU Hackers' Meeting!

The 8th GNU Hackers' Meeting takes place in Munich, Germany from 15–17 August 2014. It spans three days, and comprises talks about new GNU programs, status of the GNU system and news from the free software community.

Register now to secure your place.

GNU Aetherspace - Game Engine

History

When Aetherspace was started we used a game engine licensed under the GNU GPL and believed this was sufficient. As development continued we found this engine contained many features which were only usable with proprietary drivers which that engine's maintainer recommended.

After evaluating several other game engines available under a GPL-compatible license we reached the conclusion that the only way to develop a truely free software game would be to write our own engine, and so we started to.

This page details the engine design and purpose. For technical information see the game engine's page.

Priorities

The engine is designed with these three priorities;

  1. No feature of the engine is designed to require proprietary software.
  2. The engine should run on any modern device.
  3. The engine should be as easy to use as possible to attract new Aetherspace developers and developers of other free software games.

These priorities are very carefully ordered; there are many platforms which the engine could run on but would require depending on proprietary software or making the engine available on those devices only under a restricted license. Examples include Apple's phones and Microsoft's game consoles.

Additionally, many contributors may be more comfortable working with tools which only support proprietary codecs or only export to formats which require proprietary software to edit. We hope that such artists will understand that the time needed to learn new tools is worth the freedom offered by them.

Programming Language

Most free software graphics tools (and many proprietary tools as well) use Python, most notably including GIMP and Blender. As its often difficult to draw a line between "code" and "content" in a game, most artists need to work directly with the instruction code that use their contributions. For this reason we started and remain with Python for most game code.

The game engine itself is written in C, GObject, cross-platform SIMD assembly, and OpenGL vertex shaders.

Dependencies

The engine frontend is a Python library written in pure C that depends only on Python 3 and the engine's backend.

The engine backend is primarily built on Gnome libraries such as GLib, GDK, and Cairo. The backend does not depend on Python so it may be useful for other Gnome-based applications.

OpenGL is used for 3d rendering and is ensured to work with both Mesa and Gallium. Our baseline for graphics support is the free software r200 (Radeon 9000) and i915 drivers. Any accelerated free software drivers should be able to support the same OpenGL extensions as these older drivers. The engine is occassionally tested to also work with proprietary drivers for X11, Apple's OSX, and Microsoft Windows.

See the game engine project site for a complete list of dependencies for both the backend and Python frontend listed as requirements.

Licensing

The GNU Affero General Public License was chosen because the engine is intended to support play through a web browser plugin or mobile phone app with the game running primarily on a server. We call this cloud gaming and hope to leverage this form of distribution for web and mobile game markets.

Getting involved

If you'd like to get involved in engine development, a good place to start is on irc.freenode.net in the game engine project IRC channel (#PySoy).

 [FSF logo] “Our mission is to preserve, protect and promote the freedom to use, study, copy, modify, and redistribute computer software, and to defend the rights of Free Software users.”

The Free Software Foundation is the principal organizational sponsor of the GNU Operating System. Support GNU and the FSF by buying manuals and gear, joining the FSF as an associate member, or making a donation, either directly to the FSF or via Flattr.

back to top

Translations of this page