← Back to Blog

    How We Built Night At The Mall in Unreal Engine 5: Development Diary

    From concept to Steam wishlist, here's the complete story of how our small indie team at Easewin Gaming created a psychological horror game that rivals AAA quality. Learn about our Unreal Engine 5 workflow, the challenges we faced, and the tools that made Night At The Mall possible.

    Play the Result of Our Work

    See how Unreal Engine 5's power translates to psychological horror. Try our free demo and wishlist for the full experience.

    Why We Chose Unreal Engine 5

    When we started Easewin Gaming in 2023, we evaluated Unity, Godot, and Unreal Engine 5. For a horror game focused on atmosphere and visuals, UE5 was the clear winner:

    Lumen Global Illumination

    Horror lives in shadows. Lumen's real-time global illumination lets us create dynamic lighting without baking—essential for our flickering fluorescent lights and player-controlled flashlight. When you shine your light down a dark corridor, the bounced lighting creates authentic dread.

    Nanite Virtualized Geometry

    Abandoned malls need detail: graffiti, scattered debris, broken tiles. Nanite lets us use film-quality assets without killing performance. Our mall has millions of polygons, but runs smoothly on mid-range hardware.

    MetaSounds Audio System

    Sound is 50% of horror. MetaSounds gave us procedural audio—footsteps that adapt to surfaces, dynamic music that responds to threat levels, and 3D positional audio for stealth gameplay. Learn more about our horror sound design philosophy.

    Blueprint Visual Scripting + C++

    Our small team (3 developers, 1 artist) needed rapid prototyping. Blueprints let non-programmers iterate on gameplay while C++ handles performance-critical systems like AI. Best of both worlds.

    The Verdict: UE5's out-of-the-box quality let us focus on horror design instead of engine optimization. For indie horror in 2024-2025, it's the best choice.

    Building the Adaptive AI System

    Night At The Mall's biggest selling point is AI that learns from your behavior. Here's how we built it:

    Phase 1: Behavior Trees (Weeks 1-4)

    We started with UE5's Behavior Tree system for basic patrol and investigation behaviors. Enemies would walk routes, hear noise, and search. Functional but predictable—players learned patterns after one playthrough.

    Phase 2: Adding Memory (Weeks 5-8)

    We implemented a blackboard system tracking:

    • Where players hide most frequently (lockers, under shelves, bathrooms)
    • Paths players take through the mall
    • How players react when spotted (fight vs. flight)

    Enemies started checking hiding spots you'd used before. Players noticed immediately. "The AI is cheating!" they said. Good. That's horror.

    Phase 3: Procedural Tactics (Weeks 9-12)

    The breakthrough came when we added collaborative AI. Multiple enemies now share information:

    • One enemy chases you toward another's patrol route (coordinated ambushes)
    • If you hide in vents repeatedly, they start guarding vent exits
    • Noise distractions become less effective over time—they learn your tricks

    Technical Deep Dive: The Learning Algorithm

    We use a weighted probability system. Each action you take adds "heat" to related behaviors. Hide in a locker 3 times? Locker-checking probability increases by 15% per enemy. After 5 uses, enemies actively patrol locker locations.

    Implemented in C++ for performance, exposed to Blueprints for designer iteration. The system resets between gameplay sessions to prevent becoming unbeatable, but maintains learning within a single playthrough.

    Creating the Mall Environment

    Abandoned malls are liminal nightmares. Here's how we captured that unease:

    The Modular Approach

    We couldn't afford unique assets for every store. Instead, we built modular kits:

    • Storefront Kit: 20 interchangeable glass panels, gates, and signage elements
    • Interior Retail Kit: Shelving, displays, checkout counters that rearrange per store type
    • Decay Kit: Graffiti decals, broken fixtures, water damage textures applied procedurally

    Lighting as Narrative

    Each area tells story through lighting:

    • Main Concourse: Flickering fluorescents—power is failing but recently
    • Food Court: Emergency lighting only—abandoned first, longest decay
    • Back Corridors: Complete darkness—maintenance areas never had public lighting
    • Security Office: Functional lights—your "safe room" creating false comfort

    The Sound of Silence

    We recorded audio in an actual abandoned mall (with permission). Echoes in empty spaces sound different than artificial reverb. That authenticity is horror gold.

    Challenges We Faced

    Challenge 1: Performance on Mid-Range Hardware

    Problem: UE5's cutting-edge features tank performance on older GPUs.

    Solution: We implemented scalable quality settings. Lumen and Nanite disable gracefully on older hardware, falling back to traditional rendering. The game still looks great—just not bleeding-edge.

    Lesson: Always target the Steam Hardware Survey median, not high-end rigs.

    Challenge 2: Balancing AI Difficulty

    Problem: Our AI became too smart. Playtests had 80% failure rates.

    Solution: We added "forgetting" mechanics. AI certainty degrades over time. If you successfully evade for 60 seconds, enemies gradually forget your location. Still challenging but beatable.

    Lesson: Horror should frustrate players emotionally, not mechanically.

    Challenge 3: Maintaining Scope as Indie Devs

    Problem: Feature creep nearly derailed development. We kept adding "just one more mechanic."

    Solution: We created a "core pillars" document: Stealth, Atmosphere, Story. If a feature didn't serve those three, it got cut.

    Lesson: Saying no to good ideas is essential. Perfect the core experience first. Read our full indie horror development guide.

    Tools & Assets That Saved Us

    Indie devs stand on the shoulders of asset creators. Here's what we used:

    Quixel Megascans

    Free with UE5. Provided photorealistic materials for concrete, metal, and decay textures.

    Blender 4.0

    Free 3D software. Used for custom props and character modeling. UE5 import is seamless.

    FMOD Studio

    Professional audio middleware. Handles adaptive music and procedural sound design.

    Perforce (Version Control)

    Git doesn't handle UE5's large binary files well. Perforce is industry standard for game dev.

    Budget Breakdown: Total development cost ~$45K (salaries, software licenses, Steam fees). Kept low by using free/open-source tools wherever possible.

    Lessons for Aspiring Horror Devs

    If you're building your own horror game, here's what we learned:

    1. Start With a Strong Concept: "Abandoned mall horror" is simple but evocative. Your concept should fit in one sentence.
    2. Prototype Fast: Build a vertical slice (one level, core mechanics) before expanding. We had a playable demo in 8 weeks.
    3. Playtest Early and Often: Friends and family aren't enough. Get strangers to play. They'll find issues you're blind to.
    4. Audio is 50% of Horror: Budget equal time for sound design as visual design. A great soundscape saves mediocre graphics.
    5. Build Community Pre-Launch: We started our Discord community 6 months before the Steam page. Those early supporters are our marketing team now.
    6. Marketing is Development: Document your process. Devlogs build hype and keep you accountable. This article is marketing.

    Check out our complete indie horror development guide and Steam optimization tips for more.

    What's Next for Night At The Mall

    We're currently in closed beta with our community members. Planned for Q2 2025 release:

    • Full campaign (8-12 hour main story with multiple endings)
    • New Game+ mode with enhanced AI difficulty
    • Unlockable alternate costumes and gameplay modifiers
    • Post-launch: Story DLC expanding on supporting characters

    Be Part of the Journey

    Wishlist Night At The Mall to support indie horror development and get notified when we launch. Join our Discord to chat directly with the dev team.

    More Development Resources