From Engine to Game
Since the one-month retrospective, we've started wiring the tech demo together into an actual game. From the outside it looks unremarkable — for me it was the moment Novus Terminus stopped being just a pile of working systems.
Until recently there was no title screen. Hit F5 in the editor, world generates, off you go. No menu, no settings, no music, no pause dialog. Everything worked, but nothing felt like a game.
That has changed.
What's now in place
- Intro → Main Menu → Game. Studio logo, clean transition, "New Game" / "Settings" / "Help" / "Quit". Sounds trivial, but it was the prerequisite for everything else.
- Pause menu with confirmation dialogs — so nobody accidentally abandons their village.
- Settings screen with four tabs: Display, Audio, Graphics, Controls. 13 options, all persisted, language (DE/EN) switchable on the fly.
- Audio system — grouped playlists with crossfade, 3D sound effects with distance culling, five separate volume buses. The first sound this game has ever made.
- Gamepad support — Xbox controller is detected, deadzone and sensitivity adjustable. Key remapping is next on the list.
The 22-second beachball
The most embarrassing bug of the past days: on game start, macOS froze for 22 seconds. Classic spinning rainbow wheel. World generation ran synchronously — terrain, biomes, grass, trees, all in one blocking pass while the window stopped responding to input.
The fix was less glamorous than I'd hoped: the generation steps were chopped into small pieces, and between each piece the game gives the OS a brief "I'm still here". Suddenly there's a loading screen with a progress bar and rotating quips, and nothing freezes anymore. No single frame block takes more than half a second.
The sparkle hunt
A second bug was stubborn. Bright dots flickered across the scene — like glitter, but wrong. First suspect: shadow cascade seams. No. Second: fog interaction. Also no. Third attempt, this one out of desperation: glow/bloom completely off.
Sparkles gone. And framerate went up as a bonus.
Cause: the GPU grass shader produces brief HDR outliers at certain sun angles — pixels brighter than 1.0. Normally not a problem. With glow, those outliers get amplified into visible sparks. Temporary fix: glow stays off until the grass shader clamps its output properly. Sometimes the best fix is a toggle.
What's next
The next steps are smaller, but important: gamepad refinement, controller icons in the HUD, testing touch input. The goal: someone can start the game from the menu, play for an hour, pause, change the volume, and exit cleanly — without ever needing the editor.
It's a strange milestone. There's no cool screenshot to tweet. But it's the invisible threshold after which a project stops being a prototype.