Claude/engine optimization ideas ng6c9#499
Merged
Merged
Conversation
Technique #15 from the advanced-techniques catalog: add Critical / Normal / Low priority tiers to QueuedEventBus. Dispatch order is Critical → Normal → Low; under MaxQueueSize pressure the oldest Low-tier event is evicted first, then Normal, and Critical only as a last-resort safety valve. The existing QueueEvent<T>(evt) call path defaults to Normal, so every current caller keeps identical behavior. Also lands the advanced-techniques knowledge doc that inventories 34 candidate techniques across rendering / ECS / AI / physics / net / streaming / scripting, and verifies which items from pre-existing plan docs are in fact already shipped (gpu-cpu-separation Phase 1-4, reflection Phase 4, AI LOD-tick via AIBudgetLimiter). Tests: 7 new tests cover default-tier behavior, per-tier counts, dispatch ordering, Low-first eviction, Critical survival, Critical-flood last-resort eviction, and Clear() across tiers. Full suite: 5656/5656. https://claude.ai/code/session_01RQQiNVSeECM4Ha82zeabSJ
Removed 58 knowledge files whose content had outlived its shelf life: 29 `engine-next-steps-phase-*` one-shot completion logs (A–DD, EE–II deep-wire session, JJ/KK/LL fake-coverage conversion, Themes 1-6), 12 `daemon-phase-*` phase logs (all six daemon phases shipped), 7 superseded Wine investigation logs (working recipe is baked into `tools/wine-run.sh`; root-cause + usable pattern are retained in `wine-role-and-fallback-tiers` and `wine-no-jobsystem-breakthrough`), 6 single-session "here's what I did today" logs (connection-scope-wiring, preexisting-bugs-fixed, templates-placeholder-removal, module-dllmain-extraction, neural-training-substrate, engine-gap-fill, deep-optimizations, project-priorities-session), and the Resolved-status closed-engines-analysis. Kept: overarching decision/pattern/plan docs (engine analyses, coding patterns, cross-compilation, bloat audit, test audit, gameplay + module status, architecture plans, advanced-techniques catalog, Wine role + breakthrough, daemon architecture). Per-session phase chronicles live in git history; `.claude/` now keeps only reference material future sessions will actually consult. Rewrote `.claude/index.md` to match: 37 entries remaining (was 96), with status Reference for plan docs whose phases are all shipped. Added Quick Reference note about the new priority tier on QueuedEventBus. https://claude.ai/code/session_01RQQiNVSeECM4Ha82zeabSJ
Technique #26 from the advanced-techniques catalog — halves per-entity transform bandwidth by swapping naive XMFLOAT3/XMFLOAT4 serialization for smallest-three 48-bit quaternion packing and 16-bit-per-component bounded position packing. `Utils/Quantization` is a new low-level pair that owns the bit layout: PackQuat48(XMFLOAT4) / UnpackQuat48 — 6 bytes / unit-length round trip PackVec16(XMFLOAT3, min, max) / UnpackVec16 — 6 bytes inside a caller-chosen AABB `Engine/Networking/NetQuantize` wraps those with NetBuffer-aware Write/Read helpers, so replication code can emit a full pose in 12 bytes versus the current 28. `kQuat48Size` / `kVec16Size` constants are exposed for bandwidth budgeting. Short reads on the wire flip NetBuffer's error flag and return identity / range-min, matching the existing NetBuffer contract. Math is copied verbatim from the existing `AnimationCompressor` bit layout so an offline-compressed quat and a live-replicated quat share the same encoding. Leaving AnimationCompression untouched to avoid regressing the animation pipeline. Tests (12 new): quat round trip for identity, axis rotations, and an arbitrary normalized quat (within 1e-3 component tolerance); vector round trip at ±10 km (0.2 m tolerance) and ±100 m (5 mm tolerance); out-of-range clamping; degenerate range fallback; NetBuffer byte-count assertions; full-pose round trip ending at 12 bytes vs. 28 naive; short-read error handling. Full suite: 5667/5667. https://claude.ai/code/session_01RQQiNVSeECM4Ha82zeabSJ
Contributor
Code Coverage (GCC + lcov)Per-Subsystem Coverage
Total: 50.9% (28292/55587 lines) |
Contributor
❌ CI Error ReportFailed jobs: clang-tidy, macos-Debug-OpenGL, macos-Release-Metal, macos-Release-OpenGL, windows-vs2022-Release Build ErrorsOther errors (1)Test Failures
|
| Test | Jobs |
|---|---|
| [19:47:15.841] [TID:6784] [WARN ] [Network ] RCON unknown command: nonexistent_cmd (DedicatedServer.cpp:573) | windows-vs2022-Release |
| [19:47:15.858] [TID:6784] [WARN ] [Network ] NetBuffer::ReadUint8 — buffer overrun at pos 1 (size=1) (NetworkBuffer.c... | windows-vs2022-Release |
| [19:47:15.881] [TID:6784] [WARN ] [AI ] BuildNavMeshWithRecast: empty geometry (RecastDetourBackend.cpp:35) | windows-vs2022-Release |
| [19:47:15.881] [TID:6784] [WARN ] [AI ] NavMeshBuilder: Recast build failed, falling back to triangle-soup builder (N... | windows-vs2022-Release |
| [19:47:15.881] [TID:6784] [WARN ] [Audio ] XAudio2 backend requested but no AudioEngine provided, falling back to Nul... | windows-vs2022-Release |
| [ RUN ] FixedTimestep_M[19:47:15.902] [TID:6784] [WARN ] [Graphics ] No graphics backend available — falling back to ... | windows-vs2022-Release |
| [19:47:15.902] [TID:6784] [WARN ] [Graphics ] No graphics backend available — falling back to NullRHIDevice (headless... | windows-vs2022-Release |
| [19:47:15.907] [TID:6784] [WARN ] [Editor ] Cannot host: userName is empty. (CollaborativeEditSession.cpp:454) | windows-vs2022-Release |
| [19:47:15.907] [TID:6784] [WARN ] [Editor ] Already connected. (CollaborativeEditSession.cpp:459) | windows-vs2022-Release |
| [19:47:15.910] [TID:6784] [WARN ] [Editor ] BroadcastEdit rejected: nodeId is empty. (CollaborativeEditSession.cpp:1108) | windows-vs2022-Release |
| [19:47:15.910] [TID:6784] [WARN ] [Editor ] BroadcastEdit rejected: sourceEditor is not set. (CollaborativeEditSessio... | windows-vs2022-Release |
| [19:47:15.911] [TID:6784] [WARN ] [Editor ] SetLocalSelection rejected: nodeId exceeds 255 chars (length=300). (Colla... | windows-vs2022-Release |
| [19:47:21.482] [TID:6784] [WARN ] [Network ] Connection rejected for pending client 5: server full (4/4) (NetworkConn... | windows-vs2022-Release |
| [19:47:21.484] [TID:6784] [WARN ] [Network ] Invalid packet magic 0x6A0E5CB3 (expected 0x5350524B) (NetworkManager.cp... | windows-vs2022-Release |
| [19:47:21.484] [TID:6784] [WARN ] [Network ] Invalid packet magic 0xC6BB6E5B (expected 0x5350524B) (NetworkManager.cp... | windows-vs2022-Release |
Updated: 2026-04-18T19:56:05Z — this comment is updated in-place, not duplicated.
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.
No description provided.