All games

Arcade shooter

XenoTech

Nothing Is Coming to Help

A hundred waves is one night. It starts in a ruined street at four in the morning and ends in the same street at dawn, and the shape of the run is you following them home and then being chased back out.

Play now — XenoTech

Browser — phone or desktop

How a wave goes

Each wave arrives as a formation that swoops in from the wings, settles into a grid and sways there while individual enemies — sometimes three at once — break off to dive at you. Every tenth wave is a boss instead.

The grid stops growing at wave 10. There is a limit to how much a screen can hold and still be read, so everything after that is pressure rather than population: dives come faster, fire comes denser, both bestiaries mix into the same formation, and the bosses keep gaining phases up to five.

Kills inside two seconds of each other build a combo, and every three kills steps the multiplier up to a maximum of ×8. Clearing a wave pays a bonus that scales with the wave number up to wave 20 and then stops — otherwise arriving at wave 90 would pay better than playing the whole first half. An extra life every 25,000 points.

Salvage, and the thing wearing your ship

Losing a life leaves the hull behind. It drifts where the ship was, burning, and a harvester breaks formation and comes down for it — which is, after all, the job.

You have about six seconds. Kill that harvester and the wreck falls back to you and docks as a wingman: a second hull off your shoulder, firing every time you do. It is not a spare life. It flies offset, so it occupies screen the ship did not, and anything that reaches it takes it.

Fail, and it carries your hull off the top. The next wave has one enemy in it wearing your ship, slung underneath — tougher, worth three times as much, and firing your own cyan bolts back down at you. Kill it and you get the wingman anyway.

It is one enemy, and it is learning

It arrives as biology: grown things, chitin and bile, that have never seen a human or a machine. Then it meets us. At wave 30 the Vivisector starts taking us apart to find out what we are, and everything built after that is built out of what it found — the bone-and-chrome army in the second half is not a second faction, it is the same thing after school.

Past wave 60 the two mix, each role picking its tier from a piece of the wave number, so a given wave is always the same fight and consecutive waves rarely look alike. The last boss stands the city’s own siege gun up, which is only the biggest instance of the one move it ever makes: take what we have, and use it back.

Two shapes, not one letterboxed

The world is 1280×720 on a desktop and 720×1400 on a phone — the same game laid out twice, each with its own painted backdrop, rather than a widescreen field squeezed into a strip with a "please rotate your device" apology over it. A vertical shooter wants a tall screen anyway.

Sprites are drawn at half size on a desktop and full size on a phone. A 720-wide world with a 90px creature in it is about right for a thumb; the same sprites on a monitor an arm’s length away are a wall rather than a field of targets.

The ten places

Ten acts of ten waves. Each ends with its boss, then a card: the new place, held for a few seconds with two lines over it, before the next act starts. The card you read is the backdrop you then fight in.

The ten bosses

None of them has an idle animation. Each is drawn at five stages of coming apart — intact, chipped, leaking, burning with its core exposed, and finally a cloud of debris — and the fight picks the frame from how much of it is left. You can see how it is going without looking at the bar. These are the first frames.

The bestiary

Four jobs, done twice. The brood grew into them; the retinue was built for them.

Built with : Phaser · JavaScript · Node · Express · Postgres

All games