AI Engineer 履歴書へ
Game · Space Sim· 2026

PICKET

A Space Combat Sim in the Shape of the 1993 Ones

PICKET
PICKETGame · Space Sim

Picket is a space combat sim built the way they were built in 1993: solid flat-shaded hulls, a cockpit you fly from the inside of, named wingmen who stay dead, and a jump drive that will not spin up while something hostile is close aboard. It is named for the ship posted ahead of the fleet to give warning — which is also the job.

Origin Story開発の背景

It is in the spirit of Wing Commander (1990) and Elite (1984), and it takes their constraints seriously rather than decoratively. Everything is drawn into a 320×200 framebuffer and blown up with nearest-neighbour filtering, so the pixels stay chunky; music and every sound effect are synthesised at runtime by a two-operator FM synth, with nothing sampled. Adopting the limits is what forces the design decisions to be real ones.

How It's Builtつくり方

The campaign is twelve missions in four acts, with briefings, debriefs, scripted radio beats and an unlockable dossier. Nine years ago the Ridge fought a war it lost by winning; one ship was still working when the shooting stopped, and its standing order was recover, repair, return to service. Nobody cancelled it. Objectives are deliberately not all 'kill everything' — hold a scan on a drifting hull, escort an unarmed lighter, break a tow, race four scouts' signal timers, survive and jump out, and finally take nine kilometres of slipway apart node by node.

Engineering Notesエンジニアリングノート

Re-squaring the basis every frame

Orientation is a full 3×3 rotation matrix integrated from angular velocity, which drifts out of orthonormality within a minute or two of flying — the axes stop being unit length and square to each other and the ship starts to shear. Gram-Schmidt re-squares it each frame, treating forward as authoritative because it is what the player aims with.

Painter's algorithm and its limits

Objects are depth-sorted, then faces within each object — correct for convex hulls that do not overlap, and what the era did. Faces straddling the camera plane are clipped against the near plane first, because a polygon crossing z=0 projects to infinity. Planets are drawn as shaded discs rather than meshed spheres: at that distance a sphere is a disc, and the terminator, banding and lit limb each cost one arc.

Keying the cockpit plate

The canopy was supplied as a green screen, and three things had to be right, each of which failed visibly first. Key on saturation rather than brightness — the screen green runs 2.7× red while the ribs' own highlight is only 1.3×, so a brightness key eats the highlight and punches holes in the metal. Downsample by block rather than by point, since each output pixel covers ~3.6 source pixels and sampling one leaves green speckle along every edge. And de-spill, or every outline wears a halo. The tool reports orphan pixels removed; that number should be 0.

A fight that cannot be won without you

Rounds fired by one AI at another land at a fraction of their strength, damped hardest for your own wingmen. Vane can hold a bandit off you, but she cannot clear the sky while you watch — which is the difference between having a flight and being a spectator to one.

Galleryギャラリー

PICKET — screenshot 1
PICKET — screenshot 2
PICKET — screenshot 3
PICKET — screenshot 4

The two things that make it feel like 1993 are not the pixels. They are that your wingmen are finite, and that leaving is something you have to arrange rather than something you can do. Both are rules, not effects — and rules are what the era actually got right.

What It Does主な機能

01

A Roster That Stays Dead

Vane, Ash, Koto and Bril fly with you, and if one dies she is gone for the rest of the campaign. From Act III the tender flies your dead back at you, by name, at exactly the skill number they had, because that is what the flight recorder wrote down. A lost pilot's record is struck through and marked RECOVERABLE; once the revenants start flying it reads IN SERVICE — NOT OURS.

02

Enemies That Fly Attack Runs

They come in, take their shot, break off through the merge and extend into clear space before turning back — passes you can point at, rather than a ring of ships orbiting your canopy. They lead their shots and run when they are hurt. The fight is tuned so it cannot be won without you: rounds fired by one AI at another land at a fraction of strength, damped hardest for your own wingmen, so Vane can hold a bandit off you but cannot clear the sky while you watch.

03

A Jump Drive You Have to Earn

2.6 seconds to spin up, and it refuses to start with hostiles inside 700 units. You cannot simply leave when it turns bad — you have to make space first.

04

Transit Rings

Warp points inside a mission. Fly into the throat, hold the drive key, and the mission builds a different piece of sky around you: the tow lane's far end, the yard interior, the tender's berth. The ring will not fire with hostiles close, same as the drive.

05

Missiles With a Real Seeker

Arm them and the sight grows a seeker gate. It takes the nearest contact on your nose by itself — twenty-eight degrees, out to 1600 units — and holding it there for under a second closes the brackets to a lock. Let it slide off the nose and the lock bleeds back out. One lock, one missile, and the missile leads its target instead of chasing it.

06

Six Locations, Twenty-Two Hulls

Kestrel Gate, Anvil Picket, Harrow Reach, Marrow Field, Tessellate Yard and Sable Deep, each with its own colour of void, its own star, near-field dust and clouds at infinity. Kestrel's ice giant carries a ring that throws a shadow across itself; Anvil's homeworld has lights on its night side. The hulls run from a 30-hit-point recovery drone to a fortress and nine kilometres of fleet tender.

Where It Stands現在地

Picket is a complete twelve-mission campaign in four acts, with six locations, twenty-two hulls, a roster that persists its dead and an in-game flight manual. It runs from any local server today but has not been packaged or published — a signed macOS shell around the same unmodified game, as Causeway ships, is the obvious next step.

// UNDER THE HOOD
技術構成

Plain ES5 in classic script tags — no build step, no bundler, no dependencies. Orientation is a full 3×3 basis rather than a heading, because a fighter has to be able to point anywhere; it is integrated from angular velocity and drifts out of orthonormality within a minute or two of flying, so every frame the basis is re-squared with Gram-Schmidt, treating forward as authoritative because it is what the player aims with. The stick commands an angular rate the airframe accelerates toward and damps out of, so centring it does not stop the rotation dead — that lag is what gives the ship mass. Hidden surfaces are handled by painter's algorithm: objects depth-sorted, then faces within each object, with faces straddling the camera plane clipped against the near plane first because a polygon crossing z=0 projects to infinity. Planets are real bodies at real coordinates lit by the same sun as the hulls, drawn as shaded discs rather than meshed spheres — at that distance a sphere is a disc, and the terminator, banding and lit limb each cost one arc. The cockpit is a painted plate whose canopy was supplied as a green screen and keyed to transparency, so the world renders full-frame with the plate over it and the frame ribs occlude for free, with no clipping maths at all.