{"id":13526231,"url":"https://github.com/freedoom/freedoom","last_synced_at":"2025-05-14T12:13:22.262Z","repository":{"id":3518352,"uuid":"4576719","full_name":"freedoom/freedoom","owner":"freedoom","description":"Freedoom is an entirely free software game based on the Doom engine.","archived":false,"fork":false,"pushed_at":"2025-02-10T21:10:30.000Z","size":130032,"stargazers_count":1135,"open_issues_count":62,"forks_count":214,"subscribers_count":76,"default_branch":"master","last_synced_at":"2025-04-11T20:43:48.010Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://freedoom.github.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freedoom.png","metadata":{"files":{"readme":"README.adoc","changelog":"NEWS.adoc","contributing":null,"funding":null,"license":"COPYING.adoc","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-06-06T19:01:39.000Z","updated_at":"2025-04-09T05:30:28.000Z","dependencies_parsed_at":"2024-03-11T01:23:34.455Z","dependency_job_id":"74cbfcf8-4dc2-4921-9fe6-919c59d194f2","html_url":"https://github.com/freedoom/freedoom","commit_stats":{"total_commits":2317,"total_committers":116,"mean_commits":"19.974137931034484","dds":0.7816141562365128,"last_synced_commit":"65edbb522b8996a7feaba4526ed405e8ee201b00"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedoom%2Ffreedoom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedoom%2Ffreedoom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedoom%2Ffreedoom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freedoom%2Ffreedoom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freedoom","download_url":"https://codeload.github.com/freedoom/freedoom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140771,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:26.676Z","updated_at":"2025-05-14T12:13:17.248Z","avatar_url":"https://github.com/freedoom.png","language":"Python","readme":"= Freedoom\n\nThe Freedoom project aims to create a complete, free content first\nperson shooter game, but _Freedoom_ by itself is just the raw material\nfor a game.  It must be paired with a compatible _Doom_ engine to be\nplayed.\n\nThere is a massive https://doomwiki.org/wiki/Idgames_archive[back\ncatalog], spanning over two decades, containing thousands of _Doom_\nlevels and other modifications (“mods”) made by fans of the game.\n_Freedoom_ aims to be compatible with these and allows most to be\nplayed without the need to use non-free software.\n\n_Freedoom_ is actually three games in one, consisting of two\nsingle-player oriented campaigns and one set of levels designed\nexclusively for multiplayer deathmatch:\n\n[horizontal]\n*Freedoom: Phase 1*:: Four episodes, nine levels each, totalling 36\nlevels.  This game aims for compatibility with _The Ultimate Doom_\nmods, also known as plain _Doom_ or _Doom 1_.\n*Freedoom: Phase 2*:: 32 levels in one long episode, featuring extra\nmonsters and a double-barrelled shotgun.  This project aims for\ncompatibility with _Doom II_ mods.\n*FreeDM*:: A 32-level game designed for competitive deathmatch play.\n\nThe engine uses a single file, such as +freedoom2.wad+, that contains\nall the game data such as graphics, sound effects, music, and so on.\nThis file is often called an “IWAD” by those in the _Doom_ and\n_Freedoom_ communities.  While the _Doom_ engine source code is free,\nyou would normally still need one of the proprietary data files from\nhttps://www.idsoftware.com/[id Software] to play _Doom_.  _Freedoom_\naims to create a free alternative: combined with the GPL-licensed\n_Doom_ source code, this results in a completely free game.\n\nFor more information, see https://freedoom.github.io/.\n\n== How to play\n\nSince _Freedoom_ is only the game data, you will still need to\ndownload an engine separately.  These are also often termed “source\nports” by the community.  There are an overwhelming number of choices\navailable, a lengthy list of which is available on the\nhttps://doomwiki.org/wiki/Source_port[Doom Wiki].\n\nOne particularly recommended by the _Freedoom_ project is\nhttps://zdoom.org/[GZDoom].  This engine offers good support for\nsingle-player, multi-player, and the majority of mods created for both\n_Doom_ and _Freedoom_.\n\nOn Windows, you should place _Freedoom_’s data files (those ending\nwith +.wad+) alongside the engine (eg, +odamex.exe+).  On Unix-like\nsystems, these data files should go in either +/usr/share/games/doom+\nor your home directory.  If _Freedoom_ comes packaged as part of your\noperating system distribution, it should already be installed into the\nproper location.\n\nHopefully, your engine of choice should already be capable of running\n_Freedoom_ without extra configuration.  This may not be the case,\nhowever, if the engine does not recognize any of the filenames for\n_Freedoom_, and might require manual intervention to make it so.  One\nof the following options should solve it:\n\n  * Use the +-iwad+ command line parameter.  For example, to play\n    Phase 2, you can enter +-iwad freedoom2.wad+ either at a command\n    line, or adding it to an application shortcut.\n  * Use the +DOOMWADPATH+ environment variable.  Many engines support\n    this variable to add directories and/or files to their search\n    path.  The exact syntax matches your operating system’s normal\n    +PATH+ environment variable.\n  * Rename the game files.  This may be a bit crude, but you can\n    rename the files to match those of _Doom_’s.  This is often the\n    easiest quick-fix, although it is normally desirable to use one of\n    the above methods if possible.\n\n    ** +freedoom1.wad+ can be renamed to +doom.wad+\n    ** +freedoom2.wad+ can be renamed to +doom2.wad+\n    ** +freedm.wad+ can be renamed to +doom2.wad+\n\nAdditionally, for Unix-like operating systems, such as GNU/Linux or a\nBSD variant, _Freedoom_ may be packaged and installed with programs\nnamed +freedoom1+, +freedoom2+, and +freedm+ that automatically run an\nengine for proper play.  Desktop files may also be installed so that\nyou can start the game using a graphical interface and avoid the\ncommand line altogether.\n\n== What “free” means\n\nWhen we speak of free content or software, we refer to the movement in\nwhich your freedoms to use, copy, modify, and study a work is not\ninfringed.  For example, you may freely use _Freedoom_ for any purpose\nyou see fit, you may redistribute it to anyone without needing to ask\nfor permission, you may modify it (provided you keep the license\nintact, see `COPYING`), and you may study it--for example, to see how\nan “IWAD” is built.  To facilitate this, you can get the full source\ncode for _Freedoom_, in this case, in the form of a DeuTex tree.\n\nYou may read more about free software at the https://www.gnu.org/[GNU]\nand https://www.fsf.org/[Free Software Foundation] websites.\n\n== Contributing to Freedoom\n\nContributions to _Freedoom_ are always welcome, however there are a\nfew guidelines that should be followed:\n\n=== Intellectual property\n\nWe know people hate legalese, but this is important.  This applies to\n*everything* which is submitted.\n\nYou must be careful when basing on existing graphics or sounds.  Most\n_Doom_ projects are lax on reusing intellectual property--there are\nmany mods which contain modified _Doom_ sprites, for example.\nHowever, due to the nature of this project, we do not have the same\nliberty to rip as we please.\n\nThe general rules go as follows:\n\n  * You must have permission for everything you submit.  If you make\n    your own resources, do not base on resources from _Doom_ or any\n    other restricted work.  If you take work from other places, please\n    make sure that the work is freely-licensed or that you obtain\n    permission to include it in the _Freedoom_ project.  They may not\n    place additional restrictions compared to the normal _Freedoom_\n    license.\n  * Do not try to emulate _Doom_ resources exactly.  Where possible,\n    put effort to make new versions look visibly different from\n    _Doom_.  This is a tough call, because our compatibility with\n    _Doom_ mods limits how far we can deviate, but it is feasible.\n  * Be especially careful of “free textures” (or “free sounds” or\n    “free graphics”) sites.  Although these would appear at first to\n    be okay to use, many are free for “non-commercial use only.”\n    One of the things we want to be able to do is put this in\n    GNU/Linux distributions (which can be sold or developed\n    commercially).\n\n=== Levels\n\nAll levels for _Freedoom_ must be vanilla-compatible, requiring an\nexpanded-limits or limit-removing engine is not permissible.  This\nmeans you may not exceed the limits of the original _Doom_ engine, and\ndo not depend on additional mapping features.  Levels should be in\n_Doom_’s original format, not in “Hexen”-format.\n\nIt is sensible to also heed the following guidelines:\n\n  * Make sure that skill levels are implemented, and that all\n    multiplayer start points, both cooperative and deathmatch, are\n    present.\n  * Try to make levels appropriately difficult for their position\n    within the progression of the game.  Also bear in mind that not\n    all players may be as skilled a player as you.\n  * Do not use tricks that exploit _Doom_’s software renderer; some\n    engines, especially those that use hardware accelerated rendering,\n    may not render it properly.  Examples of tricks to avoid include\n    those used to simulate 3D bridges and “deep water” effects.\n  * Test your levels in https://www.chocolate-doom.org/[Chocolate\n    Doom] to make sure that vanilla compatibility is maintained.  This\n    is an engine with strict adherence to vanilla Doom limits and\n    bugs, and working in it assures that levels can be played with any\n    _Doom_ engine.\n  * Use a Doom editor to check for errors. In\n    http://eureka-editor.sourceforge.net/[Eureka] it's possible to\n    check for errors with the Check / All menu, or by pressing `F9`.\n  * If possible run `make test` and fix any errors found. Note that\n    some of the errors can be fixed by `make fix`.\n\n=== Graphics\n\nGraphics should generally have the same color and size as the original\n_Doom_ graphics, as to remain compatible with mods.  Otherwise, levels\nmay end up looking like a nightmare in design.  They may be\nthematically different as long as it doesn’t clash.\n\n_Doom_ uses a fictional corporation abbreviated as “UAC:” this is\ntrademarked by id Software and cannot be used in _Freedoom_.  Instead,\nuse the initials “AGM” for _Freedoom_.\n\n=== Documentation\n\n_Freedoom_ always needs help with documentation, so please send your\npatches, but keep in mind:\n\n  * We use http://asciidoc.org/[AsciiDoc] for writing the\n    documentation.  AsciiDoc is a simple plaintext-based format which\n    is simple to read and write in its source form, and can generate\n    nice HTML documents out of them.\n  * Headers are formated in a wiki-style format, this makes it easier\n    for Vim (perhaps other editors, too) to automatically re-format\n    text.\n  * Text is kept at 72 characters wide.  In Vim, you can set the\n    editor to automatically insert line breaks as you’re typing by\n    performing `set textwidth=72`.  Special exceptions to the width\n    rule might be allowed when necessary (for example, inserting long\n    URLs).\n\n=== Submitting your work\n\nThe most common, and a fairly simple method, to submit your work is by\nposting it on the\nhttps://www.doomworld.com/forum/17-freedoom/[Freedoom forum] on\nDoomworld Forums.  This allows a great number of people to review the\ncontribution and provide feedback, although the registration process\nis known to be cumbersome.\n\nAn alternative to using the forum, is to post your submission on the\nhttps://github.com/freedoom/freedoom/issues[issue tracker], which may\nalso be peer-reviewed and provide a feedback cycle.\n\nUnfortunately, the Freedoom project cannot provide hosting space in\nthe form of a web page nor FTP, however there are many free file hosts\nto use when you need a location to upload files.  Sites and services\nsuch as https://www.dropbox.com/[Dropbox] and\nhttps://mega.co.nz/[Mega], as well as others, are common and should be\nsimple to use.\n\n==== Crediting information\n\n_Freedoom_ is made up of submissions from many people all over the\nglobe.  All of them, and you, deserve credit!  Please do not forget to\nprovide your name and email when submitting resources.\n\n==== Using Git\n\nYou can also commit on a clone of the _Freedoom_ repository, although\nthis is a technical task and it is okay to let other _Freedoom_\nmaintainers to do it instead: that is our normal mode of operation.\nHowever, pull requests are much appreciated and you may submit them in\nany manner you wish, with GitHub’s direct pull requests being the\nsimplest, but by far not the only means.\n\nFreedoom uses the commit message style commonly seen in distributed\nversion control systems, adopted by projects such as Linux and Git.\nFor an explanation of this style, see\nhttps://chris.beams.io/posts/git-commit/[How to Write a Git Commit\nMessage].\n\nIf you create a git commit for someone else it is helpful to set the\nauthor of the commit so that they get credit. Ask them what name/alias\nand email they would like to use. For example:\n[source,bash]\n-----------------\ngit commit --author \"Bob Smith \u003cbob@example.com\u003e\" ...\n-----------------\nIf they prefer not to give an email then the email can be omitted, so\njust \"Bob Smith\" in the above example.\n","funding_links":[],"categories":["Applications","By Industry","Python","By Language","FPS","Native"],"sub_categories":["Games","Gaming","Python","FPS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreedoom%2Ffreedoom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreedoom%2Ffreedoom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreedoom%2Ffreedoom/lists"}