cd /news/developer-tools/show-hn-kwayk-reimplementing-quake-i… · home topics developer-tools article
[ARTICLE · art-84271] src=github.com ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Show HN: Kwayk – Reimplementing Quake in Qt Quick3D with Jolt Physics

Kwayk, a modern reimplementation of the classic 1996 Quake game engine using Qt Quick 3D and QML, has been released as an open-source project on GitHub, supporting desktop platforms and WebAssembly browsers. The engine features single-player and multiplayer modes, custom map and mod support, and integrates Jolt Physics for collision detection, with development requiring Qt 6.9+ and CMake 3.16+.

read2 min views1 publishedAug 3, 2026
Show HN: Kwayk – Reimplementing Quake in Qt Quick3D with Jolt Physics
Image: source

Kwayk is a modern reimplementation of the classic Quake (1996) game engine using Qt Quick 3D and QML. It runs natively on desktop platforms and in web browsers via WebAssembly.

  • 🎮 Single Player campaign— monsters, weapons, items, and level progression - 🌐 WebAssembly support— play directly in your browser - 🎨 Modern rendering— Qt Quick 3D with decals, particles, and view-model rendering - 💡 Color lightmaps— Quake lightmaps with animated light styles and fullbright textures - 🔊 3D spatial audio— positional sound using Qt SpatialAudio (desktop) and Web Audio API (WASM) - ⚡ Physics engineQt Quick 3D Jolt Physicsfor accurate collision detection - 🧩 Classic entity logic— doors, platforms, teleporters, push/hurt triggers, secrets, pickups, and monster AI - 🖥️ Cross-platform— Linux, Windows, macOS, and WebAssembly - 📺 Retro aesthetics— faithful recreation of the original look and feel

  • Single Player (Episode 0 from LibreQuake)

  • Multiplayer (Deathmatch, Co-op)

  • Custom map support

  • Mod support

Qt 6.9+ with the following modules:- Qt QML

  • Qt Quick
  • Qt Quick 3D
  • Qt Quick 3D Private
  • Qt Spatial Audio

— physics plugin for Qt Quick 3DQt Quick 3D Jolt PhysicsCMake 3.16+

git clone git@github.com:glazunov999/Kwayk.git
cd Kwayk

cmake -B build -DCMAKE_PREFIX_PATH=/path/to/Qt/6.9.3/gcc_64
cmake --build build --parallel

./build/appKwayk
cmake -B build-wasm \
  -DCMAKE_TOOLCHAIN_FILE=/path/to/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake \
  -DCMAKE_PREFIX_PATH=/path/to/Qt/6.9.3/wasm_singlethread

cmake --build build-wasm --parallel

cd build-wasm
python3 -m http.server 8080
Kwayk/
├── Assets/           # Game assets (textures, sounds, maps)
│   ├── images/       # UI and texture images
│   ├── maps/         # Qt Quick 3D level data converted from BSP
│   ├── progs/        # Model files (.mdl)
│   └── sounds/       # Sound effects
├── Backend/          # C++ backend modules
│   ├── mdl.*         # Quake MDL model 
│   ├── cmd.*         # Console command system
│   ├── lightstyletexture.*  # Animated Quake light styles
│   └── webspatialaudio/  # Web Audio API implementation
├── id1/              # Intermediate converted Quake data used by the asset pipeline
├── Kwayk/
│   ├── Core/         # Core game systems (rendering, audio, particles)
│   ├── Game/         # Game logic (entities, triggers, monsters)
│   ├── Ui/           # User interface (menus, HUD, console)
│   └── js/           # JavaScript utilities
└── tools/
    └── q1pak/        # PAK file extractor and BSP converter

Converting Quake assets is a two-step process:

The q1pak

tool extracts PAK files and converts BSP maps to Collada (.dae) format:

cd tools/q1pak
qmake && make
./q1pak /path/to/id1/pak0.pak -o ./output

Use Qt's balsam

tool to convert Collada files to Qt Quick 3D meshes and QML:

balsam ./output/maps/lq_e0m1/lq_e0m1_map.dae -o ../../Assets/maps/lq_e0m1

Note: Some manual adjustments to the generated QML may be required for proper material setup.

── more in #developer-tools 4 stories · sorted by recency
── more on @kwayk 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-kwayk-reimpl…] indexed:0 read:2min 2026-08-03 ·