Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ajboni/talkit
Non-Linear Game Dialogue Editor
https://github.com/ajboni/talkit
dialog dialogue-editor dialogue-systems graph
Last synced: 26 days ago
JSON representation
Non-Linear Game Dialogue Editor
- Host: GitHub
- URL: https://github.com/ajboni/talkit
- Owner: ajboni
- License: mit
- Created: 2015-06-07T14:36:18.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-07-06T12:57:18.000Z (over 1 year ago)
- Last Synced: 2024-12-08T16:55:17.578Z (about 1 month ago)
- Topics: dialog, dialogue-editor, dialogue-systems, graph
- Language: JavaScript
- Size: 197 KB
- Stars: 101
- Watchers: 10
- Forks: 43
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Advertisement
> Hello! I'm currently working on a similar but more powerful app which supports multiple dialogues with built in scripting, gdds, quest, etc.
> https://baj.itch.io/drafft---
# Talkit
Web Based, Non-Linear Game Dialogue Editor.
#
Talkit is a fork of [etodd's](https://github.com/etodd) wonderful [The Poor Man's Dialogue Tree](https://etodd.io/2014/05/16/the-poor-mans-dialogue-tree/) which is currently part of [Lemma](https://github.com/etodd/Lemma) project.
## Description
Talkit is a Non-linear, node based, game dialog editor.
It runs on [jointJS](https://www.jointjs.com/). It exports to JSON with game ready content.
![alt text](https://i.imgur.com/7lu8NIy.png?1)## Nodes
### Text
Display a message from the specified actor.
Actor: Specify the actor who will say the speech.
Speech: The text the actor will say.### Choice
Intended to populate the players choices for responses.
Title: The title of the choice. This is useful for cases when the buttons the player would have to chose from
will differ from the actual speech he will say.
Speech: The text the actor will say.### Set
Sets a variable to a value. Can link to one Text, Node, Set, or Branch.
### Branch
Takes one of several paths based on the value of a variable. Each port can link to one Text, Node, Set, or Branch.
### Node
Does nothing. Can link to one Text, Node, Set, or Branch, or to one or more Choices.
## Usage
Fire up the HTML, make your dialog and export.
You can add ?load="file.json" to the URL to load a graph saved on cache.
Example Output:```javascript
[
{
type: "Text",
id: "227b6f95-2759-4bda-8364-3bcbcb2cbf4d",
actor: "Detective",
name: "Now tell me Victor.\nWhere were you last night?",
choices: [
"b24806af-4923-4881-84c8-93426cbe3c19",
"69261cd7-1cfe-4088-8c7c-99f19bc5fb25",
],
},
{
type: "Choice",
id: "69261cd7-1cfe-4088-8c7c-99f19bc5fb25",
title: "Honest Answer",
name: "I was at her house.\nBut I dind't saw anything strange.",
next: "6e9f9c69-3efc-447b-ac3a-ade28635b106",
},
{
type: "Choice",
id: "b24806af-4923-4881-84c8-93426cbe3c19",
title: "Lie",
name: "",
next: "fe9c4ac5-3f5a-4df1-91fe-e45b523017d7",
},
{
type: "Set",
id: "6e9f9c69-3efc-447b-ac3a-ade28635b106",
variable: "Honest",
value: "true",
next: "fd3067f6-2afc-42e8-a697-2bb5739a8438",
},
{
type: "Set",
id: "fe9c4ac5-3f5a-4df1-91fe-e45b523017d7",
variable: "Honest",
value: "false",
next: "fd3067f6-2afc-42e8-a697-2bb5739a8438",
},
{
type: "Text",
id: "fd3067f6-2afc-42e8-a697-2bb5739a8438",
actor: "Detective",
name: "That will be all for now.",
next: null,
},
];
```## Not Implemented Yet - `TODO`:
- Add ?import="file.json" to import a graph from disk.
- Add the ability to make a node a starting node.
- Display the Id of the node on each node.