Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

branching-dialogue

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

branching-dialogue

A stateless API for modeling branching dialogue in role-playing games

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

branching-dialogue npm version Build Status

A stateless API for modeling branching dialogue in role-playing games

Background / Initial Motivation

The initial motivation for this library was to power branching dialogue with npc's in a browser game.

To Install

$ npm install --save branching-dialogue

Usage

Conversations are directed graphs are stored as JSON

{
  "dialogue": {
    "1": {
      "text": "I'm doing fantastic! Want to get some dinner?",
      "responses": [
        {
          "next": 4,
          "reply": "Absolutely! I'll meet you at La Marina"
        }
      ]
    },
    "2": {
      "text": "Hey how are you?",
      "responses": [
        {
          "next": 1,
          "reply": "Great how are you?"
        },
        {
          "next": 3,
          "reply": "Not so good :("
        }
      ]
    },
    "3": {
      "text": "Oh no, do you need anything from me?",
      "responses": [
        {
          "next": 5,
          "reply": "Nah, I'm alright thank you."
        }
      ]
    },
    "4": {
      "action": "go-to-dinner",
      "text": "Sounds great!"
    },
    "5": {
      "action": null,
      "text": "Alright, well feel better."
    }
  },
  "start": [
    {
      "dialogueId": 2,
      "if": true
    }
  ]
  }
}
// The example convo.json file from above
var convo = require('./convo.json')

var branchingDialogue = require('branching-dialogue')
// We start at dialogue id #2
var startText = branchingDialogue.get(
  convo,
  convo.start[0].dialogueId
)

// We choose the second response, "Not so good :("
var nextText = branchingDialogue.get(convo, startText.responses[1].next)
// We choose the first response, "Nah, I'm alright thank you"
var nextText = branchingDialogue.get(convo, startText.responses[0].next)

// This gets executed based on the above replies
if (!nextText.action) {
  console.log(nextText.text)
  // Alright, well feel better.
}

// This does not get executed
if (nextText.action === 'go-to-dinner') {
  // Your code might send your player to the dinner venue
}

TODO:

  • Implement the module
  • Figure out API for conditional start / responses

API

branchingDialogue.get(convo, dialogueId) -> Object

convo

Required

Type: object

A JSON representation of the conversation.

dialogueId

Required

Type: Number || String

The id of the part of the conversation that you are retrieving

See Also

// TODO: Link to the module for parsing the conditional response DSL

License

MIT

Keywords

FAQs

Package last updated on 12 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc