Maze Dev Log — Week 3

·

Overview

This week focused on improving development workflows, stabilizing core systems, and expanding foundational features for the maze generation system. A custom editor utility widget was introduced to streamline room creation, significantly improving iteration speed when building modular room pieces. Alongside this, the save and load system evolved from a simple prototype into a modular and reusable system capable of handling multiple actor types. Additional work was done to improve menu performance and visual previews by replacing dynamic generation with optimized assets. Overall, this week marks a transition from early experimentation toward more structured and scalable systems.


Major Accomplishments

• Created an editor utility widget for rapid room module configuration
• Implemented a modular save/load system using a Save Participant architecture
• Fully integrated save system supporting maze data, player state, and decals across multiple slots
• Reworked main menu previews using optimized level instances with LODs
• Improved asset pipeline and consolidated base meshes


Systems Developed or Updated

RoomMaker Editor Utility System

• Provides a visual tool to configure room templates by toggling walls and doors
• Allows linking directly to a selected BP_RoomMaker instance in the level
• Added controls for per-segment visibility and a full reset option
• Significantly improves speed and consistency when creating modular room pieces
• Current state: Functional


Save / Load System (Modular Architecture)

• Handles saving and loading of maze seed, maze size, player transform, and decal data
• Initial version supported a single slot and basic data serialization
• Updated to a modular system using a Save Participant Component attached to actors
• Uses Write Data and Read Data interfaces for decoupled data handling
• Expanded to support multiple save slots and reusable across projects
• Current state: Functional


Decal Persistence System

• Captures decal-specific data such as texture, type, color, and transform on save
• Stores data in structured arrays for serialization
• Reconstructs decals on load using saved parameters
• Integrated into the modular save system workflow
• Current state: Functional


Main Menu Preview System

• Displays maze previews using prebuilt level instances instead of runtime PCG generation
• Added LODs to preview meshes to improve performance and loading times
• Results in smoother interaction when switching between maze sizes
• Current state: Functional


Overhead Compass Display

• Introduced initial implementation of an overhead compass UI element
• Work started but not yet fully developed or integrated
• Current state: Functional


Problems Encountered and Solutions

Problem: Initial save system was limited and not scalable across multiple actor types
Cause: Save logic was centralized and tightly coupled to specific systems
Solution: Refactored into a modular Save Participant system using components and interfaces, allowing each actor to handle its own data

Problem: Menu preview generation caused performance slowdowns
Cause: Real-time PCG generation was too heavy for UI-level previews
Solution: Replaced dynamic generation with prebuilt level instances and added LODs to reduce rendering cost


Current Project State

The project is currently in a structured system implementation phase, with several core systems now functional and interconnected. The maze generation workflow is supported by improved tooling, while the save/load system has reached a reusable and scalable state. UI elements and preview systems are becoming more optimized and stable, allowing for smoother interaction. Overall, the project is moving beyond early prototyping into a more production-ready foundation.


Next Week Plan

• Continue development of the overhead compass system
• Further refine UI systems and interactions
• Expand and polish the RoomMaker workflow
• Improve modularity and reuse of existing systems
• Address remaining edge cases in the save/load system