← appaday

A Rogue Leader of my own

Some games you do not remember playing so much as remember flying. For me that is Rogue Leader on the GameCube: a chase camera that swings behind the ship, a stick that banks as it turns, and a trench you have been down a hundred times. This is a browser game trying to get that feeling right. It is a fan tribute, it is free, and it is very much still being built.

Third-person view behind an X-wing flying low over a snowfield under a blue sky, with fog on the horizon, brown rocks and white base buildings below. The HUD reads DESTROY THE WALKERS 0 / 6, a radar at the top, an orange target bracket labelled AT-AT WALKER 2684 m, a torpedo lock, 150 m/s at the bottom left, and a radio message from ECHO BASE: Rogue Leader, six walkers on the north ridge. The generator cannot take a sustained attack
Defence of Echo Base. The snowfield is built from real elevation data with photoscanned rocks on top, and the radio has opinions.

It started as something else entirely

The first message, on the Monday before, was not about any particular franchise:

I want to make a real good starfighter game. Now the X Wing stands for exactly that, it's a symbol for the type of spirit.

I also asked for it to be built in layers — a design document, then an arcade prototype, then an 8-bit one, then 16-bit — because agents do much better work when each layer only has to get one thing right. The design document that came back was an original game called Ash Squadron: you escort the last convoy of a people who have already lost their war, eleven jumps along an abandoned route called the Salt Road. You cannot win; you decide how many of them are still alive at the end. Your ship folds its wings closed to run and opens them to fight. Wingmen have names and stay dead.

The arcade prototype was, in my words at the time, very sluggish, then impossible to win, then MY fighter is sluggish. Each complaint turned out to be a real bug rather than taste. The enemy regenerated its shields faster than a human could damage them — it was literally unkillable — and my ship had been balanced against its maximum power instead of the power you actually fly at, so at normal settings you were slower than the thing you were chasing.

A few days later I skipped ahead to a vertical scrolling shooter, and before writing a line of it the agent went and gathered seventeen free, correctly licensed asset packs into the library all my projects share — noting on the way which ones looked right but were not: side-view ships, ground explosions, and a shoot-'em-up pack that turned out to be propeller planes.

And then it became Rogue

The rest happened on my other machine, and it went to three dimensions and straight to the source of the feeling. What is online now is Rogue, version 0.23: arcade starfighter combat for a pad and a TV.

An X-wing skimming the grey panelled surface of a huge space station toward the horizon under a starry sky, green laser bolts from surface guns crossing the frame. The HUD reads REACH THE TRENCH, WAYPOINT 1921 m, a turbolaser 852 m away bracketed in red, and Red Two on the radio: Surface guns coming up. Stay low and keep moving
Death Star Trench, on the approach. Stay low and keep moving.

The comment at the top of the main file is the whole brief in four lines: a chase camera that lags the ship, a stick that banks as it turns, lasers that converge on whatever you are looking at, and missions scored with medals. The simulation runs at a fixed 120 steps a second and everything you see is drawn on top of that at the screen's own rate, which is why the flying feels the same on any display.

missions
33, from Flight Training to the trench, Hoth, Kessel, Sullust and a temple on a jungle moon
wingmen
Red Two and Red Three, sent in or called back on the D-pad
weapons
lasers, proton torpedoes, barrel roll, boost and brake
code
about 8,300 lines of JavaScript on three.js, no build step
version
0.23

Planets from real places

An X-wing flying over a river of glowing orange lava between black volcanic ridges under a dark brown sky, a laser bolt leaving the right wing. The HUD reads DESTROY THE FUEL TOWERS 0 / 3, a fuel tower marker 1715 m away on the left, and Red Three on the radio: Three towers on the ridges. Keep it above the magma, Lead - that glow is not scenery
Refinery on Sullust. That glow is not scenery.

The look it is reaching for is photographic rather than cartoon: ground built from real elevation data, two blended photographic surface layers, scanned rocks and plants instanced over it, and a photographed sky around the whole thing. The notes for the worlds still to come pick real places on Earth to stand in for each planet — including Tikal in Guatemala for the jungle moon, which is where that moon was actually filmed. The ships and walkers are fan-made models, credited on the select screen along with every photoscan, sound and piece of music.

That look has a price. On the laptop I took these screenshots on, open space ran at sixty frames a second, the trench at about forty, the volcano at twenty — and Hoth, with all its scanned rocks, at four. It wants a proper graphics card, or a TV plugged into one.

An X-wing in open space between a large banded orange gas giant on the left and a small blue-green moon on the right, a grey capital ship in the distance and two more X-wings at the screen edges. The HUD reads PROTECT THE TRANSPORTS and Red Two on the radio: Transports are clear of the atmosphere. Forming up on you, Lead
Ambush at Yavin, the first real mission.

Still rough

It is built for a gamepad; a keyboard works but it is not how it is meant to be flown. Only the first missions are open until you earn the next. Mission balance is whatever it was this morning, and the design document's quieter, sadder original game is still sitting in a folder, waiting to find out what it wants to be.

Keyboard: WASD steer · O lasers · U torpedo · E boost · Q brake · J barrel roll · K next target · I cockpit view · arrows order wingmen · Enter pause.