Libre Gaming Infrastructure

Libre Gaming Manifesto

by Lyberta CC-BY-SA 4.0

This document describes what it means to be truly libre game. Unlike other software, video games have some unique aspects that are not dealt with properly by free software movement. For example, while the license allow modding of the game, the game itself or developer-run master servers may substantially complicate the ability to mod.

All games

The points in this section apply to all games.

The game code must be free software

Having the free code is essential, without it you have no freedom.

The game assets must be free cultural works

The license of the assets is as important as the license of the code. You can’t play any non-trivial game without its assets. Proprietary assets deny you fundamental freedoms. Unfortunately, there are a lot of games with free code but proprietary assets. id software released the code of their old games with GPL license but the assets remain proprietary. Likewise, a lot of Cube/Cube 2 based games have proprietary assets.

If possible, there should be a plugin system which allows to load plugins which change the way the game works

Often people want to run several mods at once that are developed independently of each other. The plugin system makes it easy to do so.

Multiplayer games

The points in this section apply to games with online multiplayer.

The server owners must have the full control over their servers

People should have control over their computing. Server owners put time and resources into their servers and deserve to make their own rules. Red Eclipse master server requires server owners to give privileges that is sometimes even higher that administrator to people appointed by the developers. This is a restriction of fundamental freedoms.

All simulation of the game world must happen on the server. Client must only simulate functions that are essential to gameplay like movement prediction

Every line of code for simulating the world in the client makes it harder for server owner to modify the gameplay. Cube engine based games run most of the simulation in the client which makes it much harder to mod them.

A server should have the ability to upload custom content to the client which will be activated while playing on that server

If there is no way to upload custom content, the creativity is stifled tremendously.

If possible, there should be a way for a server to modify client-side code

If client-side code may be modded, it gives almost unlimited modding possibilities. Of course, arbitrary code execution is a security risk. This means that the client should run some sort of virtual machine that will not allow any dangerous operations such as filesystem access. Ideally, the server would upload a source code that will be JIT compiled so the client will always have access to it.

If the game uses master server, it may have policies which specifically restrict listing of modified servers, but they must be in the same spirit as policies which restrict unmodified servers

Modding the game is a fundamental freedom and games which use master server rely on it to discover servers. If a master server does not allow the modded servers, it denies the fundamental freedom. Red Eclipse did this and there are no modding scene there.

If possible, every content that is uploaded to the client should have a license which can be checked before downloading the content

As with JavaScript that makes most people run proprietary software automatically without their acknowledgement, proprietary content that is automatically uploaded to client is a threat to freedom. A good game will at least display a warning message before downloading proprietary content.

If possible, there should be a way to easily download the source code of all custom content that is used by the server

If you are playing it, you should have access to the source. If you don’t have it, you are playing a proprietary game even if it is on a specific server.