Guide
The tools a small team actually needs
Most tool lists are long because length looks like value. This one is organised around a different question: in each category, which decision is cheap to change later, and which one will cost you a month if you get it wrong? Those are the only choices worth agonising over. The rest you can swap on a Tuesday.
| Category | Common choices | How expensive to change later |
|---|---|---|
| Engine | Unreal, Unity, Godot | Very. Effectively a rewrite. |
| Version control | Git with LFS, Perforce | Moderate. Painful but survivable. |
| Narrative | Twine, ink, Yarn Spinner, articy:draft, YarnDraft | High, if the format cannot leave the tool. |
| Audio | FMOD, Wwise, or straight engine audio | Moderate, and it grows with the content count. |
| Art | Blender, Aseprite, Krita, Photoshop | Low. Files outlive the app that made them. |
| Tracking | Trello, Notion, Linear, Jira, a text file | Low. Genuinely low. Stop deliberating. |
| Distribution | itch.io, Steamworks | Low, and not a day-one decision. |
Engine
The one genuinely irreversible choice, so it deserves the deliberation everything else does not. The useful question is not which engine is best but which one you can get unstuck in — whose documentation you can read, whose error messages you have seen before, and whose community answers questions at the level you are actually asking them.
A worse engine you can debug beats a better engine you cannot.
Version control
Not optional, including for solo projects, and the reason is not backup — cloud sync does backup. The reason is that version control answers "what changed since it worked", which is the question you will ask most often and cannot answer any other way.
Set up large-file handling on day one rather than the day the repository becomes unusable. And decide early which of your assets are text: anything that can be a diffable file should be, because a merge conflict you can read is a merge conflict you can fix.
Narrative
The category most likely to be postponed, and the one where postponing costs the most, because narrative content accumulates faster than any other kind. A thousand lines of dialogue arrive without anyone noticing.
The decision that matters is not which tool has the nicest canvas. It is whether the story can leave. Ask three questions of anything you are considering:
- Can your engine read it? If getting the story into the build means copying by hand or writing an importer yourself, that cost recurs every single milestone.
- Can version control read it? A story in an opaque binary or a hosted database has no diff, so two people cannot work on it in the same week without one of them losing work.
- Can the story see the game's state? If the narrative tool has no access to the variables the systems write, you will end up with scenes that do not know what the player did — which players read as bad writing every time.
Several honest options exist here and they suit different projects. Twine is the fastest route to a playable browser story. ink and Yarn Spinner are script-first and integrate well with engines. articy:draft is the heavyweight, aimed at larger productions. We build YarnDraft, which answers those three questions with a visual canvas, plain files in your repository, and an Unreal export today — Unity and Godot 4 are in progress.
Audio, art, tracking, distribution
These four take up most of the space in tool lists and deserve the least of your worry.
Audio middleware earns its keep once you have enough sound that triggering it from code stops scaling — which is later than most people think, and you will know when you get there. Art tools are near-frictionless to switch because the files outlive the application. Tracking is the category where teams lose the most time to deliberation and gain the least from the answer; a text file in the repository works, and works better than an elaborate board nobody updates. Distribution is not a day-one decision at all.
If you are choosing tools for the first time: settle the engine, set up version control properly, pick a narrative format that can leave, and default everything else to whatever you already know.