03 September 2025

Tools for Developing a Video Game's Storyline

Guy thinking about the storyline
The importance of the storyline depends on the type of game and its target audience. There are games like Tetris or Among Us, where the narrative is minimal and the fun lies in the mechanics. These types of games do not require a complex storyline.

However, the storyline is a fundamental pillar of the experience in narrative, RPG, or adventure games. In these games, the storyline is important for multiple reasons. A good storyline creates a believable world and characters with whom players can empathize, increasing immersion. Well-developed stories generate emotions, motivating players to continue to discover what happens next. The storyline provides a narrative framework that gives meaning to the player's actions. Without a story, the mechanics can feel empty or repetitive. For example, in games like The Last of Us, the storyline drives decisions and gives emotional weight to the mechanics. A solid narrative offers clear objectives and reasons to move forward, whether it's saving a world, avenging a character, or unraveling a mystery. This keeps interest high, especially in long games. In a saturated market, an original or well-executed storyline can make a video game stand out from others with similar mechanics. Titles like Hollow Knight or Disco Elysium are examples where the narrative elevates the experience. A storyline with branches, moral choices, or multiple endings (as in Mass Effect or The Witcher 3) encourages replayability, as players want to explore different outcomes.

Therefore, the process of developing the game's storyline is as important as programming or asset modeling. In this article, we will look at some specialized tools that can be useful for creating the storyline of our game, as well as designing its dialogues.

Obsidian

Obsidian is a note-taking and knowledge management application designed to create and organize content through interconnected notes, using a Markdown-based system and a "knowledge graph" approach that visualizes relationships between ideas. Although it is not specifically designed for video game development, its flexibility, customization, and ability to handle large amounts of information make it a valuable tool for writers, narrative designers, and developers working on story planning, lore, scripts, and project documentation.

Obsidian Logo
Obsidian Logo

Obsidian stands out as a lightweight and versatile solution for pre-production and organization, especially for indie projects or small teams. Each note can be linked to others via bidirectional links (similar to a personal wiki). Its graph view shows visual connections between notes, making it easier to explore complex ideas. Therefore, it is an ideal tool for mapping relationships between characters, events, and quests.

When editing, you have two main modes: a plain text editor using Markdown formatting, and a Canvas mode that offers a visual canvas to connect notes with arrows, similar to an idea board. When creating a new note, links to other notes are made using Markdown links. In Canvas, you can create two types of nodes: cards, which are small nodes with just a title, and notes that contain full Markdown text (you can even import a separately created note). Ultimately, Canvas is a visual space to organize notes as connected nodes, ideal for mapping branching stories or narrative flows.

Editing notes in Obsidian
Editing notes in Obsidian

Obsidian canvas mode
Obsidian canvas mode

A possible workflow could be brainstorming and collecting loose ideas in notes, then structuring them in a Canvas. Additionally, outside of Canvas, if you need a high-level view of all your notes, you can open the graph view that shows a note’s tree and its links to other notes.

Another powerful feature is the ability to tag elements, which facilitates advanced searches using Boolean operators.

By default, Obsidian saves everything locally in plain text files, ensuring portability and low resource consumption. These files can be exported to Markdown, HTML, PDF, or Word. It syncs with Dropbox, iCloud.

Obsidian is free, but if you want synchronization across all your devices, you’ll need to pay a small subscription. If you want to publish notes on the Obsidian Publish website, another subscription is required.

All of the above already makes it a very interesting option for what we’re looking for in this article, but additionally, Obsidian has a hyperactive community on forums, Discord, and Reddit, where they offer templates, examples of specific workflows (e.g., for video game narrative). This activity has already produced more than 2,600 community plugins, such as:

  • Dataview: Creates dynamic tables to manage characters, quests, or items (e.g., “show all NPCs with status ‘ally’”).
  • Obsidian Tasks: Task tracking for development planning.
  • Kanban: Boards to manage sprints or milestones.
  • Excalidraw: Drawings for storyboards or maps.

