GR Gunrunners

A jump-n-shoot for Linux and Android

GUNRUNNERS

Couriers for hire. Forty-two jobs. A client called MAX who pays by the job and says don't ask what's in the box. Run, jump and blast your way across neon rooftops, a lost temple, a frozen space station and an alien hive planet, in a platformer that plays like Duke Nukem II.

  • 49 levels
  • 42 bonus levels
  • 6 runners + your own
  • 6 vehicles
  • 0 samples: every note made in code
Front of the Gunrunners box: the six runners in front of a neon city, a tank, a space ship and a ringed planet.
Back of the Gunrunners box: the story blurb, four screenshots, the feature list and the six runners.

Gameplay

Three promo trailers cut from real gameplay, then six clips straight out of the game.

Trailers

Tonight on MaxTV · host Lance Marquee sells the show, with a word from Halcyon Arms
The Runners · all six hype the game and fight over the last word
The Championship · two commentators call a live championship run

About a minute each, with voice-over and the game's own music. The voices are text-to-speech; captions are in the player's CC menu.

Straight from the game

Recorded straight out of the game, sound and all. The bot plays (it plans its moves by simulating the level), the art is all vectors and every sound is synthesized live.

Rooftop Run · neon signs that are only solid on the beat
Maglev Express · a fight along a running train
Idol Mines · mine carts that keep their speed
Gravity Lab · gravity switches flip the room
Kaiju Tonight · a monster movie with model tanks
Starfall · fly the courier ship through an asteroid field

Clips start muted: hit the speaker icon to hear the soundtrack.

The story

It's a 1987 that never ended. In a diner in Neon City, three phones chime at once. A scrambled hologram rises out of the table:

MAX “Three couriers. Forty-two jobs. Paid by the job. Don't ask what's in the box.”

So the runners run. A package on a rooftop where the signs keep time. A gunship called Black Halo. A jungle temple, a golem made of gold, a research station in orbit whose AI has locked the crew out. Every job ends with a prototype weapon in a green box, and every prototype goes back to MAX.

But a gunship shouldn't carry a camera lens. Temple gold shouldn't weigh nothing. And nobody should hear a laugh track in the jungle.

Somebody is watching. And the ratings are through the roof.

Show the rest (spoilers for Episodes 3 to 7)

At the end of Station Zero a wall falls over and the runners are standing in a TV studio, in front of a cheering audience. The host, Lance Marquee, thanks them for “season one of GUNRUNNERS” on behalf of the sponsor, Halcyon Arms: buyers in forty countries watched every prototype at work.

DASH “We've been running their guns.”

Season Two drops them through a trapdoor into the network itself: a Western, a haunted manor, a cooking show, a kaiju movie, film noir and a cartoon. Then a faint voice in the static teaches them to tune the signal and climb the transmitter mast. The voice is Maxine Vale, the show's director, who was MAX all along and hid the candid cameras where they would be found. The finale is live, and this time the runners pick what goes out on air.

And Episode 7? A misdialled teleport beam dumps them on Vurr, a living alien planet, where a relic called the Star Seed has to be taken back before the Hive Mother gets it.

A briefing cutscene: Dash, Rocco and Nova on a rooftop, MAX on the line: Excellent.
Every level opens with a briefing cutscene.

The runners

Pick one, or swap mid-level with a single button: weapon, ammo and items carry over. They differ in health, jump height and what they start with.

Dash: spiky blond hair, cyan shades, red jacket.

Dash

The all-rounder

Hearts
9
Jump
7 cells
Starts with
Blaster

Duke's own jump and a cool head. Does the talking when somebody has to.

Rocco: bearded, red bandana, green shirt, rocket launcher.

Rocco

The heavy

Hearts
12
Jump
6 cells
Starts with
12 rockets

Ex-cop, lowest jump, most hearts. Asks the awkward questions.

Nova: pink ponytail, purple racing suit.

Nova

The acrobat

Hearts
7
Jump
9 cells
Starts with
16 laser shots

A courier in a racing suit with the highest jump. Flies anything.

Jade: goggles, orange vest, flamethrower.

Jade

The pyro

Hearts
10
Jump
7 cells
Starts with
48 flamethrower shots

Down + fire on the flamethrower is a jetpack. Jade knows.

Skye: white braid, teal jacket.

Skye

The scout

Hearts
8
Jump
8 cells
Starts with
47 s of rapid fire

Fast hands and a high jump. Makes the first minute count.

Bolt: a robot with an antenna and a green visor.

Bolt

The machine

Hearts
11
Jump
6 cells
Starts with
a full laser

A robot. Heavy, hard to dent and fully charged.

Not enough? NEW RUNNER on the select screen builds your own: human or robot, hair, face, outfit, colours, a starting gun and ten points to spread over health, jump and power.

Villains, bosses and other trouble

Almost every level brings its own residents. Some of the over 150 kinds of enemy, and the ones that run the show:

Chopper Down: the Black Halo gunship over the harbour.

Black Halo

Level 7 · Chopper Down

A gunship with a searchlight and a rope full of troopers. Lock-On Rockets help. It also carries a camera lens, for some reason.

The Idol Awakens: the golden Idol Golem.

Kaan-Tolok, the Idol Golem

Level 14 · The Idol Awakens

The temple's golden guardian. Every gem you pick up feeds a greed meter that plates the golem in gold; gems offered at the altars bring it back down.

ZERO: the station AI's red eye.

ZERO

Level 21 · ZERO

The station's AI rewires the level around you while you work out why it keeps saying “please be quick.”

Buddy Boom, a giant cartoon puppy in a circus big top, calls PIE TIME.

