All Projects → ec- → Quake3e

ec- / Quake3e

Licence: gpl-2.0
Improved Quake III Arena engine

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Quake3e

Reshade
A generic post-processing injector for games and video software.
Stars: ✭ 2,285 (+782.24%)
Mutual labels:  opengl, vulkan
Urde
Data interchange and engine re-implementation for games by Retro Studios | Mirror
Stars: ✭ 253 (-2.32%)
Mutual labels:  opengl, vulkan
Glad
Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
Stars: ✭ 2,296 (+786.49%)
Mutual labels:  opengl, vulkan
Gl vk threaded cadscene
OpenGL and Vulkan comparison on rendering a CAD scene using various techniques
Stars: ✭ 143 (-44.79%)
Mutual labels:  opengl, vulkan
Mangohud
A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more. Discord: https://discordapp.com/invite/Gj5YmBb
Stars: ✭ 2,994 (+1055.98%)
Mutual labels:  opengl, vulkan
Innocenceengine
Cross-platform modern game engine.
Stars: ✭ 149 (-42.47%)
Mutual labels:  opengl, vulkan
Awesome Vulkan
Awesome Vulkan ecosystem
Stars: ✭ 2,322 (+796.53%)
Mutual labels:  opengl, vulkan
Filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Stars: ✭ 13,215 (+5002.32%)
Mutual labels:  opengl, vulkan
Lwjgl3 Demos
Demo suite for LWJGL 3
Stars: ✭ 192 (-25.87%)
Mutual labels:  opengl, vulkan
Imguizmo.quat
ImGui GIZMO widget - 3D object manipulator / orientator
Stars: ✭ 187 (-27.8%)
Mutual labels:  opengl, vulkan
Serpent
Cross-platform gaming kit in the D programming language
Stars: ✭ 140 (-45.95%)
Mutual labels:  opengl, vulkan
Nimgl
NimGL is a Nim library that offers bindings for popular libraries used in computer graphics
Stars: ✭ 218 (-15.83%)
Mutual labels:  opengl, vulkan
Diligentsamples
Sample projects demonstrating the usage of Diligent Engine
Stars: ✭ 138 (-46.72%)
Mutual labels:  opengl, vulkan
Commandbuffer
A lock-free CommandBuffer implementation designed for multi-threaded rendering applications.
Stars: ✭ 151 (-41.7%)
Mutual labels:  opengl, vulkan
Diligentengine
A modern cross-platform low-level graphics library and rendering framework
Stars: ✭ 2,142 (+727.03%)
Mutual labels:  opengl, vulkan
Gpu performance api
GPU Performance API for AMD GPUs
Stars: ✭ 170 (-34.36%)
Mutual labels:  opengl, vulkan
Gl vk meshlet cadscene
This OpenGL/Vulkan sample illustrates the use of "mesh shaders" for rendering CAD models.
Stars: ✭ 127 (-50.97%)
Mutual labels:  opengl, vulkan
Gpu Viewer
A front-end to glxinfo, vulkaninfo, clinfo and es2_info - Linux
Stars: ✭ 129 (-50.19%)
Mutual labels:  opengl, vulkan
Flextgl
OpenGL and Vulkan header and loader generator.
Stars: ✭ 180 (-30.5%)
Mutual labels:  opengl, vulkan
Saba
OpenGL Viewer (OBJ PMD PMX)
Stars: ✭ 208 (-19.69%)
Mutual labels:  opengl, vulkan

Quake3e

build * Discord server

This is a modern Quake III Arena engine aimed to be fast, secure and compatible with all existing Q3A mods. It is based on last non-SDL source dump of ioquake3 with latest upstream fixes applied.

This repository does not contain any game content so in order to play you must copy the resulting binaries into your existing Quake III Arena installation

Key features:

  • optimized OpenGL renderer
  • optimized Vulkan renderer
  • raw mouse input support, enabled automatically instead of DirectInput(\in_mouse 1) if available
  • unlagged mouse events processing, can be reverted by setting \in_lagged 1
  • \in_minimize - hotkey for minimize/restore main window (win32-only, direct replacement for Q3Minimizer)
  • \video-pipe - to use external ffmpeg binary as an encoder for better quality and smaller output files
  • significally reworked QVM (Quake Virtual Machine)
  • improved server-side DoS protection, much reduced memory usage
  • raised filesystem limits (up to 20,000 maps can be handled in a single directory)
  • reworked Zone memory allocator, no more out-of-memory errors
  • non-intrusive support for SDL2 backend (video, audio, input), selectable at compile time
  • tons of bug fixes and other improvements

