{"id":13605146,"url":"https://github.com/etlegacy/etlegacy","last_synced_at":"2025-05-15T03:04:03.202Z","repository":{"id":37735150,"uuid":"245171699","full_name":"etlegacy/etlegacy","owner":"etlegacy","description":"ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.","archived":false,"fork":false,"pushed_at":"2025-03-03T22:52:20.000Z","size":188025,"stargazers_count":608,"open_issues_count":451,"forks_count":100,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-03-04T23:34:49.136Z","etag":null,"topics":["c","enemy-territory","etlegacy","fps","fps-game","game","game-development","game-engine","game-engine-3d","legacy-mod","linux","lua","macosx","multi-platform","multiplayer-game","network-game","opengl","windows","wolfenstein"],"latest_commit_sha":null,"homepage":"https://www.etlegacy.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/etlegacy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.yml","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-05T13:34:01.000Z","updated_at":"2025-03-04T22:36:46.000Z","dependencies_parsed_at":"2023-02-18T22:46:04.661Z","dependency_job_id":"81caa4eb-1473-42c9-8f35-660ed56b1c45","html_url":"https://github.com/etlegacy/etlegacy","commit_stats":{"total_commits":11747,"total_committers":130,"mean_commits":90.36153846153846,"dds":0.7186515706137737,"last_synced_commit":"b22afa187b3ee69eaedf0fe2f11aadac87025193"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etlegacy%2Fetlegacy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etlegacy%2Fetlegacy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etlegacy%2Fetlegacy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etlegacy%2Fetlegacy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/etlegacy","download_url":"https://codeload.github.com/etlegacy/etlegacy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247424138,"owners_count":20936725,"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":["c","enemy-territory","etlegacy","fps","fps-game","game","game-development","game-engine","game-engine-3d","legacy-mod","linux","lua","macosx","multi-platform","multiplayer-game","network-game","opengl","windows","wolfenstein"],"created_at":"2024-08-01T19:00:55.149Z","updated_at":"2025-04-10T06:17:20.414Z","avatar_url":"https://github.com/etlegacy.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"ET: Legacy ![Build status](https://github.com/etlegacy/etlegacy/workflows/ETLBuild/badge.svg) [![etlegacy](https://snapcraft.io/etlegacy/badge.svg)](https://snapcraft.io/etlegacy) [![Analysis status](https://scan.coverity.com/projects/1160/badge.svg)](https://scan.coverity.com/projects/1160) ![CodeQL status](https://github.com/etlegacy/etlegacy/workflows/CodeQL/badge.svg) [![chat](https://img.shields.io/discord/260750790203932672.svg?logo=discord)](https://discord.gg/UBAZFys)\n==========\n\n*A second breath of life for Wolfenstein: Enemy Territory*\n\n* Website: [https://www.etlegacy.com](https://www.etlegacy.com)\n* Downloads: [https://www.etlegacy.com/download](https://www.etlegacy.com/download)\n* Wiki/FAQ: [https://github.com/etlegacy/etlegacy/wiki](https://github.com/etlegacy/etlegacy/wiki)\n* Development: [https://github.com/etlegacy/etlegacy](https://github.com/etlegacy/etlegacy)\n* Assets Repository: [https://drive.google.com](https://drive.google.com/drive/folders/0Bw7Yu-pqzcSaLXEtVEVjZF82UEU?resourcekey=0-QYA6QCoHTcUQdnDm8-z0AQ\u0026usp=sharing)\n* Documentation: [https://etlegacy.readthedocs.io/](https://etlegacy.readthedocs.io/)\n* Lua API: [https://etlegacy-lua-docs.readthedocs.io](https://etlegacy-lua-docs.readthedocs.io)\n* Translation: [https://www.transifex.com/etlegacy/etlegacy](https://www.transifex.com/etlegacy/etlegacy)\n* Contact: [#etlegacy](https://web.libera.chat/?channels=#etlegacy) on irc.libera.chat and [etlegacy/#etlegacy](https://discordapp.com/channels/260750790203932672/346956915814957067) on Discord.\n* SignPath: [etlegacy](https://signpath.org/projects/et_legacy/) on SignPath\n\n## INTRODUCTION\n\nET: Legacy is an open source project based on the code of [Wolfenstein: Enemy Territory](https://www.splashdamage.com/games/wolfenstein-enemy-territory/) which [was released](https://www.splashdamage.com/news/wolfenstein-enemy-territory-goes-open-source/) in 2010 under the terms of the GPLv3.\n\nThere are two aspects to this project:\n\n* An updated game engine, **ET: Legacy**, which aims to fix bugs and security exploits, remove old dependencies, add useful features and modernize its graphics while still remaining compatible with ET 2.60b and as many of its mods as possible.\n* A new mod, **Legacy**, which aims to add many useful features and improvements while staying close to the original gameplay, as well as being lightweight and extensible through Lua scripts.\n\nFor more information consult our [wiki](https://github.com/etlegacy/etlegacy/wiki).\n\n## CONTRIBUTING\n\nSee [CONTRIBUTING](CONTRIBUTING.md).\n\n## SECURITY POLICY\n\nSee [SECURITY](SECURITY.md).\n\n## CERTIFICATE SIGNING\n\nET: Legacy Windows installers are now signed thx to [SignPath Foundation](https://signpath.org/)\n\n## GENERAL NOTES\n\n### Game data\n\nWolfenstein: Enemy Territory is a free release, and can be downloaded from [Splash Damage](https://www.splashdamage.com/games/wolfenstein-enemy-territory/).\n\nThis source release contains only the engine and mod code but not any game data,\nwhich is still covered by the original EULA and must be obeyed as usual.\n\nIn order to run ET: Legacy you will need to copy the original *pak0.pk3* assets file\nto the etmain folder. In addition, third party mods might also require the *pak1.pk3*\nand *pak2.pk3* assets files.\n\n\n### Compatibility with Enemy Territory 2.60b\n\nET: Legacy remains compatible with the ET 2.60b version as much as possible.\n\nPlease note that ET: Legacy is *not* compatible with PunkBuster enabled servers.\nET: Legacy clients also cannot connect to servers running the ETPro mod.\n\n\n### Linux 64 bit\n\nPlease remember that 64 bit ET: Legacy clients can only connect to servers running\nmods providing a 64 bit version. You will be able to play 32 bit-only mods only if\nyou compile ET: Legacy on a 32 bit system or cross-compile it for 32 bit architecture\non a 64 bit system.\n\nAt the moment, only the ETrun, ETJump, N!tmod and Legacy mods are available in 64 bit version, while all other\nexisting mods are available in 32 bit only version. Read more on the [Compatible mods](https://github.com/etlegacy/etlegacy/wiki/Compatible-Mods) wiki page.\n\nIn case you are a running a 64 bit system, you probably might want to use the\n**bundled libraries** which are located in a separate *etlegacy-libs* repository and\ncan be automatically downloaded using the `git submodule` command. See the next\nsection for more details.\n\n\n## DEPENDENCIES\n\nRequired:\n* **CMake** (compile-time only)\n* **OpenGL**\n* **GLEW**\n* **SDL**\n* **ZLib**\n* **MiniZip**\n* **libjpeg-turbo** or **libjpeg**\n\nOptional, enabled by default:\n* **libcurl**\n* **WolfSSL** or **OpenSSL**\n* **Lua**\n* **Ogg Vorbis**\n* **Theora**\n* **Freetype**\n* **libpng**\n* **SQLite**\n* **OpenAL**\n\nGrab info about current lib versions from our [Libs Changelog](https://github.com/etlegacy/etlegacy/wiki/Libs-Changelog) wiki page.\n\nTo get the latest source code install [git](https://git-scm.com/) and\nclone our repository hosted at [Github.com](https://github.com/etlegacy/etlegacy):\n\n```sh\n$ git clone git@github.com:etlegacy/etlegacy.git\n```\n\nIf the required dependencies are not installed on your system run:\n\n```sh\n$ git submodule init\n$ git submodule update\n```\n\nThis downloads the essential dependencies into the `libs/`directory. You can choose\nwhether to use bundled libraries instead of the system ones by changing the\n`BUNDLED_LIBS` variable in the CMakeList.txt configuration file. You can then select\nwhich bundled libraries to use by toggling the respective `BUNDLED_XXX` variable.\n\n\n## COMPILE AND INSTALL\n\nTo install the binaries system-wide, you need to compile ET: Legacy with hardcoded\n`fs_basepath`.\n\nThe following variables can be adjusted in CMake:\n\n  * **`INSTALL_DEFAULT_BASEDIR`**: sets default `fs_basepath`, i.e. where etl and etlded\n    executables look for data files. In most cases it is `CMAKE_INSTALL_PREFIX`+`INSTALL_DEFAULT_MODDIR`.\n    Defaults to empty value, because we want `fs_basepath` to be the current working directory\n    when not installing the game system-wide.\n\n  * (optional) **`INSTALL_DEFAULT_BINDIR`**: Location for executables. Appended to `CMAKE_INSTALL_PREFIX`.\n    Defaults to `bin`.\n\n  * (optional) **`INSTALL_DEFAULT_SHAREDIR`**: Location for shared data. Appended to `CMAKE_INSTALL_PREFIX`.\n    Defaults to `share`.\n\n  * (optional) **`INSTALL_DEFAULT_MODDIR`**: Location for libraries and paks. Appended to `CMAKE_INSTALL_PREFIX`.\n    Defaults to `lib/etlegacy` and then `legacy` is appended to it.\n\n  * (optional) **`DOCDIR`**: Location for documentation. Defaults to `INSTALL_DEFAULT_SHAREDIR/doc/etlegacy`.\n\n### Linux\n\nInstall required dependencies.\n\n* option A: **easybuild**\n\nIn terminal, run one of the following:\n\n```sh\n$ ./easybuild.sh        # for compiling a 32 bit version or\n$ ./easybuild.sh -64    # for compiling a 64 bit version\n```\n\nET: Legacy will be installed in `~/etlegacy`.\n\n* option B: **command line**\n\nIn terminal, run:\n\n```sh\n$ mkdir build \u0026\u0026 cd build \u0026\u0026 cmake ..\n```\n\nTo compile, run:\n\n```sh\n$ make\n```\n\nIf you wish to install ET: Legacy system-wide, run:\n\n```sh\n$ make install\n```\n\nBe sure to set the CMake variables (see above) beforehand.\n\n\n**NOTES:**\n\n  * Even if you have a 64 bit linux distribution which provides 32 bit versions of all\n  the required libraries, you might also need the development libraries (-devel packages)\n  installed on your system.\n\n  * In order to compile the jpeg-turbo library properly you will need the **nasm** assembler.\n\n  * On some systems, CMake might have trouble locating 32-bit libraries and tries to use 64-bit ones when building 32-bit. This can be fixed by setting the following enviromental variables before running CMake (note: running easybuild takes care of this for you)\n\n```sh\n$ export CC=\"gcc -m32\"\n$ export CXX=\"g++ -m32\"\n\n# or simply run cmake with\n$ CC=\"gcc -m32\" CXX=\"g++ -m32\" cmake ..\n```\n\n\n\n### Crosscompiling on Linux with MinGW-w64\n\nIn terminal, run:\n\n```sh\n$ mkdir build \u0026\u0026 cd build\n$ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-mingw-linux.cmake ..\n$ make\n```\n\nBy default, MinGW name is set to **`i686-w64-mingw32`**. You may have to change it in\n`cmake/Toolchain-cross-mingw-linux.cmake` depending on how it is called on your system.\n\n\n### Windows\n\nInstall:\n\n  1. [Visual Studio Community](https://visualstudio.microsoft.com/) with the _Desktop Development with C++_ workload\n  2. [CMake](https://cmake.org/) and make sure it is added to your system PATH\n\n* option A: **easybuild**\n\n    1. run easybuild.bat\n\nET: Legacy will be installed in `My Documents\\ETLegacy-Build`.\n\n* option B: **Visual Studio**\n\n    1. create a `build` directory inside the directory which contains ET: Legacy sources\n    2. open *Visual Studio Command Prompt* in the Start menu\n    3. change directory with `cd` to the newly created build directory\n\nIn the command prompt, run:\n\n```sh\n$ cmake -G \"NMake Makefiles\" -DBUNDLED_LIBS=YES .. \u0026\u0026 nmake\n```\n\nor\n\n```sh\n$ cmake -G \"Visual Studio 16\" -A Win32 -DBUNDLED_LIBS=YES .. # Visual Studio 2019\n# or \"Visual Studio 17\" for Visual Studio 2022\n```\n\nand open the resulting project in Visual Studio.\n\n\n**NOTES:**\n\n  * If compilation of bundled libraries is aborted for any reason, you will probably need to clean the\n  libs directory and start over. This can be done by executing `git clean -df \u0026\u0026 git reset --hard HEAD`\n  inside `libs/` directory.\n\n  * If the build fails during libcurl compilation because of missing *sed* utility, download it from\n  [GnuWin](http://gnuwin32.sourceforge.net/packages/sed.htm) and place it into your system path or\n  copy it into `MSVC/VC/bin`. It also comes with Git and can be placed into your system path\n  automatically if you select that option during Git installation.\n\n\n### macOS\n\nInstall:\n\n1. Xcode:\n * At least a recent Version of Xcode Command Line Tools (Terminal -\u003e `xcode-select --install`)\n * or a complete Xcode IDE (through App Store or https://developer.apple.com/xcode/downloads/)\n2. Homebrew (https://brew.sh/)\n\nThen brew the following packages in the terminal app:\n\n```sh\n# all compilation tools needed\n$ brew install cmake autoconf nasm automake libtool\n\n# Libraries if you do not wish to compile and use the provided sources (BUNDLED_LIBS)\n$ brew install glew sdl2 minizip jpeg-turbo curl lua libogg libvorbis theora freetype libpng sqlite openal-soft\n```\n\nAlternative way to install the dependencies is to run\n```sh\n$ brew bundle\n$ brew bundle --file=misc/macos/libs.Brewfile\n```\n\nDepending on what brew version you're using (mostly older ones), you have to specify `brew install --universal` to get both 32bit and 64bit libs. If it throws an error, just use the command listed above. Although your system curl library supports both architectures, you also need to install its headers.\n\n* option A: **easybuild**\n\nThere are many flags and options provided by easybuild.sh. The ET: Legacy version you can compile depends on the used macOS version.\n\nIf you're running **up to macOS 10.14 (Mojave)**, use one the following flags in Terminal.app:\n\n```sh\n$ ./easybuild.sh        # for compiling a 32 bit version or\n$ ./easybuild.sh -64    # for compiling a 64 bit version\n```\n\nThis will put an 'etlegacy' folder with the selected arch into your user folder.\n\nWith **macOS 10.15 (Catalina) and above**, your only option is to compile and run a 64 bit client. Therefore you need to use the following flags:\n\n```sh\n$ ./easybuild.sh -64 --osx=10.15    #watch out for the double dash at --osx !\n```\n\nTake a look into easybuild.sh for more information and further options/flags.\n\n* option B: **command line**\n\nIn terminal, run:\n\n```sh\n$ mkdir build \u0026\u0026 cd build \u0026\u0026 cmake ..\n```\n\nLook into easybuild.sh for all available CMake options.\n\nTo compile, run:\n\n```sh\n$ make\n```\n\nIf you wish to install ET: Legacy system-wide, run:\n\n```sh\n$ make install\n```\n\nBe sure to set the CMake variables (see above) beforehand.\n\n\n**NOTES**:\n\n  * In the legacy mod folder, the cgame_mac and ui_mac files are redundant since they are in the \n  mod .pk3 and will be extracted at runtime, so you can delete those. The client is named \"ET Legacy.app\"\n  (and can safely be renamed), while the dedicated server is just a command-line binary named \"etlded\".\n\n\n### Raspberry Pi / Others that run on aarch64 architecture\n\nET: Legacy supports both OpenGL and OpenGL ES.\n\n**Required Devices**\n\nRPI 4+ (64bit Operating System) or any that runs aarch64 arch\n\n**Required dependencies**\n\n```sh\n$ sudo apt-get install build-essential libfreeimage-dev libopenal-dev libpango1.0-dev libsndfile-dev libudev-dev \\\nlibasound2-dev libjpeg8-dev libwebp-dev automake libgl1-mesa-glx libjpeg62-turbo libogg0 libopenal1 libvorbis0a \\\nlibvorbisfile3 zlib1g libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libglew-dev libegl1-mesa-dev \\\nnasm autoconf git cmake zip gcc g++ libtool libxrandr-dev x11proto-randr-dev\n```\n\n**Pi 4+ install instructions**\n\nThe OpenGL driver used is the Fake KMS driver and currently both OpenGL and GLES are ran within an X11 session.\nIf you want to switch between OpenGL and GLES when installing ET: Legacy on the Pi 4, simply set the `FEATURE_RENDERER_GLES` flag to 0\nor 1 under the `RPI` section within the `easybuild.sh` script and run `./easybuild.sh -RPI -j4`.\n\n**Others**\n\nIf you want to switch between OpenGL and GLES when installing ET: Legacy, simply set the `FEATURE_RENDERER_GLES` flag to 0\nor 1 under the `RPI` section within the `easybuild.sh` script and run `./easybuild.sh -RPI -j4`.\n\n### Snap Store/Snapcraft\n\nTo install ET Legacy using Snap Store/Snapcraft follow instructions in: \n[etlegacy-snap repo](https://github.com/etlegacy/etlegacy-snap)\n\n## LICENSE\n\n### ET: Legacy\n\nWolfenstein: Enemy Territory GPL Source Code\nCopyright (C) 1999-2010 id Software LLC, a ZeniMax Media company.\n\nOpenWolf GPL Source Code\nCopyright (C) 2011 Dusan Jocic\n\nXreaL GPL Source Code (renderer2)\nCopyright (C) 2010-2011 Robert Beckebans\n\nET: Legacy\nCopyright (C) 2012-2024 ET:Legacy Team \u003cmail@etlegacy.com\u003e\n\n  ET: Legacy is free software: you can redistribute it and/or modify it under\n  the terms of the GNU General Public License as published by the Free Software\n  Foundation, either version 3 of the License, or (at your option) any later\n  version.\n\n  ET: Legacy is distributed in the hope that it will be useful, but WITHOUT ANY\n  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n  A PARTICULAR PURPOSE.  See the GNU General Public License for more details.\n\n  You should have received a copy of the GNU General Public License along with\n  ET: Legacy (see COPYING.txt). If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n  ADDITIONAL TERMS:  The Wolfenstein: Enemy Territory GPL Source Code is also\n  subject to certain additional terms. You should have received a copy of these\n  additional terms immediately following the terms and conditions of the GNU GPL\n  which accompanied the Wolf ET Source Code.  If not, please request a copy in\n  writing from id Software at id Software LLC, c/o ZeniMax Media Inc., Suite 120,\n  Rockville, Maryland 20850 USA.\n\n  EXCLUDED CODE:  The code described below and contained in the Wolfenstein:\n  Enemy Territory GPL Source Code release is not part of the Program covered by\n  the GPL and is expressly excluded from its terms.  You are solely responsible\n  for obtaining from the copyright holder a license for such code and complying\n  with the applicable license terms.\n\n\n### MD4 Message-Digest Algorithm\n\nCopyright (C) 1991-1992, RSA Data Security, Inc. Created 1991. All rights reserved.\n\n  License to copy and use this software is granted provided that it is identified\n  as the \"RSA Data Security, Inc. MD4 Message-Digest Algorithm\" in all mater\n  ial mentioning or referencing this software or this function.\n\n  License is also granted to make and use derivative works provided that such work\n  s are identified as \"derived from the RSA Data Security, Inc. MD4 Message-Digest\n  Algorithm\" in all material mentioning or referencing the derived work.\n\n  RSA Data Security, Inc. makes no representations concerning either the merchanta\n  bility of this software or the suitability of this software for any particular p\n  urpose. It is provided \"as is\" without express or implied warranty of any\n  kind.\n\n\n### MD5 Message-Digest Algorithm\n\nThe MD5 algorithm was developed by Ron Rivest. The public domain C language\nimplementation used in this program was written by Colin Plumb in 1993, no copyright\nis claimed.\n\n  This software is in the public domain. Permission to use, copy, modify, and\n  distribute this software and its documentation for any purpose and without fee is\n  hereby granted, without any conditions or restrictions. This software is provided\n  \"as is\" without express or implied warranty.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetlegacy%2Fetlegacy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetlegacy%2Fetlegacy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetlegacy%2Fetlegacy/lists"}