# Freedoom

Freedoom is a complete, free content first person shooter game, based on the Doom engine.

Freedoom is not a program - rather, it consists of the levels, artwork, sound effects and music that make up the game. To play Freedoom, it must be paired with an engine that can play it.

Freedoom is actually three games in one, consisting of two single-player oriented campaigns and one set of levels designed exclusively for multiplayer deathmatch:

Freedoom: Phase 1 | Four episodes, nine levels each, totalling 36 levels. This game aims for compatibility with The Ultimate Doom mods, also known as plain Doom or Doom 1.
Freedoom: Phase 2 | 32 levels in one long episode, featuring extra monsters and a double-barrelled shotgun. This project aims for compatibility with Doom II mods.
FreeDM | A 32-level game designed for competitive deathmatch play.

For more information, see https://freedoom.github.io/.

## How to play

Since Freedoom is only the game data, you will still need to download an engine separately. These are also often termed “source ports” by the community. There are an overwhelming number of choices available, a lengthy list of which is available on the Doom Wiki.

One particularly recommended by the Freedoom project is GZDoom. This engine offers good support for single-player, multi-player, and the majority of mods created for both Doom and Freedoom.

On Windows, you should place Freedoom’s data files (those ending with .wad) alongside the engine (eg, odamex.exe). On Unix-like systems, these data files should go in either /usr/share/games/doom or your home directory. If Freedoom comes packaged as part of your operating system distribution, it should already be installed into the proper location.

For Unix-like operating systems, such as GNU/Linux or a BSD variant, Freedoom may be packaged and installed with programs named freedoom1, freedoom2, and freedm that automatically run an engine for proper play. Desktop files may also be installed so that you can start the game using a graphical interface and avoid the command line a ltogether.

## Manual

Freedoom has a complete PDF format manual that describes how to play the game, including an introductory tutorial and some tactical tips. It also has information on the monsters and power-ups you’ll encounter during play. The manual is available in multiple languages and can be downloaded on the website. Printed, physical manuals are also available for purchase.

## Compatibility

A secondary goal of Freedoom is compatibility with modifications ("mods") for the original Doom. There is a massive back catalog, spanning over three decades, containing thousands of Doom levels and other mods made by fans of the game. Freedoom aims to be compatible with these and allows most to be played without the need to use non-free software.

## What “free” means

When we speak of free content or software, we refer to the movement in which your freedoms to use, copy, modify, and study a work is not infringed. For example, you may freely use Freedoom for any purpose you see fit, you may redistribute it to anyone without needing to ask for permission, you may modify it (provided you keep the license intact, see COPYING), and you may study it—for example, to see how an “IWAD” is built. To facilitate this, you can get the full source code for Freedoom, in this case, in the form of a DeuTex tree.

You may read more about free software at the GNU and Free Software Foundation websites.

## Contributing to Freedoom

Contributions to Freedoom are always welcome, however there are a few guidelines that should be followed:

### Intellectual property

We know people hate legalese, but this is important. This applies to everything which is submitted.

You must be careful when basing on existing graphics or sounds. Most Doom projects are lax on reusing intellectual property—there are many mods which contain modified Doom sprites, for example. However, due to the nature of this project, we do not have the same liberty to rip as we please.

The general rules go as follows:

- You must have permission for everything you submit. If you make your own resources, do not base on resources from Doom or any other restricted work. If you take work from other places, please make sure that the work is freely-licensed or that you obtain permission to include it in the Freedoom project. They may not place additional restrictions compared to the normal Freedoom license.

- Freedoom’s name often leads some people to think that the project’s goal is to make a "free clone of Doom". This is not the case! While compatibility with Doom is a goal, we are our building our own game. Please make an effort to ensure your work is original and distinct, and not just a copy of anything from Doom.

- Be especially careful of “free textures” (or “free sounds” or “free graphics”) sites. Although these would appear at first to be okay to use, many are free for “non-commercial use only.” One of the things we want to be able to do is put this in GNU/Linux distributions (which can be sold or developed commercially).

### Levels

All levels for Freedoom must be vanilla-compatible, requiring an expanded-limits or limit-removing engine is not permissible. This means you may not exceed the limits of the original Doom engine, and do not depend on additional mapping features. Levels should be in Doom’s original format, not in “Hexen”-format.

It is sensible to also heed the following guidelines:

- Make sure that skill levels are implemented, and that all multiplayer start points, both cooperative and deathmatch, are present.

- Try to make levels appropriately difficult for their position within the progression of the game. Also bear in mind that not all players may be as skilled a player as you.

- Do not use tricks that exploit Doom’s software renderer; some engines, especially those that use hardware accelerated rendering, may not render it properly. Examples of tricks to avoid include those used to simulate 3D bridges and “deep water” effects.

- Test your levels in Chocolate Doom to make sure that vanilla compatibility is maintained. This is an engine with strict adherence to vanilla Doom limits and bugs, and working in it assures that levels can be played with any Doom engine.

- Use a Doom editor to check for errors. In Eureka it’s possible to check for errors with the Check / All menu, or by pressing F9.

- If possible run make test and fix any errors found. Note that some of the errors can be fixed by make fix.

### Graphics

Graphics should generally have the same color and size as the original Doom graphics, as to remain compatible with mods. Otherwise, levels may end up looking like a nightmare in design. They may be thematically different as long as it doesn’t clash.

Doom uses a fictional corporation abbreviated as “UAC:” this is trademarked by id Software and cannot be used in Freedoom. Instead, use the initials “AGM” for Freedoom.

### Documentation

Freedoom always needs help with documentation, so please send your patches, but keep in mind:

- We use AsciiDoc for writing the documentation. AsciiDoc is a simple plaintext-based format which is simple to read and write in its source form, and can generate nice HTML documents out of them.

- Headers are formated in a wiki-style format, this makes it easier for Vim (perhaps other editors, too) to automatically re-format text.

- Text is kept at 72 characters wide. In Vim, you can set the editor to automatically insert line breaks as you’re typing by performing set textwidth=72. Special exceptions to the width rule might be allowed when necessary (for example, inserting long URLs).

### Submitting your work

The most common, and a fairly simple method, to submit your work is by posting it on the Freedoom forum on Doomworld Forums. This allows a great number of people to review the contribution and provide feedback, although the registration process is known to be cumbersome.

An alternative to using the forum, is to post your submission on the issue tracker, which may also be peer-reviewed and provide a feedback cycle.

Unfortunately, the Freedoom project cannot provide hosting space in the form of a web page nor FTP, however there are many free file hosts to use when you need a location to upload files. Sites and services such as Dropbox and Mega, as well as others, are common and should be simple to use.

#### Crediting information

Freedoom is made up of submissions from many people all over the globe. All of them, and you, deserve credit! Please do not forget to provide your name and email when submitting resources.

#### Using Git

You can also commit on a clone of the Freedoom repository, although this is a technical task and it is okay to let other Freedoom maintainers to do it instead: that is our normal mode of operation. However, pull requests are much appreciated and you may submit them in any manner you wish, with GitHub’s direct pull requests being the simplest, but by far not the only means.

Freedoom uses the commit message style commonly seen in distributed version control systems, adopted by projects such as Linux and Git. For an explanation of this style, see How to Write a Git Commit Message.

If you create a git commit for someone else it is helpful to set the author of the commit so that they get credit. Ask them what name/alias and email they would like to use. For example:

If they prefer not to give an email then the email can be omitted, so just "Bob Smith" in the above example.