Skip to content

lgamorim/slipgate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slipgate

A modern Quake-format level toolchain for Unity 6.

Build levels in TrenchBroom, save the .map file into Assets/, and get game-ready geometry, materials, colliders, trigger volumes, and C#-bound entities — with reimport-on-save iteration and graph-based level validation in CI.

Status: pre-alpha (design phase). Nothing usable yet. The architecture and roadmap live in docs/design/0001-architecture-and-roadmap.md. Follow the phase roadmap there if you're curious where this is going.

Why

TrenchBroom is one of the best brush-based level editors ever made, and Godot users get a first-class bridge to it via func_godot. Slipgate aims to give Unity the same workflow — plus a few things no engine has:

  • Entity binding as a framework. Declare [PointEntity("info_player_start")] or [BrushEntity("trigger_hurt")] on a MonoBehaviour, and Slipgate generates the TrenchBroom FGD from your C# code and wires target/targetname connections into typed UnityEvents at import. Your components are the single source of truth; the editor can't drift from the game.
  • Level-flow analysis. At import time and in CI (slipgate lint), Slipgate builds a graph of your level — rooms, portals, triggers, keys, locks — and validates it: is every area reachable from the player start? Is the key locked behind its own door? Can the player softlock? Powered by Graph1x.
  • Engine-agnostic core. The .map/FGD/WAD parsers and geometry kernel ship as plain .NET libraries on NuGet, usable from CLI tools and CI without Unity. The Unity package is a thin layer on top.
  • Unity 6 native. ScriptedImporter pipeline, URP-first materials, Burst/Jobs geometry kernel, ProBuilder conversion for touch-ups.

Prior art

Slipgate stands on well-trodden ground and is honest about it. Scopa already imports Quake/Half-Life/Source formats into Unity and may be all you need today. Qunity ports Qodot concepts to Unity. func_godot is the gold standard this project measures its geometry output against. If Slipgate's differentiators (entity framework, flow analysis, engine-agnostic core) don't matter to you, use those excellent projects.

Planned packages

Package Distribution Purpose
Slipgate.Core NuGet .map / FGD / WAD2/WAD3 parsers, AST, writer
Slipgate.Geometry NuGet Brush-to-mesh kernel (winding, culling, UV projection)
Slipgate.Analysis NuGet Graph1x-based flow graph + validators
Slipgate.Cli NuGet (dotnet tool) parse · stats · lint · export-fgd
com.lgamorim.slipgate UPM / OpenUPM Unity importer, entity binder, editor tooling

Requirements (planned)

  • Unity 6.0 LTS or later (URP-first; HDRP/BiRP via pluggable material resolvers)
  • .NET 8+ for the standalone libraries and CLI
  • TrenchBroom with the generated Slipgate game config (Valve 220 format)

Non-goals

BSP import, Quake 2/3 curved patches (v1), and shipping any id Software assets. See the design doc for the full list and rationale.

Contributing

Not open for contributions yet — the foundations are still moving. Issues with real-world .map files that parsers tend to choke on are welcome from day one, though: the golden-file test corpus is the backbone of this project.

Development transparency

Slipgate is developed in close collaboration with Claude (Anthropic), following the same agentic workflow and verification discipline as Graph1x: design decisions are recorded in numbered design docs, geometry output is differentially tested against func_godot, and the managed reference implementation serves as the correctness oracle for the Burst backend.

License

Apache-2.0. Sample maps and textures under samples/ carry their own licenses — see the notices in that folder.

About

TrenchBroom .map → Unity 6, with your MonoBehaviours as the single source of truth for entities and a Graph1x-powered level validator.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors