2008-12-15 23:39:23 -08:00
|
|
|
= Freedoom
|
2006-05-09 09:20:42 -07:00
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
The Freedoom project aims to create a complete, free content first
|
|
|
|
person shooter game, but _Freedoom_ by itself is just the raw material
|
|
|
|
for a game. It must be paired with a compatible _Doom_ engine to be
|
|
|
|
played.
|
2014-01-11 21:00:15 -08:00
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
There is a massive http://doomwiki.org/wiki/Idgames_archive[back
|
|
|
|
catalog], spanning over two decades, containing thousands of _Doom_
|
2016-09-03 15:34:11 -07:00
|
|
|
levels and other modifications (“mods”) made by fans of the game.
|
2015-07-20 22:03:54 -07:00
|
|
|
_Freedoom_ aims to be compatible with these and allows most to be
|
|
|
|
played without the need to use non-free software.
|
|
|
|
|
|
|
|
_Freedoom_ is actually three games in one, consisting of two
|
|
|
|
single-player oriented campaigns and one set of levels designed
|
|
|
|
exclusively for multiplayer deathmatch:
|
2014-01-11 21:00:15 -08:00
|
|
|
|
|
|
|
[horizontal]
|
2015-07-20 22:03:54 -07:00
|
|
|
*Freedoom: Phase 1*:: Four chapters, nine levels each, totalling 36
|
2017-07-18 21:07:15 -07:00
|
|
|
levels. This game aims for compatibility with _The Ultimate Doom_
|
|
|
|
mods, also known as plain _Doom_ or _Doom 1_.
|
2015-07-20 22:03:54 -07:00
|
|
|
*Freedoom: Phase 2*:: 32 levels in one long chapter, featuring extra
|
|
|
|
monsters and a double-barrelled shotgun. This project aims for
|
2017-07-18 21:07:15 -07:00
|
|
|
compatibility with _Doom II_ mods.
|
2015-07-20 22:03:54 -07:00
|
|
|
*FreeDM*:: A 32-level game designed for competitive deathmatch play.
|
|
|
|
|
|
|
|
The engine uses a single file, such as +freedoom2.wad+, that contains
|
|
|
|
all the game data such as graphics, sound effects, music, and so on.
|
2016-09-03 15:34:11 -07:00
|
|
|
This file is often called an “IWAD” by those in the _Doom_ and
|
2015-07-20 22:03:54 -07:00
|
|
|
_Freedoom_ communities. While the _Doom_ engine source code is free,
|
|
|
|
you would normally still need one of the proprietary data files from
|
|
|
|
http://www.idsoftware.com/[id Software] to play _Doom_. _Freedoom_
|
|
|
|
aims to create a free alternative: combined with the GPL-licensed
|
|
|
|
_Doom_ source code, this results in a completely free game.
|
2006-05-09 09:20:42 -07:00
|
|
|
|
2014-01-01 15:01:46 -08:00
|
|
|
For more information, see http://freedoom.github.io/.
|
2008-12-15 23:39:23 -08:00
|
|
|
|
2014-01-11 21:00:15 -08:00
|
|
|
== How to play
|
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
Since _Freedoom_ is only the game data, you will still need to
|
2016-09-03 15:34:11 -07:00
|
|
|
download an engine separately. These are also often termed “source
|
|
|
|
ports” by the community. There are an overwhelming number of choices
|
2015-07-20 22:03:54 -07:00
|
|
|
available, a lengthy list of which is available on the
|
|
|
|
http://doomwiki.org/wiki/Source_port[Doom Wiki].
|
|
|
|
|
|
|
|
One in particular that is highly recommended by the Freedoom project
|
|
|
|
is http://odamex.net/[Odamex]. This engine offers good support for
|
|
|
|
both single-player and multiplayer games.
|
|
|
|
|
2015-07-24 21:36:42 -07:00
|
|
|
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.
|
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
If you wish to venture outside of Odamex, beware that _Phase 1_ and
|
2017-02-03 09:07:37 -08:00
|
|
|
_Phase 2_ require a https://doomwiki.org/wiki/Limit_removing[limit
|
|
|
|
removing] engine, which is thankfully the majority of them, but
|
|
|
|
not all. _FreeDM_, on the other hand, is intended to be playable by
|
|
|
|
all variants of the _Doom_ engine.
|
2015-07-20 22:03:54 -07:00
|
|
|
|
2014-01-11 21:00:15 -08:00
|
|
|
Hopefully, your engine of choice should already be capable of running
|
2015-07-20 22:03:54 -07:00
|
|
|
_Freedoom_ without extra configuration. This may not be the case,
|
2014-01-11 21:00:15 -08:00
|
|
|
however, if the engine does not recognize any of the filenames for
|
2017-02-03 09:07:37 -08:00
|
|
|
_Freedoom_, and might require manual intervention to make it so. One
|
|
|
|
of the following options should solve it:
|
2015-07-20 22:03:54 -07:00
|
|
|
|
|
|
|
* Use the +-iwad+ command line parameter. For example, to play
|
|
|
|
Phase 2, you can enter +-iwad freedoom2.wad+ either at a command
|
|
|
|
line, or adding it to an application shortcut.
|
|
|
|
* Use the +DOOMWADPATH+ environment variable. Many engines support
|
|
|
|
this variable to add directories and/or files to their search
|
|
|
|
path. The exact syntax matches your operating system's normal
|
2014-01-11 21:00:15 -08:00
|
|
|
+PATH+ environment variable.
|
2015-07-20 22:03:54 -07:00
|
|
|
* Rename the game files. This may be a bit crude, but you can
|
|
|
|
rename the files to match those of _Doom_'s. This is often the
|
|
|
|
easiest quick-fix, although it is normally desirable to use one of
|
|
|
|
the above methods if possible.
|
2014-01-11 21:00:15 -08:00
|
|
|
|
|
|
|
** +freedoom1.wad+ can be renamed to +doom.wad+
|
2015-07-20 22:03:54 -07:00
|
|
|
** +freedoom2.wad+ can be renamed to +doom2.wad+, +tnt.wad+, or
|
|
|
|
+plutonia.wad+
|
|
|
|
** +freedm.wad+ can be renamed to +doom2.wad+, +tnt.wad+, or
|
|
|
|
+plutonia.wad+
|
|
|
|
|
|
|
|
Additionally, 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 altogether.
|
|
|
|
|
2016-09-03 15:34:11 -07:00
|
|
|
== What “free” means
|
2015-07-20 22:03:54 -07:00
|
|
|
|
|
|
|
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
|
2016-09-03 15:34:11 -07:00
|
|
|
an “IWAD” is built. To facilitate this, you can get the full source
|
2017-02-03 09:07:37 -08:00
|
|
|
code for _Freedoom_, in this case, in the form of a DeuTex tree.
|
2008-12-15 23:39:23 -08:00
|
|
|
|
2014-01-11 21:00:15 -08:00
|
|
|
You may read more about free software at the http://www.gnu.org/[GNU]
|
2008-12-15 23:39:23 -08:00
|
|
|
and http://www.fsf.org/[Free Software Foundation] websites.
|
|
|
|
|
|
|
|
== Contributing to Freedoom
|
|
|
|
|
2017-02-03 09:07:37 -08:00
|
|
|
Contributions to _Freedoom_ are always welcome, however there are a
|
|
|
|
few guidelines that should be followed:
|
2008-12-15 23:39:23 -08:00
|
|
|
|
2014-01-11 21:00:15 -08:00
|
|
|
=== Intellectual property
|
2008-12-31 23:08:53 -08:00
|
|
|
|
|
|
|
We know people hate legalese, but this is important. This applies to
|
|
|
|
*everything* which is submitted.
|
|
|
|
|
|
|
|
You must be incredibly careful when basing on existing graphics or
|
2015-07-20 22:03:54 -07:00
|
|
|
sounds. Most _Doom_ projects are incredibly 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.
|
2008-12-31 23:08:53 -08:00
|
|
|
|
|
|
|
The general rules go as follows:
|
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
* 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.
|
|
|
|
* Do not try to emulate _Doom_ resources exactly. Where possible,
|
|
|
|
put effort to make new versions look visibly different from
|
|
|
|
_Doom_. This is a tough call, because our compatibility with
|
|
|
|
_Doom_ mods limits how far we can deviate, but it is feasible.
|
2016-09-03 15:34:11 -07:00
|
|
|
* 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.”
|
2015-07-20 22:03:54 -07:00
|
|
|
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).
|
2008-12-31 23:08:53 -08:00
|
|
|
|
2008-12-15 23:39:23 -08:00
|
|
|
=== Levels
|
|
|
|
|
2017-02-03 09:07:37 -08:00
|
|
|
Levels for _Phase 1_ and _Phase 2_ must be compatible with any limit
|
|
|
|
removing engine. This means that you may exceed the limits of the
|
|
|
|
original _Doom_, but do not depend on any additional mapping features.
|
|
|
|
Levels should be in _Doom_'s original format, not in “Hexen”-format.
|
|
|
|
|
|
|
|
It is a goal that future versions of _Freedoom_ will be entirely
|
|
|
|
vanilla-compatible, not even allowing expanded limits. Keeping this
|
|
|
|
in mind while mapping may make it easier for your level to be
|
|
|
|
preserved. Levels requiring large amounts of modification to fit into
|
2017-02-03 09:56:29 -08:00
|
|
|
vanilla limits may be discarded entirely in favor of a less complex map.
|
2014-01-11 21:00:15 -08:00
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
Levels for _FreeDM_ must strictly be vanilla-compatible, that is, they
|
2014-01-11 21:00:15 -08:00
|
|
|
must run in the original +doom2.exe+ engine for DOS and not cause any
|
2015-07-20 22:03:54 -07:00
|
|
|
visplane overflows and other such problems in the vanilla engine.
|
|
|
|
This ensures the maximum compatibility with all _Doom_-derived
|
2017-02-03 09:07:37 -08:00
|
|
|
engines.
|
2008-12-27 14:51:32 -08:00
|
|
|
|
|
|
|
It is sensible to also heed the following guidelines:
|
|
|
|
|
|
|
|
* Make sure that skill levels are implemented, and that all
|
2016-09-12 20:00:13 -07:00
|
|
|
multiplayer start points, both cooperative and deathmatch, are
|
2015-07-20 22:03:54 -07:00
|
|
|
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
|
2016-09-03 15:34:11 -07:00
|
|
|
those used to simulate 3D bridges and “deep water” effects.
|
2017-02-03 09:07:37 -08:00
|
|
|
* While unrestricted by limits, do not make excessively complicated
|
|
|
|
scenes. It is desirable that _Freedoom_ levels should be playable
|
|
|
|
on low-powered hardware, such as phones and old computers.
|
|
|
|
* For _Phase 1_ and _Phase 2_, try to test your levels in
|
|
|
|
http://fabiangreffrath.github.io/crispy-doom[Crispy Doom], which
|
|
|
|
is an engine that is limit removing but does not introduce mapping
|
|
|
|
features to accidentally exploit.
|
2015-07-20 22:03:54 -07:00
|
|
|
* For _FreeDM_, while you can test in the original +doom2.exe+
|
|
|
|
engine with DOS or an emulator, this original engine is not free
|
|
|
|
software and not legally obtainable without _Doom_, in addition to
|
|
|
|
the hassle of merely running it.
|
2014-01-11 21:00:15 -08:00
|
|
|
http://www.chocolate-doom.org/[Chocolate Doom] is a free software,
|
2017-02-03 09:07:37 -08:00
|
|
|
highly-portable, and strictly vanilla-compatible engine without
|
2014-01-11 21:00:15 -08:00
|
|
|
any extra features for levels, suitable for testing FreeDM.
|
2008-12-15 23:39:23 -08:00
|
|
|
|
2008-12-31 23:08:53 -08:00
|
|
|
=== Graphics
|
|
|
|
|
2014-01-11 21:00:15 -08:00
|
|
|
Graphics should generally have the same color and size as the original
|
2015-07-20 22:03:54 -07:00
|
|
|
_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.
|
2014-01-11 21:00:15 -08:00
|
|
|
|
2016-09-03 15:34:11 -07:00
|
|
|
_Doom_ uses a fictional corporation abbreviated as “UAC:” this is
|
2015-07-20 22:03:54 -07:00
|
|
|
trademarked by id Software and cannot be used in _Freedoom_. Instead,
|
2016-09-03 15:34:11 -07:00
|
|
|
use the initials “AGM” for _Freedoom_.
|
2008-12-15 23:39:23 -08:00
|
|
|
|
|
|
|
=== Documentation
|
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
_Freedoom_ always needs help with documentation, so please send your
|
2008-12-15 23:39:23 -08:00
|
|
|
patches, but keep in mind:
|
|
|
|
|
2014-01-11 21:00:15 -08:00
|
|
|
* We use http://asciidoc.org/[AsciiDoc] for writing the
|
2015-07-20 22:03:54 -07:00
|
|
|
documentation. AsciiDoc is a simple plaintext-based format which
|
2014-01-11 21:00:15 -08:00
|
|
|
is simple to read and write in its source form, and can generate
|
|
|
|
nice HTML documents out of them.
|
2008-12-15 23:39:23 -08:00
|
|
|
* Headers are formated in a wiki-style format, this makes it easier
|
|
|
|
for Vim (perhaps other editors, too) to automatically re-format
|
|
|
|
text.
|
2015-07-20 22:03:54 -07:00
|
|
|
* 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).
|
2008-12-15 23:39:23 -08:00
|
|
|
|
|
|
|
=== Submitting your work
|
|
|
|
|
2014-11-04 22:01:10 -08:00
|
|
|
The most common, and a fairly simple method, to submit your work is by
|
|
|
|
posting it on the http://www.doomworld.com/vb/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.
|
|
|
|
|
|
|
|
Lastly, it is possible to get work submitted by joining the official
|
|
|
|
irc://irc.oftc.net/freedoom[#freedoom] IRC channel, although this
|
2015-07-20 22:03:54 -07:00
|
|
|
poses the greatest risk of being lost and forgotten.
|
2014-11-04 22:01:10 -08:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2015-07-20 22:24:14 -07:00
|
|
|
==== 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.
|
|
|
|
|
2014-11-04 22:01:10 -08:00
|
|
|
==== Using Git
|
|
|
|
|
2015-07-20 22:03:54 -07:00
|
|
|
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.
|
2014-11-04 22:01:10 -08:00
|
|
|
|
2017-02-24 10:08:09 -08:00
|
|
|
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].
|
|
|
|
|
|
|
|
The commit `2017-02-20T01:52:35Z!mikeonthecomputer@gmail.com` is a
|
|
|
|
good example of a properly-written commit.
|
|
|
|
|
|
|
|
Do not use commit hashes to refer to other commits. Use other kinds
|
|
|
|
of pointers, simple ones like “my previous commit” might suffice, or
|
|
|
|
use http://esr.ibiblio.org/?p=3872[action stamps], which can improve
|
|
|
|
the meaningfulness of commit identifiers if the repository history is
|
|
|
|
rewritten (this has happened at least twice!), or if the repository is
|
|
|
|
converted to another VCS (this happened once before). At the time of
|
|
|
|
writing (February 2017), core Git does not yet have a mechanism to
|
|
|
|
output this format, but you may use a
|
2014-11-04 22:01:10 -08:00
|
|
|
https://gist.github.com/chungy/195f53bfb9253584e596[shell script] and
|
2015-07-20 22:03:54 -07:00
|
|
|
place it in your `$PATH` to achieve some ease in generating them.
|