Up to now, the game just dropped you into a dungeon. Today we built the front door.

Title screen

The TitleScreen is a full-screen overlay with the game title, a Start/Options menu, and Alpha Rabbit Games branding. It’s built entirely through our code-driven GUI system — no Studio-authored UI, no manually positioned frames.

A design decision that shaped the implementation: the title screen is a node component, just like every other piece of the game. It’s not special-cased code that runs before the framework boots. It participates in the same lifecycle, receives input through the same InputCapture system, and communicates with other nodes through signals.

When you press Start, the title screen fires a signal. The RegionManager listens for that signal and begins dungeon generation. Neither component knows about the other’s internals. This matters because it means we can swap the title screen for a different one (or skip it entirely for testing) without touching the RegionManager.

Options menu

The Options menu currently has one entry: Clear Saved Data. During development, saved dungeon data frequently becomes stale when we change the generation algorithm — a seed that produced a 10-room dungeon yesterday might produce 15 rooms today if we changed the branching logic. Rather than asking testers to open the developer console and manually clear their DataStore entry, the Options menu does it with a button press and a confirmation dialog.

It’s a development convenience disguised as a feature. But it’ll eventually grow into a real settings screen.

Pixel font renderer

This was the fun one. We built an 8x8 NES-style pixel font renderer from scratch. Each character is defined as an 8x8 grid of booleans. The renderer takes a string and produces a grid of individual Frame instances — each “pixel” is a small square Frame with a background color.

Character "A" = {
    {0,1,1,1,1,1,0,0},
    {1,1,0,0,0,1,1,0},
    {1,1,0,0,0,1,1,0},
    {1,1,1,1,1,1,1,0},
    {1,1,0,0,0,1,1,0},
    {1,1,0,0,0,1,1,0},
    {1,1,0,0,0,1,1,0},
    {0,0,0,0,0,0,0,0},
}

Why? Because the game’s aesthetic is retro-meets-procedural. Clean vector text doesn’t sell the vibe we’re going for. Chunky pixels do. The title “IT GETS WORSE” rendered in pixel art at the top of the screen immediately communicates “this is an old-school dungeon crawler” before the player reads a single word.

The renderer isn’t efficient — each character is up to 64 Frame instances, so a 20-character title is 1,280 frames. But for static title screen text, performance doesn’t matter. It renders once and sits there.

The game now has a proper first impression. Boot up, see the title in pixel art, press Start, enter the dungeon.