The intent of this project is to provide a baseline engine which may be used for further development and to play Quake 3: Arena, Team Arena, and mods. Our source code is at If you aren't there, then this isn't ioquake3, it's someone else's project. CMake meta-build system SDL 2 backend OpenAL sound API support (multiple speaker support and better sound quality) Full x86 64 support on Linux VoIP support, both in-game and external support through Mumble. MinGW compilation support on Windows AVI video capture of demos Much improved console autocompletion Persistent console history Colorized terminal output Optional Ogg Vorbis support Much improved QVM tools Support for various esoteric operating systems cl guid support Web server download redirection Multiuser support on Windows systems (user specific game data is stored in "%APPDATA% Quake3") PNG support Web support via Emscripten console scaling with con scale Many, many bug fixes The map editor and associated compiling tools are not included. We suggest you use a modern copy from The original id software readme that accompanied the Q3 source release has been renamed to id-readme.txt so as to prevent confusion. Please refer to the website for updated status. I'm going to fork ioquake3 and do my own thing! Please update your fork's README.md to credit the ioquake3 project and inform users what project they're looking at so you get credit for your work. Compilation and installation Note that for all of these platforms, if you want to play Quake 3: Arena or the expansion pack, Team Arena , you'll still need to buy a copy of the game. The Quake 3 game source code is freely available under the GPLv2, not the game data. You can make your own mod that either requires the original game data or a new game that does not. Please read the Creating standalone games section for more information on the latter. The following CMake variables may be set, using -D on the command line. The defaults for these variables may differ depending on the target platform. The opengl2 renderer (the default) supports OpenGL ES 2+. Though there are many missing features and the performance may not be sufficient for embedded System-on-a-Chip and mobile platforms. The opengl2 renderer will try both OpenGL and OpenGL ES APIs to find one that works. The r preferOpenGLES cvar controls which API to try first. Set it to -1 for auto (default), 0 for OpenGL, and 1 for OpenGL ES. It should be set using command line arguments: Compared to the original release, user configuration and data files are stored in more modern locations. If you want a different behaviour a specific path can be provided by adding +set fs homepath to the command line. /home/ /.config/Quake3 Configuration files. /home/ /.local/share/Quake3 Data files (pk3s etc.). /home/ /.local/state/Quake3 Other internal runtime files. These directories correspond to the Free Desktop XDG Base Directory Specification. The original release used /home/.q3a . This will be used if present, however in this case a prompt will be shown suggesting migration to the above locations, if desired. ioquake3 has a useful new feature for mappers. Paths in a game directory with the extension ".pk3dir" are treated like pk3 files. This means you can keep all files specific to your map in one directory tree and easily zip this folder for distribution. If you wish to compile external mods as shared libraries on a 64bit platform, and the mod source is derived from the id Q3 SDK, you will need to modify the interface code a little. Open the files ending in syscalls.c and change every instance of int to intptr t in the declaration of the syscall function pointer and the dllEntry function. Also find the vmMain function for each module (usually in cg main.c g main.c etc.) and similarly replace the return value in the prototype with intptr t (arg0, arg1, ...stay int). Have you finished the daunting task of removing all dependencies on the Q3 game data? You probably now want
~1 min read
REDIRECT id Tech 3#ioquake3
Category:Free game engines Category:Game engines for Linux Category:id Tech
Excerpt from the source-code README · 30,076 chars · not written by Vinony
via Wikidata · CC0
Discovered by embedding cosine similarity (sentence-transformers MiniLM, 384-dim).