Merge branch 'freedoom:master' into revamped-bunny

This commit is contained in:
Donowa93 2025-06-29 16:10:22 -04:00 committed by GitHub
commit b43b9f7a8e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 48 additions and 76 deletions

View file

@ -19,18 +19,8 @@ jobs:
run: |
sudo apt update
sudo apt install python3-pil asciidoc unzip zip ruby dos2unix \
inkscape
inkscape deutex
sudo gem install asciidoctor-pdf --pre
- name: Install Deutex
run: |
git clone https://github.com/Doom-Utils/deutex.git
cd deutex
git checkout v5.2.1
sudo apt install libpng-dev
./bootstrap
./configure
make
sudo make install
- name: Build
id: buildstep
run: |

View file

@ -1060,3 +1060,6 @@ D: Spanish translation
S: WishedTomato200
S: quarry24
D: patches
S: illostrious665
D: textures

View file

@ -1,15 +1,12 @@
= Freedoom
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.
_Freedoom_ is a complete, free content first person shooter game,
based on the _Doom_ engine.
There is a massive https://doomwiki.org/wiki/Idgames_archive[back
catalog], spanning over two decades, containing thousands of _Doom_
levels and other modifications (“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.
_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
@ -24,15 +21,6 @@ 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.
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.
This file is often called an “IWAD” by those in the _Doom_ and
_Freedoom_ communities. While the _Doom_ engine source code is free,
you would normally still need one of the proprietary data files from
https://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.
For more information, see https://freedoom.github.io/.
== How to play
@ -55,34 +43,31 @@ or your home directory. If _Freedoom_ comes packaged as part of your
operating system distribution, it should already be installed into the
proper location.
Hopefully, your engine of choice should already be capable of running
_Freedoom_ without extra configuration. This may not be the case,
however, if the engine does not recognize any of the filenames for
_Freedoom_, and might require manual intervention to make it so. One
of the following options should solve it:
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.
* 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 systems normal
+PATH+ environment variable.
* 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.
== Manual
** +freedoom1.wad+ can be renamed to +doom.wad+
** +freedoom2.wad+ can be renamed to +doom2.wad+
** +freedm.wad+ can be renamed to +doom2.wad+
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.
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.
== 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
@ -123,10 +108,11 @@ The general rules go as follows:
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.
* 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.”

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Before After
Before After

View file

@ -34,7 +34,7 @@ json_file = os.getenv("JSON")
if version is None:
sys.stderr.write("Version is not specified for release\n")
sys.exit(1)
if version[0] is "v":
if version.startswith("v"):
# Strip the leading "v" from versioning
version = version[1:]
@ -42,14 +42,16 @@ if json_file is None:
sys.stderr.write("JSON file not specified!\n")
sys.exit(1)
with open("wads/freedoom1.wad", "rb") as f:
iwads["freedoom1.wad"]["md5"] = hashlib.md5(f.read()).hexdigest()
for filename in iwads:
with open(os.path.join("wads", filename), "rb") as f:
data = f.read()
# TODO: MD5 is long-deprecated throughout the industry; this hash
# will be removed in a future version.
iwads[filename]["md5"] = hashlib.md5(data).hexdigest()
iwads[filename]["sha3"] = hashlib.sha3_512(data).hexdigest()
iwads[filename]["blake2b"] = hashlib.blake2b(data).hexdigest()
with open("wads/freedoom2.wad", "rb") as f:
iwads["freedoom2.wad"]["md5"] = hashlib.md5(f.read()).hexdigest()
with open("wads/freedm.wad", "rb") as f:
iwads["freedm.wad"]["md5"] = hashlib.md5(f.read()).hexdigest()
iwads[filename]["version"] = version
iwads["freedoom1.wad"]["url"] = (
"https://github.com/freedoom/freedoom/releases/download/v"
@ -58,15 +60,7 @@ iwads["freedoom1.wad"]["url"] = (
+ version
+ ".zip"
)
iwads["freedoom1.wad"]["version"] = version
iwads["freedoom2.wad"]["url"] = (
"https://github.com/freedoom/freedoom/releases/download/v"
+ version
+ "/freedoom-"
+ version
+ ".zip"
)
iwads["freedoom2.wad"]["version"] = version
iwads["freedoom2.wad"]["url"] = iwads["freedoom1.wad"]["url"]
iwads["freedm.wad"]["url"] = (
"https://github.com/freedoom/freedoom/releases/download/v"
+ version
@ -74,7 +68,6 @@ iwads["freedm.wad"]["url"] = (
+ version
+ ".zip"
)
iwads["freedm.wad"]["version"] = version
with open(json_file, "w") as f:
json.dump(iwads, f, indent=2, sort_keys=True)