What is DialogueBranch?
DialogueBranch is a toolkit, a collection of software components, and a language definition that together provide the necessary tools for writing, storing, and executing scripted conversations between a computer and a human in your application of choice.
You can use the DialogueBranch scripting language to define the flow of your dialogues in a .dlb
script file like this:
title: Start speaker: Martin McOwl --- DialogueBranch lets you make scripted conversations like this... [[Continue]] === title: Continue speaker: Martin McOwl --- It's easy to use, and it's completely free! [[How easy?|Easy]] [[Is it really free?|Free]] ===
Then, once you have some dialogue, you need a user interface to let users interact with your dialogue. The DialogueBranch tools can help you achieve this in two ways:
- Use the Dialogue Branch Core Java Library to read your .dlb scripts and execute them in a Java programming environment (e.g. a Java Desktop app or and Android Mobile app).
- Use the Dialogue Branch Web Service to run a server allowing you to remotely execute .dlb scripts, and display them in a client application of your choice.
Please visit our Documentation Hub for detailed guides on how to write Dialogue Branch scripts, how to set up your Dialogue Branch Web Service, and more...
And finally, keep an eye out for News & Updates, or follow our Mastodon (@fruittreelabs@fosstodon.org) or Twitter (@FruitTreeLabs) to stay up-to-date on the latest additions to the Dialogue Branch platform.
The Story of DialogueBranch
Once upon a time (September 1st, 2017 to be exact), Roessingh Research and Development and the University of Twente kicked-off a European Horizon 2020 research project called Council of Coaches.
The aim of the project was to build a virtual council of health advisors, inspired by the council of advisors in the Sid Meier's Civilization II video game. The project, broadly speaking, had two research tracks — one focusing on human-computer interaction principles, and one focusing on eHealth / Digital Health.
- The "HCI"-Track worked on experimenting with novel ways of interaction between multiple virtual embodied conversational agents and humans. The focus was on core underlying principles and technology, such as demonstrating the effect of vicarious persuasion, and getting a group of autonomously controlled virtual agents to co-exist and cooperate in the first place.
- The "eHealth"-Track worked on investigating whether or not the concept of using a council of coaches for lifestyle and wellbeing advice would be able to positively influence the user's behavior. The focus here was on building a solid prototype, adding enough relevant coaching content, and running a large scale trial with relevant participants.
The abovementioned research led to the development of two separate software prototypes: a 2D Web-Based Council of Coaches Demonstrator, and an open-source 3D Platform for building multi-party embodied conversational agent scenes, now maintained by the Agents United Alliance.
These two prototypes both needed a way to add dialogue content to its conversational agents. Especially for the 2D Prototype that would be used in a large scale eHealth trial, it was important that domain experts (healthcare experts) could contribute to the creation of a large body of scripted conversation.
Having no interest in reinventing the wheel, the team at Roessingh Research and Development (RRD) set out to explore existing solutions that would meet our requirements. We needed a platform to author scripted dialogues, it would have to be easy to integrate into a larger eHealth platform, and it should be simple enough for domain experts to work with.
Unfortunately, we didn't find a tool that ticked all the boxes. The one platform that came close was Yarn — an open-source MIT-licensed interactive story-telling tool, made by Australian game developers Secret Lab.
At that time (around 2018), Yarn wasn't as fleshed-out, and well-supported as it is today. So, RRD decided to take Yarn as a starting point for creating a new dialogue platform, called WOOL. The WOOL language was a simplified version of Yarn, catering better to the target audience of non-technical domain experts, and an open-source graphical editor made for writing Yarn scripts was modified to support the WOOL language.
In the years following the end of the Council of Coaches project, the WOOL platform was used in various projects, and has received technical updates to support those use cases. But ultimately, there was no support to further grow the platform and its community.
Therefore, in 2023, DialogueBranch branched off to provide a new and better branching dialogue platform. Like its predecessors Yarn and WOOL, the platform is open-sourced under the MIT License. The home of DialogueBranch is Fruit Tree Labs, a company founded specifically to support the growth and community uptake of the platform. If you need help integrating DialogueBranch into your platform, or need us to build a specific feature — please get in touch.
Contributors
The DialogueBranch platform is made possible by the following major contributors.
Fruit Tree Labs is the owner of the DialogueBranch brand and the maintainer of the platform. This organisation, established in Portugal, was founded on the mission to grow the DialogueBranch platform and its community. Its founder, Harm op den Akker, has been a major contributor to source and documentation since its inception.
Roessingh Research and Development, an organisation in the area of rehabilitation, sports and healthy ageing in the Netherlands, is where the first lines of code were written. RRD started the first iteration of the platform in the Council of Coaches project. Developers Dennis Hofs, Boris van Schooten, and Tessa Beinema have been major contributors to the platform's source and documentation.
License
The foundation of DialogueBranch is its dialogue authoring language, its parsers and its web-components. All of these elements are licensed under the extremely permissable MIT License. This means that you may use DialogueBranch in any setting, including within commercial applications.Attribution is not legally required, but it is very much appreciated! If you are using DialogueBranch, please tell us about it, and feel free to add a "made with DialogueBranch" logo anywhere in your product. We'd love to hear your feedback, and love to see what you're creating with it. Unless you are using DialogueBranch for Evil Purposes, in which case we dissaprove, and fart in your general direction.
The complete text of the DialogueBranch License is provided here below (please refer to the source code on their respective GIT Repositories to verify the applicable license):
Copyright <YEAR> Fruit Tree Labs
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The copyright of any contribution to DialogueBranch (source code, documentation, or anything else), will always remain with the orginal author of the work. For example, if you contribute code, you may choose to flag this code by adding your name (e.g. using an @author JavaDoc tag). However, be aware that the MIT License waives most of the rights typically belonging to the copyright holder.