GPLv3 fork — entity definitions sourced from nfa-editor (Postgres). Upstream remote kept for rebases.
- C++ 98%
- CMake 1.5%
- Shell 0.2%
|
All checks were successful
CI Linux (compile gate) / linux (push) Successful in 3m45s
The nfa-editor "new zone" wizard hands the OS an `nfa-trenchbroom://` link so the
installed .deb launches straight onto a zone (mirrors nfa-renderlab's
nfa-render://). Wiring:
• trenchbroom.desktop — register x-scheme-handler/nfa-trenchbroom; Exec %F→%U
(the handler passes URLs); openFiles now also un-wraps file:// URLs so normal
.map opening still works.
• parseNfaDeepLink() (NfaZoneSync) — nfa-trenchbroom://<intent>?zone=<slug>;
intent `new` (empty map) | `open` (import placements); unknown→open. Unit
test tst_NfaDeepLink covers intents, percent-decode, foreign-scheme + no-zone.
• AppController::openNfaDeepLink() — resolves the "NFA Prototype" game, creates
a fresh doc (first declared map format, Valve), drives the new MapWindow.
• MapWindow::openNfaZone() — activates the remote nfa-editor entity defs and,
for `open`, imports the zone's placements (shared doImportNfaZone core).
• Main.cpp openFiles — dispatch an nfa-trenchbroom: arg to the deep-link path.
Activating it needs a .deb rebuild (build-deb.yml) + reinstall so the scheme
handler registers. No game/protocol impact.
Claude-Session: https://claude.ai/code/session_01LA99oddt7JDRVQqyL3JTAY
|
||
|---|---|---|
| .forgejo/workflows | ||
| .github | ||
| .vscode | ||
| app | ||
| cmake | ||
| docker | ||
| lib | ||
| vcpkg@9a5d7860d1 | ||
| vcpkg-overlay-ports | ||
| www | ||
| .clang-format | ||
| .clang-tidy | ||
| .clangd | ||
| .gitignore | ||
| .gitmodules | ||
| AGENTS.md | ||
| build-deb.sh | ||
| BUILD.md | ||
| CI-linux.sh | ||
| CI-macos.sh | ||
| CI-windows.bat | ||
| CMakeLists.txt | ||
| CONTRIBUTING.md | ||
| LICENSE.txt | ||
| NFA-FORK.md | ||
| README.md | ||
| vcpkg.json | ||
TrenchBroom
TrenchBroom is a modern cross-platform level editor for Quake-engine based games.
- Trailer: https://www.youtube.com/watch?v=shcAvnYp9ow
- Website: https://github.com/TrenchBroom/TrenchBroom
- Discord: https://discord.gg/WGf9uve
- Mastodon: https://mastodon.gamedev.place/@trenchbroom
- Bluesky: https://bsky.app/profile/trenchbroom.bsky.social
- Video Tutorial Series: https://www.youtube.com/playlist?list=PLgDKRPte5Y0AZ_K_PZbWbgBAEt5xf74aE
- Manual: https://trenchbroom.github.io/manual/latest
Features
- General
- Full support for editing in 3D and in up to three 2D views
- High performance renderer with support for huge maps
- Unlimited Undo and Redo
- Macro-like command repetition
- Issue browser with automatic quick fixes
- Point file support
- Automatic backups
- .obj file export
- Free and cross platform
- Brush Editing
- Robust vertex editing with edge and face splitting and manipulating multiple vertices together
- Clipping tool with two and three points
- Scaling and shearing tools
- CSG operations: merge, subtract, intersect
- UV view for easy texture manipulations
- Precise texture lock for all brush editing operations
- Multiple material collections
- Entity Editing
- Entity browser with drag and drop support
- Support for FGD and DEF files for entity definitions
- Mod support
- Entity link visualization
- Displays 3D models in the editor
- Smart entity property editors
- Supported Games
- Quake (Standard and Valve 220 file formats)
- Quake 2
- Quake 3 (partial, no patches or brush primitives yet)
- Hexen 2
- Daikatana
- Generic (for custom engines)
- More games can be supported with custom game configurations
Releases
Binary builds are available from releases.
Compiling
Read BUILD.md for instructions.
Contributing
See CONTRIBUTING.md for more information.
Credits
- Qt
- FreeType
- FreeImage
- TinyXML
- miniz
- Assimp
- Catch2
- CMake
- vcpkg
- Pandoc
- Quake icons by Th3 ProphetMan
- Hexen 2 icon by thedoctor45
- Source Sans Pro font
Changes
See releases for latest changes.