<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
		<id>https://wiki.unvanquished.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Illwieckz</id>
		<title>Unvanquished - User contributions [en-gb]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.unvanquished.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Illwieckz"/>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/wiki/Special:Contributions/Illwieckz"/>
		<updated>2026-06-25T02:55:28Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9131</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9131"/>
				<updated>2026-06-22T03:02:05Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualising the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
==About Native Client==&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
{{NativeClientIsDying}}&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{code|amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet. The {{engine}} received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
==Rebuild effort==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished team is working on rebuilding the Native Client ecosystem to benefit from the updates implemented by Google over the years. Especially, this will enable newer C and C++ versions, thanks to the Saigo compiler being based on Clang 21.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Native Client loader can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/native_client&lt;br /&gt;
&lt;br /&gt;
The official releases for Unvanquished are already using a rebuilt NaCl loader on Linux for the {{code|amd64}} architecture.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Saigo Native Client compiler can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/saigo-release-scripts&lt;br /&gt;
&lt;br /&gt;
It's already possible to build Unvanquished with a Saigo compiler rebuilt this way.&lt;br /&gt;
&lt;br /&gt;
==Interactive Debugging==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
==Postmortem Debugging==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=WebAssembly&amp;diff=9130</id>
		<title>WebAssembly</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=WebAssembly&amp;diff=9130"/>
				<updated>2026-06-22T02:59:17Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WebAssembly''' or '''Wasm''' is the best candidate for a future technology used for securely virtualising the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It may replace [[Native Client]] in the engine in the future.&lt;br /&gt;
&lt;br /&gt;
Some work has been started some years ago but for now that effort is stalled.&lt;br /&gt;
&lt;br /&gt;
{{NativeClientIsDying}}&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Template:NativeClientIsDying&amp;diff=9129</id>
		<title>Template:NativeClientIsDying</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Template:NativeClientIsDying&amp;diff=9129"/>
				<updated>2026-06-22T02:58:37Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{note|Thanks to the [[Native Client#Rebuild effort|Rebuild effort]] for both the NaCl loader and the Saigo NaCl compiler, and the fact the Saigo compiler has been maintained by Google up to 2025, bringing Clang 21 and C++23, the NaCl technology may be relevant for another decade and this allows the Unvanquished team to focus resources on other things.&lt;br /&gt;
&lt;br /&gt;
But [[Native Client]] will die one day, and we are slowly preparing the future, and [[WebAssembly]] is the best candidate for a Native Client successor.&lt;br /&gt;
&lt;br /&gt;
It's possible that the actual NaCl death will not come from Google but from Apple when they will deprecate the Rosetta 2 translation layer. If that prevents to run the amd64 loader on Apple Silicon, then Native Client will be dead for macOS and would not be a viable multi-platform sandboxing solution anymore.}}&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=WebAssembly&amp;diff=9128</id>
		<title>WebAssembly</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=WebAssembly&amp;diff=9128"/>
				<updated>2026-06-22T02:50:17Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Created page with &amp;quot;'''WebAssembly''' or '''Wasm''' is the best candidate for a future technology used for securely virtualising the game code in the {{engine}}.  It may replace Native Client...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''WebAssembly''' or '''Wasm''' is the best candidate for a future technology used for securely virtualising the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It may replace [[Native Client]] in the engine in the future.&lt;br /&gt;
&lt;br /&gt;
Some work has been started some years ago but for now that effort is stalled.&lt;br /&gt;
&lt;br /&gt;
Thanks to the rebuild effort for both the NaCl loader and the Saigo NaCl compiler, and the fact the Saigo compiler has been maintained by Google up to 2025, bringing Clang 21 and C++23, the NaCl technology may be relevant for another decade and this allows the Unvanquished team to focus resources on other things.&lt;br /&gt;
&lt;br /&gt;
But Native Client will die one day, and we are slowly preparing the future, and WebAssembly is the best candidate for such future.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9127</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9127"/>
				<updated>2026-06-22T02:46:45Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualising the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{code|amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet. The {{engine}} received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
== Rebuilding effort ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished team is working on rebuilding the Native Client ecosystem to benefit from the updates implemented by Google over the years. Especially, this will enable newer C and C++ versions, thanks to the Saigo compiler being based on Clang 21.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Native Client loader can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/native_client&lt;br /&gt;
&lt;br /&gt;
The official releases for Unvanquished are already using a rebuilt NaCl loader on Linux for the {{code|amd64}} architecture.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Saigo Native Client compiler can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/saigo-release-scripts&lt;br /&gt;
&lt;br /&gt;
It's already possible to build Unvanquished with a Saigo compiler rebuilt this way.&lt;br /&gt;
&lt;br /&gt;
== Interactive Debugging ==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Postmortem Debugging ==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9126</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9126"/>
				<updated>2026-06-22T02:45:33Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualising the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{code|amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet. The {{engine}} received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
== Rebuilding effort ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished team is working on rebuilding the Native Client ecosystem to benefit from the updates implemented by Google over the years. Especially, this will enable newer C and C++ versions, thanks to the Saigo compiler being based on Clang 21.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Native Client loader can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/native_client&lt;br /&gt;
&lt;br /&gt;
The official releases for Unvanquished are already using a rebuilt NaCl loader on Linux for the {{code|amd64}} architecture.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Saigo Native Client compilers can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/saigo-release-scripts&lt;br /&gt;
&lt;br /&gt;
It's already possible to build Unvanquished with a Saigo compiler rebuilt this way.&lt;br /&gt;
&lt;br /&gt;
== Interactive Debugging ==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Postmortem Debugging ==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9125</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9125"/>
				<updated>2026-06-22T02:42:54Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Notes on the rebuilding effort&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualizing the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{code|amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet. The {{engine}} received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
== Rebuilding effort ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished team is working on rebuilding the Native Client ecosystem to benefit from the updates implemented by Google over the years. Especially, this will enable newer C and C++ versions, thanks to the Saigo compiler being based on Clang 21.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Native Client loader can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/native_client&lt;br /&gt;
&lt;br /&gt;
The official releases for Unvanquished are already using a rebuilt NaCl loader on Linux for the {{code|amd64}} architecture.&lt;br /&gt;
&lt;br /&gt;
The project for rebuilding the Saigo Native Client compilers can be found there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/saigo-release-scripts&lt;br /&gt;
&lt;br /&gt;
It's already possible to build Unvanquished with a Saigo compiler rebuilt this way.&lt;br /&gt;
&lt;br /&gt;
== Interactive Debugging ==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Postmortem Debugging ==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9124</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9124"/>
				<updated>2026-06-22T02:38:04Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualizing the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{code|amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet. The {{engine}} received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
The workspace for our attempt to rebuild and repackage Saigo is there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/DaemonSaigoNativeClientToolkit&lt;br /&gt;
&lt;br /&gt;
== Interactive Debugging ==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Postmortem Debugging ==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9123</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9123"/>
				<updated>2026-06-22T02:37:27Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: fix markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualizing the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{code|amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet.&lt;br /&gt;
&lt;br /&gt;
The Dæmon engine received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
The workspace for our attempt to rebuild and repackage Saigo is there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/DaemonSaigoNativeClientToolkit&lt;br /&gt;
&lt;br /&gt;
== Interactive Debugging ==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Postmortem Debugging ==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9122</id>
		<title>Native Client</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Native_Client&amp;diff=9122"/>
				<updated>2026-06-22T02:36:57Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: box64 mention&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Native Client''' or '''NaCl''' is the current technology used for securely virtualizing the game code in the {{engine}}.&lt;br /&gt;
&lt;br /&gt;
It replaced the Q3VM (Quake3 Virtual Machine) in the engine.&lt;br /&gt;
&lt;br /&gt;
Unlike Q3VM for which the {{code|.qvm}} binaries were limited to be produced with the old C supported by the proprietary LCC compiler, the {{code|.nexe}} NaCl binaries can be compiled with Clang-based open source compilers supporting modern-enough C++ versions and allowing to reuse off-the-shelf C++ libraries that may even be shared between the engine and the game source code.&lt;br /&gt;
&lt;br /&gt;
Unlike QVMs, NaCl gamelogic runs in a secure sandbox. Native Client lets you run mods downloaded from the internet without giving them free reign on your computer. QVM was equivalent to running a DLL with no protection.&lt;br /&gt;
&lt;br /&gt;
The Native Client documentation can be found on [https://chrome.jscn.org/docs/native-client/welcome-to-native-client/ chrome.jscn.org/docs/native-client/welcome-to-native-client/].&lt;br /&gt;
&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;margin:auto&amp;quot;&lt;br /&gt;
|+ Platform NaCl compatibility&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Linux !! colspan=&amp;quot;2&amp;quot; | Windows !! colspan=&amp;quot;2&amp;quot; | macOS !! FreeBSD&lt;br /&gt;
|-&lt;br /&gt;
! amd64 || i686 || arm64 || armhf || amd64 || i686 || amd64 || arm64 || amd64&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ native || ✅️ native || ☑️ through armhf&amp;lt;br/&amp;gt;compatibility || ✅️ native || ✅️ native || ✅️ native || ✅️ native || ☑️ through amd64&amp;lt;br/&amp;gt;compatibility || ☑️ through Linux&amp;lt;br/&amp;gt;compatibility&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It has been verified that Linux on {{code|ppc64el}} and {{code|riscv64}} can run the {{amd64}} loader on [https://box86.org box64], though on {{code|riscv64}}. The '''box64''' translation layer can also run on {{code|loong64}} but this has not been tested yet.&lt;br /&gt;
&lt;br /&gt;
The Dæmon engine received patches to run box64, but the users have to build the engine themselves and provide box64.&lt;br /&gt;
&lt;br /&gt;
The NaCl loader (the virtual machine running the virtualised code) is available for three systems: Linux, Windows and macOS. The supported architectures differs per system:&lt;br /&gt;
&lt;br /&gt;
* Linux: amd64, i686, armhf;&lt;br /&gt;
* Windows: amd64, i686;&lt;br /&gt;
* macOS: amd64.&lt;br /&gt;
&lt;br /&gt;
It is possible to run native engines with other platforms when there is a compatibility layer to run the NaCl loader:&lt;br /&gt;
&lt;br /&gt;
* Linux, arm64: running the armhf NaCl loader through built-in Linux 32-bit compatibility;&lt;br /&gt;
* macOS, arm64: running the amd64 NaCl loader through Rosetta2 compatibility;&lt;br /&gt;
* FreeBSD, amd64: running the Linux NaCl loader through built-in Linuxulator compatibility.&lt;br /&gt;
&lt;br /&gt;
The Linux armhf NaCl loader requires a 4k PageSize kernel:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3286&lt;br /&gt;
&lt;br /&gt;
The Linux i686 and armhf NaCl loaders may run on FreeBSD using Linuxulator but it is not tested.&lt;br /&gt;
&lt;br /&gt;
NaCl also supports 32-bit MIPS on Linux but this architecture is not supported by the {{engine}} and the {{game}} project.&lt;br /&gt;
&lt;br /&gt;
NaCl upstream development has slowed down since the competing solution [[WebAssembly]] became the industry standard, so it is very unlikely support for new systems and architecture would be added. To overcome this problem, we would have to switch to WebAssembly (that unfortunately may only support using a slow interpreter for some platforms NaCl supports, like i686 or armhf), but more importantly may still lack support for exceptions or {{code|setjmp/longjmp}} and then  not be complete enough for our needs yet.&lt;br /&gt;
&lt;br /&gt;
==Compilers==&lt;br /&gt;
&lt;br /&gt;
===PNaCl Clang===&lt;br /&gt;
&lt;br /&gt;
PNaCl Clang is the current NaCl compiler we use to build the nexe game binaries. It is based on an old Clang 3.6 and does not support C++ above C++14. To overcome some of the related limitations we may switch to Saigo.&lt;br /&gt;
&lt;br /&gt;
The PNaCl compilation workflow is to build a single {{code|.pexe}} then to translate them to per-architecture {{code|.nexe}} (amd64, i686, armhf) using a specific translator tool.&lt;br /&gt;
&lt;br /&gt;
The PNaCl SDK consists on Python-based wrappers around Clang internals. It was initially using now-obsolete and hard-to-find Python2 but we ported it to Python3 to extend its lifespan.&lt;br /&gt;
&lt;br /&gt;
The provided PNaCl SDK runs on Linux, Windows and macOS systems, on amd64 architectures.&lt;br /&gt;
&lt;br /&gt;
While the {{code|.pexe}} compiler itself runs on FreeBSD with the Linuxulator, the translator does not, meaning it's not possible to build {{code|.nexe}} binaries on FreeBSD.&lt;br /&gt;
&lt;br /&gt;
PNaCl supports C++ exception. There exist newer PNaCl SDKs (from chromium canary releases) that do not support exceptions and may not provide more what we already have with latest stable PNaCl.&lt;br /&gt;
&lt;br /&gt;
===Saigo===&lt;br /&gt;
&lt;br /&gt;
Saigo is a new NaCl compiler based on latest Clang and supporting latest C++ standards. It compiles directly to {{code|.nexe}}.&lt;br /&gt;
&lt;br /&gt;
The Unvanquished game code is now buildable with Saigo.&lt;br /&gt;
&lt;br /&gt;
Saigo may not support C++ exceptions as far as we know but supports {{code|setjmp/longjmp}}.&lt;br /&gt;
&lt;br /&gt;
Unlike PNaCl, Saigo do not provide released binaries, meaning a switch to Saigo requires a convenient way to provide it to contributors. Google provides some nightly Linux amd64 Saigo toolchain snapshots that aren't easy to get without some Google scripts. The Saigo compiler itself isn't hard to build (same as Clang itself), the binutils are a bit more ticky but not that hard (10 years-old configure build). What is tricky to rebuild is the libc that requires some very old NaCl GCC. Fortunately there exists libc and libc++ snapshots provided by Google that can be reused with a self-built toolchain.&lt;br /&gt;
&lt;br /&gt;
The Saigo compiler and NaCl binutils should build everywhere their upstream build, but they will always target the usual platforms as the NaCl loader is still the same: a more recent NaCl loader is also buildable but doesn't bring any new platform support.&lt;br /&gt;
&lt;br /&gt;
Moving to Saigo is considered as a migration step that can be achievable before migrating to [[WebAssembly]], as it allows us to migrate to a new C++ standard and update libraries we use without waiting for the migration to WebAssembly.&lt;br /&gt;
&lt;br /&gt;
Some redesign of our CMake configuration for Saigo may help later when migrating to WebAssembly as it makes it more generic for different VM toolchains.&lt;br /&gt;
&lt;br /&gt;
Here is a GitHub issue about the ongoing efforts for migrating to Saigo:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Unvanquished/Unvanquished/issues/3197&lt;br /&gt;
&lt;br /&gt;
The workspace for our attempt to rebuild and repackage Saigo is there:&lt;br /&gt;
&lt;br /&gt;
* https://github.com/DaemonEngine/DaemonSaigoNativeClientToolkit&lt;br /&gt;
&lt;br /&gt;
== Interactive Debugging ==&lt;br /&gt;
&lt;br /&gt;
Most of the time it is easiest to debug with a native DLL. But if you have a problem that cannot be reproduced outside of NaCl, you may be forced to resort to the following tutorial.&lt;br /&gt;
&lt;br /&gt;
These steps for attaching the NaCl debugger&amp;lt;ref&amp;gt;https://web.archive.org/web/20250909075554/https://www.chromium.org/nativeclient/how-tos/debugging-documentation/debugging-with-debug-stub-recommended/getting-started-with-debug-stub/&amp;lt;/ref&amp;gt; have been tested on Windows with a PNaCl toolchain. They should also work on binaries built with Saigo, using the old PNaCl GDB. On Linux or Mac you may experience more difficulties due to the lack of support for old binaries (meaning nacl-gdb). illwieckz reports that on amd64 Linux in 2025, using the old GDB which is a 32-bit binary, debugging an amd64 nexe does not work (despite the documentation's claims of debugger platform independence), but debugging an i686 nexe does.&lt;br /&gt;
&lt;br /&gt;
# Build the NaCl gamelogic with debugging symbols (build type Debug or RelWithDebInfo).&lt;br /&gt;
# Launch Daemon configured for NaCl debugging. For example, &amp;lt;code&amp;gt;./daemonded -set vm.sgame.type 1 -set vm.sgame.debug 1 +map chasm&amp;lt;/code&amp;gt; When the relevant gamelogic starts, the engine should pause and emit the message &amp;lt;code&amp;gt;Waiting for GDB connection on localhost:4014&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Start NaCl GDB, e.g. &amp;lt;code&amp;gt;daemon\external_deps\windows-amd64-mingw_10\nacl-gdb.exe&amp;lt;/code&amp;gt; This works better out of a command prompt rather than an MSYS window.&lt;br /&gt;
# Use the &amp;quot;file&amp;quot; command to tell the debugger where the binary with symbols is. For example, &amp;lt;code&amp;gt;file sgame-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# OPTIONAL, probably a waste of time: load the IRT (Integrated Runtime) symbols: &amp;lt;code&amp;gt;nacl-irt irt_core-amd64.nexe&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect to the NaCl program with the command &amp;lt;code&amp;gt;target remote :4014&amp;lt;/code&amp;gt;&lt;br /&gt;
# You should see a message like &amp;lt;code&amp;gt;0x000000000ffc00a0 in ?? ()&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;0x000000000ffc00a0 in __pnacl_start ()&amp;lt;/code&amp;gt; if you did step 5). This means the program is paused at the beginning.&lt;br /&gt;
# Set some breakpoints, e.g. &amp;lt;code&amp;gt;b G_RunFrame&amp;lt;/code&amp;gt;. Alternatively, just wait for the debugger to break when the game crashes.&lt;br /&gt;
# Start the program by continuing (&amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
== Postmortem Debugging ==&lt;br /&gt;
&lt;br /&gt;
See [[Breakpad]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9115</id>
		<title>Daemon based games</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9115"/>
				<updated>2026-06-02T11:47:37Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* KingpinQ3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[[Engine|Dæmon]]''' is the game engine powering Unvanquished. The {{engine}} is a fork of the '''XreaL engine''' through the '''ET:XreaL''' variant which derivates from both '''Quake 3 engine''' and '''Wolfenstein: Enemy Territory engine'''.&lt;br /&gt;
&lt;br /&gt;
While it is technically possible to use DaemonEngine to write or maintain a different game, based or not on Unvanquished, it is recommended to the candidate to read (and think over) how the [[Compatibility]] in engine and libengine API/ABI is kept.&lt;br /&gt;
&lt;br /&gt;
* {{engine|link=no}} repository: https://github.com/DaemonEngine/Daemon&lt;br /&gt;
&lt;br /&gt;
{{NoteOpenWolf}}&lt;br /&gt;
&lt;br /&gt;
== Released games ==&lt;br /&gt;
&lt;br /&gt;
=== Unvanquished ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
'''[[Game|Unvanquished]]''' is the game maintaining the {{engine}}, first release happened on February 29, 2012 and is still releasing new versions 10 years later. Unvanquished derivates from the Tremulous game that was initially released as a standalone game on an engine derivated from ioquake3 in 2006, after having been a Quake 3 total conversion mod for some time.&lt;br /&gt;
&lt;br /&gt;
* Website: https://unvanquished.net&lt;br /&gt;
* Game code repositories: https://github.com/Unvanquished&lt;br /&gt;
* Game data repositories: https://github.com/UnvanquishedAssets&lt;br /&gt;
&lt;br /&gt;
== Unreleased projects ==&lt;br /&gt;
&lt;br /&gt;
=== FreeFort ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled.&lt;br /&gt;
&lt;br /&gt;
* Website: https://freefortgame.net&lt;br /&gt;
* Repositories: https://git.freefortgame.net/FreeFort&lt;br /&gt;
&lt;br /&gt;
'''FreeFort''' is the most recent attempt to make a game based on the {{engine}} and the Unvanquished game code. The project is to remake a Team Fortress 2-like game as a fully free and libre open source game. The project is in it's very early state and nothing is released yet.&lt;br /&gt;
&lt;br /&gt;
The project is currently stopped.&lt;br /&gt;
&lt;br /&gt;
=== Unnamed project ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' unknown.&lt;br /&gt;
&lt;br /&gt;
There is also another project whose name wan't known to make a new game from scratch based on the {{engine}} (without reusing the Unvanquished game code) which is more about being an infantry war game. Few information had been know about it. While doing this effort, [[Special:Contributions/The_White_Lion|The White Lion]] produced a lot of very useful documentation in the [[Technical Documentation]] page, especially the ''Program Ignition and Initialization'' part and many other parts like ''Source Code Filesystem Tree Structure'' or ''System Architecture''.&lt;br /&gt;
&lt;br /&gt;
The project is probably inactive and very few information has been known about it.&lt;br /&gt;
&lt;br /&gt;
=== UnrealArena ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (as a playable game).&lt;br /&gt;
&lt;br /&gt;
* Website: http://www.unrealarena.net&lt;br /&gt;
* Repositories: https://github.com/unrealarena&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to follow the {{engine}} upstream and Unvanquished upstream as a basis for a game, merging improvements from upstream while the project lived its own life from writing source, creating levels and producing binaries.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled if the project managed to produce multiple build, there is nothing playable.&lt;br /&gt;
&lt;br /&gt;
'''Unreal Arena''' is a brand new game project (not a port) based on Dæmon and Unvanquished code. The purpose is to provide the user two different teams, one using Quake III Arena movements and weapons, another one using Unreal Tournament movements and weapons, and let people frag together.&lt;br /&gt;
&lt;br /&gt;
The project managed to recreate a Quake 3 map (untextured) from scratch and publish some alpha build just making possible for a tester to load a map, join and navigate.&lt;br /&gt;
&lt;br /&gt;
=== Smokin' Guns ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' dormant, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.smokin-guns.org&lt;br /&gt;
* Repositories: https://github.com/smokin-guns&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to improve the {{engine}} by testing assets from more than one game, debugging and implementing fixes. It also helped to design some good practices in the way game assets can be built, as tools like [[Tools/Urcheon|Urcheon]] are thoughts to be reusable for more projects.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently dormant as most people involved are very busy on other projects and other things in their life. Players should use the ioquake3-based game for now.&lt;br /&gt;
&lt;br /&gt;
This is a project to port the '''Smokin' Guns game''' to the {{engine|link=no}}. The Smokin' Guns game already exist as a released standalone game running on ioquake3 engine, it derivates from the Western Quake 3 total conversion mod.&lt;br /&gt;
&lt;br /&gt;
The project is to use the upstream {{engine|link=no}} (or to upstream the changes) and to rebase the specific Smokin' Guns game mechanics on the Unvanquished game to be able to merge improvements from Unvanquished as time passes.&lt;br /&gt;
&lt;br /&gt;
Some fixes for Smokin' Guns assets were upstreamed to the {{engine|link=no}}, and a some testing assets were produced to load Smokin' Guns maps with the Unvanquished game and the {{engine|link=no}} for testing purpose and to fix related issues.&lt;br /&gt;
&lt;br /&gt;
A video demonstrating the Smokin' Guns game code running on Dæmon engine has been shown by slipher in 2026:&lt;br /&gt;
&lt;br /&gt;
* https://forums.unvanquished.net/viewtopic.php?t=2618&lt;br /&gt;
&lt;br /&gt;
=== Xonotic ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://xonotic.org&lt;br /&gt;
* Repositories: https://gitlab.com/xonotic&lt;br /&gt;
* Repository for the Q1VM glue: https://gitlab.com/xonotic/daemon-glue/&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to have multiple teams from different games working on the same game engine and contributing heavily to its development, to stimulate cross-projects contribution, to make Free Software development community a better place with projects living together and helping each others, and to make the {{engine}} better.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled as all people involved in those various attempts became busy with other things in their life. Players should use the DarkPlaces-based game for now.&lt;br /&gt;
&lt;br /&gt;
There was multiple attempts to port the '''Xonotic game''' on the {{engine}}. Historically, Xonotic is running on the DarkPlaces engine. Xonotic as a released standalone game running on the DarkPlaces engine exists since September 8 2011 and is a fork (and continuation) of the defunct Nexuiz game initially released on May 31, 2005.&lt;br /&gt;
&lt;br /&gt;
The Darkplaces engine development was stalled and it was considered difficult to improve it for non-technical reasons because the DarkPlaces engine tries to keep compatibility with original Quake game and some improvements wanted for the need of Xonotic may break compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand the {{engine}} can break things for the best (like fixing design issues) and was seen as a live project. Multiple people from Team Xonotic expressed the will to port their game on the {{engine|link=no}}.&lt;br /&gt;
&lt;br /&gt;
The project was to port the Xonotic game code on the {{engine|link=no}} (not rebasing on Unvanquished game code).&lt;br /&gt;
&lt;br /&gt;
Such effort is not a an easy task because the {{engine|link=no}} is an engine derivating from Quake 3 engine while DarkPlaces engine derivates from Quake (the first) engine. Anyway, DarkPlaces already supports Quake 3 bsp files (map format) and most of Quake 3 shaders (material format) which are the ones natively supported by the {{engine|link=no}}, and Xonotic already uses those Quake 3 formats.&lt;br /&gt;
&lt;br /&gt;
The difficulty is that the Xonotic game code is written in QuakeC and is expected to run on a Q1VM, while Dæmon executes native code (currently sandboxed in NativeClient) compiled from generic languages like C or C++. There was multiple attempts to achieve the port, some people worked on source transpilers to convert the QuakeC code base to less exotic languages like C++ or Rust, others worked on writing a Q1VM expected to run on the Dæmon virtual machine.&lt;br /&gt;
&lt;br /&gt;
There was interesting progresses achieved by those various attempts, the team managed to produce a minimalistic Q1VM running some minimal QuakeC code base allowing to start the {{engine|link=no}}, load a map and walk around.&lt;br /&gt;
&lt;br /&gt;
Xonotic developers helped to split the {{engine|link=no}} and the Unvanquished game, developped some code to make the engine more standalone.&lt;br /&gt;
&lt;br /&gt;
Lots of features were implemented in the Dæmon renderer using Xonotic data files (maps, materials, textures…), for example the relief mapping feature was debugged and fixed using Xonotic maps and materials, or the ability to support both lose normal maps and normal maps embedded in height maps was implemented. Also a lot of rewrite was done to make the {{engine|link=no}} better and even helped Dæmon team to better understand some things to make the engine better, for example the multitextured material blending feature is a direct consequences from that, or the ability to support multiple formats of normal maps.&lt;br /&gt;
&lt;br /&gt;
The {{engine}} now provides some cvars to enable compatibility code to better support medias purposed for the DarkPlaces engine.&lt;br /&gt;
&lt;br /&gt;
This project also helped the Dæmon game engine to support both the newer DPK format and the legacy PK3 format at the same time, because Xonotic through Nexuiz has more than 15 years of history and there are thousands of maps out there so porting maps was not really an option.&lt;br /&gt;
&lt;br /&gt;
Xonotic data files (maps, materials, textures…) are still used today as test bed for the {{engine|link=no}} to test for regressions and to implement new features: Xonotic assets makes use of more rendering features than Unvanquished! For example the Xonotic assets may be used to test the sRGB lightmap technology we still need to implement.&lt;br /&gt;
&lt;br /&gt;
The Xonotic and Unvanquished teams became very close, and multiple Xonotic contributors also became Dæmon and/or Unvanquished contributors (TimePath, Mario, Melanosuchus, EACFreddy…), making the engine better, implementing features, etc. Some Unvanquished contibutors also started to help Xonotic as we still have common interests. For example Unvanquished contributors help Team Xonotic to maintain the [[Tools/NetRadiant|NetRadiant]] level editor which is also the recommended level editor for Unvanquished.&lt;br /&gt;
&lt;br /&gt;
== Special mentions ==&lt;br /&gt;
&lt;br /&gt;
Those are not Dæmon-based but very close.&lt;br /&gt;
&lt;br /&gt;
=== KingpinQ3 ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake (on a custom XreaL port).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
This project is ''not'' running on the {{engine|link=no}} but on another fork of '''XreaL''' (like Dæmon), so technically both engines are very close and we share common interests. For example hypov8 from KingpinQ3 converted our new lasgun first person model to a usable third person model in Unvanquished!&lt;br /&gt;
&lt;br /&gt;
'''KingpinQ3''' is a remake of Xatrix Entertainment's '''Kingpin - Life of Crime game''' on an engine derivated from Quake 3 through the '''XreaL''' lineage like us!&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.kingpinq3.com&lt;br /&gt;
* Downloads: https://www.kingpin.info/download/index.php?dir=kpq3/&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9114</id>
		<title>Daemon based games</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9114"/>
				<updated>2026-06-02T11:45:50Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Special mentions (not Dæmon-based but very close) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[[Engine|Dæmon]]''' is the game engine powering Unvanquished. The {{engine}} is a fork of the '''XreaL engine''' through the '''ET:XreaL''' variant which derivates from both '''Quake 3 engine''' and '''Wolfenstein: Enemy Territory engine'''.&lt;br /&gt;
&lt;br /&gt;
While it is technically possible to use DaemonEngine to write or maintain a different game, based or not on Unvanquished, it is recommended to the candidate to read (and think over) how the [[Compatibility]] in engine and libengine API/ABI is kept.&lt;br /&gt;
&lt;br /&gt;
* {{engine|link=no}} repository: https://github.com/DaemonEngine/Daemon&lt;br /&gt;
&lt;br /&gt;
{{NoteOpenWolf}}&lt;br /&gt;
&lt;br /&gt;
== Released games ==&lt;br /&gt;
&lt;br /&gt;
=== Unvanquished ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
'''[[Game|Unvanquished]]''' is the game maintaining the {{engine}}, first release happened on February 29, 2012 and is still releasing new versions 10 years later. Unvanquished derivates from the Tremulous game that was initially released as a standalone game on an engine derivated from ioquake3 in 2006, after having been a Quake 3 total conversion mod for some time.&lt;br /&gt;
&lt;br /&gt;
* Website: https://unvanquished.net&lt;br /&gt;
* Game code repositories: https://github.com/Unvanquished&lt;br /&gt;
* Game data repositories: https://github.com/UnvanquishedAssets&lt;br /&gt;
&lt;br /&gt;
== Unreleased projects ==&lt;br /&gt;
&lt;br /&gt;
=== FreeFort ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled.&lt;br /&gt;
&lt;br /&gt;
* Website: https://freefortgame.net&lt;br /&gt;
* Repositories: https://git.freefortgame.net/FreeFort&lt;br /&gt;
&lt;br /&gt;
'''FreeFort''' is the most recent attempt to make a game based on the {{engine}} and the Unvanquished game code. The project is to remake a Team Fortress 2-like game as a fully free and libre open source game. The project is in it's very early state and nothing is released yet.&lt;br /&gt;
&lt;br /&gt;
The project is currently stopped.&lt;br /&gt;
&lt;br /&gt;
=== Unnamed project ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' unknown.&lt;br /&gt;
&lt;br /&gt;
There is also another project whose name wan't known to make a new game from scratch based on the {{engine}} (without reusing the Unvanquished game code) which is more about being an infantry war game. Few information had been know about it. While doing this effort, [[Special:Contributions/The_White_Lion|The White Lion]] produced a lot of very useful documentation in the [[Technical Documentation]] page, especially the ''Program Ignition and Initialization'' part and many other parts like ''Source Code Filesystem Tree Structure'' or ''System Architecture''.&lt;br /&gt;
&lt;br /&gt;
The project is probably inactive and very few information has been known about it.&lt;br /&gt;
&lt;br /&gt;
=== UnrealArena ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (as a playable game).&lt;br /&gt;
&lt;br /&gt;
* Website: http://www.unrealarena.net&lt;br /&gt;
* Repositories: https://github.com/unrealarena&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to follow the {{engine}} upstream and Unvanquished upstream as a basis for a game, merging improvements from upstream while the project lived its own life from writing source, creating levels and producing binaries.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled if the project managed to produce multiple build, there is nothing playable.&lt;br /&gt;
&lt;br /&gt;
'''Unreal Arena''' is a brand new game project (not a port) based on Dæmon and Unvanquished code. The purpose is to provide the user two different teams, one using Quake III Arena movements and weapons, another one using Unreal Tournament movements and weapons, and let people frag together.&lt;br /&gt;
&lt;br /&gt;
The project managed to recreate a Quake 3 map (untextured) from scratch and publish some alpha build just making possible for a tester to load a map, join and navigate.&lt;br /&gt;
&lt;br /&gt;
=== Smokin' Guns ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' dormant, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.smokin-guns.org&lt;br /&gt;
* Repositories: https://github.com/smokin-guns&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to improve the {{engine}} by testing assets from more than one game, debugging and implementing fixes. It also helped to design some good practices in the way game assets can be built, as tools like [[Tools/Urcheon|Urcheon]] are thoughts to be reusable for more projects.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently dormant as most people involved are very busy on other projects and other things in their life. Players should use the ioquake3-based game for now.&lt;br /&gt;
&lt;br /&gt;
This is a project to port the '''Smokin' Guns game''' to the {{engine|link=no}}. The Smokin' Guns game already exist as a released standalone game running on ioquake3 engine, it derivates from the Western Quake 3 total conversion mod.&lt;br /&gt;
&lt;br /&gt;
The project is to use the upstream {{engine|link=no}} (or to upstream the changes) and to rebase the specific Smokin' Guns game mechanics on the Unvanquished game to be able to merge improvements from Unvanquished as time passes.&lt;br /&gt;
&lt;br /&gt;
Some fixes for Smokin' Guns assets were upstreamed to the {{engine|link=no}}, and a some testing assets were produced to load Smokin' Guns maps with the Unvanquished game and the {{engine|link=no}} for testing purpose and to fix related issues.&lt;br /&gt;
&lt;br /&gt;
A video demonstrating the Smokin' Guns game code running on Dæmon engine has been shown by slipher in 2026:&lt;br /&gt;
&lt;br /&gt;
* https://forums.unvanquished.net/viewtopic.php?t=2618&lt;br /&gt;
&lt;br /&gt;
=== Xonotic ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://xonotic.org&lt;br /&gt;
* Repositories: https://gitlab.com/xonotic&lt;br /&gt;
* Repository for the Q1VM glue: https://gitlab.com/xonotic/daemon-glue/&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to have multiple teams from different games working on the same game engine and contributing heavily to its development, to stimulate cross-projects contribution, to make Free Software development community a better place with projects living together and helping each others, and to make the {{engine}} better.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled as all people involved in those various attempts became busy with other things in their life. Players should use the DarkPlaces-based game for now.&lt;br /&gt;
&lt;br /&gt;
There was multiple attempts to port the '''Xonotic game''' on the {{engine}}. Historically, Xonotic is running on the DarkPlaces engine. Xonotic as a released standalone game running on the DarkPlaces engine exists since September 8 2011 and is a fork (and continuation) of the defunct Nexuiz game initially released on May 31, 2005.&lt;br /&gt;
&lt;br /&gt;
The Darkplaces engine development was stalled and it was considered difficult to improve it for non-technical reasons because the DarkPlaces engine tries to keep compatibility with original Quake game and some improvements wanted for the need of Xonotic may break compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand the {{engine}} can break things for the best (like fixing design issues) and was seen as a live project. Multiple people from Team Xonotic expressed the will to port their game on the {{engine|link=no}}.&lt;br /&gt;
&lt;br /&gt;
The project was to port the Xonotic game code on the {{engine|link=no}} (not rebasing on Unvanquished game code).&lt;br /&gt;
&lt;br /&gt;
Such effort is not a an easy task because the {{engine|link=no}} is an engine derivating from Quake 3 engine while DarkPlaces engine derivates from Quake (the first) engine. Anyway, DarkPlaces already supports Quake 3 bsp files (map format) and most of Quake 3 shaders (material format) which are the ones natively supported by the {{engine|link=no}}, and Xonotic already uses those Quake 3 formats.&lt;br /&gt;
&lt;br /&gt;
The difficulty is that the Xonotic game code is written in QuakeC and is expected to run on a Q1VM, while Dæmon executes native code (currently sandboxed in NativeClient) compiled from generic languages like C or C++. There was multiple attempts to achieve the port, some people worked on source transpilers to convert the QuakeC code base to less exotic languages like C++ or Rust, others worked on writing a Q1VM expected to run on the Dæmon virtual machine.&lt;br /&gt;
&lt;br /&gt;
There was interesting progresses achieved by those various attempts, the team managed to produce a minimalistic Q1VM running some minimal QuakeC code base allowing to start the {{engine|link=no}}, load a map and walk around.&lt;br /&gt;
&lt;br /&gt;
Xonotic developers helped to split the {{engine|link=no}} and the Unvanquished game, developped some code to make the engine more standalone.&lt;br /&gt;
&lt;br /&gt;
Lots of features were implemented in the Dæmon renderer using Xonotic data files (maps, materials, textures…), for example the relief mapping feature was debugged and fixed using Xonotic maps and materials, or the ability to support both lose normal maps and normal maps embedded in height maps was implemented. Also a lot of rewrite was done to make the {{engine|link=no}} better and even helped Dæmon team to better understand some things to make the engine better, for example the multitextured material blending feature is a direct consequences from that, or the ability to support multiple formats of normal maps.&lt;br /&gt;
&lt;br /&gt;
The {{engine}} now provides some cvars to enable compatibility code to better support medias purposed for the DarkPlaces engine.&lt;br /&gt;
&lt;br /&gt;
This project also helped the Dæmon game engine to support both the newer DPK format and the legacy PK3 format at the same time, because Xonotic through Nexuiz has more than 15 years of history and there are thousands of maps out there so porting maps was not really an option.&lt;br /&gt;
&lt;br /&gt;
Xonotic data files (maps, materials, textures…) are still used today as test bed for the {{engine|link=no}} to test for regressions and to implement new features: Xonotic assets makes use of more rendering features than Unvanquished! For example the Xonotic assets may be used to test the sRGB lightmap technology we still need to implement.&lt;br /&gt;
&lt;br /&gt;
The Xonotic and Unvanquished teams became very close, and multiple Xonotic contributors also became Dæmon and/or Unvanquished contributors (TimePath, Mario, Melanosuchus, EACFreddy…), making the engine better, implementing features, etc. Some Unvanquished contibutors also started to help Xonotic as we still have common interests. For example Unvanquished contributors help Team Xonotic to maintain the [[Tools/NetRadiant|NetRadiant]] level editor which is also the recommended level editor for Unvanquished.&lt;br /&gt;
&lt;br /&gt;
== Special mentions ==&lt;br /&gt;
&lt;br /&gt;
Those are not Dæmon-based but very close.&lt;br /&gt;
&lt;br /&gt;
=== KingpinQ3 ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake (on a custom XreaL port).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
This project is ''not'' running on the {{engine|link=no}} but on another fork of '''XreaL''' (like Dæmon), so technically both engines are very close and we share common interests. For example hypov8 from KingpinQ3 converted our new lasgun first person model to a usable third person model in Unvanquished!&lt;br /&gt;
&lt;br /&gt;
'''KingpinQ3''' is a remake of Xatrix Entertainment's '''Kingpin - Life of Crime game''' on an engine derivated from Quake 3 through the '''XreaL''' lineage like us!&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.kingpinq3.com&lt;br /&gt;
* Downloads: https://www.kingpin.info/download/index.php?dir=other/standalonegames/KingpinQ3/&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9113</id>
		<title>Daemon based games</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9113"/>
				<updated>2026-06-02T11:44:46Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Smokin' Guns */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[[Engine|Dæmon]]''' is the game engine powering Unvanquished. The {{engine}} is a fork of the '''XreaL engine''' through the '''ET:XreaL''' variant which derivates from both '''Quake 3 engine''' and '''Wolfenstein: Enemy Territory engine'''.&lt;br /&gt;
&lt;br /&gt;
While it is technically possible to use DaemonEngine to write or maintain a different game, based or not on Unvanquished, it is recommended to the candidate to read (and think over) how the [[Compatibility]] in engine and libengine API/ABI is kept.&lt;br /&gt;
&lt;br /&gt;
* {{engine|link=no}} repository: https://github.com/DaemonEngine/Daemon&lt;br /&gt;
&lt;br /&gt;
{{NoteOpenWolf}}&lt;br /&gt;
&lt;br /&gt;
== Released games ==&lt;br /&gt;
&lt;br /&gt;
=== Unvanquished ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
'''[[Game|Unvanquished]]''' is the game maintaining the {{engine}}, first release happened on February 29, 2012 and is still releasing new versions 10 years later. Unvanquished derivates from the Tremulous game that was initially released as a standalone game on an engine derivated from ioquake3 in 2006, after having been a Quake 3 total conversion mod for some time.&lt;br /&gt;
&lt;br /&gt;
* Website: https://unvanquished.net&lt;br /&gt;
* Game code repositories: https://github.com/Unvanquished&lt;br /&gt;
* Game data repositories: https://github.com/UnvanquishedAssets&lt;br /&gt;
&lt;br /&gt;
== Unreleased projects ==&lt;br /&gt;
&lt;br /&gt;
=== FreeFort ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled.&lt;br /&gt;
&lt;br /&gt;
* Website: https://freefortgame.net&lt;br /&gt;
* Repositories: https://git.freefortgame.net/FreeFort&lt;br /&gt;
&lt;br /&gt;
'''FreeFort''' is the most recent attempt to make a game based on the {{engine}} and the Unvanquished game code. The project is to remake a Team Fortress 2-like game as a fully free and libre open source game. The project is in it's very early state and nothing is released yet.&lt;br /&gt;
&lt;br /&gt;
The project is currently stopped.&lt;br /&gt;
&lt;br /&gt;
=== Unnamed project ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' unknown.&lt;br /&gt;
&lt;br /&gt;
There is also another project whose name wan't known to make a new game from scratch based on the {{engine}} (without reusing the Unvanquished game code) which is more about being an infantry war game. Few information had been know about it. While doing this effort, [[Special:Contributions/The_White_Lion|The White Lion]] produced a lot of very useful documentation in the [[Technical Documentation]] page, especially the ''Program Ignition and Initialization'' part and many other parts like ''Source Code Filesystem Tree Structure'' or ''System Architecture''.&lt;br /&gt;
&lt;br /&gt;
The project is probably inactive and very few information has been known about it.&lt;br /&gt;
&lt;br /&gt;
=== UnrealArena ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (as a playable game).&lt;br /&gt;
&lt;br /&gt;
* Website: http://www.unrealarena.net&lt;br /&gt;
* Repositories: https://github.com/unrealarena&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to follow the {{engine}} upstream and Unvanquished upstream as a basis for a game, merging improvements from upstream while the project lived its own life from writing source, creating levels and producing binaries.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled if the project managed to produce multiple build, there is nothing playable.&lt;br /&gt;
&lt;br /&gt;
'''Unreal Arena''' is a brand new game project (not a port) based on Dæmon and Unvanquished code. The purpose is to provide the user two different teams, one using Quake III Arena movements and weapons, another one using Unreal Tournament movements and weapons, and let people frag together.&lt;br /&gt;
&lt;br /&gt;
The project managed to recreate a Quake 3 map (untextured) from scratch and publish some alpha build just making possible for a tester to load a map, join and navigate.&lt;br /&gt;
&lt;br /&gt;
=== Smokin' Guns ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' dormant, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.smokin-guns.org&lt;br /&gt;
* Repositories: https://github.com/smokin-guns&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to improve the {{engine}} by testing assets from more than one game, debugging and implementing fixes. It also helped to design some good practices in the way game assets can be built, as tools like [[Tools/Urcheon|Urcheon]] are thoughts to be reusable for more projects.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently dormant as most people involved are very busy on other projects and other things in their life. Players should use the ioquake3-based game for now.&lt;br /&gt;
&lt;br /&gt;
This is a project to port the '''Smokin' Guns game''' to the {{engine|link=no}}. The Smokin' Guns game already exist as a released standalone game running on ioquake3 engine, it derivates from the Western Quake 3 total conversion mod.&lt;br /&gt;
&lt;br /&gt;
The project is to use the upstream {{engine|link=no}} (or to upstream the changes) and to rebase the specific Smokin' Guns game mechanics on the Unvanquished game to be able to merge improvements from Unvanquished as time passes.&lt;br /&gt;
&lt;br /&gt;
Some fixes for Smokin' Guns assets were upstreamed to the {{engine|link=no}}, and a some testing assets were produced to load Smokin' Guns maps with the Unvanquished game and the {{engine|link=no}} for testing purpose and to fix related issues.&lt;br /&gt;
&lt;br /&gt;
A video demonstrating the Smokin' Guns game code running on Dæmon engine has been shown by slipher in 2026:&lt;br /&gt;
&lt;br /&gt;
* https://forums.unvanquished.net/viewtopic.php?t=2618&lt;br /&gt;
&lt;br /&gt;
=== Xonotic ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://xonotic.org&lt;br /&gt;
* Repositories: https://gitlab.com/xonotic&lt;br /&gt;
* Repository for the Q1VM glue: https://gitlab.com/xonotic/daemon-glue/&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to have multiple teams from different games working on the same game engine and contributing heavily to its development, to stimulate cross-projects contribution, to make Free Software development community a better place with projects living together and helping each others, and to make the {{engine}} better.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled as all people involved in those various attempts became busy with other things in their life. Players should use the DarkPlaces-based game for now.&lt;br /&gt;
&lt;br /&gt;
There was multiple attempts to port the '''Xonotic game''' on the {{engine}}. Historically, Xonotic is running on the DarkPlaces engine. Xonotic as a released standalone game running on the DarkPlaces engine exists since September 8 2011 and is a fork (and continuation) of the defunct Nexuiz game initially released on May 31, 2005.&lt;br /&gt;
&lt;br /&gt;
The Darkplaces engine development was stalled and it was considered difficult to improve it for non-technical reasons because the DarkPlaces engine tries to keep compatibility with original Quake game and some improvements wanted for the need of Xonotic may break compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand the {{engine}} can break things for the best (like fixing design issues) and was seen as a live project. Multiple people from Team Xonotic expressed the will to port their game on the {{engine|link=no}}.&lt;br /&gt;
&lt;br /&gt;
The project was to port the Xonotic game code on the {{engine|link=no}} (not rebasing on Unvanquished game code).&lt;br /&gt;
&lt;br /&gt;
Such effort is not a an easy task because the {{engine|link=no}} is an engine derivating from Quake 3 engine while DarkPlaces engine derivates from Quake (the first) engine. Anyway, DarkPlaces already supports Quake 3 bsp files (map format) and most of Quake 3 shaders (material format) which are the ones natively supported by the {{engine|link=no}}, and Xonotic already uses those Quake 3 formats.&lt;br /&gt;
&lt;br /&gt;
The difficulty is that the Xonotic game code is written in QuakeC and is expected to run on a Q1VM, while Dæmon executes native code (currently sandboxed in NativeClient) compiled from generic languages like C or C++. There was multiple attempts to achieve the port, some people worked on source transpilers to convert the QuakeC code base to less exotic languages like C++ or Rust, others worked on writing a Q1VM expected to run on the Dæmon virtual machine.&lt;br /&gt;
&lt;br /&gt;
There was interesting progresses achieved by those various attempts, the team managed to produce a minimalistic Q1VM running some minimal QuakeC code base allowing to start the {{engine|link=no}}, load a map and walk around.&lt;br /&gt;
&lt;br /&gt;
Xonotic developers helped to split the {{engine|link=no}} and the Unvanquished game, developped some code to make the engine more standalone.&lt;br /&gt;
&lt;br /&gt;
Lots of features were implemented in the Dæmon renderer using Xonotic data files (maps, materials, textures…), for example the relief mapping feature was debugged and fixed using Xonotic maps and materials, or the ability to support both lose normal maps and normal maps embedded in height maps was implemented. Also a lot of rewrite was done to make the {{engine|link=no}} better and even helped Dæmon team to better understand some things to make the engine better, for example the multitextured material blending feature is a direct consequences from that, or the ability to support multiple formats of normal maps.&lt;br /&gt;
&lt;br /&gt;
The {{engine}} now provides some cvars to enable compatibility code to better support medias purposed for the DarkPlaces engine.&lt;br /&gt;
&lt;br /&gt;
This project also helped the Dæmon game engine to support both the newer DPK format and the legacy PK3 format at the same time, because Xonotic through Nexuiz has more than 15 years of history and there are thousands of maps out there so porting maps was not really an option.&lt;br /&gt;
&lt;br /&gt;
Xonotic data files (maps, materials, textures…) are still used today as test bed for the {{engine|link=no}} to test for regressions and to implement new features: Xonotic assets makes use of more rendering features than Unvanquished! For example the Xonotic assets may be used to test the sRGB lightmap technology we still need to implement.&lt;br /&gt;
&lt;br /&gt;
The Xonotic and Unvanquished teams became very close, and multiple Xonotic contributors also became Dæmon and/or Unvanquished contributors (TimePath, Mario, Melanosuchus, EACFreddy…), making the engine better, implementing features, etc. Some Unvanquished contibutors also started to help Xonotic as we still have common interests. For example Unvanquished contributors help Team Xonotic to maintain the [[Tools/NetRadiant|NetRadiant]] level editor which is also the recommended level editor for Unvanquished.&lt;br /&gt;
&lt;br /&gt;
== Special mentions (not Dæmon-based but very close) ==&lt;br /&gt;
&lt;br /&gt;
=== KingpinQ3 ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake (on a custom XreaL port).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
This project is ''not'' running on the {{engine|link=no}} but on another fork of '''XreaL''' (like Dæmon), so technically both engines are very close and we share common interests. For example hypov8 from KingpinQ3 converted our new lasgun first person model to a usable third person model in Unvanquished!&lt;br /&gt;
&lt;br /&gt;
'''KingpinQ3''' is a remake of Xatrix Entertainment's '''Kingpin - Life of Crime game''' on an engine derivated from Quake 3 through the '''XreaL''' lineage like us!&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.kingpinq3.com&lt;br /&gt;
* Downloads: https://www.kingpin.info/download/index.php?dir=other/standalonegames/KingpinQ3/&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9112</id>
		<title>Daemon based games</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Daemon_based_games&amp;diff=9112"/>
				<updated>2026-06-02T11:42:55Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Unnamed project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''[[Engine|Dæmon]]''' is the game engine powering Unvanquished. The {{engine}} is a fork of the '''XreaL engine''' through the '''ET:XreaL''' variant which derivates from both '''Quake 3 engine''' and '''Wolfenstein: Enemy Territory engine'''.&lt;br /&gt;
&lt;br /&gt;
While it is technically possible to use DaemonEngine to write or maintain a different game, based or not on Unvanquished, it is recommended to the candidate to read (and think over) how the [[Compatibility]] in engine and libengine API/ABI is kept.&lt;br /&gt;
&lt;br /&gt;
* {{engine|link=no}} repository: https://github.com/DaemonEngine/Daemon&lt;br /&gt;
&lt;br /&gt;
{{NoteOpenWolf}}&lt;br /&gt;
&lt;br /&gt;
== Released games ==&lt;br /&gt;
&lt;br /&gt;
=== Unvanquished ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
'''[[Game|Unvanquished]]''' is the game maintaining the {{engine}}, first release happened on February 29, 2012 and is still releasing new versions 10 years later. Unvanquished derivates from the Tremulous game that was initially released as a standalone game on an engine derivated from ioquake3 in 2006, after having been a Quake 3 total conversion mod for some time.&lt;br /&gt;
&lt;br /&gt;
* Website: https://unvanquished.net&lt;br /&gt;
* Game code repositories: https://github.com/Unvanquished&lt;br /&gt;
* Game data repositories: https://github.com/UnvanquishedAssets&lt;br /&gt;
&lt;br /&gt;
== Unreleased projects ==&lt;br /&gt;
&lt;br /&gt;
=== FreeFort ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled.&lt;br /&gt;
&lt;br /&gt;
* Website: https://freefortgame.net&lt;br /&gt;
* Repositories: https://git.freefortgame.net/FreeFort&lt;br /&gt;
&lt;br /&gt;
'''FreeFort''' is the most recent attempt to make a game based on the {{engine}} and the Unvanquished game code. The project is to remake a Team Fortress 2-like game as a fully free and libre open source game. The project is in it's very early state and nothing is released yet.&lt;br /&gt;
&lt;br /&gt;
The project is currently stopped.&lt;br /&gt;
&lt;br /&gt;
=== Unnamed project ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' unknown.&lt;br /&gt;
&lt;br /&gt;
There is also another project whose name wan't known to make a new game from scratch based on the {{engine}} (without reusing the Unvanquished game code) which is more about being an infantry war game. Few information had been know about it. While doing this effort, [[Special:Contributions/The_White_Lion|The White Lion]] produced a lot of very useful documentation in the [[Technical Documentation]] page, especially the ''Program Ignition and Initialization'' part and many other parts like ''Source Code Filesystem Tree Structure'' or ''System Architecture''.&lt;br /&gt;
&lt;br /&gt;
The project is probably inactive and very few information has been known about it.&lt;br /&gt;
&lt;br /&gt;
=== UnrealArena ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' new game.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (as a playable game).&lt;br /&gt;
&lt;br /&gt;
* Website: http://www.unrealarena.net&lt;br /&gt;
* Repositories: https://github.com/unrealarena&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to follow the {{engine}} upstream and Unvanquished upstream as a basis for a game, merging improvements from upstream while the project lived its own life from writing source, creating levels and producing binaries.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled if the project managed to produce multiple build, there is nothing playable.&lt;br /&gt;
&lt;br /&gt;
'''Unreal Arena''' is a brand new game project (not a port) based on Dæmon and Unvanquished code. The purpose is to provide the user two different teams, one using Quake III Arena movements and weapons, another one using Unreal Tournament movements and weapons, and let people frag together.&lt;br /&gt;
&lt;br /&gt;
The project managed to recreate a Quake 3 map (untextured) from scratch and publish some alpha build just making possible for a tester to load a map, join and navigate.&lt;br /&gt;
&lt;br /&gt;
=== Smokin' Guns ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' dormant, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.smokin-guns.org&lt;br /&gt;
* Repositories: https://github.com/smokin-guns&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to improve the {{engine}} by testing assets from more than one game, debugging and implementing fixes. It also helped to design some good practices in the way game assets can be built, as tools like [[Tools/Urcheon|Urcheon]] are thoughts to be reusable for more projects.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently dormant as most people involved are very busy on other projects and other things in their life. Players should use the ioquake3-based game for now.&lt;br /&gt;
&lt;br /&gt;
This is a project to port the '''Smokin' Guns game''' to the {{engine|link=no}}. The Smokin' Guns game already exist as a released standalone game running on ioquake3 engine, it derivates from the Western Quake 3 total conversion mod.&lt;br /&gt;
&lt;br /&gt;
The project is to use the upstream {{engine|link=no}} (or to upstream the changes) and to rebase the specific Smokin' Guns game mechanics on the Unvanquished game to be able to merge improvements from Unvanquished as time passes.&lt;br /&gt;
&lt;br /&gt;
Some fixes for Smokin' Guns assets were upstreamed to the {{engine|link=no}}, and a some testing assets were produced to load Smokin' Guns maps with the Unvanquished game and the {{engine|link=no}} for testing purpose and to fix related issues.&lt;br /&gt;
&lt;br /&gt;
=== Xonotic ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' port.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' stalled, unreleased (on {{engine}}).&lt;br /&gt;
&lt;br /&gt;
* Website: https://xonotic.org&lt;br /&gt;
* Repositories: https://gitlab.com/xonotic&lt;br /&gt;
* Repository for the Q1VM glue: https://gitlab.com/xonotic/daemon-glue/&lt;br /&gt;
&lt;br /&gt;
{{Note|content=The project demonstrated the ability to have multiple teams from different games working on the same game engine and contributing heavily to its development, to stimulate cross-projects contribution, to make Free Software development community a better place with projects living together and helping each others, and to make the {{engine}} better.}}&lt;br /&gt;
&lt;br /&gt;
The project is currently stalled as all people involved in those various attempts became busy with other things in their life. Players should use the DarkPlaces-based game for now.&lt;br /&gt;
&lt;br /&gt;
There was multiple attempts to port the '''Xonotic game''' on the {{engine}}. Historically, Xonotic is running on the DarkPlaces engine. Xonotic as a released standalone game running on the DarkPlaces engine exists since September 8 2011 and is a fork (and continuation) of the defunct Nexuiz game initially released on May 31, 2005.&lt;br /&gt;
&lt;br /&gt;
The Darkplaces engine development was stalled and it was considered difficult to improve it for non-technical reasons because the DarkPlaces engine tries to keep compatibility with original Quake game and some improvements wanted for the need of Xonotic may break compatibility.&lt;br /&gt;
&lt;br /&gt;
On the other hand the {{engine}} can break things for the best (like fixing design issues) and was seen as a live project. Multiple people from Team Xonotic expressed the will to port their game on the {{engine|link=no}}.&lt;br /&gt;
&lt;br /&gt;
The project was to port the Xonotic game code on the {{engine|link=no}} (not rebasing on Unvanquished game code).&lt;br /&gt;
&lt;br /&gt;
Such effort is not a an easy task because the {{engine|link=no}} is an engine derivating from Quake 3 engine while DarkPlaces engine derivates from Quake (the first) engine. Anyway, DarkPlaces already supports Quake 3 bsp files (map format) and most of Quake 3 shaders (material format) which are the ones natively supported by the {{engine|link=no}}, and Xonotic already uses those Quake 3 formats.&lt;br /&gt;
&lt;br /&gt;
The difficulty is that the Xonotic game code is written in QuakeC and is expected to run on a Q1VM, while Dæmon executes native code (currently sandboxed in NativeClient) compiled from generic languages like C or C++. There was multiple attempts to achieve the port, some people worked on source transpilers to convert the QuakeC code base to less exotic languages like C++ or Rust, others worked on writing a Q1VM expected to run on the Dæmon virtual machine.&lt;br /&gt;
&lt;br /&gt;
There was interesting progresses achieved by those various attempts, the team managed to produce a minimalistic Q1VM running some minimal QuakeC code base allowing to start the {{engine|link=no}}, load a map and walk around.&lt;br /&gt;
&lt;br /&gt;
Xonotic developers helped to split the {{engine|link=no}} and the Unvanquished game, developped some code to make the engine more standalone.&lt;br /&gt;
&lt;br /&gt;
Lots of features were implemented in the Dæmon renderer using Xonotic data files (maps, materials, textures…), for example the relief mapping feature was debugged and fixed using Xonotic maps and materials, or the ability to support both lose normal maps and normal maps embedded in height maps was implemented. Also a lot of rewrite was done to make the {{engine|link=no}} better and even helped Dæmon team to better understand some things to make the engine better, for example the multitextured material blending feature is a direct consequences from that, or the ability to support multiple formats of normal maps.&lt;br /&gt;
&lt;br /&gt;
The {{engine}} now provides some cvars to enable compatibility code to better support medias purposed for the DarkPlaces engine.&lt;br /&gt;
&lt;br /&gt;
This project also helped the Dæmon game engine to support both the newer DPK format and the legacy PK3 format at the same time, because Xonotic through Nexuiz has more than 15 years of history and there are thousands of maps out there so porting maps was not really an option.&lt;br /&gt;
&lt;br /&gt;
Xonotic data files (maps, materials, textures…) are still used today as test bed for the {{engine|link=no}} to test for regressions and to implement new features: Xonotic assets makes use of more rendering features than Unvanquished! For example the Xonotic assets may be used to test the sRGB lightmap technology we still need to implement.&lt;br /&gt;
&lt;br /&gt;
The Xonotic and Unvanquished teams became very close, and multiple Xonotic contributors also became Dæmon and/or Unvanquished contributors (TimePath, Mario, Melanosuchus, EACFreddy…), making the engine better, implementing features, etc. Some Unvanquished contibutors also started to help Xonotic as we still have common interests. For example Unvanquished contributors help Team Xonotic to maintain the [[Tools/NetRadiant|NetRadiant]] level editor which is also the recommended level editor for Unvanquished.&lt;br /&gt;
&lt;br /&gt;
== Special mentions (not Dæmon-based but very close) ==&lt;br /&gt;
&lt;br /&gt;
=== KingpinQ3 ===&lt;br /&gt;
&lt;br /&gt;
'''Type:''' remake (on a custom XreaL port).&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Status:''' active, released (beta builds).&lt;br /&gt;
&lt;br /&gt;
This project is ''not'' running on the {{engine|link=no}} but on another fork of '''XreaL''' (like Dæmon), so technically both engines are very close and we share common interests. For example hypov8 from KingpinQ3 converted our new lasgun first person model to a usable third person model in Unvanquished!&lt;br /&gt;
&lt;br /&gt;
'''KingpinQ3''' is a remake of Xatrix Entertainment's '''Kingpin - Life of Crime game''' on an engine derivated from Quake 3 through the '''XreaL''' lineage like us!&lt;br /&gt;
&lt;br /&gt;
* Website: https://www.kingpinq3.com&lt;br /&gt;
* Downloads: https://www.kingpin.info/download/index.php?dir=other/standalonegames/KingpinQ3/&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9111</id>
		<title>Source repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9111"/>
				<updated>2026-06-02T11:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Game link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Game==&lt;br /&gt;
&lt;br /&gt;
* [[Game|Unvanquished]], game: [https://github.com/Unvanquished/Unvanquished source], [https://github.com/Unvanquished/Unvanquished/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
This includes the [[unvanquished_src.dpkdir]] main package: [https://github.com/Unvanquished/Unvanquished/tree/master/pkg/unvanquished_src.dpkdir source].&lt;br /&gt;
&lt;br /&gt;
==Engine==&lt;br /&gt;
&lt;br /&gt;
* [[Engine|Dæmon]], engine: [https://github.com/DaemonEngine/Daemon source], [https://github.com/DaemonEngine/Daemon/issues bug tracker]&lt;br /&gt;
* CBSE-Toolchain, code generator for component-based gamelogic: [https://github.com/DaemonEngine/CBSE-Toolchain source], [https://github.com/DaemonEngine/CBSE-Toolchain/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
* UnvanquishedAssets, asset repository registry: [https://github.com/UnvanquishedAssets source registry]&lt;br /&gt;
* UnvanquishedTestAssets, test asset repository: [https://github.com/UnvanquishedAssets/UnvanquishedTestAssets source]&lt;br /&gt;
* UnvanquishedBranding, icons, banners, and more: [https://github.com/Unvanquished/UnvanquishedBranding source]&lt;br /&gt;
&lt;br /&gt;
==Sub-projects==&lt;br /&gt;
&lt;br /&gt;
* Updater/launcher: [https://github.com/Unvanquished/updater source], [https://github.com/Unvanquished/updater/issues bug tracker]&lt;br /&gt;
* Master server: [https://github.com/Unvanquished/unvanquished-master source], [https://github.com/Unvanquished/unvanquished-master/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data authoring tools==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMediaAuthoringKit}}: [https://github.com/DaemonEngine/DaemonMediaAuthoringKit source], [https://github.com/DaemonEngine/DaemonMediaAuthoringKit/issues bug tracker]&lt;br /&gt;
** NetRadiant gamepack: [https://github.com/Unvanquished/unvanquished-mapeditor-support source], [https://github.com/Unvanquished/unvanquished-mapeditor-support/issues bug tracker]&lt;br /&gt;
** {{Tools|NetRadiant}} &amp;amp; {{Tools|Q3map2}}, level editor and compiler: [https://gitlab.com/xonotic/netradiant source], [https://gitlab.com/xonotic/netradiant/issues bug tracker] (hosted at Xonotic)&lt;br /&gt;
** {{Tools|Chameleon}}, level retexturing tool: [https://github.com/DaemonEngine/Chameleon source], [https://github.com/DaemonEngine/Chameleon/issues bug tracker]&lt;br /&gt;
** {{Tools|Sloth}}, material generator: [https://github.com/DaemonEngine/Sloth source], [https://github.com/DaemonEngine/Sloth/issues bug tracker]&lt;br /&gt;
** {{Tools|Urcheon}}, asset builder and packager: [https://github.com/DaemonEngine/Urcheon source], [https://github.com/DaemonEngine/Urcheon/issues bug tracker]&lt;br /&gt;
** {{Tools|Crunch}}, texture compressor: [https://github.com/DaemonEngine/crunch source], [https://github.com/DaemonEngine/crunch/issues bug tracker] (following Unity upstream)&lt;br /&gt;
** {{Tools|Iqmtool}}, model compiler: [https://github.com/fte-team/fteqw/tree/master/iqm source], [https://github.com/fte-team/fteqw/issues bug tracker] (FTE QuakeWorld's fork of iqm).&lt;br /&gt;
&lt;br /&gt;
==Obsolete projects==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMap}}, navmesh generator: [https://github.com/DaemonEngine/daemonmap source], [https://github.com/DaemonEngine/daemonmap, bug tracker] (replaced by an in-game navmesh generator)&lt;br /&gt;
* {{Tools|Osavul}}, server browser: [https://github.com/Unvanquished/Osavul source], [https://github.com/Unvanquished/Osavul/issues bug tracker] (dormant project)&lt;br /&gt;
* {{Tools|Archipelago}}, remapper (dead project)&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9110</id>
		<title>Source repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9110"/>
				<updated>2026-06-02T11:34:50Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Data authoring tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Game==&lt;br /&gt;
&lt;br /&gt;
* [[Main_Page|Unvanquished]], game: [https://github.com/Unvanquished/Unvanquished source], [https://github.com/Unvanquished/Unvanquished/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
This includes the [[unvanquished_src.dpkdir]] main package: [https://github.com/Unvanquished/Unvanquished/tree/master/pkg/unvanquished_src.dpkdir source].&lt;br /&gt;
&lt;br /&gt;
==Engine==&lt;br /&gt;
&lt;br /&gt;
* [[Engine|Dæmon]], engine: [https://github.com/DaemonEngine/Daemon source], [https://github.com/DaemonEngine/Daemon/issues bug tracker]&lt;br /&gt;
* CBSE-Toolchain, code generator for component-based gamelogic: [https://github.com/DaemonEngine/CBSE-Toolchain source], [https://github.com/DaemonEngine/CBSE-Toolchain/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
* UnvanquishedAssets, asset repository registry: [https://github.com/UnvanquishedAssets source registry]&lt;br /&gt;
* UnvanquishedTestAssets, test asset repository: [https://github.com/UnvanquishedAssets/UnvanquishedTestAssets source]&lt;br /&gt;
* UnvanquishedBranding, icons, banners, and more: [https://github.com/Unvanquished/UnvanquishedBranding source]&lt;br /&gt;
&lt;br /&gt;
==Sub-projects==&lt;br /&gt;
&lt;br /&gt;
* Updater/launcher: [https://github.com/Unvanquished/updater source], [https://github.com/Unvanquished/updater/issues bug tracker]&lt;br /&gt;
* Master server: [https://github.com/Unvanquished/unvanquished-master source], [https://github.com/Unvanquished/unvanquished-master/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data authoring tools==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMediaAuthoringKit}}: [https://github.com/DaemonEngine/DaemonMediaAuthoringKit source], [https://github.com/DaemonEngine/DaemonMediaAuthoringKit/issues bug tracker]&lt;br /&gt;
** NetRadiant gamepack: [https://github.com/Unvanquished/unvanquished-mapeditor-support source], [https://github.com/Unvanquished/unvanquished-mapeditor-support/issues bug tracker]&lt;br /&gt;
** {{Tools|NetRadiant}} &amp;amp; {{Tools|Q3map2}}, level editor and compiler: [https://gitlab.com/xonotic/netradiant source], [https://gitlab.com/xonotic/netradiant/issues bug tracker] (hosted at Xonotic)&lt;br /&gt;
** {{Tools|Chameleon}}, level retexturing tool: [https://github.com/DaemonEngine/Chameleon source], [https://github.com/DaemonEngine/Chameleon/issues bug tracker]&lt;br /&gt;
** {{Tools|Sloth}}, material generator: [https://github.com/DaemonEngine/Sloth source], [https://github.com/DaemonEngine/Sloth/issues bug tracker]&lt;br /&gt;
** {{Tools|Urcheon}}, asset builder and packager: [https://github.com/DaemonEngine/Urcheon source], [https://github.com/DaemonEngine/Urcheon/issues bug tracker]&lt;br /&gt;
** {{Tools|Crunch}}, texture compressor: [https://github.com/DaemonEngine/crunch source], [https://github.com/DaemonEngine/crunch/issues bug tracker] (following Unity upstream)&lt;br /&gt;
** {{Tools|Iqmtool}}, model compiler: [https://github.com/fte-team/fteqw/tree/master/iqm source], [https://github.com/fte-team/fteqw/issues bug tracker] (FTE QuakeWorld's fork of iqm).&lt;br /&gt;
&lt;br /&gt;
==Obsolete projects==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMap}}, navmesh generator: [https://github.com/DaemonEngine/daemonmap source], [https://github.com/DaemonEngine/daemonmap, bug tracker] (replaced by an in-game navmesh generator)&lt;br /&gt;
* {{Tools|Osavul}}, server browser: [https://github.com/Unvanquished/Osavul source], [https://github.com/Unvanquished/Osavul/issues bug tracker] (dormant project)&lt;br /&gt;
* {{Tools|Archipelago}}, remapper (dead project)&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9109</id>
		<title>Source repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9109"/>
				<updated>2026-06-02T11:34:28Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Data authoring tools */ fteqw iqmtool source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Game==&lt;br /&gt;
&lt;br /&gt;
* [[Main_Page|Unvanquished]], game: [https://github.com/Unvanquished/Unvanquished source], [https://github.com/Unvanquished/Unvanquished/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
This includes the [[unvanquished_src.dpkdir]] main package: [https://github.com/Unvanquished/Unvanquished/tree/master/pkg/unvanquished_src.dpkdir source].&lt;br /&gt;
&lt;br /&gt;
==Engine==&lt;br /&gt;
&lt;br /&gt;
* [[Engine|Dæmon]], engine: [https://github.com/DaemonEngine/Daemon source], [https://github.com/DaemonEngine/Daemon/issues bug tracker]&lt;br /&gt;
* CBSE-Toolchain, code generator for component-based gamelogic: [https://github.com/DaemonEngine/CBSE-Toolchain source], [https://github.com/DaemonEngine/CBSE-Toolchain/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
* UnvanquishedAssets, asset repository registry: [https://github.com/UnvanquishedAssets source registry]&lt;br /&gt;
* UnvanquishedTestAssets, test asset repository: [https://github.com/UnvanquishedAssets/UnvanquishedTestAssets source]&lt;br /&gt;
* UnvanquishedBranding, icons, banners, and more: [https://github.com/Unvanquished/UnvanquishedBranding source]&lt;br /&gt;
&lt;br /&gt;
==Sub-projects==&lt;br /&gt;
&lt;br /&gt;
* Updater/launcher: [https://github.com/Unvanquished/updater source], [https://github.com/Unvanquished/updater/issues bug tracker]&lt;br /&gt;
* Master server: [https://github.com/Unvanquished/unvanquished-master source], [https://github.com/Unvanquished/unvanquished-master/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data authoring tools==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMediaAuthoringKit}}: [https://github.com/DaemonEngine/DaemonMediaAuthoringKit source], [https://github.com/DaemonEngine/DaemonMediaAuthoringKit/issues bug tracker]&lt;br /&gt;
** NetRadiant gamepack: [https://github.com/Unvanquished/unvanquished-mapeditor-support source], [https://github.com/Unvanquished/unvanquished-mapeditor-support/issues bug tracker]&lt;br /&gt;
** {{Tools|NetRadiant}} &amp;amp; {{Tools|Q3map2}}, level editor and compiler: [https://gitlab.com/xonotic/netradiant source], [https://gitlab.com/xonotic/netradiant/issues bug tracker] (hosted at Xonotic)&lt;br /&gt;
** {{Tools|Chameleon}}, level retexturing tool: [https://github.com/DaemonEngine/Chameleon source], [https://github.com/DaemonEngine/Chameleon/issues bug tracker]&lt;br /&gt;
** {{Tools|Sloth}}, material generator: [https://github.com/DaemonEngine/Sloth source], [https://github.com/DaemonEngine/Sloth/issues bug tracker]&lt;br /&gt;
** {{Tools|Urcheon}}, asset builder and packager: [https://github.com/DaemonEngine/Urcheon source], [https://github.com/DaemonEngine/Urcheon/issues bug tracker]&lt;br /&gt;
** {{Tools|Crunch}}, texture compressor: [https://github.com/DaemonEngine/crunch source], [https://github.com/DaemonEngine/crunch/issues bug tracker] (following Unity upstream)&lt;br /&gt;
** {{Tools|Iqmtool}}, model compiler: [https://github.com/fte-team/fteqw/tree/master/iqm source], [https://github.com/fte-team/fteqw/issues issues] (FTE QuakeWorld's fork of iqm).&lt;br /&gt;
&lt;br /&gt;
==Obsolete projects==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMap}}, navmesh generator: [https://github.com/DaemonEngine/daemonmap source], [https://github.com/DaemonEngine/daemonmap, bug tracker] (replaced by an in-game navmesh generator)&lt;br /&gt;
* {{Tools|Osavul}}, server browser: [https://github.com/Unvanquished/Osavul source], [https://github.com/Unvanquished/Osavul/issues bug tracker] (dormant project)&lt;br /&gt;
* {{Tools|Archipelago}}, remapper (dead project)&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9108</id>
		<title>Source repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9108"/>
				<updated>2026-06-02T11:32:33Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: dpkdir&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Game==&lt;br /&gt;
&lt;br /&gt;
* [[Main_Page|Unvanquished]], game: [https://github.com/Unvanquished/Unvanquished source], [https://github.com/Unvanquished/Unvanquished/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
This includes the [[unvanquished_src.dpkdir]] main package: [https://github.com/Unvanquished/Unvanquished/tree/master/pkg/unvanquished_src.dpkdir source].&lt;br /&gt;
&lt;br /&gt;
==Engine==&lt;br /&gt;
&lt;br /&gt;
* [[Engine|Dæmon]], engine: [https://github.com/DaemonEngine/Daemon source], [https://github.com/DaemonEngine/Daemon/issues bug tracker]&lt;br /&gt;
* CBSE-Toolchain, code generator for component-based gamelogic: [https://github.com/DaemonEngine/CBSE-Toolchain source], [https://github.com/DaemonEngine/CBSE-Toolchain/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
* UnvanquishedAssets, asset repository registry: [https://github.com/UnvanquishedAssets source registry]&lt;br /&gt;
* UnvanquishedTestAssets, test asset repository: [https://github.com/UnvanquishedAssets/UnvanquishedTestAssets source]&lt;br /&gt;
* UnvanquishedBranding, icons, banners, and more: [https://github.com/Unvanquished/UnvanquishedBranding source]&lt;br /&gt;
&lt;br /&gt;
==Sub-projects==&lt;br /&gt;
&lt;br /&gt;
* Updater/launcher: [https://github.com/Unvanquished/updater source], [https://github.com/Unvanquished/updater/issues bug tracker]&lt;br /&gt;
* Master server: [https://github.com/Unvanquished/unvanquished-master source], [https://github.com/Unvanquished/unvanquished-master/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data authoring tools==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMediaAuthoringKit}}: [https://github.com/DaemonEngine/DaemonMediaAuthoringKit source], [https://github.com/DaemonEngine/DaemonMediaAuthoringKit/issues bug tracker]&lt;br /&gt;
** NetRadiant gamepack: [https://github.com/Unvanquished/unvanquished-mapeditor-support source], [https://github.com/Unvanquished/unvanquished-mapeditor-support/issues bug tracker]&lt;br /&gt;
** {{Tools|NetRadiant}} &amp;amp; {{Tools|Q3map2}}, level editor and compiler: [https://gitlab.com/xonotic/netradiant source], [https://gitlab.com/xonotic/netradiant/issues bug tracker] (hosted at Xonotic)&lt;br /&gt;
** {{Tools|Chameleon}}, level retexturing tool: [https://github.com/DaemonEngine/Chameleon source], [https://github.com/DaemonEngine/Chameleon/issues bug tracker]&lt;br /&gt;
** {{Tools|Sloth}}, material generator: [https://github.com/DaemonEngine/Sloth source], [https://github.com/DaemonEngine/Sloth/issues bug tracker]&lt;br /&gt;
** {{Tools|Urcheon}}, asset builder and packager: [https://github.com/DaemonEngine/Urcheon source], [https://github.com/DaemonEngine/Urcheon/issues bug tracker]&lt;br /&gt;
** {{Tools|Crunch}}, texture compressor: [https://github.com/DaemonEngine/crunch source], [https://github.com/DaemonEngine/crunch/issues bug tracker] (following Unity upstream)&lt;br /&gt;
** {{Tools|Iqmtool}}, model compiler: [https://sourceforge.net/p/fteqw/code/HEAD/tree/trunk/iqm/ source] (FTE QuakeWorld's fork of iqm).&lt;br /&gt;
&lt;br /&gt;
==Obsolete projects==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMap}}, navmesh generator: [https://github.com/DaemonEngine/daemonmap source], [https://github.com/DaemonEngine/daemonmap, bug tracker] (replaced by an in-game navmesh generator)&lt;br /&gt;
* {{Tools|Osavul}}, server browser: [https://github.com/Unvanquished/Osavul source], [https://github.com/Unvanquished/Osavul/issues bug tracker] (dormant project)&lt;br /&gt;
* {{Tools|Archipelago}}, remapper (dead project)&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9107</id>
		<title>Source repositories</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Source_repositories&amp;diff=9107"/>
				<updated>2026-06-02T11:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: The unvanquished dpkdir is now in main repo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Game==&lt;br /&gt;
&lt;br /&gt;
* [[Main_Page|Unvanquished]], game: [https://github.com/Unvanquished/Unvanquished source], [https://github.com/Unvanquished/Unvanquished/issues bug tracker]&lt;br /&gt;
* [[unvanquished_src.dpkdir]], main package: [https://github.com/Unvanquished/Unvanquished/tree/master/pkg/unvanquished_src.dpkdir source], [https://github.com/UnvanquishedAssets/unvanquished_src.dpkdir/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Engine==&lt;br /&gt;
&lt;br /&gt;
* [[Engine|Dæmon]], engine: [https://github.com/DaemonEngine/Daemon source], [https://github.com/DaemonEngine/Daemon/issues bug tracker]&lt;br /&gt;
* CBSE-Toolchain, code generator for component-based gamelogic: [https://github.com/DaemonEngine/CBSE-Toolchain source], [https://github.com/DaemonEngine/CBSE-Toolchain/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data==&lt;br /&gt;
&lt;br /&gt;
* UnvanquishedAssets, asset repository registry: [https://github.com/UnvanquishedAssets source registry]&lt;br /&gt;
* UnvanquishedTestAssets, test asset repository: [https://github.com/UnvanquishedAssets/UnvanquishedTestAssets source]&lt;br /&gt;
* UnvanquishedBranding, icons, banners, and more: [https://github.com/Unvanquished/UnvanquishedBranding source]&lt;br /&gt;
&lt;br /&gt;
==Sub-projects==&lt;br /&gt;
&lt;br /&gt;
* Updater/launcher: [https://github.com/Unvanquished/updater source], [https://github.com/Unvanquished/updater/issues bug tracker]&lt;br /&gt;
* Master server: [https://github.com/Unvanquished/unvanquished-master source], [https://github.com/Unvanquished/unvanquished-master/issues bug tracker]&lt;br /&gt;
&lt;br /&gt;
==Data authoring tools==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMediaAuthoringKit}}: [https://github.com/DaemonEngine/DaemonMediaAuthoringKit source], [https://github.com/DaemonEngine/DaemonMediaAuthoringKit/issues bug tracker]&lt;br /&gt;
** NetRadiant gamepack: [https://github.com/Unvanquished/unvanquished-mapeditor-support source], [https://github.com/Unvanquished/unvanquished-mapeditor-support/issues bug tracker]&lt;br /&gt;
** {{Tools|NetRadiant}} &amp;amp; {{Tools|Q3map2}}, level editor and compiler: [https://gitlab.com/xonotic/netradiant source], [https://gitlab.com/xonotic/netradiant/issues bug tracker] (hosted at Xonotic)&lt;br /&gt;
** {{Tools|Chameleon}}, level retexturing tool: [https://github.com/DaemonEngine/Chameleon source], [https://github.com/DaemonEngine/Chameleon/issues bug tracker]&lt;br /&gt;
** {{Tools|Sloth}}, material generator: [https://github.com/DaemonEngine/Sloth source], [https://github.com/DaemonEngine/Sloth/issues bug tracker]&lt;br /&gt;
** {{Tools|Urcheon}}, asset builder and packager: [https://github.com/DaemonEngine/Urcheon source], [https://github.com/DaemonEngine/Urcheon/issues bug tracker]&lt;br /&gt;
** {{Tools|Crunch}}, texture compressor: [https://github.com/DaemonEngine/crunch source], [https://github.com/DaemonEngine/crunch/issues bug tracker] (following Unity upstream)&lt;br /&gt;
** {{Tools|Iqmtool}}, model compiler: [https://sourceforge.net/p/fteqw/code/HEAD/tree/trunk/iqm/ source] (FTE QuakeWorld's fork of iqm).&lt;br /&gt;
&lt;br /&gt;
==Obsolete projects==&lt;br /&gt;
&lt;br /&gt;
* {{Tools|DaemonMap}}, navmesh generator: [https://github.com/DaemonEngine/daemonmap source], [https://github.com/DaemonEngine/daemonmap, bug tracker] (replaced by an in-game navmesh generator)&lt;br /&gt;
* {{Tools|Osavul}}, server browser: [https://github.com/Unvanquished/Osavul source], [https://github.com/Unvanquished/Osavul/issues bug tracker] (dormant project)&lt;br /&gt;
* {{Tools|Archipelago}}, remapper (dead project)&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Contributing/Media&amp;diff=9106</id>
		<title>Contributing/Media</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Contributing/Media&amp;diff=9106"/>
				<updated>2026-06-02T11:28:18Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Marking your Work */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Contributing]]&lt;br /&gt;
This page outlines information about the project as a whole so that you can get involved more quickly.&lt;br /&gt;
&lt;br /&gt;
==Before you begin==&lt;br /&gt;
&lt;br /&gt;
Before following these guidelines, please read the [[Contributing|main article on contributing]]. It contains useful information about how the project is structured as a whole and what our philosophies are towards development.&lt;br /&gt;
&lt;br /&gt;
==Trying Out the Game==&lt;br /&gt;
&lt;br /&gt;
{{Note|content=Please be aware that this information applies to '''all''' members of the team. You are expected to try the game at some point if you intend on contributing content to it. This is only fair to everyone else who has contributed content in the past, and ensures consistency with existing content.}}&lt;br /&gt;
&lt;br /&gt;
Basic download instructions are available from [http://www.unvanquished.net/download our homepage]. If you use an unsupported operating system, please read the instructions on [[Getting the source|acquiring]] and [[Compiling the source|compiling]] the source code.&lt;br /&gt;
&lt;br /&gt;
Although there currently are very few players on servers at any point in time, you still have a couple of options to play the game to try it out:&lt;br /&gt;
* '''Play against bots.''' &amp;amp;mdash; There are currently a number of servers with enough bots that the game is playable even without any human opponents. The training server typically always has bots, and even has a few special game modes. Alternatively you can use console commands to [[LocalGames|add them to your own local games]]&lt;br /&gt;
* '''Wait for a scheduled development game.''' &amp;amp;mdash; For the past several weeks, we have been scheduling games on the weekends to ensure an adequate number of players for testing. You can get information about scheduled games on the [[chat]].&lt;br /&gt;
* '''Test offline.''' &amp;amp;mdash; You can always start a [[Testing#Starting_a_testing_session|testing session]] and [[Testing#Testing_with_gameplay_code|use some cheats]] to test all the different weapons and character classes.&lt;br /&gt;
&lt;br /&gt;
Of course, you can always check who's playing online at any given moment via the [https://www.unvanquished.net/?page_id=340 master server status page].&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
===Recommended licenses===&lt;br /&gt;
&lt;br /&gt;
Please understand that you will be expected to license your work. You are also expected to have some basic understanding of copyright law. '''It is extremely important that you license your work correctly and that you understand the implications of what you are doing!''' Also note that assets that are of questionable origin will not be included in the game.&lt;br /&gt;
&lt;br /&gt;
{{Note|For historical reasons and until we state otherwise, the default contribution license is CC BY SA 3.0, which is the license we unified a lot of our assets with. Unless you specify another license from one listed below, by contributing to Unvanquished you are placing your work under CC By SA 3.0 licence. You must have right to.&lt;br /&gt;
&lt;br /&gt;
We do recommend the CC By 4.0 licence for new contributions.}}&lt;br /&gt;
&lt;br /&gt;
You are expected to use one of the CC By SA 3.0 or later compatible licenses:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;progress wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Features&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
! Full&lt;br /&gt;
! Abbreviated&lt;br /&gt;
! Requires attribution?&lt;br /&gt;
! Allows modification?&lt;br /&gt;
! Allows commercial use?&lt;br /&gt;
! Allows relicensing?&lt;br /&gt;
! Human-readable&lt;br /&gt;
! Legal Code&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Zero (Public Domain Dedication) 1.0&lt;br /&gt;
| CC0 1.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| [https://creativecommons.org/publicdomain/zero/1.0/ License Deed]&lt;br /&gt;
| [https://creativecommons.org/publicdomain/zero/1.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution 4.0 Unported&lt;br /&gt;
| CC BY 4.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution 3.0 Unported&lt;br /&gt;
| CC BY 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-ShareAlike 4.0 Unported&lt;br /&gt;
| CC BY-SA 4.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-ShareAlike 3.0 Unported&lt;br /&gt;
| CC BY-SA 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/legalcode Legal Code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All of these licenses allow redistributing your work, to be maintained by Unvanquished contributor, and mixed in Unvanquished work. Please note that we would much prefer if you would use one of those licenses. Not using one of those licenses in certain situations might prevent your work from being included.&lt;br /&gt;
&lt;br /&gt;
If you disagree with all of the above licenses, please contact any of the project leads with your concerns. If you have another license in mind, please inform us. Be prepared to defend your criticisms of the Creative Commons licenses (i.e., provide a compelling argument) and your choice for another license. Be aware that more restrictive licenses are not likely to be accepted by the project heads.&lt;br /&gt;
&lt;br /&gt;
===Licenses to avoid===&lt;br /&gt;
&lt;br /&gt;
{{Note|content=Assets using these problematic licenses were relicensed under a CC By SA 3.0 licence or similarly open by people having right to, or were replaced by compatible ones.}}&lt;br /&gt;
&lt;br /&gt;
Some assets used some problematic licenses which are discouraged since they prevents the game to be distributed or referenced by some platforms. They also prevent some work to be done. For example rendering lightmaps using “lightfilter” or “alphashadow” techniques is a derivated work and may requires asset license compatibility according to how you interpret this to be original or how your local legislation is written. Creating a machinima is creating a derivated work from all assets visible and heard and therefore require license compatibility. Those problematic licenses are CC By SA 3.0 incompatibles and mixing assets covered by incompatible licenses is a copyright infringement and therefore illegal, for that reason these problematic licenses must be avoided in game core assets (the ones that makes you unable to play if they are missing) and must not be used for newer contributions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;progress wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Features&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
! Full&lt;br /&gt;
! Abbreviated&lt;br /&gt;
! Requires attribution?&lt;br /&gt;
! Allows modification?&lt;br /&gt;
! Allows commercial use?&lt;br /&gt;
! Allows relicensing?&lt;br /&gt;
! Human-readable&lt;br /&gt;
! Legal Code&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported&lt;br /&gt;
| CC BY-NC-SA 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-sa/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-NoDerivs 3.0 Unported&lt;br /&gt;
| CC BY-ND 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nd/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nd/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported&lt;br /&gt;
| CC BY-NC-ND 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-nd/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Marking your Work===&lt;br /&gt;
&lt;br /&gt;
If you are working in Blender, please add a license to your work visible in the default screen layout visible in a text editor view. '''Please note that you should not do this if you are not the original creator of the work.''' For example, if you are animating a model that was created by someone else, ask '''them''' to add a notice themselves.&lt;br /&gt;
&lt;br /&gt;
You are advised to use the following template:&lt;br /&gt;
&lt;br /&gt;
 Copyright {{CURRENTYEAR}} &amp;lt;var&amp;gt;your real name&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
 This work is licensed under a Creative Commons Attribution 4.0 Unported License.&lt;br /&gt;
 http://creativecommons.org/licenses/by/4.0/&lt;br /&gt;
&lt;br /&gt;
Of course, you should modify this template to match whichever license your are using.&lt;br /&gt;
&lt;br /&gt;
===Mappers===&lt;br /&gt;
&lt;br /&gt;
In creating a map, you likely will end up using textures from a variety of sources. You '''must''' include copies of licenses and notices of attribution for any and all textures that you use not created by yourself. Those textures which you have created yourself should be licensed as outlined above, and a notice included. It is recommended to include a file named &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;mapname&amp;lt;/var&amp;gt;.txt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;map-&amp;lt;var&amp;gt;mapname&amp;lt;/var&amp;gt;.txt&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;map-&amp;lt;var&amp;gt;mapname&amp;lt;/var&amp;gt;-&amp;lt;var&amp;gt;version&amp;lt;/var&amp;gt;.txt&amp;lt;/code&amp;gt; inside a directory named &amp;lt;code&amp;gt;about&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;[[Packaging_game_data|.dpk]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Introducing Yourself==&lt;br /&gt;
&lt;br /&gt;
Once you have access to the developer subforums, please create a post on the [http://unvanquished.net/forum/forumdisplay.php/36-Assets-amp-Artwork Assets &amp;amp; Artwork] subforum telling us a little about yourself.&lt;br /&gt;
&lt;br /&gt;
At the end of your introduction, please add the following information using this template:&lt;br /&gt;
&lt;br /&gt;
 [LIST]&lt;br /&gt;
 [*] [B]Skillset[/B]: &amp;lt;var&amp;gt;List your skills here&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Software[/B]: &amp;lt;var&amp;gt;List software you know well here&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]E-mail[/B]: &amp;lt;var&amp;gt;Please place an e-mail address that you would like to be contacted at here&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Preferred means of contact[/B]: &amp;lt;var&amp;gt;How would you like to be contacted?&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Primary operating system[/B]: &amp;lt;var&amp;gt;Which operating system (and version) do you use the most often? (E.g., Mac OS X 10.6)&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Portfolio[/B]: &amp;lt;var&amp;gt;Add links to any work that you have done that is visible on the internet&amp;lt;/var&amp;gt;&lt;br /&gt;
 [/LIST]&lt;br /&gt;
&lt;br /&gt;
If you do not have a portfolio and you are a 2d or 3d artist, please upload a gallery of images of your work to imgur or other reliable image sharing site. Similarly, if you are an audio engineer or musician, upload your work to some audio sharing site.&lt;br /&gt;
&lt;br /&gt;
You may wish to include other information, such as:&lt;br /&gt;
&lt;br /&gt;
* Alternate means of contact (e.g., Skype);&lt;br /&gt;
* Your time zone, so that we know when we can contact you.&lt;br /&gt;
&lt;br /&gt;
Continue reading for more specific instructions.&lt;br /&gt;
&lt;br /&gt;
==Animators==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What software do you use?&lt;br /&gt;
* How familiar are you with your preferred software? I.e., what features of your animation package do you utilize? For example, if you use Blender, do you know how to use actions and constraints?&lt;br /&gt;
&lt;br /&gt;
We currently use the {{Formats|IQM}} format for animations. Please familiarize yourself with the following documentation before beginning to animate anything:&lt;br /&gt;
&lt;br /&gt;
* Read the [[Modeling#Workflow_overview|workflow overview]]. This explains the workflow shared by our artists for bringing a concept into reality. You are expected to understand this. If you have any questions, do not hesitate to ask.&lt;br /&gt;
* From the model exporting guide, please read the [[Exporting_Models#Overview|overview]] and the [[Exporting_Models#What_is_MD5.3F|What is MD5?]] section. {{TODO|inline=true|Rewrite for IQM.}} You will need to understand these in order to be able to create an animation that can successfully be exported from your animation package of choice and loaded into the game.&lt;br /&gt;
&lt;br /&gt;
In particular, you are expected to know the limitations of the {{Formats|IQM}} format. '''If you do not respect these limitations, you are guaranteed to have a great deal if difficulty when attempting to export your model.''' While the art lead is more than willing to provide help to get your asset in-game, you would be wasting his/her time by not reading the documentation beforehand; it is only respectful to do so.&lt;br /&gt;
&lt;br /&gt;
==Audio Engineers &amp;amp; Musicians==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What hardware and instruments do you have access to?&lt;br /&gt;
* If you are a musician, what instruments do you play? If you don't play an instrument, what do you compose music with?&lt;br /&gt;
* If you are a musician, what sort of music do you like to compose?&lt;br /&gt;
* If you are an audio engineer, what is your particular skillset?&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Please read the [[Music_and_sounds|documentation]] on music and sounds. Be aware that at the time of writing (19 March 2013), this information is rather inadequate, but it will at least answer some questions.&lt;br /&gt;
* Please take a look at the [[Sound_Progress|sound progress]] page for an idea of what sounds there are that need replacement.&lt;br /&gt;
&lt;br /&gt;
In addition, you should be aware that many sounds present in Unvanquished are inherited from Tremulous and '''must''' be replaced. '''Note that this is non-negotiable''': the sounds from Tremulous failed to prove having trustable sources and we prefer to replace them entirely to not take any risk of copyright infrigement accusation even if no one never claimed that since Tremulous was released in 2006.&lt;br /&gt;
&lt;br /&gt;
==Concept Artists==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What is your preferred medium? E.g., do you draw with a tablet in Photoshop, or do you use pencil and paper? Be specific.&lt;br /&gt;
* What is your greatest strength with respect to drawing? I.e., what is the one thing that you think you are the best at drawing?&lt;br /&gt;
* How long do you expect it to take to create a concept? We're not [http://clientsfromhell.net/ clients from hell], so we're not going to pressure you to do things quickly, but we'd just like to know in advance if it might take a week or whatever so that know you haven't just died on us if we don't hear from you for a while!&lt;br /&gt;
&lt;br /&gt;
Please be aware:&lt;br /&gt;
&lt;br /&gt;
* If you are unsure of what you would like to work on, please familiarize yourself with both the [[Aliens|alien]] and [[Humans|human]] teams.&lt;br /&gt;
* Be aware that you are expected to [[#Trying_Out_the_Game|try the game]] at some point!&lt;br /&gt;
* If you would like to know what character and weapon models have not been completed that are therefore available to create a concept for, take a look at the [[modeling progress]] page. Anything that is not being worked on is fair game, even if other concepts have been made before.&lt;br /&gt;
* There is not currently a listing of all the concepts made for the game, so you will have to browse the [http://unvanquished.net/forum/forumdisplay.php/36-Assets-amp-Artwork Assets &amp;amp; Artwork subforum] for now.&lt;br /&gt;
&lt;br /&gt;
==Mappers==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What maps have you released to the public in the past, and for what games?&lt;br /&gt;
* What experience do you have with mapping software? Include any and all software that you have used, even if it was not for a Quake-derived game, and some indication of your skill with that software.&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Please read the [[Mapping|mapping guide]] all the way through. You do not necessarily need to know how to use every feature of the tools right away, but you should understand the basics.&lt;br /&gt;
* [[Packaging_game_data|How to get data in the game]]. This is less important when you begin mapping, but you must understand this when you approach time to release or upload your map online for testing. Ideally, you would not be creating a final release of your map without at least one beta test version.&lt;br /&gt;
&lt;br /&gt;
==Modelers==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What software do you '''prefer''' to use?&lt;br /&gt;
* What is your personal workflow? Do you begin with a high poly model and retopo that? Or do you begin and end with the geometry that will end up in the final game?&lt;br /&gt;
* Are you capable of completing a modeling assignment, or will you need assistance? If you will need assistance (e.g., with retopoing, unwrapping, texturing, rigging, or animation), please inform us. Be specific.&lt;br /&gt;
* Are you familiar with modern techniques? Specifically, we'd like to know if you know what the following are and how to use them:&lt;br /&gt;
** Normal maps;&lt;br /&gt;
** Bump maps;&lt;br /&gt;
** Specular maps;&lt;br /&gt;
** Physical maps (PBR);&lt;br /&gt;
** Glow maps;&lt;br /&gt;
** Height maps;&lt;br /&gt;
** Smoothing groups;&lt;br /&gt;
* Are you familiar with the idea of not storing lighting information in your diffuse texture? '''If you do not understand what this means, please ask.''' A guide will eventually be written on this.&lt;br /&gt;
* Is hardware an issue? E.g., if you are going to be editing a very high poly model, do you have a video card that can handle that?&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Read the [[Modeling#Workflow_overview|workflow overview]]. This explains the workflow shared by our artists for bringing a concept into reality. You are expected to understand this. If you have any questions, do not hesitate to ask.&lt;br /&gt;
* From the model exporting guide, please read the [[Exporting_Models#Overview|overview]]. If you are not going to animate your model yourself, this is less important, but it is good to know anyway.&lt;br /&gt;
&lt;br /&gt;
==Texture Artists==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* Are you familiar with the idea of not storing lighting information in your diffuse texture? '''If you do not understand what this means, please ask.''' A guide will eventually be written on this.&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Please read the [[texture creation]] guide. This contains important information about what formats the engine supports and where you can obtain special tools that you may need to create content specifically for our engine.&lt;br /&gt;
&lt;br /&gt;
==Screenshot and movie==&lt;br /&gt;
&lt;br /&gt;
Before take screenshot or make a movie, please set high preset graphic, or better.&lt;br /&gt;
&lt;br /&gt;
You may want to disable all 2D draw (name, minimap, ping...) by command {{code|/cg_draw2D 0}} (change the '''0''' by '''1''' to enable again).&lt;br /&gt;
&lt;br /&gt;
Then if you use SHIFT with the screenshot hotkey (F11 by default), the screenshot will be done with PNG format.&lt;br /&gt;
&lt;br /&gt;
====For movies====&lt;br /&gt;
&lt;br /&gt;
With Linux, you can try [https://www.maartenbaert.be/simplescreenrecorder/ SimpleScreenRecorder].&lt;br /&gt;
&lt;br /&gt;
Or maybe [https://www.gamingonlinux.com/2021/07/open-source-instant-replay-software-replaysorcery-adds-an-experimental-kms-service ReplaySorcery].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Contributing/Media&amp;diff=9105</id>
		<title>Contributing/Media</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Contributing/Media&amp;diff=9105"/>
				<updated>2026-06-02T10:39:40Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Recommended licenses */ rewording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Contributing]]&lt;br /&gt;
This page outlines information about the project as a whole so that you can get involved more quickly.&lt;br /&gt;
&lt;br /&gt;
==Before you begin==&lt;br /&gt;
&lt;br /&gt;
Before following these guidelines, please read the [[Contributing|main article on contributing]]. It contains useful information about how the project is structured as a whole and what our philosophies are towards development.&lt;br /&gt;
&lt;br /&gt;
==Trying Out the Game==&lt;br /&gt;
&lt;br /&gt;
{{Note|content=Please be aware that this information applies to '''all''' members of the team. You are expected to try the game at some point if you intend on contributing content to it. This is only fair to everyone else who has contributed content in the past, and ensures consistency with existing content.}}&lt;br /&gt;
&lt;br /&gt;
Basic download instructions are available from [http://www.unvanquished.net/download our homepage]. If you use an unsupported operating system, please read the instructions on [[Getting the source|acquiring]] and [[Compiling the source|compiling]] the source code.&lt;br /&gt;
&lt;br /&gt;
Although there currently are very few players on servers at any point in time, you still have a couple of options to play the game to try it out:&lt;br /&gt;
* '''Play against bots.''' &amp;amp;mdash; There are currently a number of servers with enough bots that the game is playable even without any human opponents. The training server typically always has bots, and even has a few special game modes. Alternatively you can use console commands to [[LocalGames|add them to your own local games]]&lt;br /&gt;
* '''Wait for a scheduled development game.''' &amp;amp;mdash; For the past several weeks, we have been scheduling games on the weekends to ensure an adequate number of players for testing. You can get information about scheduled games on the [[chat]].&lt;br /&gt;
* '''Test offline.''' &amp;amp;mdash; You can always start a [[Testing#Starting_a_testing_session|testing session]] and [[Testing#Testing_with_gameplay_code|use some cheats]] to test all the different weapons and character classes.&lt;br /&gt;
&lt;br /&gt;
Of course, you can always check who's playing online at any given moment via the [https://www.unvanquished.net/?page_id=340 master server status page].&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
&lt;br /&gt;
===Recommended licenses===&lt;br /&gt;
&lt;br /&gt;
Please understand that you will be expected to license your work. You are also expected to have some basic understanding of copyright law. '''It is extremely important that you license your work correctly and that you understand the implications of what you are doing!''' Also note that assets that are of questionable origin will not be included in the game.&lt;br /&gt;
&lt;br /&gt;
{{Note|For historical reasons and until we state otherwise, the default contribution license is CC BY SA 3.0, which is the license we unified a lot of our assets with. Unless you specify another license from one listed below, by contributing to Unvanquished you are placing your work under CC By SA 3.0 licence. You must have right to.&lt;br /&gt;
&lt;br /&gt;
We do recommend the CC By 4.0 licence for new contributions.}}&lt;br /&gt;
&lt;br /&gt;
You are expected to use one of the CC By SA 3.0 or later compatible licenses:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;progress wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Features&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
! Full&lt;br /&gt;
! Abbreviated&lt;br /&gt;
! Requires attribution?&lt;br /&gt;
! Allows modification?&lt;br /&gt;
! Allows commercial use?&lt;br /&gt;
! Allows relicensing?&lt;br /&gt;
! Human-readable&lt;br /&gt;
! Legal Code&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Zero (Public Domain Dedication) 1.0&lt;br /&gt;
| CC0 1.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| [https://creativecommons.org/publicdomain/zero/1.0/ License Deed]&lt;br /&gt;
| [https://creativecommons.org/publicdomain/zero/1.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution 4.0 Unported&lt;br /&gt;
| CC BY 4.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution 3.0 Unported&lt;br /&gt;
| CC BY 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-ShareAlike 4.0 Unported&lt;br /&gt;
| CC BY-SA 4.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/4.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-ShareAlike 3.0 Unported&lt;br /&gt;
| CC BY-SA 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-sa/3.0/legalcode Legal Code]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All of these licenses allow redistributing your work, to be maintained by Unvanquished contributor, and mixed in Unvanquished work. Please note that we would much prefer if you would use one of those licenses. Not using one of those licenses in certain situations might prevent your work from being included.&lt;br /&gt;
&lt;br /&gt;
If you disagree with all of the above licenses, please contact any of the project leads with your concerns. If you have another license in mind, please inform us. Be prepared to defend your criticisms of the Creative Commons licenses (i.e., provide a compelling argument) and your choice for another license. Be aware that more restrictive licenses are not likely to be accepted by the project heads.&lt;br /&gt;
&lt;br /&gt;
===Licenses to avoid===&lt;br /&gt;
&lt;br /&gt;
{{Note|content=Assets using these problematic licenses were relicensed under a CC By SA 3.0 licence or similarly open by people having right to, or were replaced by compatible ones.}}&lt;br /&gt;
&lt;br /&gt;
Some assets used some problematic licenses which are discouraged since they prevents the game to be distributed or referenced by some platforms. They also prevent some work to be done. For example rendering lightmaps using “lightfilter” or “alphashadow” techniques is a derivated work and may requires asset license compatibility according to how you interpret this to be original or how your local legislation is written. Creating a machinima is creating a derivated work from all assets visible and heard and therefore require license compatibility. Those problematic licenses are CC By SA 3.0 incompatibles and mixing assets covered by incompatible licenses is a copyright infringement and therefore illegal, for that reason these problematic licenses must be avoided in game core assets (the ones that makes you unable to play if they are missing) and must not be used for newer contributions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;progress wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Name&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; | Features&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; | Text&lt;br /&gt;
|-&lt;br /&gt;
! Full&lt;br /&gt;
! Abbreviated&lt;br /&gt;
! Requires attribution?&lt;br /&gt;
! Allows modification?&lt;br /&gt;
! Allows commercial use?&lt;br /&gt;
! Allows relicensing?&lt;br /&gt;
! Human-readable&lt;br /&gt;
! Legal Code&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported&lt;br /&gt;
| CC BY-NC-SA 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-sa/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-NoDerivs 3.0 Unported&lt;br /&gt;
| CC BY-ND 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nd/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nd/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
| Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported&lt;br /&gt;
| CC BY-NC-ND 3.0&lt;br /&gt;
| class=&amp;quot;done&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | Yes&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| class=&amp;quot;none&amp;quot; style=&amp;quot;text-align:center;&amp;quot; | No&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-nd/3.0/ License Deed]&lt;br /&gt;
| [http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Legal Code]&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Marking your Work===&lt;br /&gt;
&lt;br /&gt;
If you are working in Blender, please add a license to your work visible in the default screen layout visible in a text editor view. '''Please note that you should not do this if you are not the original creator of the work.''' For example, if you are animating a model that was created by someone else, ask '''them''' to add a notice themselves.&lt;br /&gt;
&lt;br /&gt;
You are advised to use the following template:&lt;br /&gt;
&lt;br /&gt;
 Copyright {{CURRENTYEAR}} &amp;lt;var&amp;gt;your real name&amp;lt;/var&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
 This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.&lt;br /&gt;
 http://creativecommons.org/licenses/by-sa/3.0/&lt;br /&gt;
&lt;br /&gt;
Of course, you should modify this template to match whichever license your are using.&lt;br /&gt;
&lt;br /&gt;
===Mappers===&lt;br /&gt;
&lt;br /&gt;
In creating a map, you likely will end up using textures from a variety of sources. You '''must''' include copies of licenses and notices of attribution for any and all textures that you use not created by yourself. Those textures which you have created yourself should be licensed as outlined above, and a notice included. It is recommended to include a file named &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;mapname&amp;lt;/var&amp;gt;.txt&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;map-&amp;lt;var&amp;gt;mapname&amp;lt;/var&amp;gt;.txt&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;map-&amp;lt;var&amp;gt;mapname&amp;lt;/var&amp;gt;-&amp;lt;var&amp;gt;version&amp;lt;/var&amp;gt;.txt&amp;lt;/code&amp;gt; inside a directory named &amp;lt;code&amp;gt;about&amp;lt;/code&amp;gt; in your &amp;lt;code&amp;gt;[[Packaging_game_data|.dpk]]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Introducing Yourself==&lt;br /&gt;
&lt;br /&gt;
Once you have access to the developer subforums, please create a post on the [http://unvanquished.net/forum/forumdisplay.php/36-Assets-amp-Artwork Assets &amp;amp; Artwork] subforum telling us a little about yourself.&lt;br /&gt;
&lt;br /&gt;
At the end of your introduction, please add the following information using this template:&lt;br /&gt;
&lt;br /&gt;
 [LIST]&lt;br /&gt;
 [*] [B]Skillset[/B]: &amp;lt;var&amp;gt;List your skills here&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Software[/B]: &amp;lt;var&amp;gt;List software you know well here&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]E-mail[/B]: &amp;lt;var&amp;gt;Please place an e-mail address that you would like to be contacted at here&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Preferred means of contact[/B]: &amp;lt;var&amp;gt;How would you like to be contacted?&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Primary operating system[/B]: &amp;lt;var&amp;gt;Which operating system (and version) do you use the most often? (E.g., Mac OS X 10.6)&amp;lt;/var&amp;gt;&lt;br /&gt;
 [*] [B]Portfolio[/B]: &amp;lt;var&amp;gt;Add links to any work that you have done that is visible on the internet&amp;lt;/var&amp;gt;&lt;br /&gt;
 [/LIST]&lt;br /&gt;
&lt;br /&gt;
If you do not have a portfolio and you are a 2d or 3d artist, please upload a gallery of images of your work to imgur or other reliable image sharing site. Similarly, if you are an audio engineer or musician, upload your work to some audio sharing site.&lt;br /&gt;
&lt;br /&gt;
You may wish to include other information, such as:&lt;br /&gt;
&lt;br /&gt;
* Alternate means of contact (e.g., Skype);&lt;br /&gt;
* Your time zone, so that we know when we can contact you.&lt;br /&gt;
&lt;br /&gt;
Continue reading for more specific instructions.&lt;br /&gt;
&lt;br /&gt;
==Animators==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What software do you use?&lt;br /&gt;
* How familiar are you with your preferred software? I.e., what features of your animation package do you utilize? For example, if you use Blender, do you know how to use actions and constraints?&lt;br /&gt;
&lt;br /&gt;
We currently use the {{Formats|IQM}} format for animations. Please familiarize yourself with the following documentation before beginning to animate anything:&lt;br /&gt;
&lt;br /&gt;
* Read the [[Modeling#Workflow_overview|workflow overview]]. This explains the workflow shared by our artists for bringing a concept into reality. You are expected to understand this. If you have any questions, do not hesitate to ask.&lt;br /&gt;
* From the model exporting guide, please read the [[Exporting_Models#Overview|overview]] and the [[Exporting_Models#What_is_MD5.3F|What is MD5?]] section. {{TODO|inline=true|Rewrite for IQM.}} You will need to understand these in order to be able to create an animation that can successfully be exported from your animation package of choice and loaded into the game.&lt;br /&gt;
&lt;br /&gt;
In particular, you are expected to know the limitations of the {{Formats|IQM}} format. '''If you do not respect these limitations, you are guaranteed to have a great deal if difficulty when attempting to export your model.''' While the art lead is more than willing to provide help to get your asset in-game, you would be wasting his/her time by not reading the documentation beforehand; it is only respectful to do so.&lt;br /&gt;
&lt;br /&gt;
==Audio Engineers &amp;amp; Musicians==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What hardware and instruments do you have access to?&lt;br /&gt;
* If you are a musician, what instruments do you play? If you don't play an instrument, what do you compose music with?&lt;br /&gt;
* If you are a musician, what sort of music do you like to compose?&lt;br /&gt;
* If you are an audio engineer, what is your particular skillset?&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Please read the [[Music_and_sounds|documentation]] on music and sounds. Be aware that at the time of writing (19 March 2013), this information is rather inadequate, but it will at least answer some questions.&lt;br /&gt;
* Please take a look at the [[Sound_Progress|sound progress]] page for an idea of what sounds there are that need replacement.&lt;br /&gt;
&lt;br /&gt;
In addition, you should be aware that many sounds present in Unvanquished are inherited from Tremulous and '''must''' be replaced. '''Note that this is non-negotiable''': the sounds from Tremulous failed to prove having trustable sources and we prefer to replace them entirely to not take any risk of copyright infrigement accusation even if no one never claimed that since Tremulous was released in 2006.&lt;br /&gt;
&lt;br /&gt;
==Concept Artists==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What is your preferred medium? E.g., do you draw with a tablet in Photoshop, or do you use pencil and paper? Be specific.&lt;br /&gt;
* What is your greatest strength with respect to drawing? I.e., what is the one thing that you think you are the best at drawing?&lt;br /&gt;
* How long do you expect it to take to create a concept? We're not [http://clientsfromhell.net/ clients from hell], so we're not going to pressure you to do things quickly, but we'd just like to know in advance if it might take a week or whatever so that know you haven't just died on us if we don't hear from you for a while!&lt;br /&gt;
&lt;br /&gt;
Please be aware:&lt;br /&gt;
&lt;br /&gt;
* If you are unsure of what you would like to work on, please familiarize yourself with both the [[Aliens|alien]] and [[Humans|human]] teams.&lt;br /&gt;
* Be aware that you are expected to [[#Trying_Out_the_Game|try the game]] at some point!&lt;br /&gt;
* If you would like to know what character and weapon models have not been completed that are therefore available to create a concept for, take a look at the [[modeling progress]] page. Anything that is not being worked on is fair game, even if other concepts have been made before.&lt;br /&gt;
* There is not currently a listing of all the concepts made for the game, so you will have to browse the [http://unvanquished.net/forum/forumdisplay.php/36-Assets-amp-Artwork Assets &amp;amp; Artwork subforum] for now.&lt;br /&gt;
&lt;br /&gt;
==Mappers==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What maps have you released to the public in the past, and for what games?&lt;br /&gt;
* What experience do you have with mapping software? Include any and all software that you have used, even if it was not for a Quake-derived game, and some indication of your skill with that software.&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Please read the [[Mapping|mapping guide]] all the way through. You do not necessarily need to know how to use every feature of the tools right away, but you should understand the basics.&lt;br /&gt;
* [[Packaging_game_data|How to get data in the game]]. This is less important when you begin mapping, but you must understand this when you approach time to release or upload your map online for testing. Ideally, you would not be creating a final release of your map without at least one beta test version.&lt;br /&gt;
&lt;br /&gt;
==Modelers==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* What software do you '''prefer''' to use?&lt;br /&gt;
* What is your personal workflow? Do you begin with a high poly model and retopo that? Or do you begin and end with the geometry that will end up in the final game?&lt;br /&gt;
* Are you capable of completing a modeling assignment, or will you need assistance? If you will need assistance (e.g., with retopoing, unwrapping, texturing, rigging, or animation), please inform us. Be specific.&lt;br /&gt;
* Are you familiar with modern techniques? Specifically, we'd like to know if you know what the following are and how to use them:&lt;br /&gt;
** Normal maps;&lt;br /&gt;
** Bump maps;&lt;br /&gt;
** Specular maps;&lt;br /&gt;
** Physical maps (PBR);&lt;br /&gt;
** Glow maps;&lt;br /&gt;
** Height maps;&lt;br /&gt;
** Smoothing groups;&lt;br /&gt;
* Are you familiar with the idea of not storing lighting information in your diffuse texture? '''If you do not understand what this means, please ask.''' A guide will eventually be written on this.&lt;br /&gt;
* Is hardware an issue? E.g., if you are going to be editing a very high poly model, do you have a video card that can handle that?&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Read the [[Modeling#Workflow_overview|workflow overview]]. This explains the workflow shared by our artists for bringing a concept into reality. You are expected to understand this. If you have any questions, do not hesitate to ask.&lt;br /&gt;
* From the model exporting guide, please read the [[Exporting_Models#Overview|overview]]. If you are not going to animate your model yourself, this is less important, but it is good to know anyway.&lt;br /&gt;
&lt;br /&gt;
==Texture Artists==&lt;br /&gt;
&lt;br /&gt;
In addition to the [[#Introducing_Yourself|above information]], we'd like to know the following about you:&lt;br /&gt;
&lt;br /&gt;
* Are you familiar with the idea of not storing lighting information in your diffuse texture? '''If you do not understand what this means, please ask.''' A guide will eventually be written on this.&lt;br /&gt;
&lt;br /&gt;
You are expected to familiarize yourself with the following:&lt;br /&gt;
&lt;br /&gt;
* Please read the [[texture creation]] guide. This contains important information about what formats the engine supports and where you can obtain special tools that you may need to create content specifically for our engine.&lt;br /&gt;
&lt;br /&gt;
==Screenshot and movie==&lt;br /&gt;
&lt;br /&gt;
Before take screenshot or make a movie, please set high preset graphic, or better.&lt;br /&gt;
&lt;br /&gt;
You may want to disable all 2D draw (name, minimap, ping...) by command {{code|/cg_draw2D 0}} (change the '''0''' by '''1''' to enable again).&lt;br /&gt;
&lt;br /&gt;
Then if you use SHIFT with the screenshot hotkey (F11 by default), the screenshot will be done with PNG format.&lt;br /&gt;
&lt;br /&gt;
====For movies====&lt;br /&gt;
&lt;br /&gt;
With Linux, you can try [https://www.maartenbaert.be/simplescreenrecorder/ SimpleScreenRecorder].&lt;br /&gt;
&lt;br /&gt;
Or maybe [https://www.gamingonlinux.com/2021/07/open-source-instant-replay-software-replaysorcery-adds-an-experimental-kms-service ReplaySorcery].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Contributing/Code&amp;diff=9104</id>
		<title>Contributing/Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Contributing/Code&amp;diff=9104"/>
				<updated>2026-06-02T10:25:08Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* GitHub etiquette */ merge and review details&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Contributing]]&lt;br /&gt;
As we use GitHub for hosting, you may very easily [https://help.github.com/articles/fork-a-repo fork] our [https://github.com/Unvanquished/Unvanquished project] (or any sub-project, such as the [https://github.com/DaemonEngine Dæmon] engine or [https://github.com/DaemonEngine/Urcheon Urcheon]). From there, you may [https://help.github.com/articles/using-pull-requests open a pull request].&lt;br /&gt;
&lt;br /&gt;
== Before you start coding ==&lt;br /&gt;
&lt;br /&gt;
If your intended change may be controversial, or you're not sure how to implement it, it would be wise to discuss your intentions with other developers via [[chat]], the {{forums}}, or a GitHub issue. In the case of a gameplay change, it should be discussed on the [https://github.com/Unvanquished/gameplay gameplay tracker].&lt;br /&gt;
&lt;br /&gt;
== Correct and readable code ==&lt;br /&gt;
&lt;br /&gt;
* Follow established [[Coding_convention|coding conventions]].&lt;br /&gt;
* Test your commit before opening a pull request or pushing.&lt;br /&gt;
* Verify that your code passes the [[Continuous integration|automated builds]]. After you open a pull request in GitHub, you will see messages about &amp;quot;checks passing&amp;quot; or &amp;quot;checks failing&amp;quot;, which indicate their status. To catch more warnings before you push, consider enabling the {{code|USE_WERROR}} CMake option.&lt;br /&gt;
&lt;br /&gt;
== Proper Git usage ==&lt;br /&gt;
* Write [http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html good commit messages].&lt;br /&gt;
* Each individual commit should successfully compile and ideally be otherwise free of regressions. Correspondingly, when revising a pull request under review, rebase and modify earlier buggy commits rather than adding &amp;quot;fix&amp;quot; commits at the end.&lt;br /&gt;
* Avoid submitting a large number of commits in one pull request.&lt;br /&gt;
&lt;br /&gt;
== GitHub etiquette ==&lt;br /&gt;
&lt;br /&gt;
* People with commit access should always merge their own pull requests. Don't merge another contributor's code as they may have good reasons to hold back that aren't obvious.&amp;lt;br/&amp;gt;See [[Contributing/Merge]] for details.&lt;br /&gt;
* Get the approval of another team member before merging.&amp;lt;br/&amp;gt;See [[Contributing/Review]] for details.&lt;br /&gt;
* Do not merge pull requests that have been open for less than 24 hours. Mistakes are likely if people don't get a chance to review.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Contributing/Code&amp;diff=9103</id>
		<title>Contributing/Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Contributing/Code&amp;diff=9103"/>
				<updated>2026-06-02T10:21:53Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Contributing]]&lt;br /&gt;
As we use GitHub for hosting, you may very easily [https://help.github.com/articles/fork-a-repo fork] our [https://github.com/Unvanquished/Unvanquished project] (or any sub-project, such as the [https://github.com/DaemonEngine Dæmon] engine or [https://github.com/DaemonEngine/Urcheon Urcheon]). From there, you may [https://help.github.com/articles/using-pull-requests open a pull request].&lt;br /&gt;
&lt;br /&gt;
== Before you start coding ==&lt;br /&gt;
&lt;br /&gt;
If your intended change may be controversial, or you're not sure how to implement it, it would be wise to discuss your intentions with other developers via [[chat]], the {{forums}}, or a GitHub issue. In the case of a gameplay change, it should be discussed on the [https://github.com/Unvanquished/gameplay gameplay tracker].&lt;br /&gt;
&lt;br /&gt;
== Correct and readable code ==&lt;br /&gt;
&lt;br /&gt;
* Follow established [[Coding_convention|coding conventions]].&lt;br /&gt;
* Test your commit before opening a pull request or pushing.&lt;br /&gt;
* Verify that your code passes the [[Continuous integration|automated builds]]. After you open a pull request in GitHub, you will see messages about &amp;quot;checks passing&amp;quot; or &amp;quot;checks failing&amp;quot;, which indicate their status. To catch more warnings before you push, consider enabling the {{code|USE_WERROR}} CMake option.&lt;br /&gt;
&lt;br /&gt;
== Proper Git usage ==&lt;br /&gt;
* Write [http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html good commit messages].&lt;br /&gt;
* Each individual commit should successfully compile and ideally be otherwise free of regressions. Correspondingly, when revising a pull request under review, rebase and modify earlier buggy commits rather than adding &amp;quot;fix&amp;quot; commits at the end.&lt;br /&gt;
* Avoid submitting a large number of commits in one pull request.&lt;br /&gt;
&lt;br /&gt;
== GitHub etiquette ==&lt;br /&gt;
&lt;br /&gt;
* People with commit access should always merge their own pull requests. Don't merge another contributor's code as they may have good reasons to hold back that aren't obvious.&lt;br /&gt;
* Get the approval of another team member before merging.&lt;br /&gt;
* Do not merge pull requests that have been open for less than 24 hours. Mistakes are likely if people don't get a chance to review.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9102</id>
		<title>Infrastructure/Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9102"/>
				<updated>2026-06-02T10:17:44Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Dedicated server hosted by illwieckz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
== Dedicated server hosted by `Ishq ==&lt;br /&gt;
&lt;br /&gt;
99% Unvanquished stuff, `Ishq hosts some personal services.&lt;br /&gt;
&lt;br /&gt;
Administration is shared among some team members.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System: Debian&lt;br /&gt;
* Web server: Nginx&lt;br /&gt;
* PHP application server: PHP-FPM&lt;br /&gt;
* Database: MariaDB/MySQL&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net blog&lt;br /&gt;
** Software: Wordpress&lt;br /&gt;
* https://unvanquished.net/activity Pluto rss/atom planet for development activity&lt;br /&gt;
** Software: Pluto, https://github.com/feedreader/pluto&lt;br /&gt;
** Configuration: https://github.com/Unvanquished/pluto-devfeeds&lt;br /&gt;
* https://unvanquished.net/servers Wordpress plugin for server listing&lt;br /&gt;
** Software: XonPress, https://github.com/DaemonEngine/XonPress ([https://gitlab.com/mattia.basaglia/Xonpress originally written] by Melanosuchus)&lt;br /&gt;
* https://forums.unvanquished.net forums&lt;br /&gt;
** Software: phpBB&lt;br /&gt;
* https://wiki.unvanquished.net wiki&lt;br /&gt;
** Software: MediaWiki&lt;br /&gt;
* https://login.unvanquished.net shared authentication system&lt;br /&gt;
** Software: SimpleSAMLphp&lt;br /&gt;
* https://dl.unvanquished.net primary download server (releases, build dependencies, ingame download as HTTP)&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://cdn.unvanquished.net primary CDN server&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://play.unvanquished.net game protocol redirector&lt;br /&gt;
** Software: raw Nginx with SSI&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master.unvanquished.net&amp;lt;/code&amp;gt; primary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;unvanquished.net:27960&amp;lt;/code&amp;gt; official US game server&lt;br /&gt;
&lt;br /&gt;
=== Hosted chat services ===&lt;br /&gt;
&lt;br /&gt;
* Overmind IRC bot: autovoice webchat users, welcome messages, antispam features&lt;br /&gt;
** Software: PyTIBot, https://github.com/DefaultUser/PyTIBot&lt;br /&gt;
* Unvanquished IRC bot: announce game and events&lt;br /&gt;
** Software: Mantis, https://gitlab.com/Viech/Mantis/&lt;br /&gt;
* Granger bot: keeps note for users, do some fun stuff as well (markov chains)&lt;br /&gt;
** Software: ruby-rbot, https://github.com/ruby-rbot/rbot&lt;br /&gt;
* Dretch bridge (DiscordFlips): bridge IRC, Matrix and Discord&lt;br /&gt;
** Software: matterbridge, https://github.com/42wim/matterbridge&lt;br /&gt;
&lt;br /&gt;
See [[Chat#Bots]] for details about what those chat bots do.&lt;br /&gt;
&lt;br /&gt;
== Dedicated server hosted by illwieckz ==&lt;br /&gt;
&lt;br /&gt;
99% personal stuff, some Unvanquished services among others.&lt;br /&gt;
&lt;br /&gt;
Is used as a landing page when `Ishq dedicated server is offline.&lt;br /&gt;
&lt;br /&gt;
Administration is not shared. It may be possible to share administration permissions on the game-related virtual machine or to redesign things to make it possible.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System (hypervisor): Debian Xen&lt;br /&gt;
* Web front: Nginx&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
* System (web front virtual machine): Debian&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
* System (gaming virtual machine): Ubuntu&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://cdn.illwieckz.net/unvanquished CDN mirror&lt;br /&gt;
* https://dl.illwieckz.net/share/unvanquished/release release mirror, build dependencies mirror&lt;br /&gt;
* https://gg.illwieckz.net/dl/unvanquished/pkg in-game download as HTTP&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master2.unvanquished.net&amp;lt;/code&amp;gt; secondary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;gg.illwieckz.net:27960&amp;lt;/code&amp;gt; official EU game server&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9101</id>
		<title>Infrastructure/Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9101"/>
				<updated>2026-06-02T10:17:23Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Hosted web services */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
== Dedicated server hosted by `Ishq ==&lt;br /&gt;
&lt;br /&gt;
99% Unvanquished stuff, `Ishq hosts some personal services.&lt;br /&gt;
&lt;br /&gt;
Administration is shared among some team members.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System: Debian&lt;br /&gt;
* Web server: Nginx&lt;br /&gt;
* PHP application server: PHP-FPM&lt;br /&gt;
* Database: MariaDB/MySQL&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net blog&lt;br /&gt;
** Software: Wordpress&lt;br /&gt;
* https://unvanquished.net/activity Pluto rss/atom planet for development activity&lt;br /&gt;
** Software: Pluto, https://github.com/feedreader/pluto&lt;br /&gt;
** Configuration: https://github.com/Unvanquished/pluto-devfeeds&lt;br /&gt;
* https://unvanquished.net/servers Wordpress plugin for server listing&lt;br /&gt;
** Software: XonPress, https://github.com/DaemonEngine/XonPress ([https://gitlab.com/mattia.basaglia/Xonpress originally written] by Melanosuchus)&lt;br /&gt;
* https://forums.unvanquished.net forums&lt;br /&gt;
** Software: phpBB&lt;br /&gt;
* https://wiki.unvanquished.net wiki&lt;br /&gt;
** Software: MediaWiki&lt;br /&gt;
* https://login.unvanquished.net shared authentication system&lt;br /&gt;
** Software: SimpleSAMLphp&lt;br /&gt;
* https://dl.unvanquished.net primary download server (releases, build dependencies, ingame download as HTTP)&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://cdn.unvanquished.net primary CDN server&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://play.unvanquished.net game protocol redirector&lt;br /&gt;
** Software: raw Nginx with SSI&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master.unvanquished.net&amp;lt;/code&amp;gt; primary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;unvanquished.net:27960&amp;lt;/code&amp;gt; official US game server&lt;br /&gt;
&lt;br /&gt;
=== Hosted chat services ===&lt;br /&gt;
&lt;br /&gt;
* Overmind IRC bot: autovoice webchat users, welcome messages, antispam features&lt;br /&gt;
** Software: PyTIBot, https://github.com/DefaultUser/PyTIBot&lt;br /&gt;
* Unvanquished IRC bot: announce game and events&lt;br /&gt;
** Software: Mantis, https://gitlab.com/Viech/Mantis/&lt;br /&gt;
* Granger bot: keeps note for users, do some fun stuff as well (markov chains)&lt;br /&gt;
** Software: ruby-rbot, https://github.com/ruby-rbot/rbot&lt;br /&gt;
* Dretch bridge (DiscordFlips): bridge IRC, Matrix and Discord&lt;br /&gt;
** Software: matterbridge, https://github.com/42wim/matterbridge&lt;br /&gt;
&lt;br /&gt;
See [[Chat#Bots]] for details about what those chat bots do.&lt;br /&gt;
&lt;br /&gt;
== Dedicated server hosted by illwieckz ==&lt;br /&gt;
&lt;br /&gt;
99% personal stuff, some Unvanquished services among others.&lt;br /&gt;
&lt;br /&gt;
Is used as a landing page when `Ishq dedicated server was offline.&lt;br /&gt;
&lt;br /&gt;
Administration is not shared. It may be possible to share administration permissions on the game-related virtual machine or to redesign things to make it possible.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System (hypervisor): Debian Xen&lt;br /&gt;
* Web front: Nginx&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
* System (web front virtual machine): Debian&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
* System (gaming virtual machine): Ubuntu&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://cdn.illwieckz.net/unvanquished CDN mirror&lt;br /&gt;
* https://dl.illwieckz.net/share/unvanquished/release release mirror, build dependencies mirror&lt;br /&gt;
* https://gg.illwieckz.net/dl/unvanquished/pkg in-game download as HTTP&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master2.unvanquished.net&amp;lt;/code&amp;gt; secondary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;gg.illwieckz.net:27960&amp;lt;/code&amp;gt; official EU game server&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9100</id>
		<title>Infrastructure/Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9100"/>
				<updated>2026-06-02T10:16:57Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: chat bots link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
== Dedicated server hosted by `Ishq ==&lt;br /&gt;
&lt;br /&gt;
99% Unvanquished stuff, `Ishq hosts some personal services.&lt;br /&gt;
&lt;br /&gt;
Administration is shared among some team members.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System: Debian&lt;br /&gt;
* Web server: Nginx&lt;br /&gt;
* PHP application server: PHP-FPM&lt;br /&gt;
* Database: MariaDB/MySQL&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net blog&lt;br /&gt;
** Software: Wordpress&lt;br /&gt;
* https://unvanquished.net/activity Pluto rss/atom planet for development activity&lt;br /&gt;
** Software: Pluto, https://github.com/feedreader/pluto&lt;br /&gt;
** Configuration: https://github.com/Unvanquished/pluto-devfeeds&lt;br /&gt;
* https://unvanquished.net/servers Wordpress plugin for server listing&lt;br /&gt;
** Software: XonPress, https://github.com/DaemonEngine/XonPress ([https://gitlab.com/mattia.basaglia/Xonpress originally written] by Melanosuchus)&lt;br /&gt;
* https://forums.unvanquished.net forums&lt;br /&gt;
** Software: phpBB&lt;br /&gt;
* https://wiki.unvanquished.net wiki&lt;br /&gt;
** Software: MediaWiki&lt;br /&gt;
* https://login.unvanquished.net shared authentication system&lt;br /&gt;
** Software: SimpleSAMLphp&lt;br /&gt;
* https://dl.unvanquished.net primary download server (releases, build dependencies, ingame download as HTTP)&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://cdn.unvanquished.net primary CDN server&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://play.unvanquished.net game protocol redirector&lt;br /&gt;
** Software: raw Nginx with SSI&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master.unvanquished.net&amp;lt;/code&amp;gt; primary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;unvanquished.net:27960&amp;lt;/code&amp;gt; official US game server&lt;br /&gt;
&lt;br /&gt;
=== Hosted chat services ===&lt;br /&gt;
&lt;br /&gt;
* Overmind IRC bot: autovoice webchat users, welcome messages, antispam features&lt;br /&gt;
** Software: PyTIBot, https://github.com/DefaultUser/PyTIBot&lt;br /&gt;
* Unvanquished IRC bot: announce game and events&lt;br /&gt;
** Software: Mantis, https://gitlab.com/Viech/Mantis/&lt;br /&gt;
* Granger bot: keeps note for users, do some fun stuff as well (markov chains)&lt;br /&gt;
** Software: ruby-rbot, https://github.com/ruby-rbot/rbot&lt;br /&gt;
* Dretch bridge (DiscordFlips): bridge IRC, Matrix and Discord&lt;br /&gt;
** Software: matterbridge, https://github.com/42wim/matterbridge&lt;br /&gt;
&lt;br /&gt;
See [[Chat#Bots]] for details about what those chat bots do.&lt;br /&gt;
&lt;br /&gt;
== Dedicated server hosted by illwieckz ==&lt;br /&gt;
&lt;br /&gt;
99% personal stuff, some Unvanquished services among others.&lt;br /&gt;
&lt;br /&gt;
Is used as a landing page when `Ishq dedicated server was offline.&lt;br /&gt;
&lt;br /&gt;
Administration is not shared. It may be possible to share administration permissions on the game-related virtual machine or to redesign things to make it possible.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System (hypervisor): Debian Xen&lt;br /&gt;
* Web front: Nginx&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
* System (web front virtual machine): Debian&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
* System (gaming virtual machine): Ubuntu&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://cdn.illwieckz.net/unvanquished CDN mirror&lt;br /&gt;
* https://dl.illwieckz.net/share/unvanquished/release (release mirror, build dependencies mirror)&lt;br /&gt;
* https://gg.illwieckz.net/dl/unvanquished/pkg in-game download as HTTP&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master2.unvanquished.net&amp;lt;/code&amp;gt; secondary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;gg.illwieckz.net:27960&amp;lt;/code&amp;gt; official EU game server&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9099</id>
		<title>Infrastructure/Servers</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Servers&amp;diff=9099"/>
				<updated>2026-06-02T10:16:20Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
== Dedicated server hosted by `Ishq ==&lt;br /&gt;
&lt;br /&gt;
99% Unvanquished stuff, `Ishq hosts some personal services.&lt;br /&gt;
&lt;br /&gt;
Administration is shared among some team members.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System: Debian&lt;br /&gt;
* Web server: Nginx&lt;br /&gt;
* PHP application server: PHP-FPM&lt;br /&gt;
* Database: MariaDB/MySQL&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net blog&lt;br /&gt;
** Software: Wordpress&lt;br /&gt;
* https://unvanquished.net/activity Pluto rss/atom planet for development activity&lt;br /&gt;
** Software: Pluto, https://github.com/feedreader/pluto&lt;br /&gt;
** Configuration: https://github.com/Unvanquished/pluto-devfeeds&lt;br /&gt;
* https://unvanquished.net/servers Wordpress plugin for server listing&lt;br /&gt;
** Software: XonPress, https://github.com/DaemonEngine/XonPress ([https://gitlab.com/mattia.basaglia/Xonpress originally written] by Melanosuchus)&lt;br /&gt;
* https://forums.unvanquished.net forums&lt;br /&gt;
** Software: phpBB&lt;br /&gt;
* https://wiki.unvanquished.net wiki&lt;br /&gt;
** Software: MediaWiki&lt;br /&gt;
* https://login.unvanquished.net shared authentication system&lt;br /&gt;
** Software: SimpleSAMLphp&lt;br /&gt;
* https://dl.unvanquished.net primary download server (releases, build dependencies, ingame download as HTTP)&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://cdn.unvanquished.net primary CDN server&lt;br /&gt;
** Software: raw Nginx&lt;br /&gt;
* https://play.unvanquished.net game protocol redirector&lt;br /&gt;
** Software: raw Nginx with SSI&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master.unvanquished.net&amp;lt;/code&amp;gt; primary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;unvanquished.net:27960&amp;lt;/code&amp;gt; official US game server&lt;br /&gt;
&lt;br /&gt;
=== Hosted chat services ===&lt;br /&gt;
&lt;br /&gt;
* Overmind IRC bot: autovoice webchat users, welcome messages, antispam features&lt;br /&gt;
** Software: PyTIBot, https://github.com/DefaultUser/PyTIBot&lt;br /&gt;
* Unvanquished IRC bot: announce game and events&lt;br /&gt;
** Software: Mantis, https://gitlab.com/Viech/Mantis/&lt;br /&gt;
* Granger bot: keeps note for users, do some fun stuff as well (markov chains)&lt;br /&gt;
** Software: ruby-rbot, https://github.com/ruby-rbot/rbot&lt;br /&gt;
* Dretch bridge (DiscordFlips): bridge IRC, Matrix and Discord&lt;br /&gt;
** Software: matterbridge, https://github.com/42wim/matterbridge&lt;br /&gt;
&lt;br /&gt;
See [[Chat#Chat bots]] for details about what those chat bots do.&lt;br /&gt;
&lt;br /&gt;
== Dedicated server hosted by illwieckz ==&lt;br /&gt;
&lt;br /&gt;
99% personal stuff, some Unvanquished services among others.&lt;br /&gt;
&lt;br /&gt;
Is used as a landing page when `Ishq dedicated server was offline.&lt;br /&gt;
&lt;br /&gt;
Administration is not shared. It may be possible to share administration permissions on the game-related virtual machine or to redesign things to make it possible.&lt;br /&gt;
&lt;br /&gt;
=== System ===&lt;br /&gt;
&lt;br /&gt;
* System (hypervisor): Debian Xen&lt;br /&gt;
* Web front: Nginx&lt;br /&gt;
* SSL certificates: Let's Encrypt&lt;br /&gt;
* System (web front virtual machine): Debian&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
* System (gaming virtual machine): Ubuntu&lt;br /&gt;
* Web: Nginx&lt;br /&gt;
&lt;br /&gt;
=== Hosted web services ===&lt;br /&gt;
&lt;br /&gt;
* https://cdn.illwieckz.net/unvanquished CDN mirror&lt;br /&gt;
* https://dl.illwieckz.net/share/unvanquished/release (release mirror, build dependencies mirror)&lt;br /&gt;
* https://gg.illwieckz.net/dl/unvanquished/pkg in-game download as HTTP&lt;br /&gt;
&lt;br /&gt;
=== Hosted game services ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;master2.unvanquished.net&amp;lt;/code&amp;gt; secondary master server (unvanquished-master)&lt;br /&gt;
* &amp;lt;code&amp;gt;gg.illwieckz.net:27960&amp;lt;/code&amp;gt; official EU game server&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Contributing/Review&amp;diff=9098</id>
		<title>Contributing/Review</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Contributing/Review&amp;diff=9098"/>
				<updated>2026-06-02T10:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Suggesting a change */ better wording in example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Contributing]]&lt;br /&gt;
{{Note|header=Proposal|content=This is a proposal, things may be discussed and changed.&lt;br /&gt;
&lt;br /&gt;
See the forum thread: https://forums.unvanquished.net/viewtopic.php?t=2426}}&lt;br /&gt;
&lt;br /&gt;
{{NoteMergeReview}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Reviewing artistic data ==&lt;br /&gt;
&lt;br /&gt;
Reviewing images, materials, sound effects or map changes from [https://github.com/UnvanquishedAssets/UnvanquishedAssets UnvanquishedAssets] is a bit different than code, as there are some art direction involved.&lt;br /&gt;
&lt;br /&gt;
A data PR modifying how a the game world is experienced, for example how a map looks, is expected to get approved by an artistic advisor before merging. Common artistic reviewers are currently: '''Viech''', '''illwieckz''', '''Sweet'''.&lt;br /&gt;
&lt;br /&gt;
An artistic data author is also a reviewer for his own map / texture / other artistic data package, for example the author of a map is considered an artistic reviewer for the map, same for texture packages if the author is part of the Unvanquished team (a texture package specially created for Unvanquished) and same for sound. For model repositories like weapons, buildables and players, the author of a model is considered an artistic reviewer for the things related to the model.&lt;br /&gt;
&lt;br /&gt;
Artistic reviewers can say a change literally looks good to them and is OK for merging for the matter of the way it looks.&lt;br /&gt;
&lt;br /&gt;
Artistic reviewers can auto-approve their change for the matter of the way it looks.&lt;br /&gt;
&lt;br /&gt;
Then comes some generic implementation review, basically things like if the syntax of files is correct, or used file format is good or not.&lt;br /&gt;
&lt;br /&gt;
Let's give some use case as an example:&lt;br /&gt;
&lt;br /&gt;
# '''Someone contributes a force field effect modification by adding a heat haze map.'''&lt;br /&gt;
#* It is required to get an artistic review. Artistic reviewers can auto-approve themselves.&lt;br /&gt;
#* Usual reviewers of the team (same as code) can review the implementation, for example suggesting to compress the image better or writing the {{code|.shader}} file in a better way.&lt;br /&gt;
# '''Someone edits some brushwork in a map without any impact in the perceived geometry.'''&amp;lt;br/&amp;gt;For example to caulk some surface to optimise the rendering, or to reduce the light map size.&lt;br /&gt;
#* This doesn't require an artistic review, so any usual reviewers of the team can review that.&lt;br /&gt;
#* The PR submitter should say it doesn't require artistic review and why.&lt;br /&gt;
&lt;br /&gt;
Like code, we better wait for at least one complete day before merging a PR to make possible to gather some comments.&lt;br /&gt;
&lt;br /&gt;
Something specific to data contribution is the file size, because most data formats (image, sound files) are not diffable, we better make sure a file is in its optimal compressed format prior to pushing it into a repository, this is a technical review, not an artistic review.&lt;br /&gt;
&lt;br /&gt;
Any pull request should be reviewed, even if a formality, just to make sure at least another eye seen it before merging. The idea about authors auto-approving themselves only counts for the artistic side of things.  The idea is that if the change got reviewed, but no one said anything about the artistic side of things, a map author can consider it's fine to merge without artistic comment. This is to solve the problem of no one having any opinion on the artistic side of the given change, but everyone being able to say the change is technically ready to merge.&lt;br /&gt;
&lt;br /&gt;
== Reviewing code ==&lt;br /&gt;
&lt;br /&gt;
Reviewing code doesn't require an artistic review. All members of the team are reviewers. The review focus on the contribution being bug-free, maintainable, things like that.&lt;br /&gt;
&lt;br /&gt;
== Requesting a review ==&lt;br /&gt;
&lt;br /&gt;
When submitting a pull-request, it is useful to explain not only what the code is meant to do and why, but also express the state of the work you submit and the kind of review you are looking for, in hope this helps to reduce the pull request being trapped in situations that were not intended that would slow down the review process.&lt;br /&gt;
&lt;br /&gt;
Here are some questions you are invited to answer when submitting your work:&lt;br /&gt;
&lt;br /&gt;
'''Those changes are implementing:'''&lt;br /&gt;
&lt;br /&gt;
* ☐ A fix.&lt;br /&gt;
* ☐ A new feature.&lt;br /&gt;
* ☐ A rewrite of something that already exists.&lt;br /&gt;
* ☐ A clean-up to drop legacy or unused stuff.&lt;br /&gt;
&lt;br /&gt;
'''Those changes are:'''&lt;br /&gt;
&lt;br /&gt;
* ☐ Made by me.&lt;br /&gt;
* ☐ Made by someon else:&lt;br /&gt;
&lt;br /&gt;
'''What the changes are for and what are they trying to accomplish:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;padding-left: 15em; padding-right: 15em;&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The existing issues related to those changes:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;padding-left: 15em; padding-right: 15em;&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''My own personnal perceived status of the changes being submitted:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;padding-left: 15em; padding-right: 15em;&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ☐ I believe it is ready to merge as is unless proven wrong.&lt;br /&gt;
* ☐ I believe it is ready to use but I'm requesting for comments so it can be refined.&lt;br /&gt;
* ☐ That's a work-in-progress, being made public to get early comments and make sure other peoples working on other branches know this is being worked on.&lt;br /&gt;
&lt;br /&gt;
'''I'm looking for this kind of review:'''&lt;br /&gt;
&lt;br /&gt;
* ☐ Generic proof-reading for mistakes.&lt;br /&gt;
* ☐ Comments about the the design itself, looking for better ways to do things.&lt;br /&gt;
* ☐ Opinion on what is expected to be brought or removed, is this wanted to begin with? if yes are there better ideas?&lt;br /&gt;
* ☐ Opinion on the way it's done or what it plans to achieves.&lt;br /&gt;
* ☐ Testing to be sure it works as expected or not regress.&lt;br /&gt;
&lt;br /&gt;
'''What I already tested and assume is already verified:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code style=&amp;quot;padding-left: 15em; padding-right: 15em;&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''I request testing:'''&lt;br /&gt;
&lt;br /&gt;
* ☐ On a specific operating system, hardware brand or model, driver version:&lt;br /&gt;
* ☐ Of specific game options, configurations, in-game actions:&lt;br /&gt;
&lt;br /&gt;
'''My changes are expected to integrate this way in the target branch:'''&lt;br /&gt;
&lt;br /&gt;
* ☐ As a preparation for future changes that would be submitted in another pull request.&lt;br /&gt;
* ☐ As a single commit despite this being submitted as separate commits.&lt;br /&gt;
* ☐ As separate commits because I believe it's better for this change to do things step by step and I don't want to lose the ability to bisect those steps.&lt;br /&gt;
&lt;br /&gt;
== Reviewing a contribution ==&lt;br /&gt;
&lt;br /&gt;
When clicking the “Approve” button, please add a comment, a {{Code|LGTM}} (''Looks Good To Me'') mention is enough.&lt;br /&gt;
&lt;br /&gt;
A {{code|LGTM}} message without any other comment is considered as an approval, better click Approve anyway.&lt;br /&gt;
A {{code|LGTM}} message with a comment for a better implementation (not a bug fix) is considered as an approval, better click Approve anyway.&lt;br /&gt;
&lt;br /&gt;
=== If the code looks to have no bug from you point of view ===&lt;br /&gt;
&lt;br /&gt;
please write LGTM in all cases.&lt;br /&gt;
&lt;br /&gt;
==== If you agree with the purpose of the change ====&lt;br /&gt;
&lt;br /&gt;
Please write LGTM and Approve.&lt;br /&gt;
&lt;br /&gt;
==== If you disagree with the purpose of the change ====&lt;br /&gt;
&lt;br /&gt;
Please write LGTM but add a comment explaining why you don't approve.&lt;br /&gt;
&lt;br /&gt;
This way, if the code has no bug, we can solve the politics separately and if we decide to agree with the purpose of the change, we can merge it without having to look back at the code, and to not block the merge because we don't know if code is reviewed yet.&lt;br /&gt;
&lt;br /&gt;
==== If you have a suggestion for a better implementation ====&lt;br /&gt;
&lt;br /&gt;
Please write LGTM and approve and add a comment with your suggestion, saying it is a suggestion.&lt;br /&gt;
&lt;br /&gt;
This way, the submitter can decide to follow you or not.&lt;br /&gt;
&lt;br /&gt;
If the submitter merged without following your recommendation, you are free to implement your recommendation.&lt;br /&gt;
&lt;br /&gt;
=== If the code has a bug from your point of view ===&lt;br /&gt;
&lt;br /&gt;
==== If you know the fix and this is obvious to do ====&lt;br /&gt;
&lt;br /&gt;
Please state what you believe is a bug and suggest what you believe would fix the bug.&lt;br /&gt;
&lt;br /&gt;
You can write “LGTM if you do &amp;lt;suggestion&amp;gt;” and then write your suggestion.&lt;br /&gt;
&lt;br /&gt;
You can consider obvious a fix you believe there is no need to verify the implementation of your recommendation.&lt;br /&gt;
&lt;br /&gt;
Once the submitter implements your suggested fix the change will be considered fully approved without needing any new comment.&lt;br /&gt;
&lt;br /&gt;
==== If you don't know the fix or this is not obvious to do ====&lt;br /&gt;
&lt;br /&gt;
Please explain why you believe is a bug, and if you an idea to fix it, please share it.&lt;br /&gt;
&lt;br /&gt;
=== If you have any remark but it is not blocking ===&lt;br /&gt;
&lt;br /&gt;
Please write LGTM, approve, and write your remark.&lt;br /&gt;
&lt;br /&gt;
== Suggesting a change ==&lt;br /&gt;
&lt;br /&gt;
Prefer to point out something that could be better, or suggest a change, than give a direct order, because nobody is paid for that work and then everything already done is already a gift that we not deserve.&lt;br /&gt;
&lt;br /&gt;
For example instead of something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Remove leading spaces.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prefer something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;That leading space will be included in the translation string and this is unwanted.&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically, instead of saying what should be done, say why something can be done.&lt;br /&gt;
&lt;br /&gt;
== Approving the change ==&lt;br /&gt;
&lt;br /&gt;
When you believe the submitted contribution of someone else is ready to merge, you can approve it.&lt;br /&gt;
&lt;br /&gt;
By approving someone else contribution, you help a lot this project! Every merger is an approver.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Contributing/Merge&amp;diff=9097</id>
		<title>Contributing/Merge</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Contributing/Merge&amp;diff=9097"/>
				<updated>2026-06-02T10:06:47Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Super merger */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Contributing]]&lt;br /&gt;
{{Note|header=Proposal|content=This is a proposal, things may be discussed and changed.&lt;br /&gt;
&lt;br /&gt;
See the forum thread: https://forums.unvanquished.net/viewtopic.php?t=2426}}&lt;br /&gt;
&lt;br /&gt;
{{NoteMergeReview}}&lt;br /&gt;
&lt;br /&gt;
== Common merge rules ==&lt;br /&gt;
&lt;br /&gt;
As a start, some things copy pasted from [[Contributing/Code]]:&lt;br /&gt;
&lt;br /&gt;
* People with commit access should always merge their own pull requests. Don't merge another contributor's code as they may have good reasons to hold back that aren't obvious.&lt;br /&gt;
* Get the approval of another team member before merging.&lt;br /&gt;
* Do not merge pull requests that have been open for less than 24 hours. Mistakes are likely if people don't get a chance to review.&lt;br /&gt;
&lt;br /&gt;
== Merge role hierarchy ==&lt;br /&gt;
&lt;br /&gt;
I suggest to formally define three roles (this may not translate into GitHub user interface):&lt;br /&gt;
&lt;br /&gt;
=== Super merger ===&lt;br /&gt;
&lt;br /&gt;
The purpose of super merger role is to be able to take some decisions to unstuck situations.&lt;br /&gt;
&lt;br /&gt;
The super merger can, as an exception, merge someone else's pull request, if needed for example when the pull request looks ready but is sleeping for too long and the submitter is not answering, or to merge some things that looks ready for a release and delaying a release is not wanted.&lt;br /&gt;
&lt;br /&gt;
In all cases, those are exceptions and when going the exception way it's recommended to first write a motivated comment and to wait a delay of one day between the motivated comment and the merge.&lt;br /&gt;
&lt;br /&gt;
{{Note|Suggested super mergers: project heads, perturbed.}}&lt;br /&gt;
&lt;br /&gt;
=== Merger ===&lt;br /&gt;
&lt;br /&gt;
Everyone with commit access is a merger, so basically the team members.&lt;br /&gt;
&lt;br /&gt;
A merger can also merge a pull request from a contributor who doesn't have commit permission, or for any reason explaining why the author will not do it, the merger is then considered the reviewer and the approver.&lt;br /&gt;
&lt;br /&gt;
Merging someone else's code and being the approver requires the merged code to have been written against Unvanquished source, porting a code from another software (for example porting from ioquake3 engine to Dæmon engine) requires the porting effort to be reviewed by someone else than the merger.&lt;br /&gt;
&lt;br /&gt;
Any merger is an approver to someone else.&lt;br /&gt;
&lt;br /&gt;
=== Contributors ===&lt;br /&gt;
&lt;br /&gt;
External contributors without commit permission, but submitting pull requests.&lt;br /&gt;
&lt;br /&gt;
== Closing an unmerged pull request from someone else ==&lt;br /&gt;
&lt;br /&gt;
=== Superseded ===&lt;br /&gt;
&lt;br /&gt;
If you believe an original pull request that is not yours is superseded by another one that you believe does the same and that was merged, and if you believe there is nothing more to merge in the original one, don't close it immediately but:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* Ask the original author (mention him in your GitHub comment) if he believes there is nothing left to merge in the original pull request,&lt;br /&gt;
* Express your intention to close the pull request.&lt;br /&gt;
&lt;br /&gt;
If the original author agrees with the closing, you can close the pull request without waiting more.&amp;lt;br/&amp;gt;&lt;br /&gt;
If there is no answer after one month has passed, you can close the pull request.&amp;lt;br/&amp;gt;&lt;br /&gt;
Add a comment saying you're closing the PR at the moment you can close the pull request.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stalled ===&lt;br /&gt;
&lt;br /&gt;
A pull request is considered stalled if it had no activity in one year.&lt;br /&gt;
&lt;br /&gt;
We don't have dozens of thousands pull request so we have no urge to clean-up them. Our team is small and the work is sometime done in very slow pace, so we better not close all stalled PR just for purity.&lt;br /&gt;
&lt;br /&gt;
If you believe a stalled a change from a stalled pull request is wanted but the pull request can't be merged without being reworked, don't close it. It will be closed the day a reworked pull request will be merged instead and after we have followed the “Superseded” pull request closing rule.&lt;br /&gt;
&lt;br /&gt;
If a pull request that is not yours is stalled and you believe it has no hope to get merged, you can follow similar rules in order to close it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
* Ask the original author (mention him in your GitHub comment) if he plans to resume on it,&lt;br /&gt;
* Express your intention to close the pull request.&lt;br /&gt;
&lt;br /&gt;
If the original author agrees with the closing, you can close the pull request without waiting more.&amp;lt;br/&amp;gt;&lt;br /&gt;
If there is no answer after one month has passed, you can close the pull request.&amp;lt;br/&amp;gt;&lt;br /&gt;
Add a comment saying you're closing the PR at the moment you can close the pull request.&lt;br /&gt;
&lt;br /&gt;
If the original author has deleted his GitHub account, express your intention to close the pull request and also wait for a month, to leave time to other people of the team to react.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It means a stalled pull request may be closed after one year of stalling plus one month of lack of response from the original author.&lt;br /&gt;
It doesn't mean a stalled pull request should be closed, whatever the time spent in stalling.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Chat&amp;diff=9096</id>
		<title>Chat</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Chat&amp;diff=9096"/>
				<updated>2026-06-02T09:57:07Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Minor rewording of sections (shorter links…) and markup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
==Platforms==&lt;br /&gt;
&lt;br /&gt;
Our main chat platform is '''Libera.Chat''' IRC but there are also Matrix and Discord rooms that are bridged together. Every people from IRC, Matrix or Discord can chat together, read what others write and respond to each others.&lt;br /&gt;
&lt;br /&gt;
The chat is tantamount to a multiplayer version of Notepad; where ideas are exchanged fast and furiously, words are taken out of context, people misinterpret them, and feelings get hurt. In most cases, we trust people to be kind, helpful, responsible and mature individuals. For everyone else, we have these rules. Remember that access to our channel(s) is a privilege that we provide, not a right. We reserve the right to revoke your privileges.  &lt;br /&gt;
&lt;br /&gt;
===IRC===&lt;br /&gt;
&lt;br /&gt;
We use IRC ([https://en.wikipedia.org/wiki/IRC Internet Relay Chat]) channels and our {{forums}} to discuss work on the game and help people. Many of the developers, artists and players remain permanently connected in IRC whilst others drop in and out when they can.&lt;br /&gt;
&lt;br /&gt;
If you're asking for help please remember that everyone lives in different time-zones and can't always be at their computer. You need to stay logged into the channel for generally a few hours until you get a reply. If this does not suit you, our {{forums}} might be better.&lt;br /&gt;
&lt;br /&gt;
Our IRC channels are:&lt;br /&gt;
&lt;br /&gt;
* [irc://libera.chat/#unvanquished #unvanquished] ([https://web.libera.chat/?channel=#unvanquished web interface]): the general channel.  Often used to get help.&lt;br /&gt;
* [irc://libera.chat/#unvanquished-dev #unvanquished-dev] ([https://web.libera.chat/?channel=#unvanquished-dev web interface]): the development channel. Open to everyone.&lt;br /&gt;
* [irc://libera.chat/#unvanquished-play #unvanquished-play] ([https://web.libera.chat/?channel=#unvanquished-play web interface]): a channel with a bot announcing games being played. Read-only.&lt;br /&gt;
* [irc://libera.chat/#unvanquished-fr #unvanquished-fr] ([https://web.libera.chat/?channel=#unvanquished-fr web interface]): a French channel. Un canal en français.&lt;br /&gt;
&lt;br /&gt;
If these channels are even down we have a backup on QuakeNet:&lt;br /&gt;
&lt;br /&gt;
* [irc://quakenet.org/#unvanquished #unvanquished@quakenet.org] ([https://webchat.quakenet.org/?channels=unvanquished web interface])&lt;br /&gt;
&lt;br /&gt;
See our [https://unvanquished.net/chat/ chat page] for details.&lt;br /&gt;
&lt;br /&gt;
===Matrix===&lt;br /&gt;
&lt;br /&gt;
* [https://matrix.to/#/#unvanquished-space:matrix.org Matrix space]&lt;br /&gt;
&lt;br /&gt;
The Matrix room is bridged with IRC and Discord.&lt;br /&gt;
&lt;br /&gt;
===Discord===&lt;br /&gt;
&lt;br /&gt;
* [https://discord.gg/usuDT9Pyna Discord space]&lt;br /&gt;
&lt;br /&gt;
The Discord room is bridged with IRC and Matrix.&lt;br /&gt;
&lt;br /&gt;
==Rules==&lt;br /&gt;
&lt;br /&gt;
By joining the chat you agree to the Unvanquished channel rules:&lt;br /&gt;
&lt;br /&gt;
===Global rules===&lt;br /&gt;
&lt;br /&gt;
* '''Irony or mocking towards and from anyone is not allowed, insults are not allowed'''. If this happens, both parties will be asked to avoid talking to and about each other for a given time, to both protect each others and prevent the feeding of the drama.&lt;br /&gt;
* '''It is not allowed to threaten someone to death neither to encourage someone to suicide, neither to express hope someone will die in any way.''' This is a bannable offense and action will be taken on sight, no question asked.&lt;br /&gt;
* '''Do not post links to illegal material or pornography'''. No exceptions. This is a bannable offense.&lt;br /&gt;
* '''Do not spam the channel. This means repeatedly posting meaningless material, or the same thing several times in a row.&lt;br /&gt;
* '''Do not abuse bots. Bot spam is not entertaining to anyone that isn’t the direct participant'''. If you have to spam bot commands, use them via &amp;lt;code&amp;gt;/msg&amp;lt;/code&amp;gt; to keep them to yourself.&lt;br /&gt;
* '''Do not flame each other. Keep it to private messages'''. If it gets out of hand, both sides of the conflict will take a short break.&lt;br /&gt;
&lt;br /&gt;
===Development rules===&lt;br /&gt;
&lt;br /&gt;
* Stay on-topic! Try to keep discussions going about coding or assets. Offering constructive feedback whenever possible is encouraging and speeds up production.&lt;br /&gt;
* NO personal attacks are allowed (flaming someone beyond what would potentially be considered &amp;quot;tongue-in-cheek&amp;quot; criticism). We have NO TOLERANCE for this and you WILL be banned!&lt;br /&gt;
* Contact a developer if there’s a problem in the channel.&lt;br /&gt;
&lt;br /&gt;
These rules will be enforced after either a private or public warning to the offender to give them a chance to stop, followed by a quiet (+q) in the channel, which will be removed when we feel you are ready to participate in the conversation again.&lt;br /&gt;
&lt;br /&gt;
Enforcing rules isn't doing a personal attack against people neither is the expression of hate towards people, but a tool to restore peace and welcomeness in the channels, to help all the people from the channels return to healthier conversations and give time to do so.&lt;br /&gt;
&lt;br /&gt;
===Platform rules===&lt;br /&gt;
&lt;br /&gt;
Extra rules may apply that are specific to the chat platform you connect to, like the [https://libera.chat/guidelines/ Libera.Chat channel guidelines], the [https://matrix.org/legal/code-of-conduct Matrix code of conduct] or the [https://discord.com/terms Discord terms of service].&lt;br /&gt;
&lt;br /&gt;
==Operators==&lt;br /&gt;
&lt;br /&gt;
If you have an issue that cannot be resolved by a channel operator, please contact Ishq, illwieckz or Viech directly (project direction).&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Operators !! Libera !! Discord !! Matrix&lt;br /&gt;
|-&lt;br /&gt;
| Illwieckz || ✅️ || ✅️ || ✅️&lt;br /&gt;
|-&lt;br /&gt;
| Ishq || ✅️ || ✅️ || ✅️&lt;br /&gt;
|-&lt;br /&gt;
| Viech || || ✅️ || ✅️&lt;br /&gt;
|-&lt;br /&gt;
| cu-kai || ✅️ || ✅️ ||&lt;br /&gt;
|-&lt;br /&gt;
| Gireen || ✅️ || || ✅️&lt;br /&gt;
|-&lt;br /&gt;
| perturbed || ✅️ || ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Bots==&lt;br /&gt;
&lt;br /&gt;
Unvanquished operates various chat bots:&lt;br /&gt;
&lt;br /&gt;
* {{code|Unvanquished}}: an IRC bot (sometime referred to as {{code|Mantis}} because of the name of the software running it).&amp;lt;p&amp;gt;ℹ️ The Unvanquished bot commands work from IRC, Matrix and Discord.&amp;lt;/p&amp;gt;&lt;br /&gt;
** Automatically announce games in the {{code|play}} channel when people are playing, telling the map, the server, the amount of players per team…&lt;br /&gt;
** Can be queried with the command {{code|!list}} in most channels.&lt;br /&gt;
* {{code|overmind}}: an IRC bot.&lt;br /&gt;
** User permission,&lt;br /&gt;
** Spam detection,&lt;br /&gt;
** Notifications from git repositories, wiki and forums.&lt;br /&gt;
* {{code|granger}}: an IRC bot.&amp;lt;p&amp;gt;ℹ️ The granger bot commands only work from IRC.&amp;lt;/p&amp;gt;&lt;br /&gt;
** Commands like {{code|!note &amp;lt;user&amp;gt; &amp;lt;message&amp;gt;}} makes possible to leave a message for someone else (will be printed the next time the user talks).&lt;br /&gt;
** Fun behaviors, the bot reads what everything says and sometime decides to participate to conversations by trying to make up phrases all by itself (it's usually ''wrong''), one can request the granger to chat on a topic with the command {{code|!chat about &amp;lt;word1&amp;gt; [word2]}}.&lt;br /&gt;
* {{code|dretch}}: the IRC/Matrix/Discord bridge.&lt;br /&gt;
** Message forwarding from and to each chat networks.&lt;br /&gt;
&lt;br /&gt;
See [[Infrastructure/Servers#Hosted chat services]] for details about the various pieces of software running those chat bots.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/CDN&amp;diff=9095</id>
		<title>Infrastructure/CDN</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/CDN&amp;diff=9095"/>
				<updated>2026-05-20T16:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* BitTorrent seeds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Unvanquished CDN''' is a network of servers providing seeds for the Unvanquished torrent. The {{launcher}} relies on BitTorrent to download the game.&lt;br /&gt;
&lt;br /&gt;
BitTorrent is a communication protocol for peer-to-peer file sharing (P2P), which enables us to distribute updates over the Internet in a decentralized manner.&lt;br /&gt;
&lt;br /&gt;
= Torrent =&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (same content as the [[Universal zip]]):&lt;br /&gt;
&lt;br /&gt;
* {{code|https://unvanquished.net/download/torrent}} (redirect to latest torrent file)&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/current.torrent}} (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
Direct torrent url and mirrors:&lt;br /&gt;
&lt;br /&gt;
{{WebSeedList|torrent=true}}&lt;br /&gt;
&lt;br /&gt;
Upcoming torrent url:&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/upcoming.torrent}} (updated in the days before a new release happens)&lt;br /&gt;
&lt;br /&gt;
= Trackers =&lt;br /&gt;
&lt;br /&gt;
Unvanquished relies on [https://fosstorrents.com FOSS Torrents] as primary BitTorrent tracker and a bunch of other trackers as a fallback.&lt;br /&gt;
&lt;br /&gt;
* {{code|http://fosstorrents.com:6969/announce}}&lt;br /&gt;
&lt;br /&gt;
Here is our page on FOSS Torrents website: https://fosstorrents.com/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
Since Unvanquished {{code|0.53.2}}, those maintained lists of trackers are used when creating new torrents:&lt;br /&gt;
&lt;br /&gt;
* https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt&lt;br /&gt;
* https://newtrackon.com/api/stable&lt;br /&gt;
&lt;br /&gt;
Those lists are meant to be up-to-date and to only contain working trackers.&lt;br /&gt;
&lt;br /&gt;
= Seeds =&lt;br /&gt;
&lt;br /&gt;
It is possible to contribute to the CDN in two ways:&lt;br /&gt;
&lt;br /&gt;
* by downloading the files and seed them with a BitTorrent software,&lt;br /&gt;
* by providing web seeds.&lt;br /&gt;
&lt;br /&gt;
It happens that downloading files with BitTorrent software using a Torrent RSS is the best way to keep a web seed up to date.&lt;br /&gt;
&lt;br /&gt;
== BitTorrent seeds ==&lt;br /&gt;
&lt;br /&gt;
Any user can contribute this way without having to get in touch with us.&lt;br /&gt;
&lt;br /&gt;
One can simply download the bitTorrent file, add it to a BitTorrent software and make sure the torrent gets configured to not get paused once completed. A good idea is to enable the Super Seeding option for the torrent if the software provides it.&lt;br /&gt;
&lt;br /&gt;
See [[#Torrent RSS|Torrent RSS]] below for details for a way to automatically fetch and seed the files when we distribute a new release.&lt;br /&gt;
&lt;br /&gt;
BitTorrent seeds can contribute to any already published release.&lt;br /&gt;
&lt;br /&gt;
== Web seeds ==&lt;br /&gt;
&lt;br /&gt;
Those are web servers used as BitTorrent seeds, they provides reliable seeding, especially when no one downloaded the game over BitTorrent yet. Bittorrent clients including the {{launcher}} download game files from there in addition to BitTorrent seeds.&lt;br /&gt;
&lt;br /&gt;
Here are the current Unvanquished web seed servers, with location and owner:&lt;br /&gt;
&lt;br /&gt;
{{WebSeedList}}&lt;br /&gt;
&lt;br /&gt;
If you own a web server and want to add it to the list of web seeds, tell us on [https://forums.unvanquished.net/viewtopic.php?p=18849#p18849 forums], as this will need some configuration from us to add your server to the seeds.&lt;br /&gt;
&lt;br /&gt;
Web seeds can only be added to new torrent files. So when contributing a new web seed, only the following releases will benefit from them.&lt;br /&gt;
&lt;br /&gt;
= Torrent RSS =&lt;br /&gt;
&lt;br /&gt;
We provide an RSS feed for the latest torrent file:&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/current-torrent.rss}}&lt;br /&gt;
&lt;br /&gt;
This feed always provide the link for the latest torrent for the latest game version. Some BitTorrent software has features to automatically download and seed new torrents listed in such feed.&lt;br /&gt;
&lt;br /&gt;
You may use instead this alternate RSS feed making possible to download and seed the next version of the game. It is usually updated in the days preceding the release, to make possible for seeds to be up-to-date at release time.&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/upcoming-torrent.rss}}&lt;br /&gt;
&lt;br /&gt;
See [[Tutorials/RSS BitTorrent seeding]] for instructions to configure some BitTorrent software with RSS automatic download and seeding.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/CDN&amp;diff=9094</id>
		<title>Infrastructure/CDN</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/CDN&amp;diff=9094"/>
				<updated>2026-05-20T16:27:08Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Web seeds */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Unvanquished CDN''' is a network of servers providing seeds for the Unvanquished torrent. The {{launcher}} relies on BitTorrent to download the game.&lt;br /&gt;
&lt;br /&gt;
BitTorrent is a communication protocol for peer-to-peer file sharing (P2P), which enables us to distribute updates over the Internet in a decentralized manner.&lt;br /&gt;
&lt;br /&gt;
= Torrent =&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (same content as the [[Universal zip]]):&lt;br /&gt;
&lt;br /&gt;
* {{code|https://unvanquished.net/download/torrent}} (redirect to latest torrent file)&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/current.torrent}} (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
Direct torrent url and mirrors:&lt;br /&gt;
&lt;br /&gt;
{{WebSeedList|torrent=true}}&lt;br /&gt;
&lt;br /&gt;
Upcoming torrent url:&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/upcoming.torrent}} (updated in the days before a new release happens)&lt;br /&gt;
&lt;br /&gt;
= Trackers =&lt;br /&gt;
&lt;br /&gt;
Unvanquished relies on [https://fosstorrents.com FOSS Torrents] as primary BitTorrent tracker and a bunch of other trackers as a fallback.&lt;br /&gt;
&lt;br /&gt;
* {{code|http://fosstorrents.com:6969/announce}}&lt;br /&gt;
&lt;br /&gt;
Here is our page on FOSS Torrents website: https://fosstorrents.com/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
Since Unvanquished {{code|0.53.2}}, those maintained lists of trackers are used when creating new torrents:&lt;br /&gt;
&lt;br /&gt;
* https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt&lt;br /&gt;
* https://newtrackon.com/api/stable&lt;br /&gt;
&lt;br /&gt;
Those lists are meant to be up-to-date and to only contain working trackers.&lt;br /&gt;
&lt;br /&gt;
= Seeds =&lt;br /&gt;
&lt;br /&gt;
It is possible to contribute to the CDN in two ways:&lt;br /&gt;
&lt;br /&gt;
* by downloading the files and seed them with a BitTorrent software,&lt;br /&gt;
* by providing web seeds.&lt;br /&gt;
&lt;br /&gt;
It happens that downloading files with BitTorrent software using a Torrent RSS is the best way to keep a web seed up to date.&lt;br /&gt;
&lt;br /&gt;
== BitTorrent seeds ==&lt;br /&gt;
&lt;br /&gt;
Any user can contribute this way without having to get in touch with us.&lt;br /&gt;
&lt;br /&gt;
One can simply download the bitTorrent file, add it to a BitTorrent software and make sure the torrent gets configured to not get paused once completed. A good idea is to enable the Super Seeding option for the torrent if the software provides it.&lt;br /&gt;
&lt;br /&gt;
See [[#Torrent RSS|Torrent RSS]] below for details for a way to automatically fetch and seed the files when we distribute a new release.&lt;br /&gt;
&lt;br /&gt;
== Web seeds ==&lt;br /&gt;
&lt;br /&gt;
Those are web servers used as BitTorrent seeds, they provides reliable seeding, especially when no one downloaded the game over BitTorrent yet. Bittorrent clients including the {{launcher}} download game files from there in addition to BitTorrent seeds.&lt;br /&gt;
&lt;br /&gt;
Here are the current Unvanquished web seed servers, with location and owner:&lt;br /&gt;
&lt;br /&gt;
{{WebSeedList}}&lt;br /&gt;
&lt;br /&gt;
If you own a web server and want to add it to the list of web seeds, tell us on [https://forums.unvanquished.net/viewtopic.php?p=18849#p18849 forums], as this will need some configuration from us to add your server to the seeds.&lt;br /&gt;
&lt;br /&gt;
Web seeds can only be added to new torrent files. So when contributing a new web seed, only the following releases will benefit from them.&lt;br /&gt;
&lt;br /&gt;
= Torrent RSS =&lt;br /&gt;
&lt;br /&gt;
We provide an RSS feed for the latest torrent file:&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/current-torrent.rss}}&lt;br /&gt;
&lt;br /&gt;
This feed always provide the link for the latest torrent for the latest game version. Some BitTorrent software has features to automatically download and seed new torrents listed in such feed.&lt;br /&gt;
&lt;br /&gt;
You may use instead this alternate RSS feed making possible to download and seed the next version of the game. It is usually updated in the days preceding the release, to make possible for seeds to be up-to-date at release time.&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/upcoming-torrent.rss}}&lt;br /&gt;
&lt;br /&gt;
See [[Tutorials/RSS BitTorrent seeding]] for instructions to configure some BitTorrent software with RSS automatic download and seeding.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/CDN&amp;diff=9093</id>
		<title>Infrastructure/CDN</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/CDN&amp;diff=9093"/>
				<updated>2026-05-20T16:26:07Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: /* Seeds */ wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''Unvanquished CDN''' is a network of servers providing seeds for the Unvanquished torrent. The {{launcher}} relies on BitTorrent to download the game.&lt;br /&gt;
&lt;br /&gt;
BitTorrent is a communication protocol for peer-to-peer file sharing (P2P), which enables us to distribute updates over the Internet in a decentralized manner.&lt;br /&gt;
&lt;br /&gt;
= Torrent =&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (same content as the [[Universal zip]]):&lt;br /&gt;
&lt;br /&gt;
* {{code|https://unvanquished.net/download/torrent}} (redirect to latest torrent file)&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/current.torrent}} (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
Direct torrent url and mirrors:&lt;br /&gt;
&lt;br /&gt;
{{WebSeedList|torrent=true}}&lt;br /&gt;
&lt;br /&gt;
Upcoming torrent url:&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/upcoming.torrent}} (updated in the days before a new release happens)&lt;br /&gt;
&lt;br /&gt;
= Trackers =&lt;br /&gt;
&lt;br /&gt;
Unvanquished relies on [https://fosstorrents.com FOSS Torrents] as primary BitTorrent tracker and a bunch of other trackers as a fallback.&lt;br /&gt;
&lt;br /&gt;
* {{code|http://fosstorrents.com:6969/announce}}&lt;br /&gt;
&lt;br /&gt;
Here is our page on FOSS Torrents website: https://fosstorrents.com/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
Since Unvanquished {{code|0.53.2}}, those maintained lists of trackers are used when creating new torrents:&lt;br /&gt;
&lt;br /&gt;
* https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt&lt;br /&gt;
* https://newtrackon.com/api/stable&lt;br /&gt;
&lt;br /&gt;
Those lists are meant to be up-to-date and to only contain working trackers.&lt;br /&gt;
&lt;br /&gt;
= Seeds =&lt;br /&gt;
&lt;br /&gt;
It is possible to contribute to the CDN in two ways:&lt;br /&gt;
&lt;br /&gt;
* by downloading the files and seed them with a BitTorrent software,&lt;br /&gt;
* by providing web seeds.&lt;br /&gt;
&lt;br /&gt;
It happens that downloading files with BitTorrent software using a Torrent RSS is the best way to keep a web seed up to date.&lt;br /&gt;
&lt;br /&gt;
== BitTorrent seeds ==&lt;br /&gt;
&lt;br /&gt;
Any user can contribute this way without having to get in touch with us.&lt;br /&gt;
&lt;br /&gt;
One can simply download the bitTorrent file, add it to a BitTorrent software and make sure the torrent gets configured to not get paused once completed. A good idea is to enable the Super Seeding option for the torrent if the software provides it.&lt;br /&gt;
&lt;br /&gt;
See [[#Torrent RSS|Torrent RSS]] below for details for a way to automatically fetch and seed the files when we distribute a new release.&lt;br /&gt;
&lt;br /&gt;
== Web seeds ==&lt;br /&gt;
&lt;br /&gt;
Those are web servers used as BitTorrent seeds, they provides reliable seeding, especially when no one downloaded the game over BitTorrent yet. Bittorrent clients including the {{launcher}} download game files from there in addition to BitTorrent seeds.&lt;br /&gt;
&lt;br /&gt;
Here are the current Unvanquished web seed servers, with location and owner:&lt;br /&gt;
&lt;br /&gt;
{{WebSeedList}}&lt;br /&gt;
&lt;br /&gt;
If you own a web server and want to add it to the list of web seeds, tell us on [https://forums.unvanquished.net/viewtopic.php?p=18849#p18849 forums], as this will need some configuration from us to add your server to the seeds.&lt;br /&gt;
&lt;br /&gt;
= Torrent RSS =&lt;br /&gt;
&lt;br /&gt;
We provide an RSS feed for the latest torrent file:&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/current-torrent.rss}}&lt;br /&gt;
&lt;br /&gt;
This feed always provide the link for the latest torrent for the latest game version. Some BitTorrent software has features to automatically download and seed new torrents listed in such feed.&lt;br /&gt;
&lt;br /&gt;
You may use instead this alternate RSS feed making possible to download and seed the next version of the game. It is usually updated in the days preceding the release, to make possible for seeds to be up-to-date at release time.&lt;br /&gt;
&lt;br /&gt;
* {{code|https://cdn.unvanquished.net/upcoming-torrent.rss}}&lt;br /&gt;
&lt;br /&gt;
See [[Tutorials/RSS BitTorrent seeding]] for instructions to configure some BitTorrent software with RSS automatic download and seeding.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9092</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9092"/>
				<updated>2026-05-20T16:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
{{InfoDownloadLauncher}}&lt;br /&gt;
&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be manually downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
Downloading the torrent manually (not using the launcher) requires the same manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/linux (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/windows (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/macos (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
* SourceForge mirror: https://sourceforge.net/projects/unvanquished/files/Updaters/&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/zip (redirection to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
* SourceForge download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/torrent (redirection to the following CDN link)&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/{{Current|GameTorrent}}&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/current.torrent (stable url without redirection)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9091</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9091"/>
				<updated>2026-05-20T16:22:04Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: info launcher&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
{{InfoDownloadLauncher}}&lt;br /&gt;
&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
Downloading the torrent manually (not using the launcher) requires the same manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/linux (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/windows (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/macos (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
* SourceForge mirror: https://sourceforge.net/projects/unvanquished/files/Updaters/&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/zip (redirection to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
* SourceForge download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/torrent (redirection to the following CDN link)&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/{{Current|GameTorrent}}&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/current.torrent (stable url without redirection)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9090</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9090"/>
				<updated>2026-05-20T16:21:28Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
Downloading the torrent manually (not using the launcher) requires the same manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/linux (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/windows (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/macos (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
* SourceForge mirror: https://sourceforge.net/projects/unvanquished/files/Updaters/&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/zip (redirection to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
* SourceForge download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/torrent (redirection to the following CDN link)&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/{{Current|GameTorrent}}&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/current.torrent (stable url without redirection)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9089</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9089"/>
				<updated>2026-05-20T16:19:06Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/linux (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/windows (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS:&lt;br /&gt;
** Shortcut: https://unvanquished.net/download/macos (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
* SourceForge mirror: https://sourceforge.net/projects/unvanquished/files/Updaters/&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/zip (redirection to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
* SourceForge download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* Shortcut: https://unvanquished.net/download/torrent (redirection to the following CDN link)&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/{{Current|GameTorrent}}&lt;br /&gt;
* CDN: https://cdn.unvanquished.net/current.torrent (stable url without redirection)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9088</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9088"/>
				<updated>2026-05-20T16:12:39Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux: https://unvanquished.net/download/linux (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows: https://unvanquished.net/download/windows (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS: https://unvanquished.net/download/macos (redirection to the following GitHub link)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
* SourceForge mirror: https://sourceforge.net/projects/unvanquished/files/Updaters/&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/zip (redirection to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
* SourceForge download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/torrent (redirection to the latest torrent file)&lt;br /&gt;
* https://cdn.unvanquished.net/current.torrent (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9087</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9087"/>
				<updated>2026-05-20T16:09:34Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux: https://unvanquished.net/download/linux (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows: https://unvanquished.net/download/windows (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS: https://unvanquished.net/download/macos (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
* SourceForge mirror: https://sourceforge.net/projects/unvanquished/files/Updaters/&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/zip (redirect to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
* SourceForge download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/torrent (redirect to latest torrent file)&lt;br /&gt;
* https://cdn.unvanquished.net/current.torrent (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9086</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9086"/>
				<updated>2026-05-20T16:07:58Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An [[Universal zip]] archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux: https://unvanquished.net/download/linux (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows: https://unvanquished.net/download/windows (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS: https://unvanquished.net/download/macos (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/zip (redirect to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/torrent (redirect to latest torrent file)&lt;br /&gt;
* https://cdn.unvanquished.net/current.torrent (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* SourceForge launcher and zip download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9085</id>
		<title>Infrastructure/Distribution</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Infrastructure/Distribution&amp;diff=9085"/>
				<updated>2026-05-20T16:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: rewording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Infrastructure]]&lt;br /&gt;
Unvanquished is primarily distributed using the {{launcher}} which is an installer, an updater and a launcher.&lt;br /&gt;
&lt;br /&gt;
Users are invited and encouraged to download and run the  launcher.&lt;br /&gt;
&lt;br /&gt;
The launcher relies on BitTorrent with web seeds from the [[Infrastructure/CDN|Unvanquished CDN]].&lt;br /&gt;
&lt;br /&gt;
An universal zip archive can also be downloaded but requires some manipulations.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
=== Download page ===&lt;br /&gt;
&lt;br /&gt;
Download page: https://unvanquished.net/download/&lt;br /&gt;
&lt;br /&gt;
=== Launcher download ===&lt;br /&gt;
&lt;br /&gt;
Latest launcher download:&lt;br /&gt;
&lt;br /&gt;
* Linux: https://unvanquished.net/download/linux (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterLinux.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterLinux.zip&lt;br /&gt;
* Windows: https://unvanquished.net/download/windows (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterWin.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterWin.zip&lt;br /&gt;
* macOS: https://unvanquished.net/download/macos (redirect)&lt;br /&gt;
** GitHub mirror: https://github.com/Unvanquished/updater/releases/download/{{Current|LauncherTag}}/UnvUpdaterOSX.zip&lt;br /&gt;
** SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/Updaters/{{Current|LauncherVersion}}/UnvUpdaterOSX.zip&lt;br /&gt;
&lt;br /&gt;
Launcher download index:&lt;br /&gt;
&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/updater/releases&lt;br /&gt;
&lt;br /&gt;
=== Universal zip download ===&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download:&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/zip (redirect to the following GitHub link)&lt;br /&gt;
* GitHub mirror: https://github.com/Unvanquished/Unvanquished/releases/download/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* SourceForge mirror: https://downloads.sourceforge.net/project/unvanquished/{{Current|GameTag}}/{{Current|GameZip}}&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/{{Current|GameZip}} — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/{{Current|GameZip}} — illwieckz&lt;br /&gt;
&lt;br /&gt;
Latest universal zip download pages:&lt;br /&gt;
&lt;br /&gt;
* GitHub Mirror: https://github.com/Unvanquished/Unvanquished/releases/tag/{{Current|GameTag}}&lt;br /&gt;
* SourceForge Mirror: https://sourceforge.net/projects/unvanquished/files/{{Current|GameTag}}/{{Current|GameZip}}/download&lt;br /&gt;
&lt;br /&gt;
Universal zip download index:&lt;br /&gt;
&lt;br /&gt;
* North America/USA/Missouri: https://dl.unvanquished.net/release/ — Ishq&lt;br /&gt;
* Western Europe/France: https://dl.illwieckz.net/share/unvanquished/release/ — illwieckz&lt;br /&gt;
&lt;br /&gt;
=== BitTorrent download ===&lt;br /&gt;
&lt;br /&gt;
Latest torrent url (zip content):&lt;br /&gt;
&lt;br /&gt;
* https://unvanquished.net/download/torrent (redirect to latest torrent file)&lt;br /&gt;
* https://cdn.unvanquished.net/current.torrent (stable url without redirect)&lt;br /&gt;
&lt;br /&gt;
See details on [[Infrastructure/CDN]] page.&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;br /&gt;
&lt;br /&gt;
=== FlatHub ===&lt;br /&gt;
&lt;br /&gt;
* Unvanquished flatpak: https://flathub.org/apps/details/net.unvanquished.Unvanquished&lt;br /&gt;
&lt;br /&gt;
=== Lutris ===&lt;br /&gt;
&lt;br /&gt;
* Builtin installer: https://lutris.net/games/unvanquished/&lt;br /&gt;
&lt;br /&gt;
== Other file hosting services ==&lt;br /&gt;
&lt;br /&gt;
* SourceForge launcher and zip download index: https://sourceforge.net/projects/unvanquished/files/&lt;br /&gt;
* IndieDB launcher and zip download index: https://www.indiedb.com/games/unvanquished/downloads&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Universal_zip&amp;diff=9084</id>
		<title>Universal zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Universal_zip&amp;diff=9084"/>
				<updated>2026-05-20T15:53:49Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Unvanquished universal zip contains the Daemon engine binaries for all supported platforms, plus the DPK packages, for an Unvanquished release. &amp;quot;Universal&amp;quot; refers to the fact that it includes software for multiple operating systems and architectures. It is a reference archive primarily intended for archival. It is not recommended for users to run the game from the universal zip as it may lack convenient integration or may even not run if the operating system does not allow programs to run from random places.&lt;br /&gt;
&lt;br /&gt;
The current universal zip is {{code|{{Current|GameZip}}}}, it distributes Unvanquished {{code|{{Current|GameVersion}}}}.&lt;br /&gt;
&lt;br /&gt;
The current universal zip url is https://dl.unvanquished.net/release/{{Current|GameZip}}.&lt;br /&gt;
&lt;br /&gt;
{{InfoDownloadLauncher}}&lt;br /&gt;
&lt;br /&gt;
However, the launcher may be unsupported for second-tier platforms such as 32-bit x86 Linux or ARM Linux, leaving the universal zip as the only option to acquire official binaries.&lt;br /&gt;
&lt;br /&gt;
* This link should always redirect to the download of the latest universal zip: https://unvanquished.net/download/zip.&lt;br /&gt;
* Universal zips starting from Unvanquished version 0.17 can be found at https://dl.unvanquished.net/release/.&lt;br /&gt;
* Universal zips for more recent releases can also be found [https://github.com/Unvanquished/Unvanquished/releases on GitHub].&lt;br /&gt;
* See [[Infrastructure/Distribution#Universal zip download]] for more mirrors.&lt;br /&gt;
 &lt;br /&gt;
The universal zip is produced using scripts from the [https://github.com/Unvanquished/release-scripts release-scripts] repository.&lt;br /&gt;
&lt;br /&gt;
As one of the installation steps, the {{launcher}} downloads the same set of files which are present in the universal zip to the installation directory. However, the source is a [https://en.wikipedia.org/wiki/BitTorrent torrent] rather than a zip file.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Universal_zip&amp;diff=9083</id>
		<title>Universal zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Universal_zip&amp;diff=9083"/>
				<updated>2026-05-20T15:53:04Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Unvanquished universal zip contains the Daemon engine binaries for all supported platforms, plus the DPK packages, for an Unvanquished release. &amp;quot;Universal&amp;quot; refers to the fact that it includes software for multiple operating systems and architectures. It is a reference archive primarily intended for archival. It is not recommended for users to run the game from the universal zip as it may lack convenient integration or may even not run if the operating system does not allow programs to run from random places.&lt;br /&gt;
&lt;br /&gt;
The current universal zip is {{code|{{Current|GameZip}}}}, it distributes Unvanquished {{code|{{Current|GameVersion}}}}.&lt;br /&gt;
&lt;br /&gt;
{{InfoDownloadLauncher}}&lt;br /&gt;
&lt;br /&gt;
However, the launcher may be unsupported for second-tier platforms such as 32-bit x86 Linux or ARM Linux, leaving the universal zip as the only option to acquire official binaries.&lt;br /&gt;
&lt;br /&gt;
* This link should always redirect to the download of the latest universal zip: https://unvanquished.net/download/zip.&lt;br /&gt;
* The the latest universal zip link is https://dl.unvanquished.net/release/{{Current|GameZip}}.&lt;br /&gt;
* Universal zips starting from Unvanquished version 0.17 can be found at https://dl.unvanquished.net/release/.&lt;br /&gt;
* Universal zips for more recent releases can also be found [https://github.com/Unvanquished/Unvanquished/releases on GitHub].&lt;br /&gt;
* See [[Infrastructure/Distribution#Universal zip download]] for more mirrors.&lt;br /&gt;
 &lt;br /&gt;
The universal zip is produced using scripts from the [https://github.com/Unvanquished/release-scripts release-scripts] repository.&lt;br /&gt;
&lt;br /&gt;
As one of the installation steps, the {{launcher}} downloads the same set of files which are present in the universal zip to the installation directory. However, the source is a [https://en.wikipedia.org/wiki/BitTorrent torrent] rather than a zip file.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9082</id>
		<title>Linux packages</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9082"/>
				<updated>2026-05-20T14:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: wording&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Besides the launcher and universal zip, Unvanquished distributions can also be found in some Linux package managers. These are not officially supported by the Unvanquished project.&lt;br /&gt;
&lt;br /&gt;
== Unvanquished update policy ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished norm is that all players and server owners need to update at the same time when a new major version comes out (e.g. {{code|0.54.x}} → {{code|0.55.0}}). Differing major versions are incompatible. So when using one of the packages below, you should double-check that it is up to date with the official release distributed by the {{launcher}} or the [[Universal zip]].&lt;br /&gt;
&lt;br /&gt;
The current Unvanquished version is {{code|{{Current|GameVersion}}}}.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
The “''Team''” packages are maintained by Unvanquished developers, other packages are maintained by people outside the project and may not be verified.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Team !! System !! Package Name !! Package Manager !! Script !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || Flatpak || &amp;lt;code&amp;gt;net.unvanquished.Unvanquished&amp;lt;/code&amp;gt; || [https://flathub.org/en/apps/net.unvanquished.Unvanquished Flathub] || [https://github.com/flathub/net.unvanquished.Unvanquished/blob/master/net.unvanquished.Unvanquished.yml source] || afontain, illwieckz&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || Arch Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://aur.archlinux.org/packages/unvanquished AUR] || [https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unvanquished source] || Viech&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || NixOS || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://mynixos.com/nixpkgs/package/unvanquished Nix] || [https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/un/unvanquished/package.nix source] || afontain&lt;br /&gt;
|-&lt;br /&gt;
| || Alt Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://packages.altlinux.org/en/sisyphus/srpms/unvanquished/ Sysiphus] || [https://packages.altlinux.org/en/sisyphus/srpms/unvanquished/specfiles/ source] || shad&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaging tips ==&lt;br /&gt;
* Due to the update policy, Unvanquished may not be suitable for package ecosystems such as Debian's where version stability is expected.&lt;br /&gt;
* Any {{code|.dpk}} file must be copied from the official release rather than built, because its hash must match when playing online.&lt;br /&gt;
* If you look at the universal zip, &amp;lt;code&amp;gt;pkg/*.dpk&amp;lt;/code&amp;gt; plus the contents of the platform-specific zip, minus possibly &amp;lt;code&amp;gt;crash_server&amp;lt;/code&amp;gt;, is the bare minimum for a usable install.&lt;br /&gt;
* All the {{code|.dpk}} files from a single release (the ones shipped in the universal zip) are required, even if some are listed with a same base name but different versions. This is because we use delta packages, with newer packages extending older ones. For example the Unvanquished 0.55.3 release required both {{code|res-weapons_0.55.3.dpk}} and {{code|res-weapons_0.55.dpk}}, the older one wasn't a leftover.&lt;br /&gt;
* Other nice-to-have bits are a desktop file, and server scripts from [https://github.com/Unvanquished/Unvanquished/tree/master/dist &amp;lt;code&amp;gt;dist/&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Supported architectures for Unvanquished are &amp;lt;code&amp;gt;amd64&amp;lt;/code&amp;gt; (x86-64), &amp;lt;code&amp;gt;i686&amp;lt;/code&amp;gt; (x86), &amp;lt;code&amp;gt;armhf&amp;lt;/code&amp;gt; (32-bit ARM with hard float), and &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If downloads are discouraged/forbidden by the package system, you will need to bundle the NaCl runtime dependencies in the package. &lt;br /&gt;
* Besides the NaCl runtime and Unvanquished gamelogic, you probably want to avoid using pre-built binaries. Pass &amp;lt;code&amp;gt;-DUSE_EXTERNAL_DEPS_LIBS=OFF&amp;lt;/code&amp;gt; to CMake to avoid this.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9081</id>
		<title>Linux packages</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9081"/>
				<updated>2026-05-20T14:30:22Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Besides the launcher and universal zip, Unvanquished distributions can also be found in some Linux package managers. These are not officially supported by the Unvanquished project.&lt;br /&gt;
&lt;br /&gt;
== Unvanquished update policy ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished norm is that all players and server owners need to update at the same time when a new major version comes out (e.g. {{code|0.54.x}} → {{code|0.55.0}}). Differing major versions are incompatible. So when using one of the packages below, you should double-check that it is up to date with the official release distributed by the {{launcher}} or the [[Universal zip]].&lt;br /&gt;
&lt;br /&gt;
The current Unvanquished version is {{code|{{Current|GameVersion}}}}.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
The “''Team''” packages are maintained by Unvanquished developers, other packages are maintained by people outside the project and may not be verified.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Team !! System !! Package Name !! Package Manager !! Script !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || Flatpak || &amp;lt;code&amp;gt;net.unvanquished.Unvanquished&amp;lt;/code&amp;gt; || [https://flathub.org/en/apps/net.unvanquished.Unvanquished Flathub] || [https://github.com/flathub/net.unvanquished.Unvanquished/blob/master/net.unvanquished.Unvanquished.yml source] || afontain, illwieckz&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || Arch Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://aur.archlinux.org/packages/unvanquished AUR] || [https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unvanquished source] || Viech&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || NixOS || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://mynixos.com/nixpkgs/package/unvanquished Nix] || [https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/un/unvanquished/package.nix source] || afontain&lt;br /&gt;
|-&lt;br /&gt;
| || Alt Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://packages.altlinux.org/en/sisyphus/srpms/unvanquished/ Sysiphus] || [https://packages.altlinux.org/en/sisyphus/srpms/unvanquished/specfiles/ source] || shad&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaging tips ==&lt;br /&gt;
* Due to the update policy, Unvanquished may not be suitable for package ecosystems such as Debian's where version stability is expected.&lt;br /&gt;
* Any {{code|.dpk}} file must be copied from the official release rather than built, because its hash must match when playing online.&lt;br /&gt;
* If you look at the universal zip, &amp;lt;code&amp;gt;pkg/*.dpk&amp;lt;/code&amp;gt; plus the contents of the platform-specific zip, minus possibly &amp;lt;code&amp;gt;crash_server&amp;lt;/code&amp;gt;, is the bare minimum for a usable install.&lt;br /&gt;
* All the {{code|.dpk}} files from a single release (the ones shipped in the universal zip) are required, even if some are listed with same base name but different versions. This is because we use delta packages, with newer packages extending older ones. For example the Unvanquished 0.55.3 release required both {{code|res-weapons_0.55.3.dpk}} and {{code|res-weapons_0.55.dpk}}, the older one wasn't a leftover.&lt;br /&gt;
* Other nice-to-have bits are a desktop file, and server scripts from [https://github.com/Unvanquished/Unvanquished/tree/master/dist &amp;lt;code&amp;gt;dist/&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Supported architectures for Unvanquished are &amp;lt;code&amp;gt;amd64&amp;lt;/code&amp;gt; (x86-64), &amp;lt;code&amp;gt;i686&amp;lt;/code&amp;gt; (x86), &amp;lt;code&amp;gt;armhf&amp;lt;/code&amp;gt; (32-bit ARM with hard float), and &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If downloads are discouraged/forbidden by the package system, you will need to bundle the NaCl runtime dependencies in the package. &lt;br /&gt;
* Besides the NaCl runtime and Unvanquished gamelogic, you probably want to avoid using pre-built binaries. Pass &amp;lt;code&amp;gt;-DUSE_EXTERNAL_DEPS_LIBS=OFF&amp;lt;/code&amp;gt; to CMake to avoid this.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9080</id>
		<title>Linux packages</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9080"/>
				<updated>2026-05-20T14:27:30Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Reword packages, add Alt Linux package, tell those that are maintained by the team and then verified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Besides the launcher and universal zip, Unvanquished distributions can also be found in some Linux package managers. These are not officially supported by the Unvanquished project.&lt;br /&gt;
&lt;br /&gt;
== Unvanquished update policy ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished norm is that all players and server owners need to update at the same time when a new major version comes out (e.g. {{code|0.54.x}} → {{code|0.55.0}}). Differing major versions are incompatible. So when using one of the packages below, you should double-check that it is up to date with the official release distributed by the {{launcher}} or the [[Universal zip]].&lt;br /&gt;
&lt;br /&gt;
The current Unvanquished version is {{code|{{Current|GameVersion}}}}.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
The “''Team''” packages are maintained by Unvanquished developers, other packages are maintained by people outside the project and may not be verified.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Team !! System !! Package Name !! Package Manager !! Script !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || Flatpak || &amp;lt;code&amp;gt;net.unvanquished.Unvanquished&amp;lt;/code&amp;gt; || [https://flathub.org/en/apps/net.unvanquished.Unvanquished Flathub] || [https://github.com/flathub/net.unvanquished.Unvanquished/blob/master/net.unvanquished.Unvanquished.yml source] || afontain, illwieckz&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || Arch Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://aur.archlinux.org/packages/unvanquished AUR] || [https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unvanquished source] || Viech&lt;br /&gt;
|-&lt;br /&gt;
| ✅️ || NixOS || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://mynixos.com/nixpkgs/package/unvanquished Nix] || [https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/un/unvanquished/package.nix source] || afontain&lt;br /&gt;
|-&lt;br /&gt;
| || Alt Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://packages.altlinux.org/en/sisyphus/srpms/unvanquished/rpms/ Sysiphus] || [https://packages.altlinux.org/en/sisyphus/srpms/unvanquished/specfiles/ source] || shad&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaging tips ==&lt;br /&gt;
* Due to the update policy, Unvanquished may not be suitable for package ecosystems such as Debian's where version stability is expected.&lt;br /&gt;
* Any {{code|.dpk}} file must be copied from the official release rather than built, because its hash must match when playing online.&lt;br /&gt;
* If you look at the universal zip, &amp;lt;code&amp;gt;pkg/*.dpk&amp;lt;/code&amp;gt; plus the contents of the platform-specific zip, minus possibly &amp;lt;code&amp;gt;crash_server&amp;lt;/code&amp;gt;, is the bare minimum for a usable install.&lt;br /&gt;
* All the {{code|.dpk}} files from a single release (the ones shipped in the universal zip) are required, even if some are listed with same base name but different versions. This is because we use delta packages, with newer packages extending older ones. For example the Unvanquished 0.55.3 release required both {{code|res-weapons_0.55.3.dpk}} and {{code|res-weapons_0.55.dpk}}, the older one wasn't a leftover.&lt;br /&gt;
* Other nice-to-have bits are a desktop file, and server scripts from [https://github.com/Unvanquished/Unvanquished/tree/master/dist &amp;lt;code&amp;gt;dist/&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Supported architectures for Unvanquished are &amp;lt;code&amp;gt;amd64&amp;lt;/code&amp;gt; (x86-64), &amp;lt;code&amp;gt;i686&amp;lt;/code&amp;gt; (x86), &amp;lt;code&amp;gt;armhf&amp;lt;/code&amp;gt; (32-bit ARM with hard float), and &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If downloads are discouraged/forbidden by the package system, you will need to bundle the NaCl runtime dependencies in the package. &lt;br /&gt;
* Besides the NaCl runtime and Unvanquished gamelogic, you probably want to avoid using pre-built binaries. Pass &amp;lt;code&amp;gt;-DUSE_EXTERNAL_DEPS_LIBS=OFF&amp;lt;/code&amp;gt; to CMake to avoid this.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Tools/Crunch&amp;diff=9079</id>
		<title>Tools/Crunch</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Tools/Crunch&amp;diff=9079"/>
				<updated>2026-05-20T13:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Update features list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Tools]]&lt;br /&gt;
[https://github.com/DaemonEngine/crunch Crunch] is a texture compressor producing formats optimized for both GPU processing and distribution.&lt;br /&gt;
&lt;br /&gt;
Unvanquished recommends the [https://github.com/DaemonEngine/crunch Dæmon Crunch] which is maintained by ourselves and is based on the Unity version.&lt;br /&gt;
&lt;br /&gt;
The {{code|crunch}} tool was initially written by BinomialLLC then improved by Unity. Neither BinomialLLC neither Unity have merged our fixes and do not seem to have any interest in merging fixes provided by others, so we not only maintained our own fork to host our own fixes, but also started to also merge fixes from others. [https://github.com/DaemonEngine/crunch Dæmon Crunch] is then the most maintained and up-to-date Crunch available.&lt;br /&gt;
&lt;br /&gt;
==Sources==&lt;br /&gt;
&lt;br /&gt;
The Dæmon Crunch source repository is: [https://github.com/DaemonEngine/crunch github.com/DaemonEngine/crunch].&lt;br /&gt;
&lt;br /&gt;
The repository provides the '''crunch''' tool, the '''crnlib''' library to provide full compression/decompression support to third-party applications, and the {{code|crn_decomp.h}} header-only library which is enough to transcode the Crunch CRN data for GPU upload and is perfect for lightweight integration in renderers. Some examples implementing various kinds of integrations are provided.&lt;br /&gt;
&lt;br /&gt;
==Portability==&lt;br /&gt;
&lt;br /&gt;
We take care of cross-platform compatibility and we make sure the tool is buildable with CMake.&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/DaemonEngine/crunch Dæmon Crunch source repository] is known to build with various compilers, and the Dæmon {{code|crunch}} tool is known to run on Linux, Windows, macOS and FreeBSD systems on various hardware architectures.&lt;br /&gt;
&lt;br /&gt;
==Quality==&lt;br /&gt;
&lt;br /&gt;
A continuous integration pipeline is configured to test the building of the tool and the library themselves and to run some tests. The code is frequently submitted to CodeQL static analysis.&lt;br /&gt;
&lt;br /&gt;
==Formats==&lt;br /&gt;
&lt;br /&gt;
Crunch can produce compressed images optimized for performance and game rendering in various formats like DDS, KTX and CRN.&lt;br /&gt;
&lt;br /&gt;
All those three formats are containers for DXT-compressed bitmaps. This DXT-compressed data can be uploaded directly to the GPU memory without decompression, and the GPU can process DXT-compressed data without decompression.&lt;br /&gt;
&lt;br /&gt;
Crunch writes DXT-compressed data in a way an additional compression performs better on them, especially LZMA. For example, produced DDS images are expected to compress well if repackaged in an LZMA-based archive.&lt;br /&gt;
&lt;br /&gt;
The CRN format does all of this in one go: it stores the DXT-compressed data into a custom LZMA container.&lt;br /&gt;
&lt;br /&gt;
The game engine or any other application processing CRN files just have to unpack the LZMA container using provided functions and to upload the DXT-compressed data to the GPU.&lt;br /&gt;
&lt;br /&gt;
The Dæmon crunch sets the {{code|m_userdata0}} header field to {{code|1}} to make it compatible with Unity.&lt;br /&gt;
&lt;br /&gt;
==Performance==&lt;br /&gt;
&lt;br /&gt;
The Dæmon Crunch runs multiple times faster than the original Crunch, thanks to the work done by Unity. Unity people claimed the tool runs 2.5 time faster, and we measured the tool running 4.3 time faster on the Unvanquished corpus. Unity people claimed the tool compresses about 10% better, we measured more than 11% on the Unvanquished corpus. This performance bump comes with a compatibility-breaking change introduced in the Unity branch.&lt;br /&gt;
&lt;br /&gt;
The files produced by the Dæmon Crunch are then readable by both the Unity Crunch and the Dæmon Crunch but not by the original Binomial Crunch, while the files produced by the original Binomial Crunch are not readable by the Unity Crunch and the Dæmon Crunch. The Binomial Crunch isn't maintained anymore.&lt;br /&gt;
&lt;br /&gt;
==Features==&lt;br /&gt;
&lt;br /&gt;
The Dæmon Crunch provides many improvements over the original crunch:&lt;br /&gt;
&lt;br /&gt;
* ✅️ Unity crunch format (runs many time faster and produces smaller files),&lt;br /&gt;
* ✅️ Unity crunch metadata (the header is compatible with Unity),&lt;br /&gt;
* ✅️ Improved image compatibility (1-bit PNG and horizontally-flipped TGA images are now supported),&lt;br /&gt;
* ✅️ Added features and command line options (top mip renormalization and more),&lt;br /&gt;
* ✅️ Network file system compatibility,&lt;br /&gt;
* ✅️ Optional header-only checksumming,&lt;br /&gt;
* ✅️ Multisystem and multiplatform (runs almost everywhere),&lt;br /&gt;
* ✅️ CMake toolchain (with many useful build options).&lt;br /&gt;
&lt;br /&gt;
More details and up-to-date information can be found in the [https://github.com/DaemonEngine/crunch/blob/master/README.md project README].&lt;br /&gt;
&lt;br /&gt;
==Support==&lt;br /&gt;
&lt;br /&gt;
The Dæmon crunch is known to be used by the {{engine}} project itself, the {{game}}, the Xonotic game (as DDS converter) and some other games using the Unity game engine. It is also used in production tools like [[Tools/Urcheon|Urcheon]], [[Tools/NetRadiant|NetRadiant]], and [[Tools/Q3map2|Q3map2]].&lt;br /&gt;
&lt;br /&gt;
==How to use Crunch==&lt;br /&gt;
&lt;br /&gt;
{{TODO|explain {{code|-noNormalDetection}} and {{code|-rtopmip}} options}}&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Systems&amp;diff=9078</id>
		<title>Systems</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Systems&amp;diff=9078"/>
				<updated>2026-05-20T13:23:30Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: rewording, add ppc64le, etc.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We provide the {{launcher}} for:&lt;br /&gt;
&lt;br /&gt;
* Linux amd64,&lt;br /&gt;
* Windows i686 (runs the amd64 engine on amd64 Windows),&lt;br /&gt;
* macOS amd64 (runs the amd64 engine on arm64 macOS).&lt;br /&gt;
&lt;br /&gt;
We provide the [[Universal zip]] for:&lt;br /&gt;
&lt;br /&gt;
* Linux amd64, i686, arm64, armhd,&lt;br /&gt;
* Windows amd64, i686,&lt;br /&gt;
* macOS amd64 (runs on arm64 macOS with Rosetta2).&lt;br /&gt;
&lt;br /&gt;
The {{engine}} and the {{game}} are known to build and run on:&lt;br /&gt;
&lt;br /&gt;
* {{Subpage|Linux}}:&lt;br /&gt;
** {{code|amd64}},&lt;br /&gt;
** {{code|i686}},&lt;br /&gt;
** {{code|arm64}} with the {{code|armhf}} compatibility for the [[Native Client|NaCl]] loader,&lt;br /&gt;
** {{code|armhf}},&lt;br /&gt;
** {{code|ppc64le}} when the user provides [https://github.com/ptitSeb/box64 box64] for the [[Native Client|NaCl]] loader,&lt;br /&gt;
* {{Subpage|Windows}}:&lt;br /&gt;
** {{code|amd64}},&lt;br /&gt;
** {{code|i686}};&lt;br /&gt;
* {{Subpage|macOS}}:&lt;br /&gt;
** {{code|amd64}},&lt;br /&gt;
** {{code|arm64}} with the {{code|amd64}} Rosetta2 compatibility for both the engine and the [[Native Client|NaCl]] loader;&lt;br /&gt;
** {{code|arm64}} with the {{code|amd64}} Rosetta2 compatibility for the [[Native Client|NaCl]] loader;&lt;br /&gt;
* {{Subpage|FreeBSD}}:&lt;br /&gt;
** {{code|amd64}} with the Linuxulator compatibility for the [[Native Client|NaCl]] loader.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9077</id>
		<title>Linux packages</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Linux_packages&amp;diff=9077"/>
				<updated>2026-05-20T12:53:56Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Besides the launcher and universal zip, Unvanquished distributions can also be found in some Linux package managers. These are not officially supported by the Unvanquished project.&lt;br /&gt;
&lt;br /&gt;
== Unvanquished update policy ==&lt;br /&gt;
&lt;br /&gt;
The Unvanquished norm is that all players and server owners need to update at the same time when a new major version comes out (e.g. {{code|0.54.x}} → {{code|0.55.0}}). Differing major versions are incompatible. So when using one of the packages below, you should double-check that it is up to date with the official release distributed by the {{launcher}} or the [[Universal zip]].&lt;br /&gt;
&lt;br /&gt;
The current Unvanquished version is {{code|{{Current|GameVersion}}}}.&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! System !! Package Name !! Package Manager !! Script !! Maintainer&lt;br /&gt;
|-&lt;br /&gt;
| Arch Linux || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://aur.archlinux.org/packages/unvanquished AUR] || [https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unvanquished source] || Viech&lt;br /&gt;
|-&lt;br /&gt;
| Flatpak || &amp;lt;code&amp;gt;net.unvanquished.Unvanquished&amp;lt;/code&amp;gt; || [https://flathub.org/en/apps/net.unvanquished.Unvanquished Flathub] || [https://github.com/flathub/net.unvanquished.Unvanquished/blob/master/net.unvanquished.Unvanquished.yml source] || afontain, illwieckz&lt;br /&gt;
|-&lt;br /&gt;
| NixOS || &amp;lt;code&amp;gt;unvanquished&amp;lt;/code&amp;gt; || [https://mynixos.com/nixpkgs/package/unvanquished Nix] || [https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/un/unvanquished/package.nix source] || afontain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Packaging tips ==&lt;br /&gt;
* Due to the update policy, Unvanquished may not be suitable for package ecosystems such as Debian's where version stability is expected.&lt;br /&gt;
* Any {{code|.dpk}} file must be copied from the official release rather than built, because its hash must match when playing online.&lt;br /&gt;
* If you look at the universal zip, &amp;lt;code&amp;gt;pkg/*.dpk&amp;lt;/code&amp;gt; plus the contents of the platform-specific zip, minus possibly &amp;lt;code&amp;gt;crash_server&amp;lt;/code&amp;gt;, is the bare minimum for a usable install.&lt;br /&gt;
* All the {{code|.dpk}} files from a single release (the ones shipped in the universal zip) are required, even if some are listed with same base name but different versions. This is because we use delta packages, with newer packages extending older ones. For example the Unvanquished 0.55.3 release required both {{code|res-weapons_0.55.3.dpk}} and {{code|res-weapons_0.55.dpk}}, the older one wasn't a leftover.&lt;br /&gt;
* Other nice-to-have bits are a desktop file, and server scripts from [https://github.com/Unvanquished/Unvanquished/tree/master/dist &amp;lt;code&amp;gt;dist/&amp;lt;/code&amp;gt;].&lt;br /&gt;
* Supported architectures for Unvanquished are &amp;lt;code&amp;gt;amd64&amp;lt;/code&amp;gt; (x86-64), &amp;lt;code&amp;gt;i686&amp;lt;/code&amp;gt; (x86), &amp;lt;code&amp;gt;armhf&amp;lt;/code&amp;gt; (32-bit ARM with hard float), and &amp;lt;code&amp;gt;arm64&amp;lt;/code&amp;gt;.&lt;br /&gt;
* If downloads are discouraged/forbidden by the package system, you will need to bundle the NaCl runtime dependencies in the package. &lt;br /&gt;
* Besides the NaCl runtime and Unvanquished gamelogic, you probably want to avoid using pre-built binaries. Pass &amp;lt;code&amp;gt;-DUSE_EXTERNAL_DEPS_LIBS=OFF&amp;lt;/code&amp;gt; to CMake to avoid this.&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	<entry>
		<id>https://wiki.unvanquished.net/index.php?title=Install_and_play&amp;diff=9076</id>
		<title>Install and play</title>
		<link rel="alternate" type="text/html" href="https://wiki.unvanquished.net/index.php?title=Install_and_play&amp;diff=9076"/>
				<updated>2026-05-20T12:52:25Z</updated>
		
		<summary type="html">&lt;p&gt;Illwieckz: Sourceforge don't use the Universal_Zip folder anymore for new releases&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Get started easy ==&lt;br /&gt;
&lt;br /&gt;
You're in a rush? Follow [[Get started easy|few steps to be ready to play]].&lt;br /&gt;
&lt;br /&gt;
== Getting the game ==&lt;br /&gt;
&lt;br /&gt;
{{InfoDownloadLauncher}}&lt;br /&gt;
&lt;br /&gt;
===Launcher===&lt;br /&gt;
&lt;br /&gt;
Most users will want to download the launcher from the [https://unvanquished.net/download download page] on our website.&lt;br /&gt;
&lt;br /&gt;
===Packages===&lt;br /&gt;
&lt;br /&gt;
Linux users may use some alternative [[Linux packages]], they are usually updated later than the launcher and the universal zip, but may offer an integration with the system similar to the launcher.&lt;br /&gt;
&lt;br /&gt;
===Universal zip===&lt;br /&gt;
&lt;br /&gt;
Using the [[Universal zip]] may require for you to have specific knowledge about your operating system to get the game running. Prefer the launcher when possible. The universal zip may be the only option for some less supported platforms.&lt;br /&gt;
&lt;br /&gt;
You can download the universal zip on:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/Unvanquished/Unvanquished/releases GitHub release page],&lt;br /&gt;
* [https://sourceforge.net/projects/unvanquished/files/ SourceForge.net file browser],&lt;br /&gt;
* [https://www.indiedb.com/games/unvanquished/downloads IndieDB download page].&lt;br /&gt;
&lt;br /&gt;
More mirrors can be found on the [[Infrastructure/Distribution]] page.&lt;br /&gt;
&lt;br /&gt;
===Building the game===&lt;br /&gt;
&lt;br /&gt;
See [[Coding]] for tips and guides on compiling.&lt;br /&gt;
&lt;br /&gt;
== Running and configuration ==&lt;br /&gt;
&lt;br /&gt;
* Using the [[console]];&lt;br /&gt;
* [[Colours]] in names and chat;&lt;br /&gt;
* [[Runtime options]] for example screen resolution, game data location;&lt;br /&gt;
* [[Creating custom keybinds]];&lt;br /&gt;
* [[Optimisations]];&lt;br /&gt;
* [[Keybinds]];&lt;br /&gt;
* [[GPU compatibility matrix]].&lt;br /&gt;
&lt;br /&gt;
== Compatibility ==&lt;br /&gt;
&lt;br /&gt;
See the [[Systems]] page.&lt;br /&gt;
&lt;br /&gt;
== Bugs ==&lt;br /&gt;
&lt;br /&gt;
Unvanquished has lots of them. We have an extensive [https://github.com/Unvanquished/Unvanquished/issues bugtracker] that we invite you to add your bugs to.&lt;br /&gt;
&lt;br /&gt;
* Have a read of our [[Bug reporting]] and [[Troubleshooting]] pages for tips on making effective reports;&lt;br /&gt;
* Search the bugtracker for bugs similar to yours before adding a new one;&lt;br /&gt;
* Some of the tips on the [[Testing]] page may be useful.&lt;br /&gt;
&lt;br /&gt;
== Getting in contact ==&lt;br /&gt;
&lt;br /&gt;
The two best ways to get in contact with other community members are:&lt;br /&gt;
* through the {{forums}};&lt;br /&gt;
* over [[chat]].&lt;br /&gt;
&lt;br /&gt;
== Running Servers ==&lt;br /&gt;
&lt;br /&gt;
* [[Server/Running|Running a server]];&lt;br /&gt;
** [[Server/Map layout|Map layout]] &amp;amp;mdash; default building locations;&lt;br /&gt;
** [[Server/Map rotation|Map rotation]];&lt;br /&gt;
** [[Server/Bot skill|Bot skill]].&lt;/div&gt;</summary>
		<author><name>Illwieckz</name></author>	</entry>

	</feed>