Manifesto
Make it playable. Keep it traceable. Graduate it deliberately. Replace it safely.
Bojan Andrejek · 2 September 2026
The game you cannot playtest is the game you never make.
The gap
A generated file is not progress. A playable decision is.
We were promised that making games would become easy. The promise was not a lie — it was incomplete. A developer can now ask for a voice, a motion, a face, a mesh, an image or a line of code and get something back in minutes. That is real progress, and it gives more people a reason to begin.
Then the result has to become part of a game. The motion faces the wrong way. The hand misses the prop. The voice no longer matches the scene. The mesh has the wrong size, pivot, collision or material setup. The face solve works on one character and fails on another. A new result fixes one problem and breaks two links. Soon the project is full of files, and the game is not much closer to being playable.
That distance — between a creative idea, a generated or recorded result, and content the game can truly use — is the playable gap. PlayableOps exists to close it. It does not promise a button that makes the game. It makes a clear path from intent to options, from options to a choice, from that choice to the engine, and from temporary work to final ownership.
The principles
Fourteen, and what each one refuses.
- 01
Progress must be playable
Games are not built from files alone. They are built from questions: does this movement feel right, does the scene carry emotion, does the prop read clearly, is the interaction worth finishing? Those questions cannot be answered in a prompt window or an asset folder. They can only be answered in the game.
The unit of progress is a playable change.
- 02
Generation is not production
Generation creates a candidate. Production gives that candidate a job: it connects the result to the right character, skeleton, object, scene, event, state and source-controlled target, and gives the work a name, a history, an owner and a safe way to change. A beautiful output may still be useless. A rough output may be exactly what the team needs to test the design.
The model does not decide which one matters. The game does.
- 03
Play before perfect
Final work is expensive because it deserves skilled time. Actors, animators, artists, designers, programmers, directors and technical artists should spend that time on ideas that have earned it. Fast candidates let a team test the scene before paying the full cost of the scene. Temporary does not mean careless: a fast asset still needs a target, a source, a clear status and a safe replacement path.
The costly asset is the one made for a design that was never tested.
- 04
Intent must survive the output
A result should never arrive alone. We should know what was requested, what went in, which route produced it, which settings mattered, what it cost, who reviewed it and where the chosen result landed. Without that record every revision starts from memory.
The original intent is part of the asset.
- 05
Keep options. Make choices visible.
Creative work rarely moves in a straight line. A recorded take, an authored pass, a local model and a hosted service may all produce useful options. New output should not silently erase old work: a team should be able to compare candidates, choose one, and know which choice the game currently uses.
Automation should create options, not hide decisions.
- 06
People own the game
This is not a manifesto for replacing artists, actors, designers, programmers or technical artists. It is a manifesto for protecting their time and making their decisions easier to carry through production. Automation may prepare, check, generate, import, solve, bake, compare and suggest. People decide what the work means, what belongs in the game, and when it is finished.
Speed does not grant authority.
- 07
Graduation matters more than generation
A serious pipeline must know when to stop. When a person fixes a motion, records the final voice, rebuilds a mesh or takes ownership of a result, that work graduates — and automation no longer owns the target. Graduation is what makes fast work safe: it gives a candidate three honest futures. Keep it for now, improve it by hand, or replace it with the final thing.
Automation must stop when ownership begins.
- 08
Humans and agents are first-class users
A human should not use one system while an agent uses a weaker copy, and an agent should not receive secret powers that bypass the rules shown to people. Both call the same operations. Both see the same costs, permissions, limits, failures, history and recovery paths. We call it the Trinity architecture: the product, the person and the agent meet on one capability surface.
- 09
The provider is not the production system
Models and services will change. Prices, licences and quality will change. A team may use a local model for privacy, a rented GPU for power, a hosted service for speed, or a recorded human performance because it is the right creative choice.
Those are routes through the system. They are not the system itself.
- 10
Show the cost before the click
Creative flow dies when every experiment feels like a financial risk. Paid work should be clear before it starts: readiness, likely cost and the limits that matter, shown before a person or an agent spends money. Local work, rented compute and hosted calls have different tradeoffs, and making them visible should not require becoming an infrastructure expert.
Cost is part of the creative decision.
- 11
The boring safeguards protect the creative work
Names, targets, versions, retries, timeouts, stale results, permissions, collision, pivots, curve maps, event timing and source history are not glamorous. They are also what decides whether a demo becomes a product. A safe default is compressed experience — lessons learned through failed builds, overwritten files, broken scenes and late production surprises.
New developers should not pay for every lesson again with a cancelled game.
- 12
Honesty is the brand
Working, beta, developer preview, prototype, in development and planned are different statements, and we will say which is which. We will not hide uncertainty behind a polished demo, call a prepared path a general solution, or confuse a model result with a production result.
Trust begins where exaggeration ends.
- 13
Start with the people who feel every broken handoff
We start with small teams because we are one. The first serious solo developer needs good defaults, clear errors, visible cost, and a path that quietly carries production knowledge they have not had time to learn. The five-to-ten-person team already knows the work and wants the scattered pieces to become one repeatable path. The studio turns the same lifecycle into policy: a take choice becomes an approval, a definition becomes a production brief, a history becomes an audit record.
The surface changes as the team grows. The content path does not.
- 14
Open first. Paid where service begins.
The core should be useful before the company asks for trust, data or a subscription. If the work runs on the developer’s machine and costs us nothing to operate, the open core should stay useful on its own — definitions readable, local routes usable, history inspectable, providers yours to build.
Paid value belongs where real service begins.
What it is for
The game you cannot playtest is the game you never make.
Automation Forge is the first implementation of PlayableOps — a family of Unreal Engine tools built for the gap rather than for the generation. If you want to see how the argument becomes software, the whitepaper is the longer version, and the sets are where it is already running.