7 LEVELS COMPLETE
1 BOSS ENCOUNTER
5 ACT STORY ARC
47d TO LAUNCH

WHERE IT STARTED

When I began Shadow Raid, the plan was simple: a vertical shooter with escalating difficulty and a four-act campaign. What I didn't plan was how much the story would change things. Act 1 was supposed to end with a kill. It doesn't.

Seven levels take you from an asteroid field above the planet, through desert combat zones, into an enemy base via a canyon corridor — and finally to Lieutenant Vance, the man you were sent to destroy.

THE CANYON — LEVEL 6

Level 6 was the hardest design problem in the act. The original concept had a middle wall dividing the corridor into two lanes with wall-mounted cannons on each side. The problem: it felt punishing and unclear. Players didn't understand why they were taking damage.

The rework removed the middle wall entirely. Now the canyon is open — two bounding walls, cannons mounted on each side. The critical change: cannons only fire when you're below them. Pass one and it's safe. The lane choice becomes meaningful without being invisible.

Cannon rule: if (_py >= y) — fires only at targets below. Pass it, you're clear. The decision is visible, the consequence is fair.

THE BOSS WHO SURVIVES

Every shooter has a final boss. Shadow Raid's Act 1 boss is Lieutenant Vance — and the twist is that he doesn't die.

The mission briefing tells you Vance is a traitor. You fight through seven levels to reach him. You win. And then he says: "Be careful who you trust. The truth might surprise you."

He becomes your ally. The upgrade system — ship improvements between acts — gets its narrative justification. Vance runs the hangar. He improves your ship. And the real question of the story shifts: who gave you the mission, and why?

General Calder — the mission commander — is never seen face to face. Only heard. The reveal is five acts away.

THE ARCHITECTURE OF ENDINGS

One of the cleaner technical decisions in this act was unifying how levels end. Every level now uses the same pattern:

global.victory_stars = _stars;
global.game_state = 1;

State 1 triggers the Victory popup in the HUD manager. Stars are calculated per level — HP-based for L1 and L7, score-based for the combat levels. The popup shows the result, offers Menu or Next, and scr_GoNextLevel handles the routing. Seven levels, one system.

WHAT I ALMOST GOT WRONG

Level 6's star thresholds were copied from Level 5 without adjustment. The scores were unreachable in the redesigned open corridor — players were failing to three-star a level that was mechanically simpler than what came before. Fixed: thresholds dropped to match the actual difficulty curve.

The boss dialogue position was also wrong initially — the speaker name overlapped the portrait. A single Y-offset fix (_name_y = 880) solved it, but it took three test runs to spot.

WHERE THIS LEADS

Act 1 is complete: playable end to end, balanced, with a story beat that sets up four more acts. Next is a full hardware playtest on the Pixel 7A — touch controls, frame rate, difficulty feel on an actual screen.

After that: the hangar scene, the coin economy, and Act 2. A pirate fleet. A separate antagonist with their own agenda. And a trail of evidence that points back to Calder.

July 2026. Solo. GameMaker Studio 2. Pure GML.