the.bay.news

Refactoring a Monolith Making Project: Hadean Truly Moddable

programming.dev
Refactoring a Monolith Making Project: Hadean Truly Moddable
Archived footage of star system view before the global refactoring. ### How global singletons were killed, async race conditions resolved, and the door for custom player modifications opened ❌ The Problem * Development stagnation: Monolithic generation and logic controller bottlenecked project progress. * High risks: Minor changes threatened to break completely unrelated systems. * Cascading failures: Removing the legacy global singleton caused endless compilation errors. * Pointer errors: Instantiating subsystems before scene tree attachment broke configuration loading ($NullPointer$). 🔄 The Struggle * Dead-end refactoring: Trimming the singleton without changing architecture immediately broke builds. * Rigid hardcoding: Directory paths only functioned within one strictly defined file structure. * Modding unviability: Static paths completely prevented players from installing custom user mods. The Solution * Separation of concerns: Monolith split into independent submodules via Single Responsibility Principle. * Dependency injection: Global singletons replaced with explicit, controlled dependency passing. * Asynchronous readiness: Added scene tree checks before generation, eliminating race conditions. * Dynamic discovery: Engine now automatically locates resources regardless of folder structure. * Language migration: Rewrote code from GDScript to C# for efficient modular development.

0 comments

Sign in to join the discussion — your thebay.events account works here.

No comments yet.