In the end, no two Obsidian installations are alike. Each user customizes it with multiple plugins to suit their particular tastes, making it a tremendously powerful tool.

Ink

Inkle Studios is an independent video game development studio. They specialize in interactive narrative games, i.e., titles focused on branching stories, player decisions, and non-linear narratives, where text and user choices are key elements to advance the plot.

Their work is not limited to video games; they have also created tools for development. Among them is Ink, an open-source narrative scripting language (under MIT license), specifically designed to write highly branching stories in games. Ink is not a traditional programming language but a simple and elegant markup that allows writers and developers to create dialogues, choices, and complex plots efficiently. Ink integrates easily with engines like Unity (via a free plugin), Unreal Engine, and Godot, and has been adopted by both large and independent studios.

Ink logo
Ink logo

To put it simply, Ink is what the authors of the popular “Choose Your Own Adventure” book series would use today to write their stories. With it, you can offer choices to the reader and let the story branch out as those choices unfold.

Ink offers an easy-to-learn syntax for non-programmers but is powerful for advanced structures (like loops, lists, and conditional logic). It is also very lightweight, so the workflow is fast, allowing you to see changes almost as you write.

Ink syntax
Ink syntax

All these advantages have led to its widespread use in many games (Haven, NeoCab, Sable, Sea of Thieves, The Banner Saga 3, for example) and there are plenty of online resources to learn how to use it.

To make its use even easier, Inkle also offers a free editor called Inky, available on the same page as Ink. It’s a minimalist editor that offers a preview window where you can test the options and branches you write. It also alerts you to Ink syntax errors you make while writing. It has versions for Windows, Linux, and Mac. And finally, most importantly, it allows you to export to JSON so you can load all the story information into the game you’re developing.

Inky logo
Inky logo


Twine

Twine is a free and open-source tool designed to create interactive fiction and text-based narrative games, especially non-linear stories where player choices determine the course of the narrative. Created in 2009 by Chris Klimas, it is widely used by both beginner developers and professionals in video game development, creative writing, education, and artistic projects. What it offers is similar to Ink, in the sense that it allows you to create interactive stories in hypertext format, where the player navigates through text nodes (called “passages”) connected by links. Each passage contains text, options, and optionally, code to handle logic, variables, or multimedia.

The downside is that there is no clear and easy path to import the story into a game engine (as there is with Ink), so Twine is more suitable for shaping the game’s script or creating a very simple prototype to show possible branches of the script.

Twine logo
Twine logo

Twine is known for its simplicity, accessibility, and flexibility. Its visual editor allows you to drag and connect nodes, creating a map of the narrative. It also has a code mode to customize game logic.

Interactive stories created in Twine are published as HTML files, playable in web browsers, making them highly portable. They can also be exported to other platforms with additional tools. The output files can be dumped into various supported formats for further processing and customization of the story.

Using a visual editor makes text editing much easier than in Ink. Ultimately, writing is limited to typing text and adding simple links (e.g., [[Go to the cave]]) to connect passages. Although you can also use JavaScript and macros for more advanced features.

Twine editor
Twine editor

With all this, you can create highly branching stories, from “choose your own adventure” tales to complex narratives with variables (e.g., health points, inventories) and conditional logic.

The tool and its code are available under the open GPL-3 license. It can be used online (twinery.org) or downloaded for Windows, macOS, and Linux. It also has an active community, tutorials (like those on twinery.org), forums, and templates on platforms like itch.io. There are also extensions and add-ons created by the community.

Yarn Spinner

Yarn Spinner is a tool originally developed by the Australian studio Secret Lab (creators of Night in the Woods), although part of the team later split from the video game studio to focus on developing the tool, becoming known by the same name.

Halfway between Ink’s scripting language and Twine’s visual tool, it uses a simple scripting language called Yarn, inspired by formats like film or theater scripts, which allows you to write dialogues in plain text with flow control elements, variables, and commands. Then, a plugin integrated with the engine acts as an interpreter that executes these scripts during gameplay, sending dialogue lines, options, and commands to the engine.

Yarn Spinner webpage cover

