Dev Log 12

dev-log-12

Dev Diary: August 26, 2025
Location: Scene: Bootstrap sanctum → Title chamber → Dev portal

🧩 Ritual Summary: Singleton Sanctification & Tracker Resurrection

After some attempted polishing, player select screen adjustments and configuring of already in place systems ,I ran into some issues …

  1. Duplicate Warden Banished

Issue: PlayerProgressManager was duplicated when returning to the Title scene, when accessing my DEV Portal upon runtime test from title screen.

Cause: Unity instantiated a second prefab due to DontDestroyOnLoad and scene reload.

Resolution: Moved PlayerProgressManager to my Bootstrap scene. Enforced singleton logic. Title scene prefab removed.

Outcome: No duplication. Warden persists across all scenes.

“The Progress Warden now awakens only once. Her ledger is sacred. No clone shall rise.”

  1. Undead Tracker Nullified
    Issue: ZombieKillTracker.Instance was now null during cheat simulation. Despite previously working with no issues and no initial apparent cause.

Cause: Tracker was now not present or initialized before CheatManager invoked it.

Resolution: Placed ZombieKillTracker in Bootstrap. Enabled persistAcrossScenes. Verified Awake() execution.

Outcome: Tracker now persists and registers kills without error.

“The undead ledger rises in the sanctum. Blood is counted. “Redacted Hidden Character” remembers.”

  1. Phantom Tracker Destroyed
    Issue: Duplicate ZombieKillTracker spawned in Dev scene.

Cause: Prefab present in multiple scenes, conflicting with persistent instance due to oversite.

Resolution: Removed all non-bootstrap instances. Singleton logic enforced.

Outcome: No duplication. Tracker survives scene transitions.

“A second tracker tried to rise. The ritual forbade it. Echo watched.”

  1. CheatManager Called Too Soon
    Issue: PlayerProgressManager was null in Dev scene when cheat button was pressed.

Cause: Impostor syndrome growing and showing. Dev scene launched directly in Editor, skipping Bootstrap initialization. Inexperience showing, lesson learned.

Resolution: Ensured play mode starts from Bootstrap. Added validation to redirect if skipped.

Outcome: All managers now awaken in correct order.

“The cheat priest reached for the Warden, but the ritual had not begun. The Bootstrap chamber was restored.”

✅ Final State
No warnings.

No null references.

All singletons persistent and clean.

CheatManager functions as intended. Another temporary moment of clarity. Scene flow purified.

🧭 Scene Navigation System

Refactored SceneTransitionManager to handle wraparound logic across PlayerSelectScene/s 01–09.

Corrected scene name formatting using index:00 to match actual scene files.

Integrated ScreenFader for smooth transitions with fallback logic

Verified fade behaviour across all chambers—loop is sealed.Needs Polish…

🌒 ScreenFader Enhancements

Added [SerializeField] fields for defaultFadeInDuration and defaultFadeOutDuration

Fade timing now fully configurable from the Inspector

Fade-in duration doubled to mask panel removal and smooth unlock transitions

Panel removal bodge now mythologized as cinematic sleight-of-hand with timings adjusted to match.

🖼️ Logo Integration Prep

Confirmed ability to layer a game logo into the fade canvas

Logo can ride the veil during fade-in for polish and brand presence

Planning visual identity to echo game themes: survival, legacy, duality

🧠 Serialization Revelation – Imposter syndrome part 2.

Discovered the power of [SerializeField] after 6 weeks of grind.

Now ritualizing Inspector control across systems

Backend-first logic meets frontend finesse — Sigils unlocked.

🔒 Unlock Rituals

Confirm/Unlock logic now tied to fade timing

Survivor selection feels mythic, not mechanical , still needs polishing, but is getting into a good state. Feeling good about it.

UI transitions masked with cinematic weight

“The veil flickered. The sigil was chosen. Echo watched as the archive pulsed green and the city broke beneath the weight of memory. The logo was summoned, tested, and embedded into the fade—marking the myth’s first breath. The grind slowed, but the legacy deepened. The architect prepared for sleep, knowing the ritual continues tomorrow.”

Date: 27 August 2025

Module: ScreenFader.cs – Scene Transition System Version: Demo Alpha v0.3.7 – (V 0.01)

🔧 Objective – Continued polish and improvement.
Implement a seamless scene transition system using a black screen fade and overlay logo (Echo’s sigil). The goal: make transitions feel mythic, smooth, and immersive—no visual stutter, no lingering artifacts.

⚙️ Initial Setup
CanvasGroup used to fade black screen in/out

Logo image (Image) layered above black screen

Serialized fields for fade durations and logo timing multipliers

Logo starts invisible, fades in during FadeOut, fades out during FadeIn

🧪 Trial & Error Phases
Phase 1: Logo Not Appearing
Logo image assigned but not visible

Cause: CanvasGroup alpha affecting all children

Fix: Logo moved outside fading group or faded via Image.color.a

Phase 2: Logo Always Visible
Logo appeared on game start and lingered into scene

Cause: Alpha not reset properly in Awake()

Fix: Explicit logoImage.color = (1,1,1,0) on init

Phase 3: Logo Fades Opposite to Black Screen
Logo faded out when it should fade in

Cause: Fade direction inverted in coroutine

Fix: Reversed Mathf.Lerp() logic for logo alpha

Phase 4: Scene Switch Pop
Logo vanished before scene load, then reappeared in full contrast

Cause: Alpha reset between FadeOut and FadeIn

Fix: Logo remains visible across scene load, fades out smoothly during FadeIn

Phase 5: Timing Misalignment
Logo lingered too long after scene load

Cause: Fade duration too slow relative to black screen

Fix: Introduced logoFadeOutCutoff to accelerate logo fade-out (e.g. 60% of duration)

🧠 Notes for Future Polish – not implemented yet.

Add easing curves for smoother alpha transitions

Optional scale pulse or glow flicker on logo appearance

Consider shader-based fade for higher fidelity

Integrate transition audio cue synced to fade midpoint
????

Task: Resolve gear display names from backend IDs in PlayerSelectUI Status: ✅ Completed

My player starting gear text block was displaying the back end item id reference rather than the in game display name of all gear items.

🔧 Summary & Fix
Created and populated GearRegistry with 510 gear assets from Assets/GearAssets

Refactored PlayerSelectUI to resolve startingGearIDs into player-facing display names

Preserved backend integrity—no new fields added to GearItem, no schema drift

UI now shows clean gear names via gearDisplayListText, replacing obsolete ID block

Registry supports future filtering by slot, faction, and inventory relevance

🧠 Lessons Logged during reformat.
Avoid premature field creation—check schema first

Registry references do not duplicate or relocate assets

Progress often arrives sideways, but mythic clarity is worth the detour – 1+1 = 2 = 1 = 3 = 6

🧪 Ritual Outcome
Echo’s loadout now speaks in readable terms. The archive is visible. The grind continues. Progress is slow, Real life interferes … or gives me a break from the grind, can’t decide…

Is this a hobby project or a unpaid 2nd job ? Undecided.

Today’s progress wasn’t flashy—but it was foundational. One step forward in terms of functionality, but two steps deeper in terms of system clarity and schema discipline. That’s real progress I guess. Slow , but progress.

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
pricing-certified:-masters

Pricing Certified: Masters

Related Posts