What it does
A shooter is only as good as the things shooting back. This pack has them ready: every enemy the corridor and sector shooter sets use, drawn in the look of the digitised sprites of the early 1990s, with chunky shaded pixels, dirty colours and hard outlines. The classic set has a possessed trooper, a heavy gunner in a gas mask, a fiend with embers in its cracks, a bone-plated brute, a floating bloat and the Warden, a demonic jailer with a furnace in its chest. The modern set has a bladed husk, a security drone, a sentry with a plasma rifle and the Hulk. The corridor raid has guards, attack hounds, a security chief and armoured troopers, and the crypt has skeletons, hooded archers, wraiths and an ogre with a club.
Each enemy was drawn from the front first, and every other pose was made from that picture, so it stays the same creature from every side: walking toward you, its side and its back, aiming, firing or striking, flinching, dying and lying dead. Loading an enemy paints the fourteen frames the shooters already number, so a game shows the right one with the frame its enemies already pick. The side turns to face either way, flying enemies hover and fall to the floor when they die, and machines spark where creatures bleed.
Enemies are found by name. A set's own enemy ids find their own art, and any other id finds the closest by its words: a zombie soldier wears the possessed trooper, a guard dog the hound, a ghost the wraith.
Features
- Eighteen enemies, four sets — soldiers, demons, beasts, machines, undead and two towering bosses.
- Ten poses each — front, a walking step, side, a side step, back, aiming, firing, a flinch, dying and dead.
- The same creature from every side — each pose made from one front picture.
- Frames the shooters already use — four facings of two steps, aim, fire, pain, two falling frames and the body.
- Fliers and machines — floaters hover and fall when they die; drones spark and smoke.
- For billboards or raycasters — painted into the atlas, or drawn onto a raycaster's own canvas.
- Found by name — exact matches for the preset sets, a sensible guess for anything else.
Good for
- A corridor or sector shooter — the enemies of
corridor-shooterandsector-shooterin the world straight away. - A prototype or a jam game — enemies that look the part while the real art is made, then replaced key by key.
- A shooter with its own bestiary — name-matching dresses most enemies without any mapping.
Make it yours
Choose the set to look in first, or name the picture for each enemy yourself, so a game can send a crypt ogre against a modern sentry. The atlas keys take any prefix, and the resolution they are painted at is an option. Every picture is painted under a key a game can paint over with its own art later. The pictures themselves stay as they were drawn: for enemies in another palette, make them again from the prompts.
A quick look
Load the classic set's enemies, then show each one the frame its horde picks.
const art = await game.enemyArt.load(['grunt', 'fiend', 'warden'], { set: 'classic' });
const a = art['grunt']!, k = 1.75 / a.front[1];
const board = view.billboards(a.key).get('grunt-1')[0];
board.sx = a.width * k; board.sy = a.height * k;
board.frame = game.assets.frames(a.key) + horde.facing('grunt-1', eye.x, eye.z, 4) * 2 + step;
Works with
fps-enemies— its facing and modes pick the frame.corridor-shooterandsector-shooter— their four sets of enemies are the ones drawn here.fps-weapon-artandfps-prop-art— the weapons, barrels and scenery in the same look.sector-viewandraycast-view— billboards lit by the map, or sprites in a raycaster.
Good to know
- The pictures were made once with an image model and ship with the pack as 256-colour PNG data. They are not generated at run time, and the same prompts give different pictures if made again.
- Decoding the pictures needs a browser; on a server or in tests the frames exist but are blank.
- Frames are 160 pixels tall: sharp at a few metres, softer when an enemy fills the screen.
- Four facings, not eight: the side stands for every angle between front and back.