Some games made with Yarn Spinner include Night in the Woods, A Short Hike, DREDGE, Lost in Random, Frog Detective, Button City, and Escape Academy.

For script editing, they have a Visual Studio Code extension that offers a text editor with highlighting to create Yarn scripts, as well as a graph window to view story branches.

Yarn Spinner extension for Visual Studio Code
Yarn Spinner extension for Visual Studio Code

They also have a website where you can edit and test simple scripts.

The main advantages of Yarn Spinner are:

  • Narrative Flexibility: Supports highly branching stories, with memory of previous choices (by default), storylets (dynamic content based on salience), and groups of nodes/lines for organization.
  • Customization: Integrates multimedia (images, audio, video) via commands. Includes pre-made UIs (e.g., dialogue bubbles, option wheels) and samples for customization.
  • Localization: Robust support for translations, extracting strings to separate files (e.g., JSON or CSV) for tools like Unity Localization or I2 Localization, facilitating multilingual workflows.
  • Debugging and Tools: Errors with line numbers, browser preview, and voice-over support (line synchronization). Active community on Discord and GitHub.

If you use Unity, you’re in luck, because it’s the only engine with an official integration plugin. The plugin code for Unity is available on GitHub under the MIT license, so you can download and install it in Unity for free. Another option is to use the Unity Asset Store to purchase the Unity plugin; the cost is not very high and helps fund the tool’s development. They also offer other Unity add-ons, such as one that displays conversation text in comic-style bubbles, and another that allows decisions to be made using a selection wheel.

There are also plugins for Unreal and Godot, but they are still in Beta and not recommended for production.

Articy Draft

Articy:draft (now primarily known as articy:draft X in its latest version) is a professional tool for narrative design and interactive content organization, developed by Articy Software GmbH, a German company founded in 2009.

It is a visual software that acts as a centralized database for creating, managing, and planning branching stories, dialogues, quests, characters, and other narrative elements in interactive projects, with a special focus on video game development. Unlike pure scripting tools like Ink or Yarn Spinner, Articy:draft is more of an integrated visual environment (similar to a "narrative CMS" or content management system for games), combining story flow editing, object databases, and team collaboration.

Articy Draft logo
Articy Draft logo

It is widely used in the industry by indie and AAA studios to handle complex narratives and has been key in titles such as Disco Elysium, Suzerain, HipWitch, Saint Kotar, Garden Scapes, and Spell Force III.

It features a non-linear visual editor for designing interactive content, unifying specialized editors (for dialogues, quests, objects, locations) into a single interface. It allows graphical representation of game entities (such as NPCs, items, or quests) with automation, variables, and conditional logic, acting as a "visual frontend" for game data. It does not generate executable code directly but exports structured data for integration into game engines.

Articy Draft visual editor
Articy Draft visual editor

It uses nested views (Flow View) to map high-level stories (chapters) to fine details (dialogue lines). It includes a flexible template editor for game objects, a simulator to test logic (with voice and localization support), and tools such as a vector location editor to plan 2D maps.

Views nested in Articy Draft
Views nested in Articy Draft

It offers a simulation mode that plays the story with voice, languages, and logic, ideal for iterating before exporting. The simulation mode allows checking the evolution of variables linked to dialogues and choices, as well as the effect these variables have on the story path.

Articy Draft simulation mode
Articy Draft simulation mode

Other additional tools include a storyboarding panel; a location editor (useful for planning levels or quests); voice-over support (TTS generation for prototypes and synchronization); integrated localization (exports strings for translation and reimports); and AI extensions to generate dialogues, images, or automatic translations (e.g., with DeepL).

Storyboarding in Articy Draft
Storyboarding in Articy Draft

Location editor
Location editor

It also serves as a database to store the configuration of all NPCs and game objects. The idea is that game designers can manipulate the data from the Articy Draft interface, then export all the data at once and load it from the game engine.

Assets and character database in Articy Draft
Assets and character database in Articy Draft