Vulkan renderer

Based on Quake-III-Arena-Kenny-Edition with many additions:

  • high-quality per-pixel dynamic lighting
  • very fast flares (\r_flares 1)
  • anisotropic filtering (\r_ext_texture_filter_anisotropic)
  • greatly reduced API overhead (call/dispatch ratio)
  • flexible vertex buffer memory management to allow loading huge maps
  • multiple command buffers to reduce processing bottlenecks
  • reversed depth buffer to eliminate z-fighting on big maps
  • merged lightmaps (atlases)
  • multitexturing optimizations
  • static world surfaces cached in VBO (\r_vbo 1)
  • useful debug markers for tools like RenderDoc
  • fixed framebuffer corruption on some Intel iGPUs
  • offscreen rendering, enabled with \r_fbo 1, all following requires it enabled:
  • screenMap texture rendering - to create realistic environment reflections
  • multisample anti-aliasing (\r_ext_multisample)
  • supersample anti-aliasing (\r_ext_supersample)
  • per-window gamma-correction which is important for screen-capture tools like OBS
  • you can minimize game window any time during \video|\video-pipe recording
  • high dynamic range render targets (\r_hdr 1) to avoid color banding
  • bloom post-processing effect
  • arbitrary resolution rendering
  • greyscale mode

In general, not counting offscreen rendering features you might expect from 10% to 200%+ FPS increase comparing to KE's original version

Highly recommended to use on modern systems

OpenGL renderer

Based on classic OpenGL renderers from idq3/ioquake3/cnq3/openarena, features:

  • OpenGL 1.1 compatible, uses features from newer versions whenever available
  • high-quality per-pixel dynamic lighting, can be triggered by \r_dlightMode cvar
  • merged lightmaps (atlases)
  • static world surfaces cached in VBO (\r_vbo 1)
  • all set of offscreen rendering features mentioned in Vulkan renderer, plus:
  • bloom reflection post-processing effect

Performance is usually greater or equal to other opengl1 renderers

OpenGL2 renderer

Original ioquake3 renderer, performance is very poor on non-nvidia systems, unmaintained

Build Instructions

windows/msvc

Install Visual Studio Community Edition 2017 or later and compile quake3e project from solution

code/win32/msvc2017/quake3e.sln

Copy resulting exe from code/win32/msvc2017/output directory

To compile with Vulkan backend - clean solution, right click on quake3e project, find Project Dependencies and select renderervk instead of renderer


windows/mingw

All build dependencies (libraries, headers) are bundled-in

Build with either make ARCH=x86 or make ARCH=x86_64 commands depending on your target system, then copy resulting binaries from created build directory or use command:

make install DESTDIR=<path_to_game_files>


linux/bsd

You may need to run the following commands to install packages (using fresh ubuntu-18.04 installation as example):

  • sudo apt install make gcc libcurl4-openssl-dev mesa-common-dev
  • sudo apt install libxxf86dga-dev libxrandr-dev libxxf86vm-dev libasound-dev
  • sudo apt install libsdl2-dev

Build with: make

Copy the resulting binaries from created build directory or use command:

make install DESTDIR=<path_to_game_files>


raspberry pi os

Install the build dependencies:

  • apt install libsdl2-dev libxxf86dga-dev libcurl4-openssl-dev

Build with: make

Copy the resulting binaries from created build directory or use command:

make install DESTDIR=<path_to_game_files>


macos

  • install the official SDL2 framework to /Library/Frameworks
  • brew install molten-vk or install Vulkan SDK to use MoltenVK library

Build with: make

Copy the resulting binaries from created build directory


Several make options are available for linux/mingw/macos builds:

BUILD_CLIENT=1 - build unified client/server executable, enabled by default

BUILD_SERVER=1 - build dedicated server executable, enabled by default

USE_SDL=0- use SDL2 backend for video, audio, input subsystems, disabled by default, enforced for macos

USE_VULKAN=0 - link client with vulkan renderer instead of OpenGL, disabled by default, works only with single renderer builds

USE_RENDERER_DLOPEN=1 - do not link single renderer into client binary, compile all renderers (ignoring USE_VULKAN setting) as dynamic libraries and allow to switch them on the fly via \cl_renderer cvar, enabled by default

USE_SYSTEM_JPEG=0 - use current system JPEG library, disabled by default

Example:

make BUILD_SERVER=0 USE_RENDERER_DLOPEN=0 USE_VULKAN=1 - which means do not build dedicated binary, build client with single static vulkan renderer

Contacts

Discord channel: https://discordapp.com/invite/X3Exs4C

Links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].