Skip to content

[MED] Add debug tooling - Chunk inspector, wireframe modes, performance overlays #275

@MichaelFisher1997

Description

@MichaelFisher1997

Problem

The engine lacks runtime debugging tools beyond the basic timing overlay. When issues occur (rendering artifacts, performance problems, world generation bugs), developers have limited visibility into the internal state.

Current State

  • Timing overlay exists (TimingOverlay)
  • Environment variables for disabling features (ZIGCRAFT_DISABLE_SHADOWS, etc.)
  • GPU timing queries

But missing:

  • Visual chunk inspection
  • Wireframe rendering modes
  • Detailed performance breakdowns
  • World state inspection

Proposed Solution

Add a comprehensive debug tooling system:

1. Debug Menu System

  • Toggle key (e.g., F3) to open debug menu
  • Hierarchical debug options

2. Chunk Inspector

  • Visualize chunk boundaries
  • Show chunk states (generating, meshing, renderable)
  • Display chunk coordinates and distances
  • Highlight dirty chunks

3. Wireframe Modes

  • Toggle wireframe rendering for:
    • All geometry
    • Chunks only
    • LOD chunks only
  • Visualize chunk mesh boundaries

4. Enhanced Performance Overlay

  • Per-system timing (world update, rendering, UI)
  • Memory usage stats (chunks, meshes, GPU memory)
  • Active chunk count by state
  • LOD statistics

5. Debug Visualizations

  • Show frustum culling
  • Display shadow cascades
  • Light propagation visualization

Benefits

  • Faster debugging of rendering/world issues
  • Better performance profiling
  • Easier to understand internal state
  • Improved developer experience

Acceptance Criteria

  • Debug menu accessible via hotkey
  • Chunk inspector with visual boundaries
  • Wireframe rendering toggle
  • Enhanced performance overlay
  • Document all debug features
  • Tests pass with debug features enabled/disabled

Related Files

  • src/engine/ui/debug_*.zig (existing debug overlays)
  • src/engine/ui/ui_system.zig
  • src/game/screens/world.zig
  • src/world/world_renderer.zig

Estimated Effort

Medium (requires UI work and RHI integration)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdocumentationImprovements or additions to documentationenhancementNew feature or requestquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions