neon-sprawl/docs/decomposition
VinPropane 15d405261f NEON-27: implement OcclusionPolicy — RayCast-based material fade
Adds OcclusionPolicy resource and wires it into IsometricFollowCamera.
Each _process frame, iterative rays from the camera eye to the player
focus detect bodies tagged "occluder"; their MeshInstance3D surfaces are
overridden with a transparent StandardMaterial3D (fade_alpha=0.25, instant).
Materials restore when the body clears the ray. Null-material surfaces
(e.g. the prototype Obstacle with no material assigned) receive a plain
transparent StandardMaterial3D so they fade correctly.

- client/scripts/occlusion_policy.gd — new Resource (enabled, fade_alpha,
  occluder_group, occluder_collision_mask, max_occluder_cast_depth,
  occluder_count_log_threshold, is_valid)
- client/resources/isometric_occlusion_policy.tres — default instance
- client/scripts/isometric_follow_camera.gd — occlusion_policy export,
  _update_occlusion pipeline, _apply_occluder_fade/_restore_occluder helpers,
  static occlusion_policy_is_valid guard, _exit_tree cleanup
- client/scenes/main.tscn — Obstacle tagged "occluder", policy assigned
- client/test/occlusion_policy_test.gd — new GdUnit4 unit tests
- client/test/isometric_follow_camera_test.gd — policy guard static tests
- docs/decomposition/modules/E1_M2_IsometricCameraController.md — NEON-27
  snapshot + readability demo gate note
- docs/plans/NEON-27-implementation-plan.md — null-material decision recorded
2026-04-08 23:34:00 -04:00
..
epics chore: migrate Jira references from NS-* to NEON-* in docs and rules 2026-04-07 00:15:06 -04:00
milestones Initial project vision and decomposition planning baseline. 2026-03-29 16:09:57 -04:00
modules NEON-27: implement OcclusionPolicy — RayCast-based material fade 2026-04-08 23:34:00 -04:00
tooling chore: add CT content-tooling track and vision plan tooling epic 2026-03-30 23:18:40 -04:00
README.md chore: document Jira epic→story + labels (no Feature issues) 2026-04-07 00:20:01 -04:00

README.md

Decomposition Workspace

This workspace contains detailed planning artifacts derived from the finalized master plan:

Folder Layout

Working Rules

  1. Do not rewrite baseline vision in these files; link back to the master plan.
  2. Keep slices backlog-ready (clear owner, dependencies, acceptance criteria).
  3. Use stable IDs (E1, E1.M1, etc.) for core game epics; use CT.M1-style IDs for content tooling so tooling stays out of the E1E9 sequence.
  4. Every new slice must reference telemetry and validation where applicable.

Jira alignment

Engineering work is tracked as Stories (or Tasks / Bugs when appropriate) under Epics. Do not create Jira Feature issues for module- or slice-level grouping—that middle tier is not used.

Express that grouping with labels on the story instead (for example the decomposition module idE1.M1, CT.M2, etc. — or other labels the team maintains in Jira). The story still belongs to the Epic as today; labels carry what used to be “feature + labels on stories,” without a separate Feature work item.

Epic files (E1E9, master plan)

Epic Document
1 - Core Player Runtime epics/epic_01_core_player_runtime.md
2 - Skills and Progression Framework epics/epic_02_skills_and_progression.md
3 - Crafting Economy epics/epic_03_crafting_economy.md
4 - World Topology epics/epic_04_world_topology.md
5 - PvE Combat epics/epic_05_pve_combat.md
6 - PvP Security epics/epic_06_pvp_security.md
7 - Quest / Faction epics/epic_07_quest_faction.md
8 - Social / Guild epics/epic_08_social_guild.md
9 - LiveOps / Integrity epics/epic_09_liveops_integrity.md

Template for new epics or major revisions: epics/_epic_template.md

Cross-cutting tooling (not E1E9)

Track Document Modules (register)
Internal authoring & content pipeline tooling/internal_authoring.md CT.M1M3

Next Actions

  1. Expand slices into stories under epics; tag module / slice scope with labels (not Jira Features). Keep module IDs aligned with the master plan.
  2. Populate modules/module_dependency_register.md as contracts stabilize.
  3. Refine milestones/phase_execution_plan.md with dates and owners when execution starts.