DEV Community

John
John

Posted on

Dev Log 19 - Chaos To Clarity

🧾 Dev Log: Legacy Reboot — From Chaos to Clarity

Date: 9–10 September 2025 Scene: Layout Foundation, Registry Integration, Studio-Grade Pivot Mood: Focused, relieved, and finally respected by the pipeline

🧱 The Grind
Started this project with no Unity UI experience — just a concept and a little spare time. It’s now been around three months, give or take. I’ve been brute-forcing my way through learning by doing, with an AI assistant helping me navigate the chaos. It’s been an interesting journey so far.

I’ve struggled like crazy, especially with layout compatibility across devices. I made a noob mistake — a huge one. I didn’t use anchors, pivots, or layout tools properly. I built everything in simulation mode using a Galaxy S7, thinking its simple screen layout would be safe. I used that setup for weeks.

I assumed a SafeAreaHandler.cs script would fix everything across mobile devices. It didn’t. Game View lied. Prefabs betrayed me. Layout drifted across devices like a bad dream. But I kept going — auditing anchors, pivots, and overrides scene by scene. Every fix was a ritual. Every breakthrough, a closure.

✅ SafeAreaHandler: validated

✅ Pixel 5 & iPhone X simulated: revealed the truth after two days of struggle

✅ Anchor/Pivot Audit: thought it was complete across key scenes

Then came the pivot. I made the call to drop mobile support entirely. I couldn’t get it to work. Frustrated by weeks of trial and error, I shifted focus to desktop. The final plan: a Steam version. No Play Store. No Apple Store. No adjusting for a hundred devices. Just one solid layout.

🔧 The Pivot
✅ Mobile support archived

✅ Resolution locked to 1920×1080

✅ Touch input deprecated

✅ Mouse + keyboard logic scaffolded

✅ Canvas scaler set to Constant Pixel Size

✅ Background images expanded via AI — now widescreen, atmospheric, layout-ready

✅ UI zones defined: header, main panel, sidebar, footer

✅ All canvases and panels adjusted

✅ Scene-wide prefab safety enforced

✅ Environmental registry integrated — 50+ modular objects imported, schema-safe, runtime-ready

🧠 The Lessons
Game View is a liar. Device Simulator is truth.

Anchors and pivots are sacred. Use them from the start.

Prefab overrides must be earned, not assumed.

Layout is not cosmetic — it’s narrative.

Every technical fix is a story beat in the myth of development.

Learning by experience is more fun than tutorials — and just as important, if not more important.

If you can’t fix the problem, change the goal. In this case, it worked.

🔮 The Future
Survivor Selection Panel: next in line for scaffolding

Steam Demo Prep: vertical slice incoming

Coming Soon Page: assets and copy to be drafted

Rights Delegation: monetization handoff ritualized, futureproofed, tax-safe

Studio Identity: if the game succeeds, rights reclaimed, legacy formalized

Discord: to be set up for community engagement if/when needed

This wasn’t about money — it was about making something I wanted to play. A game I haven’t seen done like this before. Something with depth, story, and replayability. Something unique. Something that could outlive me.

With the layout locked, the registry sealed, and the pipeline finally respecting me, I’m ready to build forward. Slow progress — but solid progress.

Registry Status:
✅ Environmental objects imported
✅ Layout reborn
✅ SafeAreaHandler archived
✅ Legacy preserved
✅ Future unlocked

🧾 Dev Log — 10 Sept 2025

Milestone: Trait-aware branching system activated

Completed most of the UI and layout issues. Now mirroring the updated player profile scene for character 1 across the others — mostly copy/paste and data tweaks.

Able to playtest the start of the game now, at least the basics, with the first couple of story choices.

Summary: Narrative engine now supports gear-based conditions, slot presence checks, and environmental hazard gating. StoryNodeLoader resolves conditional text variants using PlayerStats.HasCondition(), interpreting traits like waterproof, gasResistant, and negated forms (notWaterproof, bareFeet).

Variant 1 matched and rendered correctly in node_0004, confirming full system integration. Debug logs confirmed match and previewed output. Fallback story text added as a failsafe.

Changes:

✅ PlayerStats.cs: slot-aware trait checks, negation support, fallback logic

✅ StoryNodeLoader.cs: hardened variant selection, environment gating, debug previews

✅ JSON schema: standardized condition format (["waterproof"], ["notWaterproof"])

✅ Console settings: stack trace verbosity reduced

Validation:

Variant 1 matched: Conditions=[bareFeet, notWaterproof]

Text rendered successfully in UI

No runtime errors or deserialization issues

Debug preview confirmed non-empty output

Next Steps:

🧠 Extend condition system to support contaminated, quiet, fireResistant, etc.

🧠 Add visual trait indicators to gear slots (considered)

🧠 Write trait validator to scan gear registry for missing tags (fallback auto-tagging already in place)

Status:
✅ Simulation-grade branching logic online
✅ Gear traits influence narrative flow
✅ Environment hazards respected
🔜 Ready for deeper survival logic and encounter gating

🧠 Reflection
This wasn’t a test. It was a ritual. The system matched the player’s gear state, interpreted negation, and delivered the correct narrative beat. No hacks. No overrides. Just clean branching logic, flowing from registry to runtime.

The layout issues disheartened me temporarily — but now I head in a new direction, armed with lessons earned the hard way.

Quote of the Day: "The system didn’t crash. It bowed."

Top comments (0)