+ Publish
Pixel Strike #04

Build the Vertical Slice — and Spend 15 Minutes on Prior Art First

By @cccrayfish Part 4 of 8

Do not ask the AI to build everything at once. It will produce something broken, and you will have no way to judge it.

What a vertical slice actually is

Keep only what is needed to prove the core loop works. For a shooter the core is "move, aim, shoot, hit", so the MVP is:

One test map of flat-coloured boxes + first-person movement + a hitscan shot + one dummy enemy + a health bar.

It runs, you can kill the dummy — that is a pass. Menus, progression, multiple weapons, skins: all of it goes in the backlog, none of it gets built now.

Before writing it: 15 minutes on prior art

Once the MVP is defined, do not start generating. Have the AI go look at whether someone already built this. Whatever you are making, odds are good that it exists — on GitHub, in engineering communities, everywhere.

Search by keyword hits, and the formula is "core loop + stack + target form": fps three.js, webgl first person shooter open source, krunker style three.js, then follow the awesome-webgl-style lists.

For every candidate, run the evaluation table — license (MIT/Apache: usable with attribution; GPL is contagious and will force your whole project open; no license at all means all rights reserved, so you cannot use it), activity (stars, last commit), whether there is a live demo, and whether it fits your red lines (pure static? no backend? no heavy bundler?).

Then make a three-way call: use it directly / fork and modify / borrow the idea and write your own. Fits your constraints, reuse it. Does not fit, take only the algorithm. What this step produces is a decision about how to use prior art — not an obligation to use someone else's code.

Why the art is placeholder boxes

Because what you are testing here is whether it feels good to play, not whether it looks good. Flat-coloured boxes keep both you and the AI focused on feel and logic. Looking good comes later.

One rule that matters more than it sounds: the MVP needs an explicit acceptance test — "I can move, I can look around, I can kill the dummy". An MVP without an acceptance test expands forever.

In one line

Make it run, then make it fun, then make it last. And check the license before you borrow anything.

The prompts I used

The original — prior-art research
Before we write the MVP, do a round of prior-art research. No code yet:
1) Search GitHub and engineering communities for existing implementations, using
   "core loop + engine + form" as keywords — e.g. "fps three.js",
   "webgl first person shooter open source", "krunker style three.js",
   plus the relevant awesome-* lists;
2) For each candidate give me a table: stars, last commit, live demo or not,
   license (MIT/Apache usable with attribution; GPL is contagious; no license = unusable),
   and whether it fits my constraints (pure static single file, no backend, no heavy bundler);
3) Give a verdict: use directly / fork and modify / borrow the idea and rewrite.
Research conclusion first — I will confirm before you write the MVP.
Reusable — prior-art research
Before writing the MVP, do a round of prior-art research:
1) Use "core loop + stack + target platform" as keywords to search GitHub and communities
   for existing implementations;
2) Evaluate each: activity, quality, live demo, whether the license permits my use case,
   whether it fits my constraints;
3) Give a decision: use directly / fork and modify / borrow the idea and rewrite.
Research before development. Always check the license — do not pull unusable code into
the project.
The original — the MVP
Based on the target and constraints we aligned on, build a minimum playable loop (MVP):
one test map (flat-coloured boxes as placeholders) + first-person movement (WASD + mouse look)
+ shooting (hitscan) + one stationary dummy enemy + a health bar.
Acceptance test: it runs, I can move and look around, and I can kill the dummy.
No menus, no progression, no extra weapons, no networking, no audio yet.
When it is done, tell me how to run it locally so I can check it.
Reusable
Break this game down into a vertical-slice MVP: keep only the minimum elements that prove
the core loop works, using placeholder art, and give me the acceptance test for it
(how do I judge that it succeeded). Everything else goes in the backlog for now.

The game I built

This is what came out the other end of all of it. It opens in the browser, nothing to download — go and break it.

Pixel Strike — free online shooting game on Pogglo

Pixel Strike

@cccrayfish · ♥ 6