Draw the nav graph in the world with the engine pointfile channel - #252
Merged
Conversation
Shane's thought: back when maps leaked, qbsp wrote a .pts file and you loaded it in the engine to walk the leak to the void. Worth checking whether that helps us see navigation. It does, and the channel is already in our engine. QuakeSpasm carries pointfile, maps/%s.pts and "%i points read", plus a -particles switch to raise the pool. R_ReadPointFile_f spawns one static particle per line of "x y z", so anything can write the file. We have never used it. That fills a real gap. Top-down PNGs and event counts cannot show a seat hanging 152 units over lava, or a door seat that stops 18 units short of the trigger it is waiting on. Both of those cost a session each this week and both are obvious standing in the level looking at dots. tools/argus_pointfile.py writes the overlay from data we already keep: nodes one particle per waypoint links interpolated along every link swim swim-exit links, the ones that answer "can it get out" water just the endpoints of those links tape the freeze cells from a session log The tape mode reads a run log and emits where each track stood still for 6 s or more. Pointed at today's session it emits exactly the five freeze positions, all clustered at the t120 door. Limits, recorded so nobody expects more. Colour is (-index & 15), so it cycles every 16 points and cannot be given meaning; use one mode at a time instead of trying to colour code. The particle pool bounds what shows at once, so the tool thins and tells you what -particles to pass. And pointfile is a client command, so this needs a listen game; a dedicated match has no renderer. Nothing here touches progs.dat, the server or the bots. The particles are client side and static. python tools/argus_pointfile.py e1m2 --what swim then in a listen game: pointfile Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Shane's thought: back when maps leaked, qbsp wrote a
.ptsfile and you loaded it in the engine to walk the leak out to the void. Worth checking whether anything there helps us see navigation.It does, and the channel is already in our engine. The binary carries
pointfile,maps/%s.ptsand%i points read, plus a-particlesswitch to raise the pool.R_ReadPointFile_fspawns one static particle per line ofx y z, so anything can write the file. We have never used it.Why it is worth having
Top-down PNGs and event counts cannot show a seat hanging 152 units over lava, or a door seat that stops 18 units short of the trigger it is waiting on. Those two cost a session each this week, and both are obvious the moment you stand in the level and look at dots.
Modes
tools/argus_pointfile.pywrites the overlay from data we already keep.nodeslinksswimwatertapePointed at today's session,
tapeemits exactly the five freeze positions, all clustered at the t120 door:Limits, recorded so nobody expects more
(-index & 15), so it cycles every 16 points and cannot be given meaning. Use one mode at a time rather than trying to colour code.-particlesvalue to pass.pointfileis a client command, so this needs a listen game. A dedicated match has no renderer, which is also why this cannot be verified headless.Nothing here touches progs.dat, the server or the bots. The particles are client side and static.
then in a listen game:
pointfile🤖 Generated with Claude Code