-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Quake II RTXPerimental is my 'playing field', taking Q2RTX, improving the engine while chasing for that long gone nostalgic shooter feel. Adding to it, a bit of a modern touch.
Yes, this will not be yet another arena shooter. Instead it is a total conversion, intent on mimicking various gamemodes that were interesting to play in the past, as well as new found inspired gamemodes. As a finishing touch, it combines them it all into a single project. And hopes to deliver that nostalgic retro feel with an RTX touch as well for both platforms(Windows and Linux).
As you can probably tell by the previous section, it is intended for people who'd like to eventually play the game. That won't happen for now, until all is said and done. All voluntary assistance is greatly appreciated!
Equally it is interesting to content creators, because what is a game without content? Feel free to chime in ideas, and/or work on assets or maps. Reach out to and get in touch in case you are interested in specifics.
Other use cases can be for any person who is interested in creating a game using the Q2RTX renderer, but find the actual engine being somehwat limited. This is not an attempt to compete with Unreal Engine etc, it is something of its own. Deal with it ;-)
Welcome to the Q2RTXPerimental game development documentation! This wiki is designed to help developers create game mods using the Q2RTXPerimental engine, a modernized evolution of Quake II RTX.
Q2RTXPerimental is an experimental fork of Quake II RTX that modernizes the classic Quake II engine with:
- Path-traced ray tracing graphics
- Modern C++ codebase
- Enhanced entity system with OOP architecture
- Lua scripting integration
- Skeletal animation system with root motion
- Signal I/O system for entity communication
- Advanced game mode support
- Getting Started - Build instructions and development environment setup
- Creating Your First Mod - Step-by-step guide to creating a simple mod
Understanding the foundation is crucial before diving into Q2RTXPerimental enhancements:
- Game Module Architecture - Client/server separation and DLL interface
- Entity System Overview - How entities work in vanilla Quake 2
- BSP Map Format - Map structure and entity placement
- Networking Fundamentals - Client-server model, snapshots, and state updates
- Physics and Movement - Movement, collision detection, and simulation
- Weapon System - How weapons are implemented
- AI System - Monster AI and pathfinding basics
Learn about the enhanced architecture and new systems:
- Architecture Overview - High-level overview of Q2RTXPerimental design
- Client Game (clgame) - Client-side prediction, rendering, and effects
- Server Game (svgame) - Authoritative server logic, physics, and AI
- Shared Game (sharedgame) - Code shared between client and server
- Engine Integration - How game modules communicate with the engine
The heart of Q2RTXPerimental game logic:
- Entity System Overview - Understanding the entity architecture
- svg_base_edict_t Reference - Complete reference for the base entity class
- Creating Custom Entities - Step-by-step tutorial with examples
- Entity Lifecycle - Spawn, think, die, and respawn
- Entity Networking - How entities are synchronized to clients
- Save/Load System - Persistence and serialization
Efficient visual effects without entity overhead:
- Temp Entity Overview - What are temp entities and when to use them
- Event Types Reference - Complete list of all temp entity events
- Using Temp Entities - How to spawn temp entities from your code
- Custom Temp Entities - Adding new temporary entity types
Deep dives into specialized systems:
- Signal I/O System - Entity communication and event dispatching
- UseTargets System - Interactive entities and player interaction
- Game Modes - Custom game mode development
- Lua Scripting - Extending gameplay with Lua
- Skeletal Animation - SKM animation system
- Root Motion - Animation-driven movement
Quick reference for constants, enums, and flags:
- Entity Types - All entity type constants
- Entity Flags - Entity flag reference
- Entity Events - Entity event system
- Spawn Flags - Map editor spawn flags
- Means of Death - Damage type constants
This wiki is maintained to reflect the current state of the Q2RTXPerimental codebase. If you find errors or outdated information, please:
- Open an issue on the GitHub repository
- Submit a pull request with corrections
- Join the Discord community for discussions
- Q2RTXPerimental GitHub Repository
- Q2RTXPerimental Discord Server
- QuakeDev Discord
- Original Quake II Source Code
- Quake II RTX
This documentation is maintained for the latest development version of Q2RTXPerimental. Features and APIs may change as the engine evolves. Check the changelog for recent updates.
Ready to start? Head over to Getting Started to set up your development environment!