Buddy Boom

Level 28 · Toon Town Throwdown

A rubber-hose cartoon star with a mallet, a pie and a giant pencil that draws new floors (and erases yours).

The Halcyon Titan, a white mech on the transmitter mast, overheating.

The Halcyon Titan

Level 35 · The Transmitter

Halcyon Arms' biggest demo model, sent up the transmitter mast to keep the signal from pointing home.

The Hive Mother charging at a runner in her chamber.

The Hive Mother

Level 49 · The Hive Mother

The queen of Vurr on a throne of eggs, with Spore Nurses to heal her. Shoot her crown when it glows. Then run.

MAX

The anonymous client: a scrambled hologram, a fat fee per job and a strict no-questions policy.

Halcyon Arms

Makers of the prototypes the runners keep fetching. Slogan: Peace through firepower.

Lance Marquee

All teeth and cue cards. Turns up later, and he has a hover podium.

A few of the residents

Seven episodes

Every campaign level (1 to 42) has its own twist, its own prototype weapon, its own soundtrack, secrets, a briefing and a bonus level behind a flickering TV. “WE'LL BE RIGHT BACK!” Deep Space has twists of its own.

Rooftop Run at sunset.

Episode 1

Neon Overdrive

A 1987 that never ended

7 levels
  1. Rooftop Run
  2. Glass Canyon
  3. Club Laserdisc
  4. Blackout
  5. Sludge Line
  6. Maglev Express
  7. Chopper Down
Canopy Road in the jungle.

Episode 2

Lost Temple

Gold, traps and a golem

7 levels
  1. Canopy Road
  2. Hall of Traps
  3. Sun Mirrors
  4. Idol Mines
  5. Lava Heart
  6. Boulder Run
  7. The Idol Awakens
Gravity Lab aboard Station Zero.

Episode 3

Station Zero

A frozen base in orbit

7 levels
  1. Hangar Bay
  2. Cryo Labs
  3. Hydroponics
  4. Hull Walk
  5. Gravity Lab
  6. Reactor Core
  7. ZERO
Dry Gulch, a Western town.

Episode 4

Channel Surfing

Every channel is a level

7 levels
  1. Dry Gulch
  2. Fright Night Manor
  3. Too Many Cooks
  4. Tiny Kingdom
  5. Kaiju Tonight
  6. The Long Rain
  7. Toon Town Throwdown
Storm Relay.

Episode 5

Signal Hunt

Find the transmitter

7 levels
  1. Dead Air
  2. Fiber Trench
  3. Storm Relay
  4. Dish Array
  5. Magma Mainframe
  6. Zeppelin Relay
  7. The Transmitter
The Gallery, a TV control room.

Episode 6

Live Finale

The show must go on

7 levels
  1. Prop Warehouse
  2. Wardrobe
  3. Writers' Room
  4. The Gallery
  5. The Fly Tower
  6. Sweeps Week
  7. The Live Finale
Crash Garden on the alien planet Vurr.

Episode 7

Deep Space

A misdialled beam to an alien world

7 levels
  1. Starfall
  2. Crash Garden
  3. Hive Gullets
  4. Crystal Drift
  5. Silk Canyon
  6. Bounder Plains
  7. The Hive Mother

Playable any time from WORLD SELECT. No bonus levels here: Vurr has twists of its own.

Motor Pool: a runner flies the helicopter over the city at sunset.

Extras

Motor Pool & Deep Dive

Two levels built around the vehicles

Tank, helicopter, hoverbike, submarine, space ship and mech. Hits go to the armour, not your hearts.

Plays like Duke Nukem II, then some

Frame-accurate movement

The jump arc, ladders, hang bars and the flamethrower jetpack are ported from Duke Nukem II via RigelEngine.

Bonus levels

Find the TV static and press up: a short level with crazy rules, then back where you were. Beat it for a Bonus Star.

The Arsenal

Almost every level hides a prototype weapon. Reach the exit with it and it joins your collection, with your best kill count.

Secrets

A rubber duck in every level, candid cameras, hidden gem caches, the letters G-U-N and the number 42 somewhere.

A soundtrack per level

Synthwave, house, dub, marimba, slide guitar, a waltz, noir trumpet, big band, arena rock. All synthesized: no samples.

Play anywhere

Keyboard, most gamepads (Xbox, PlayStation, Switch Pro, 8BitDo, Steam Deck), or touch on Android. Five save slots plus quick save, optionally synced to an S3 bucket.

Get the game

Free software under the GNU GPL, version 2 or later. No ads and no accounts.

Android

Install with F-Droid from Paul's repository: open snonux/fdroid for the one-tap link and QR code, or add https://snonux.github.io/fdroid/repo under Settings > Repositories and search for Gunrunners.

On-screen thumb controls, or any Bluetooth or USB gamepad.

Linux

Grab gunrunners-vX.Y.Z-linux-x86_64.tar.gz from the latest release when it carries one, unpack it anywhere and start gunrunners. It needs SDL2, Cairo, libcurl and the DejaVu fonts. Or build it, on any architecture:

git clone https://github.com/snonux/gunrunners
cd gunrunners
sudo dnf install gcc-c++ cmake SDL2-devel cairo-devel libcurl-devel   # Fedora
sudo apt install build-essential cmake libsdl2-dev libcairo2-dev libcurl4-openssl-dev   # Debian/Ubuntu
./build.sh -r

The source

Everything is on GitHub: the C++ engine, all 49 levels as text files, the cutscene scripts, the synthesizer and the tools that drew this page's box art and recorded its clips.

github.com/snonux/gunrunners