Freedoom is an entirely free software game based on the Doom engine. https://freedoom.github.io/
Find a file
Simon Howard 1791ff4dca Revert "Updated Charli's E1M1 map. (#1496)"
This reverts commit 9b25e1447a.

The first level of the game is very prominent and I'm not convinced that
this had sufficient debate on the original PR. Opinions on the original
PR seemed mixed to lukewarm.

I'm also not convinced that this is an improvement over the previous
E1M1 but that is just my personal opinion. If we want to make this
change then we can, but it should be discussed more first.
2025-07-24 19:37:40 -04:00
.github/workflows CI: Use the version of deutex from GHA Ubuntu 2025-06-11 15:46:22 -04:00
bootstrap Add missing SPDX identifiers, use CC0 explicitly in dist 2020-02-03 12:31:55 -08:00
dist dist/freedoom: add dsda-doom and woof to the PORTS list 2025-04-29 12:50:55 +02:00
flats add Cescade's improved textures 2025-06-03 12:27:21 -03:00
graphics add source port text graphics (#1473) 2025-06-16 21:05:54 -03:00
levels Revert "Updated Charli's E1M1 map. (#1496)" 2025-07-24 19:37:40 -04:00
lumps Revert "Updated Charli's E1M1 map. (#1496)" 2025-07-24 19:37:40 -04:00
manual manual: Embed the build version on the second page 2025-06-03 13:35:54 -04:00
musics New E1M1 song (Let's add Lola's new submission to e2m1 or somewhere it could better fit) (#1492) 2025-06-16 21:13:14 -03:00
patches Lower contrast and new frame. 2025-06-17 15:58:56 +07:00
scripts makejson: De-dupe some code 2025-06-11 15:40:41 -04:00
sounds sounds: new punch sounds. 2025-06-09 22:19:31 -07:00
sprites sprites: simplify FCAN. (#1516) 2025-06-16 19:04:01 -03:00
.adoc-layout.conf fancify HTML output using the website style 2019-10-11 11:12:33 -07:00
.gitattributes Burn all GIFs: Convert everything to PNGs. 2017-07-18 22:26:52 -07:00
.gitignore manual: Add generated .svg files to gitignore 2025-05-22 19:47:45 -04:00
BUILD-SYSTEM.adoc CREDITS: Add contributors since v0.12.1 2022-11-26 14:32:50 -05:00
buildcfg.txt Add LANGUAGE lump + full Spanish translation (#1377) 2025-06-16 21:20:25 -03:00
COMPILING.adoc COMPILING: ASCIIDOC make variables, note asciidoctor-pdf 2019-09-12 15:44:49 -07:00
COPYING.adoc documentation: update year. (#1255) 2024-01-06 08:53:40 -08:00
CREDITS Merge branch 'freedoom:master' into Illost-AGM-CEO 2025-06-17 15:57:17 +07:00
CREDITS-LEVELS Update CREDITS-LEVELS (#1344) 2024-02-22 08:28:48 -03:00
CREDITS-MUSIC New E1M1 song (Let's add Lola's new submission to e2m1 or somewhere it could better fit) (#1492) 2025-06-16 21:13:14 -03:00
Makefile fix desktop icon install location 2025-04-29 09:12:07 +02:00
NEWS.adoc NEWS: Add octaminator to NEWS.adoc (#1303) 2024-01-30 15:35:10 -08:00
README.adoc README: An update: over 30 years of mods now! 2025-06-24 20:41:35 -04:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

= 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_, <<How-to-play,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:

[horizontal]
*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
https://doomwiki.org/wiki/Source_port[Doom Wiki].

One particularly recommended by the _Freedoom_ project is
https://zdoom.org/[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 https://freedoom.github.io/manual.html[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
https://doomwiki.org/wiki/Idgames_archive[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 https://www.gnu.org/[GNU]
and https://www.fsf.org/[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 https://www.chocolate-doom.org/[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
    http://eureka-editor.sourceforge.net/[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 doesnt 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 http://asciidoc.org/[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 youre 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
https://www.doomworld.com/forum/17-freedoom/[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
https://github.com/freedoom/freedoom/issues[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 https://www.dropbox.com/[Dropbox] and
https://mega.co.nz/[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 GitHubs 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
https://chris.beams.io/posts/git-commit/[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:
[source,bash]
-----------------
git commit --author "Bob Smith <bob@example.com>" ...
-----------------
If they prefer not to give an email then the email can be omitted, so
just "Bob Smith" in the above example.