====== Overview ====== This list may be useful to you if you want to: * Build up your portfolio with pieces tailored for narrative design or game writing jobs, * Make a story-driven or text-based game on your own, * Get a quick overview of the publicly available tools currently being used out there. Please note that I'm using game writing and narrative design a bit interchangeably here, but I'll go over the possible differences between the two in another section of the wiki. I'm also not affiliated to any of the people making or developing these tools by the way. I usually favor open-source tools for my personal projects, but I've also listed a couple of paid options that had some interesting features and uses. Many game studios develop their own proprietary/internal tools that are not available to the general public, with features fitting the specific needs of their projects. Some large AAA studios may use a "Swiss-army" tool to handle everything, from in-game texts to branching dialogues, localization, a VO manager, etc. Other places might use a combination of proprietary and external tools to achieve the same results. There isn't an implicit expectation of knowing "that one tool everybody uses" before getting a job as a game writer/narrative designer as far as I know. (Usually a job posting will mention it if you need some familiarity with a specific tool.) ====== The list ====== This list is far from being exhaustive! There are so many new and old tools out there that you can use to make text games or narrative games. (I am far less knowledgeable about engines using natural language like [[https://ganelson.github.io/inform-website/|Inform 7]] and the likes for example.) But I hope having something a little more //curated// (I don't dislike spreadsheets, but big ones give me anxiety) helps you narrow down your options a bit as a start, no matter what your current knowledge of games and/or tools is. I have listed the ones I tried myself or heard of a couple of times and want to try someday in the near future. ==== Little to no programming knowledge ==== (You can click to expand and learn more about each tool.) == Interactive fiction & visual novel tools == Whether you want to make an interactive fiction, a visual novel -- something that has lots of texts/dialogues in it, multiple outcomes etc. These tools can help you achieve this: * **Platforms:** Almost any platform (PC, Mac, Linux). It can be used to make mobile games too. * **Licence:** Free and open-source. Can be used for commercial games too. * **Good for:** Visual Novels. (Something that has texts, choice buttons, character avatars, backgrounds. For linear and branching stories.) * **Website:** [[https://www.renpy.org/]] * **Tutorials:** There's one within the engine itself that's pretty well done if I remember correctly. * **Hosting options:** You'll have to use an external host to share your games, [[resources:tools#online_services_to_host_and_share_your_projects|like the ones mentioned below]]. Very beginner friendly. It uses Python, a scripting language that is easy to learn because it is still very readable for someone who does not know much about programming languages. Broadly speaking, if you write what you want the game to do, and know the appropriate formatting/grammar to phrase those instructions, Ren'Py can make it happen (especially if you're trying to make a Visual Novel). It is a bit more challenging to use Ren'Py for something that is not a Visual Novel (or the likes) in my personal experience. (Something that is not a branching or linear story with fixed images and text boxes.) But if you learn Python beyond the scope of what Ren'Py does, you might be able to do more. * **Platforms:** Desktop app, but can also be used directly in your browser. * **Licence:** Free and open source. * **Good for:** Games that are mostly focused on texts. Linear and branching stories. Web-based games. If you know HTML, CSS, Javascript, or some other game engines, you could do even more. * **Website:** [[https://twinery.org/]] * **Tutorials:** There are many out there, but I kinda liked the ones done by [[https://www.youtube.com/@DanCox|Dan Cox on Youtube]]. * **Hosting options:** You'll have to use an external host to share your games, [[resources:tools#online_services_to_host_and_share_your_projects|like the ones mentioned below]]. Twine has been around for more than a decade I think? I've used it countless times in the past, for my own projects but also for prototyping. While its main focus is about text-based games to be released online, there is a lot to explore and experiment with it, especially for anyone who wants to tell a story through interactive means. Its Story Map, which is basically an easy-to-read flowchart (boxes connected with arrows for each piece of content, named "Passage" in Twine lingo) is very handy for visualizing branching stories. The use of conditional logic (i.e. //if the player chooses option X, then a specific text/consequence is being shown to them//) also makes it an interesting tool for prototyping games. Say, if you're planning to make a complex RPG using another game engine, Twine is still relevant to help you get a grasp of the game's larger structure, pacing and test possible story arcs. (Like a web-based version of a Choice Your Own Adventure Game, or tabletop game.) * **Platforms:** Web browser * **Licence:** Free * **Good for:** Interactive stories (text-based, choice-based stories, linear and branching) * **Website:** [[https://www.inklestudios.com/inklewriter/]] * **Tutorials:** There's one embedded within the tool when you start writing your first story. * **Hosting options:** You can host your story directly on inklewriter's website. You can also export your project to a .json file to be used in other game engines. [[https://www.inklestudios.com/inklewriter/game-developers/|Read here for more info.]] Inklewriter is a simplified version of [[resources:tools#add-ons_assets_languages_and_advanced_tools|Ink/Inky (listed below in the more advanced tools)]]. It is great for learning and experimenting with interactive stories. You can write a "Choice Your Own Adventure" game with it, with a simple interface and a way to host your game directly on it. Once you're comfortable with Inklewriter, I would highly recommend you to try Ink using the Inky editor, as it has more features, flexibility, and allows you to experiment with more things. Another tool that could be worth checking (but I've never used it myself): [[https://tyranobuilder.com/|TyranoBuilder]] resembles Ren'Py (primarily meant for Visual Novels) but has a visual editor (hence, you don't even need to learn a programming language to use it, you can drag and drop things). You can buy TyranoBuilder on Steam. == WYSIWYG game engines == These engines can do a little bit of everything and aren't focused on text games only. You don't need to know about programming languages to start using them as they have a drag-and-drop interface where "what you see is what you get". * **Platforms:** Web browser. * **Licence:** Free and open source. * **Good for:** Making small games while learning the basics of programming, with a user-friendly visual interface * **Website:** [[https://scratch.mit.edu/]] * **Tutorials:** There's an embedded tutorial whenever you start a new project. * **Hosting options:** All Scratch games are hosted for free on Scratch's website. Your project can be remixed by others, and you can also remix someone else's project. I taught the basics of game development to a group of 6-9 years old kids once using Scratch. It is extremely easy to use, and is a lot of fun. The kids were able to make their first pong games in an hour or so. The ability to see everyone's code, and share their own, helps a lot to understand the basics of how things need to be "told what to do" when it comes to making a game. While it was designed with kids in mind, nothing prevents adults from playing with the tool and learning the basics of programming with it. You can also import your own visuals and assets if I remember correctly. * **Platforms:** Depends on the version you're using. At the moment RPG Maker MV is cross-platform and the engine works on PC, Mac and Linux. * **Licence:** Free trials and paid versions. You can make commercial games with any of them, no additional license required. * **Good for:** 2D RPGs (top-down view) * **Website:** [[https://www.rpgmakerweb.com/]] * **Tutorials:** [[https://www.rpgmakerweb.com/tutorials|There's a written tutorial on the website]]. There are most likely many others out there on Youtube. * **Hosting options:** You'll have to use an external host to share your games, [[resources:tools#online_services_to_host_and_share_your_projects|like the ones mentioned below]]. I actually haven't used RPG Maker myself, as it is not a free tool and I haven't tried to make a 2D RPG on my own yet. But it's been here for a very long time, and it has A LOT of premade assets that can help you make a game very quickly. It's in the realm of those engines where you can make something without writing a line of code, but if you know some programming you could do a bit more (RPG Maker is I think using Javascript). You can buy or get various assets via their store. I've always kept my eye on it ever since I learned that [[https://freebirdgames.com/games/to-the-moon/|To The Moon]] was made with it. (And it's a beautiful game.) This game by the way is a good example of something that works more like a Visual Novel mechanically speaking (you're not beating monsters and gaining XP, more like going through a visual story) while borrowing from the 2D RPG aesthetics (you navigate maps like you would do in a RPG), which is totally possible to do in RPG Maker. If you want to do something else than a 2D game with a top-down view, then there might be more suitable options for you out there. * **Platforms:** The engine works on Mac & PC. You can export games to many platforms (desktop, web, mobile). Console exports are only available with an enterprise licence. * **Licence:** Free for non-commercial games. All the versions share the same features (so you're not limited when using the free version) * **Good for:** 2D games. * **Website:** [[https://gamemaker.io/]] * **Tutorials:** [[https://gamemaker.io/en/tutorials|There are many on their website.]] * **Hosting options:** You'll have to use an external host to share your games, [[resources:tools#online_services_to_host_and_share_your_projects|like the ones mentioned below]]. GameMaker is one of the most known engines for making 2D games -- many commercial games were made in GameMaker (//Hotline Miami// is one of the most famous examples). I think it is the "easy to learn, hard to master" kind of engine. You can start making simple games very quickly as it has visual editing tools, and learn the basics of programming a bit like in Scratch with visual blocks. But if you want to make a more complex game, it would be good to learn a bit of its proprietary language (GML code, which is inspired by other programming languages). Tons of people are using GameMaker. You can also ask questions and such on [[https://gamemaker.io/en/community|forums and social media]] if you end up stuck on something. * **Platforms:** Web browser * **Licence:** Free (MIT Licence?) * **Good for:** People who need constraints and limitations when creating something. Games with a retro feel. * **Website:** [[https://www.bitsy.org/]] * **Tutorials:** [[https://make.bitsy.org/docs/introduction/tutorial|Bitsy's docs provide a list of tutorials.]] * **Hosting options:** You'll have to use an external host to share your games, [[resources:tools#online_services_to_host_and_share_your_projects|like the ones mentioned below]]. I have not used Bitsy myself, but this tool has been around since 2017 (I think?) and is one of these "highly restrictive" engines that are very interesting. It's an ideal tool when you don't want to have too many choices about what to create, when you need to focus on something simple and evocative. It's also super lightweight and approachable. Another one that could be worth checking: I have a soft spot for [[https://www.construct.net/|Construct 3]], as I made my first solo game ever on Construct 2 back in the days (10 years ago!) The free version used to have more features available. I find the overall UX a bit more beginner-friendly than Game Maker, but the free version is now very limited and the paid versions are quite pricey. ==== Assets, languages and advanced tools ==== The tools listed below may be more suitable for experienced writers and devs, who already know how to use some game engines, but want to add a narrative/text component to them; or those who have the time and capacity to learn tools that are a bit more complex. * **Platforms:** The editor Inky runs on PC, Mac and Linux. It can export your project to JSON files, which can be used by most game engines out there. * **Licence:** Ink (the language) and Inky (the editor) are both open-source (under a MIT Licence). * **Good for:** It was designed with the needs of writers (prose writers included) in mind. * **Website:** [[https://www.inklestudios.com/ink/]] * **Tutorials:** [[https://www.inklestudios.com/ink/web-tutorial/|Basics Tutorial, from the devs]] - [[https://youtube.com/playlist?list=PLlXuD3kyVEr4gYqW2WvaaGPZgeZTV3Xpk&si=582rzVdP4J5b_REJ|Dan Cox's crash course (and more on his channel)]] * **Hosting options:** You can export your project to a web version, to be hosted anywhere you like (see some [[resources:tools#online_services_to_host_and_share_your_projects|hosting options]] below). I'm quite biased towards Ink. While I like to plan and design using flowcharts and mindmaps, I love how much depth and flexibility Ink can provide. The thread and weave features are some of the unique aspects of Ink as a language: The ability to stitch various parts of texts, or alter them, based on the player's inputs, in a way that is not constrained by some... immediate causality, so to speak. You are not restricted to a problem > player's choice > consequence type of structure -- with arrows going in one direction only. You can write something that is more combinatory, patching several bits of texts together, have characters discuss about things in a more fluid way. I'm not sure if this is super clear but you should give it a try if you can. (Also [[resources:tools#interactive_fiction_visual_novel_tools|Inklewriter web]] is the sort of simplified version of Ink.) Other than that, it's a scripting language that's been used more and more by commercial games. You can check the [[https://github.com/inkle/ink-library|Ink library]] for more resources about it, other projects that were made with it, add-ons and plugins that could be useful for your projects. * **Platforms:** There's a [[https://docs.yarnspinner.dev/beginners-guide/syntax-basics|free web version]] that you can try. Once you're comfortable with the basics, you can install Visual Code and a free add-on to work with Yarn Spinner. It was made as a Unity Asset at first (I think?) but you can now use it with various engines out there. * **Licence:** The language is free (MIT Licence) and can be used with some free engines (like Godot). The Unity Asset and Add-ons can be bought on itch.io. * **Good for:** When you need a tool to handle dialogues in games. * **Website:** [[https://www.yarnspinner.dev/]] * **Tutorials:** They've got a [[https://docs.yarnspinner.dev/beginners-guide/welcome|beginner's guide]] which should provide you the basics. * **Hosting options:** I believe you would need an external host (like the ones mentioned below) to share your creation depending on the type of engine/export you do with it. I have not used Yarn Spinner myself yet but it is quite reputable (and used by commercial successes like //Night in the Woods// for example). From I've briefly seen it has some similarities with Ink -- as it is a language where "what you see is what you write and format accordingly" in a way, and meant to be easy to understand for writers with little to no programming knowledge. The Visual Code add-on allows you to see a graph version of your story (a bit like Twine) which is quite handy. It seems really good if your main focus is writing dialogues for a game. * **Platforms:** Windows only, as far as I know. ([[https://www.articy.com/help/adx/SystemRequirements.html|See the system requirements here.]]) There are [[https://www.articy.com/en/articydraft/feature-list/#id12|game engine integrations]] for Unity and Unreal I think. * **Licence:** There is now a free version for Articy Draft X. The main limitation about the free version is the number of objects you can create, and the number of users. There are also paid and subscription options. * **Good for:** Large projects with lots of dialogues and complex narrative structures. * **Website:** [[https://www.articy.com]] * **Tutorials:** Their official [[https://www.youtube.com/@Articy|Youtube Channel]] has tutorials to introduce you the basics. * **Hosting options:** Articy can export your writing to different formats which can then be used in many game engines. Your hosting options depend on the game engine you end up using in combination with Articy. I'll be honest, I've used Articy only very briefly, in some commercial contexts, and mostly for research. Hence I don't have a ton of experience with it, but know of AAA studios using sort of the equivalent of Articy for their own projects. Articy has been out there for quite a long time now, and it does a bit of everything -- from writing dialogues, worldbuilding documentation, to designing branching storylines, game scripting, localization and VO, etc. Hence it is quite powerful, but it would not be my first recommendation for making some small project for example. It has been used by many professionals out there, and I know people who love it. It used to be quite pricey though, but hopefully with the free version you can experiment with it a bit more. * **Platforms:** You can buy it on Unity's Asset Store, then use it in Unity. * **Licence:** Not free, you can make commercial and non-commercial games with it. * **Good for:** When you need help handling dialogues (and more) for your Unity project. * **Website:** [[https://www.pixelcrushers.com/dialogue-system/]] * **Tutorials:** [[https://www.pixelcrushers.com/dialogue-system/dialogue-system-tutorials/|Official website's tutorials]] * **Hosting options:** You'll be using it in conjunction with Unity. The hosting options depend on how you'll export your Unity game. I just wanted to add at least one example of the many assets/plug-ins out there that are dedicated to make a dev's life easier when they need to handle lots of texts, complex storylines etc. and don't want to create their own add-ons from scratch. I would not recommend Dialogue System on its own to write tons of dialogues directly in it (as Unity's UI isn't very "writer-friendly", visually speaking and all). It's more about how you want to implement and structure dialogues in your project, how you want dialogue to show up to the players. Also there seems to be cool prefabs (or templates) for UI that are included and can be good starting points for your projects. Studios using Dialogue System have often used it in conjunction with more writer-friendly tools (like Articy mentioned above or others). ==== Online services to host and share your projects ==== Here are some places where you can host your projects once you're done with them: * [[https://itch.io/|itch.io]] -- free to use, very straightforward. You can release your projects for free or put a price tag on them. * [[https://gamejolt.com/|gamejolt.com]] -- also free, and you can sell your games there too (or not). Since it has a social media component, you can have your own "profile page" sharing other things (visuals, videos, etc.) related to your projects. I'm not too familiar with Gamejolt but it's been used by some game jams. As far as I know you can share games for PC, Mac, Linux & mobile on these two hosting services, so people can download them on their devices. HTML5 games can be hosted if packaged as a zip file, then they'll be playable directly on people's browser. (See the respective website's instructions for more details.) ==== Tools that can help you deal with lore and documentation ==== I'm one of these oddballs who actually love making websites for fun (like this wiki), easy to read documentation in general, and I'm always on the lookout for efficient tools to keep my docs up-to-date. I might write a separate article about this in the near or distant future, but here's a very short list of some tools I've used/am still using for my projects: == Flowcharts, infographics and other visual tools == Link: [[https://kumu.io/|Kumu.io]] I actually discovered Kumu.io while looking for tools to prep a Vampire: The Masquerade TTRPG Chronicle I was DMing. It's easy to make simple flowcharts, but you can also make complex templates to support your documentation needs if you take the time to learn the tool's features. Tutorials are available on their [[https://www.youtube.com/@kumupowered|Youtube Channel]]. It's free for public projects (editable by the owner, available to view to anyone). Paid plans are available for private projects. Links: [[https://workspace.google.com/marketplace/app/drawio/671128082532|draw.io]], [[https://workspace.google.com/marketplace/app/lucidchart/7081045131|Lucidchart]] Whenever I need to make a quick flowchart to explain some story's arc, or a simple game loop, or else, well the Google Apps do provide mindmap tools like draw.io or Lucidchart. They're free to use and easy to pick up. Link: [[https://miro.com/|Miro]] Most studios I know use Miro or some equivalent (ever since remote working became a more generalized thing). You can make diagrams directly in it but I do find the tools a bit limited for that purpose specifically. Other than that, still great for compiling information quickly. I always have a "brain dump" somewhere where I dump my ideas, references, random quotes for current or future projects. Links: [[https://piktochart.com/|Piktochart]], [[https://www.canva.com/|Canva]] I discovered Piktochart during my PhD studies and find it super handy to make visually appealing infographics. Sometimes flowcharts are a bit too dry, so Piktochart can add a bit of pizzazz to your presentations. Canva is another super beginner friendly tool to help you make your presentations and docs visually appealing. But I think with tools like Canva, it's easy to get lost in the fancy templates and make something that might be seen as very outdated in a couple of years (before becoming in fashion again, like with Tumblr). == Wiki-like tools for documentation == Link: [[https://www.atlassian.com/software/confluence|Confluence (Atlassian)]] It's used by many game dev studios for documentation in general (not just narrative docs I mean). I would encourage you to learn about macros if you can, especially if you're interested in narrative design. Macros can help you make templates for your pages and update parts of them only once. For example,instead of copy-pasting things from one page to another whenever you make an edit on that character's bio, using the right macros allows you to edit one page to update everything everywhere automatically. If you ever end up working on a large scale project, you'll know something like this can save you hours of headaches. Link: [[https://www.literatureandlatte.com/|Scrivener]] I think Scrivener started mostly as a tool used by novelists, maybe some screenwriters. I think it is quite handy and relevant especially if you're working solo on a project, as it is a very "writerly" tool where you can store your notes, thoughts, characters bios in one place for example. Link: [[https://www.notion.so/|Notion]] Notion is another popular tool, especially among indie devs I think, that can handle not only documentation, but has also multiple integrations with other apps, or let you publish pages that can work as a temporary website or blog for your projects, etc. Link: [[https://kanka.io/|Kanka.io]] I recently discovered Kanka.io also while prepping my VTM Chronicle. I haven't used it extensively but it looks quite neat for world-building and documentation. There's a free version that you can try which has already a lot to play with. One last tool that could be worth checking: [[https://affine.pro/|AFFiNE]] seems to do a little bit of everything (a combination of Miro and a wiki-like type of tool). I've barely started to use it but it looks quite promising. (It's free to use for individuals, and comes at a fee for teams. Also the app's code is open-source.) ==== What about AI? ==== After trying a few of them, I'm not really interested in AI/LLM-focused tools at the moment for my personal projects. I'm a daughter of immigrants whose sacrifices allowed me to experiment and sometimes make art using my hands, senses and heart. I like the process of making more than the output. Many AI-branded tools seem too focused on producing results to me, while obscuring all the processes involved in the making, so I cannot engage with them comfortably most of the time. Some of the tools listed above have started to implement AI as part of their features, but that's not why I've listed them. I have barely interacted with these new features myself.