{"id":13441718,"url":"https://github.com/Unvanquished/Unvanquished","last_synced_at":"2025-03-20T12:32:35.531Z","repository":{"id":37249439,"uuid":"2490468","full_name":"Unvanquished/Unvanquished","owner":"Unvanquished","description":"An FPS/RTS hybrid game powered by the Daemon engine (a combination of ioq3 and XreaL)","archived":false,"fork":false,"pushed_at":"2024-04-12T23:52:22.000Z","size":189020,"stargazers_count":944,"open_issues_count":660,"forks_count":152,"subscribers_count":54,"default_branch":"master","last_synced_at":"2024-04-13T21:47:06.470Z","etag":null,"topics":["cpp","fps-game","game","game-development","glm","idtech3","librocket","open-source","real-time-strategy","rmlui","rts-game","sci-fi-game","science-fiction","tremulous","unvanquished","xreal"],"latest_commit_sha":null,"homepage":"https://unvanquished.net","language":"C++","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/Unvanquished.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.txt","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}},"created_at":"2011-09-30T16:44:44.000Z","updated_at":"2024-04-17T14:46:13.430Z","dependencies_parsed_at":"2023-10-15T17:15:54.971Z","dependency_job_id":"37b72d56-70be-4b76-b515-48b616decad6","html_url":"https://github.com/Unvanquished/Unvanquished","commit_stats":null,"previous_names":[],"tags_count":229,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unvanquished%2FUnvanquished","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unvanquished%2FUnvanquished/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unvanquished%2FUnvanquished/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unvanquished%2FUnvanquished/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Unvanquished","download_url":"https://codeload.github.com/Unvanquished/Unvanquished/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221760128,"owners_count":16876359,"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":["cpp","fps-game","game","game-development","glm","idtech3","librocket","open-source","real-time-strategy","rmlui","rts-game","sci-fi-game","science-fiction","tremulous","unvanquished","xreal"],"created_at":"2024-07-31T03:01:37.344Z","updated_at":"2025-03-20T12:32:35.525Z","avatar_url":"https://github.com/Unvanquished.png","language":"C++","readme":"# Unvanquished\n\nUnvanquished is an arena game with RTS elements (you can build) in which two very different factions fight.\n\n[![GitHub release](https://img.shields.io/github/release/Unvanquished/Unvanquished.svg)](https://github.com/Unvanquished/Unvanquished/releases/latest)\n[![Github updater release](https://img.shields.io/github/downloads/Unvanquished/updater/total.svg?label=updater%20downloads)](https://github.com/Unvanquished/updater/releases/latest)\n[![Flatpak release](https://img.shields.io/flathub/downloads/net.unvanquished.Unvanquished.svg?label=flatpak%20installs)](https://flathub.org/apps/details/net.unvanquished.Unvanquished)\n[![Github universal zip release](https://img.shields.io/github/downloads/Unvanquished/Unvanquished/total.svg?label=zip%20downloads)](https://github.com/Unvanquished/Unvanquished/releases/latest)\n[![Sourceforge files](https://img.shields.io/sourceforge/dt/unvanquished.svg?label=sourceforge%20files)](https://sourceforge.net/projects/unvanquished/files/latest/download)\n\n[![IRC](https://img.shields.io/badge/irc-%23unvanquished%2C%23unvanquished--dev-9cf.svg)](https://unvanquished.net/chat/)\n[![Matrix](https://img.shields.io/badge/matrix-Unvanquished-9cf)](https://matrix.to/#/!WnuetRiQZJNBTKwMrF:matrix.org?via=matrix.org)\n[![Discord](https://img.shields.io/badge/discord-Unvanquished-9cf)](https://discord.gg/usuDT9Pyna)\n\n| Windows | macOS | Linux |\n|---------|-----|-------|\n| [![AppVeyor branch](https://img.shields.io/appveyor/ci/UnvanquishedDevelopment/unvanquished/master.svg)](https://ci.appveyor.com/project/UnvanquishedDevelopment/unvanquished/history) | [![Azure branch](https://img.shields.io/azure-devops/build/UnvanquishedDevelopment/8c34c73e-2b4f-43c9-b146-33aee7f3593a/2/master.svg)](https://dev.azure.com/UnvanquishedDevelopment/Unvanquished/_build?definitionId=2) | [![Azure branch](https://img.shields.io/azure-devops/build/UnvanquishedDevelopment/8c34c73e-2b4f-43c9-b146-33aee7f3593a/2/master.svg)](https://dev.azure.com/UnvanquishedDevelopment/Unvanquished/_build?definitionId=2) |\n\nℹ️ We provide ready-to-use downloads for the Unvanquished game on the [download page](https://unvanquished.net/download/).\n\nℹ️ This repository contains the source code for the game logic of Unvanquished.\n\n💡️ If you only want to play the game or run a server and want to rebuild, you only need to build the [Dæmon engine](https://github.com/DaemonEngine/Daemon) and [download the game's assets](#downloading-the-games-assets).\n\n💡️ You need to build this repository if you want to contribute to the game logic or make a mod with custom game logic binaries.\n\nSee below for [build](#building-the-game-binaries) and [launch](#running-the-game) instructions.\n\n## Translating the game\n\n[![Weblate](https://hosted.weblate.org/widgets/unvanquished/-/multi-auto.svg)](https://hosted.weblate.org/projects/unvanquished/unvanquished)\n\nThe Unvanquished game is translated on the [Weblate](https://hosted.weblate.org/projects/unvanquished/unvanquished) platform, this is the easier way to contribute translations since it offers a central place where people can contribute and review translations while reducing risks of merge conflicts. Weblate preserves authorship and automatically produces commits that can be associated with your GitHub account.\n\n## Requirements to build the game binaries\n\nTo fetch and build Unvanquished, you'll need:\n`git`,\n`cmake`,\n`python` ≥ 2,\n`python-yaml`,\n`python-jinja`,\nand a C++14 compiler. The following are actively supported:\n`gcc` ≥ 9,\n`clang` ≥ 11,\nVisual Studio/MSVC (at least Visual Studio 2019).\n\n## Dependencies\n\nRequired:\n`zlib`,\n`libgmp`,\n`libnettle`,\n`libcurl`,\n`SDL2`,\n`GLEW`,\n`libpng`,\n`libjpeg` ≥ 8,\n`libwebp` ≥ 0.2.0,\n`Freetype`,\n`Lua`,\n`OpenAL`,\n`libogg`,\n`libvorbis`,\n`libopus`,\n`libopusfile`.\n\nOptional:\n`ncurses`.\n\n### MSYS2\n\nMSYS2 is the recommended way to build using MinGW on a Windows host.\n\nRequired packages for 64-bit: `mingw-w64-x86_64-gcc`, `mingw-w64-x86_64-cmake`, `make`  \nRequired packages for 32-bit: `mingw-w64-i686-gcc`, `mingw-w64-i686-cmake`, `make`\n\nSee [the wiki](https://wiki.unvanquished.net/wiki/Compiling_the_source#MinGW) for more detailed instructions.\n\n## Downloading the sources for the game binaries\n\nUnvanquished requires several sub-repositories to be fetched before compilation. If you have not yet cloned this repository:\n\n```sh\ngit clone --recurse-submodules https://github.com/Unvanquished/Unvanquished.git\n```\n\nIf you have already cloned:\n\n```sh\ncd Unvanquished/\ngit submodule update --init --recursive\n```\n\nℹ️ If cmake complains about missing files in `daemon/` folder or similar issue then you have skipped this step.\n\n## Downloading the game's assets\n\nIf you don't have the assets, you can download them first. You can download an universal zip from the [download page](https://unvanquished.net/download/), here is the [link to the latest version](https://unvanquished.net/download/zip).\nThe `pkg/` folder can be stored in the [homepath](https://wiki.unvanquished.net/wiki/Homepath).\n\nOtherwise you can use the package downloader script. This script can use `aria2c`, `curl` or `wget`.`aria2c` is recommended.\n\nYou can do `./download-paks --help` for more options.\n\n```sh\n./download-paks build/pkg\n```\n\nThe above snippet places the `pkg` directory in the\n[libpath](https://wiki.unvanquished.net/wiki/Libpath) of the Daemon engine that you are building,\nso it will only be automatically found from this build directory. If you prefer the paks to be\nfound by from all installations/build directories, consider downloading to the `pkg/` subdirectory\nof the [homepath](https://wiki.unvanquished.net/wiki/Homepath).\n\n## Building the game binaries\n\nℹ️ This will build both the game engine and the game logic. Building both makes things more convenient for testing and debugging.\n\n💡️ Instead of `-j4` you can use `-jN` where `N` is your number of CPU cores to distribute compilation on them. Linux systems usually provide a handy `nproc` tool that tells the number of CPU core so you can just do `-j$(nproc)` to use all available cores.\n\nEnter the directory before anything else:\n\n```sh\ncd Unvanquished/\n```\n\n### Visual Studio\n\n1. Run CMake.\n2. Choose your compiler.\n3. Open `Unvanquished.sln` and compile.\n\n### Linux, macOS\n\nProduced files will be stored in a new directory named `build`.\n\n```sh\nmkdir build; cd build\ncmake ..\nmake -j4\n```\n\n### MSYS2\n\n```sh\nmkdir build; cd build\ncmake .. -G \"MSYS Makefiles\"\nmake -j4\n```\n\n### Linux cross-compile to Windows\n\n💡️ For a 32-bit build use the `cross-toolchain-mingw32.cmake` toolchain file instead.\n\n```sh\nmkdir build-win64; cd build-win64\ncmake .. -DCMAKE_TOOLCHAIN_FILE=../daemon/cmake/cross-toolchain-mingw64.cmake\nmake -j4\n```\n\n## Running the game\n\nℹ️ On Windows you'll have to use `daemon.exe` and `daemonded.exe` instead of `./daemon` and `./daemonded`, everything else will be the same.\n\nFirst, enter the `build/` folder:\n\n```sh\ncd build\n```\n\n### Running the client\n\nAssuming the `pkg/` folder is stored next to the `daemon` binary:\n\n```sh\n./daemon\n```\n\nYou can also use `-pakpath` to load assets from a `pkg/` folder stored somewhere else, `\u003cPATH\u003e` stands for the path to the `pkg/` folder.\n\n```sh\n./daemon -pakpath \u003cPATH\u003e\n```\n\n### Running the server\n\nIf you want to run a server, you may prefer to use the non-graphical `daemonded` server binary instead of `daemon` and start the first map (here, _plat23_ is used as an example) from the command line.\n\nAssuming the `pkg/` folder is stored next to the `daemonded` binary:\n\n```\n./daemonded +map plat23\n```\n\nYou can use `-pakpath` to load assets from a `pkg/` folder stored somewhere else (see above).\n\n### Configuring the server\n\nYou may want to copy and extend some [configuration samples](dist/configs), they must be stored in your user home directory, for details see the [game locations](https://wiki.unvanquished.net/wiki/Game_locations) wiki page and the page about [running a server](https://wiki.unvanquished.net/wiki/Server/Running).\n\n## Running a modified game as a developer\n\nℹ️ This is not a tutorial to distribute a modified game usable by players. See the wiki for mod\n[building](https://wiki.unvanquished.net/wiki/Making_an_awesome_mod)\nand [hosting](https://wiki.unvanquished.net/wiki/Hosting_one%27s_own_awesome_mod)\ntutorials.\n\nℹ️ This is not needed to run the released game or a server.\n\nAs a developer, you may want to run the game logic as a shared library and load modified assets from the `pkg/unvanquished_src.dpkdir` submodule.\n\nAssuming you already have a release `pkg/` folder, you can do it this way:\n\n```sh\n./daemon -pakpath ../pkg -set vm.sgame.type 3 -set vm.cgame.type 3\n```\n\nNote that only the basic `unvanquished_src.dpkdir` asset package is provided that way, and running Unvanquished only with that package will bring you some warnings about other missing packages and you will miss soundtrack and stuff like that.\n\nℹ️ If you are looking for the sources of the whole assets, have a look at the [UnvanquishedAssets](https://github.com/UnvanquishedAssets/UnvanquishedAssets) repository. Beware that unlike the `unvanquished_src.dpkdir` package most of them can't be loaded correctly by the engine without being built first.\n\n## Dealing with submodules\n\nPlease don't commit submodules in pull requests, as the submodule references may not exist after the pull requests are rebased and merged.\n\nWhen a feature is split across more than one repository, submodules are expected to be committed after each pull requests has been merged.\n\nℹ️ More details can be found in the wiki: [wiki:Dealing with submodules](https://wiki.unvanquished.net/wiki/Dealing_with_submodules).\n","funding_links":[],"categories":["C++","Native","FPS"],"sub_categories":["FPS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUnvanquished%2FUnvanquished","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FUnvanquished%2FUnvanquished","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FUnvanquished%2FUnvanquished/lists"}