SkillAgentSearch skills...

VkQuake3

Its based on ioq3,I add a vulkan based modular render back end which originally from https://github.com/kennyalive/Quake-III-Arena-Kenny-Edition

Install / Use

/learn @suijingfeng/VkQuake3
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

==============================================================================

               ,---------------------------------------.
               |   _                     _       ____  |
               |  (_)___  __ _ _  _ __ _| |_____|__ /  |
               |  | / _ \/ _` | || / _` | / / -_)|_ \  |
               |  |_\___/\__, |\_,_\__,_|_\_\___|___/  |
               |            |_|                        |
               |                                       |
               `---------- http://ioquake3.org --------'

The intent of this project is to provide a baseline Quake 3 which may be used for further development and baseq3 fun. Some of the major features currently implemented are:

  • 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 and cross compilation support on Linux
  • 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
  • HTTP/FTP download redirection (using cURL)
  • Multiuser support on Windows systems (user specific game data is stored in "%APPDATA%\Quake3")
  • PNG support
  • Many, many bug fixes

The map editor and associated compiling tools are not included. We suggest you use a modern copy from http://icculus.org/gtkradiant/.

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.

More documentation including a Player's Guide and Sysadmin Guide is on: http://wiki.ioquake3.org/

If you've got issues that you aren't sure are worth filing as bugs, or just want to chat, please visit our forums: http://discourse.ioquake.org

Compilation and installation

Building on Ubuntu or Debian Linux

$ sudo apt-get install libcurl4-openssl-dev libsdl2-dev libopenal-dev libvulkan-dev libgl1-mesa-dev libopus-dev libvorbis-dev libopusfile-dev
$ sudo apt-get install clang gcc make git
$ git clone https://github.com/suijingfeng/vkQuake3.git
$ cd vkQuake3
$ make -j4

Building on Windows 7 or 10

To build 64-bit binaries, follow these instructions:

  1. Install msys2 from https://msys2.github.io/ , following the instructions there.

  2. Start "MinGW 64-bit" from the Start Menu, NOTE: NOT MSYS2.

  3. Install mingw-w64-x86_64, make, git and necessary libs.

    pacman -S mingw-w64-x86_64-gcc make git
    
  4. Grab latest source code from github and compile. Note that in msys2, your drives are linked as folders in the root directory: C:\ is /c/, D:\ is /d/, and so on.

    git clone https://github.com/suijingfeng/vkQuake3.git
    cd vkQuake3
    make -j4
    
  5. Find the executables and dlls in build/release-mingw64-x86_64 .

you can also download the binary compiled on win10 from https://github.com/suijingfeng/vkQuake3/releases.

You can also try the openarena game https://github.com/suijingfeng/vkOpenArena :)

Building on macOS

Tested with 10.14 Mojave & 10.15 Catalina:

  1. Install the Command Line tools

    xcode-select --install
    
  2. Install Xcode - from the Mac AppStore or Apple Developer Website, make sure to run the latest version...

    Check what Xcode is selected

    xcode-select -p
    

    if it doesn't correspond to the latest (or want to use)

    sudo xcode-select --switch /PATH-TO/Xcode.app
    
  3. Install the build dependencies with Homebrew

    brew install molten-vk vulkan-headers sdl2 openal-soft
    
  4. Grab latest source code from github and compile.

    git clone https://github.com/suijingfeng/vkQuake3.git
    cd vkQuake3
    
  5. run make with number of processing units available to the current process

    make -j $(nproc)
    
  6. Find the executables and dynamic libraries in build/release-darwin-x86_64

    cd build/release-darwin-x86_64
    
  7. Install the *.pak-files into the corresponding directorues, then run

    ./ioquake3.x86_64
    

Later [2020-07-06]

  • Updated build bash scripts to build the .app

  • Be able to download the binary compiled for macos 10.14+ from https://github.com/suijingfeng/vkQuake3/releases.

  • Or try the openarena game https://github.com/suijingfeng/vkOpenArena ... Will add macOS support ...

FAQ

Q: How to enable vulkan support from the pulldown console ?

\cl_renderer vulkan
\vid_restart

Q: How to check that Vulkan backend is really active ?

\vkinfo

Type \vkinfo in the console reports information about active rendering backend. It will report something like the following:

Active 3D API: Vulkan
Vk api version: 1.0.65
Vk driver version: 1637679104
Vk vendor id: 0x10DE (NVIDIA)
Vk device id: 0x1B80
Vk device type: DISCRETE_GPU
Vk device name: GeForce GTX 1080

Total Device Extension Supported:

...

Vk instance extensions:

...

Image chuck memory(device local) used: 8 M 

The following variables may be set, either on the command line or in Makefile.local:

  CFLAGS               - use this for custom CFLAGS
  V                    - set to show cc command line when building
  DEFAULT_BASEDIR      - extra path to search for baseq3 and such
  BUILD_SERVER         - build the 'ioq3ded' server binary
  BUILD_CLIENT         - build the 'ioquake3' client binary
  BUILD_BASEGAME       - build the 'baseq3' binaries
  BUILD_MISSIONPACK    - build the 'missionpack' binaries
  BUILD_GAME_SO        - build the game shared libraries
  BUILD_GAME_QVM       - build the game qvms
  BUILD_STANDALONE     - build binaries suited for stand-alone games
  SERVERBIN            - rename 'ioq3ded' server binary
  CLIENTBIN            - rename 'ioquake3' client binary
  USE_RENDERER_DLOPEN  - build and use the renderer in a library
  USE_YACC             - use yacc to update code/tools/lcc/lburg/gram.c
  BASEGAME             - rename 'baseq3'
  BASEGAME_CFLAGS      - custom CFLAGS for basegame
  MISSIONPACK          - rename 'missionpack'
  MISSIONPACK_CFLAGS   - custom CFLAGS for missionpack (default '-DMISSIONPACK')
  USE_OPENAL           - use OpenAL where available
  USE_OPENAL_DLOPEN    - link with OpenAL at runtime
  USE_CURL             - use libcurl for http/ftp download support
  USE_CURL_DLOPEN      - link with libcurl at runtime
  USE_CODEC_VORBIS     - enable Ogg Vorbis support
  USE_CODEC_OPUS       - enable Ogg Opus support
  USE_MUMBLE           - enable Mumble support
  USE_VOIP             - enable built-in VoIP support
  USE_FREETYPE         - enable FreeType support for rendering fonts
  USE_INTERNAL_LIBS    - build internal libraries instead of dynamically
                         linking against system libraries; this just sets
                         the default for USE_INTERNAL_ZLIB etc.
                         and USE_LOCAL_HEADERS
  USE_INTERNAL_ZLIB    - build and link against internal zlib
  USE_INTERNAL_JPEG    - build and link against internal JPEG library
  USE_INTERNAL_OGG     - build and link against internal ogg library
  USE_INTERNAL_OPUS    - build and link against internal opus/opusfile libraries
  USE_LOCAL_HEADERS    - use headers local to ioq3 instead of system ones
  DEBUG_CFLAGS         - C compiler flags to use for building debug version
  COPYDIR              - the target installation directory
  TEMPDIR              - specify user defined directory for temp files

The defaults for these variables differ depending on the target platform.

Console

New cvars

  cl_autoRecordDemo                 - record a new demo on each map change
  cl_aviFrameRate                   - the framerate to use when capturing video
  cl_aviMotionJpeg                  - use the mjpeg codec when capturing video
  cl_guidServerUniq                 - makes cl_guid unique for each server
  cl_cURLLib                        - filename of cURL library to load
  cl_consoleKeys                    - space delimited list of key names or
                                      characters that toggle the console
  cl_mouseAccelStyle                - Set to 1 for QuakeLive mouse acceleration
                                      behaviour, 0 for standard q3
  cl_mouseAccelOffset               - Tuning the acceleration curve, see below

  con_autochat                      - Set to 0 to disable sending console input
                                      text as chat when there is not a slash
                                      at the beginning
  con_autoclear                     - Set to 0 to disable clearing console
                                      input text when console is closed

  in_joystickUseAnalog              - Do not translate joystick axis events
                                      to keyboard commands

  j_forward                         - Joystick analogue to m_forward,
                                      for forward movement speed/direction.
  j_side                            - Joystick analogue to m_side,
                                      for side movement speed/direction.
  j_up                              - Joystick up movement speed/direction.
  j_pitch                           - Joystick analogue to m_pitch,
                                      for pitch rotation speed/direction.
  j_yaw                             - Joystick analogue to m_yaw,
                                      for yaw rotation speed/direction.
  j_forward_axis                    - Selects which joystick axis
                                      controls forward/back.
  j_side_axis                       - Selects which joystick axis
                                      controls left/right.
  j_up_axis                        

Related Skills

View on GitHub
GitHub Stars109
CategoryDevelopment
Updated11d ago
Forks31

Languages

C

Security Score

100/100

Audited on Mar 24, 2026

No findings