Regarding integrations with game engines, Articy Draft has official assets to integrate with both Unity and Unreal. For other engines, Articy Draft also allows export to XML and JSON. If that’s not enough, they also offer a NuGet package to build your own integration package.

Articy Draft follows a subscription licensing model but has a free version, with all functionalities, which can even be used for commercial projects, with the only limitation of a maximum of 700 objects per project. Still, that object count is very generous and probably more than enough for most medium and small projects. In any case, it’s more than sufficient to try the tool and decide if it’s worth it. If you need more than 700 objects in your game, you can opt for any of the paid licenses (individual ones are quite affordable).

Dialogic

The previous tool only had direct integration with Unity and Unreal, so to balance things out, now we’ll talk about one that exists only for Godot: Dialogic.

Dialogic is a plugin for Godot aimed at creating interactive dialogue systems, visual novels, RPGs, and character management. Initially developed by Emilio Coppola in 2021 as a solution to easily add branching conversations, it has evolved into a mature and popular tool in the Godot community, especially for indie developers looking to integrate complex narratives without writing extensive code from scratch. It is available under the MIT license, allowing free commercial use and modifications.

Dialogic logo
Dialogic logo

It provides an integrated editor in Godot to design "timelines" (dialogue timelines), which are sequences of events such as text, player choices, animations, logical conditions, and signals. These timelines run during gameplay to display dynamic conversations with branches, events, and choices. Conditions (if/else with variables), signals (for in-game triggers), animations, and backgrounds can be added to these conversations.

Dialogic timeline editor
Dialogic timeline editor

It includes a character management system with portraits, expressions, and custom colors, and supports extensions for custom events.

Dialogic character editor
Dialogic character editor

Visually, it is fully customizable, with editable themes (colors, fonts, text bubble styles), audio support (voice-over, SFX), animations (e.g., screen shake), and custom events with minimal GDScript code. It includes pre-made styles like "text bubble" for visual novels.

It also supports localization, allowing integrated translations with translatable glossaries.

It has a very active community that has created extensions to interact with other plugins like SmartShape2D for terrain or Godot Steamworks for achievements.

If you’re developing with Godot, Dialogic is the simplest and most cost-effective option since it’s packed with features, well-tested in many Godot games, and free.

Scrivener

All the previous tools, except perhaps Twine, consider some level of integration or compatibility with game engines. Scrivener is something very different. It is a tool 100% designed for writers and screenwriters.

Developed by the company Literature & Latte, although not specifically created for video game development, it is a versatile tool that can be extremely useful for writing and structuring video game scripts, especially for narrative projects like RPGs, graphic adventures, visual novels, or any game with branching stories.

Scrivener logo
Scrivener logo

It takes the form of an advanced word processor and project management tool that combines writing with note organization, research, and non-linear structuring. It allows dividing a project into manageable sections (chapters, scenes, etc.), managing reference materials (images, PDFs, notes), and exporting in multiple formats. Additionally, each piece of content created with Scrivener can be enriched with metadata, notes, tags, and references.

To plan narrative arcs, it offers a corkboard-like visualization mode where each section is displayed as a card.

Scrivener corkboard
Scrivener corkboard

The entire interface is very flexible, and by using it properly with tags, you can configure timelines to develop parallel storylines.

Scrivener timelines
Scrivener timelines

Don’t expect formatting tools. In that sense, Scrivener is very simple, almost primitive. It’s actually designed to focus on generating content and then exporting it for formatting in other tools. For example, many people configure Scrivener to export the generated content to LaTeX and then, from a LaTeX editor, export to PDF with the formatting of the chosen LaTeX template.

Therefore, Scrivener is an excellent tool for writing and organizing a video game script in the pre-production phase, especially for structuring complex narratives and keeping lore organized. However, it is not designed to simulate interactivity or integrate directly with game engines, so you’ll need to combine it with tools like Twine (for quick prototypes), Dialogic (for Godot), Yarn Spinner (for Unity), or Articy:draft (for AAA projects). If your focus is writing a detailed script before technical implementation, Scrivener is a great choice; if you need immediate interactivity, opt for a tool specific to video games.