Speechr is an offline first, team based, all-in-one game design and development environment created to keep your project organized, streamlined and focused. It’s available for Windows and Linux.

NOTE: WE MADE A NEW UPDATED WEBSITE FOR SPEECHR. CLICK HERE

The goal of the app is to have an easy to use, portable, centralized data storage which can then be exported to a parser friendly game format (standard JSON at this time).

Speechr is free to use for solo devs. For team based use please contact us first.To try the current beta version please join our discord to receive a free license.

button_join-the-beta-on-discord(1)
Support: https://gitlab.com/pointbleepstudios/speechr/issues

Updated WIKI: https://pointbleep.gitbook.io/speechr/

Features:

  • Singleuser or Multiuser.
  • Live remote sync to any couchdb compatible database.
  • Create/edit/export game design documents.
  • Manage and write scripts with custom scripting language.
  • Node Based dialogue tree editor.

WIP:

  • Auto identify actors and generate exportable voice over scripts for voice actors.
  • Items, actors and quest databases.
  • Kanban boards.
  • Game keys management
  • Export game ready content including scripts, dialogues, actors, quests, items, etc.


Quick Reference:

The program is divided into different “modules”:

GD​​D (TODO)

A game design document is to unambiguously describe the game’s selling points, target audience, gameplay, art, level design, story, characters, UI, assets, etc. In short, every aspect of the game requiring development should be included in enough detail for the team to implement. The document is purposely sectioned and divided in a way that game developers can refer to and maintain the relevant parts.

The majority of video games should require an inclusion or variation of the following sections:

  • Story
  • Characters
  • Level/environment design
  • Gameplay
  • Art
  • Sound and Music
  • User Interface, Game Controls

This list is by no means exhaustive or applicable to every game. Some of these sections might not appear in the GDD itself but instead would appear in supplemental documents.
In this section you will be able to add GDDs in a hierarchical fashion.


SCRIPTS:

Scripts are snippets of code that can be used in your game for scripting game logic or cutscenes.
They can be organized in a hierarchical structure and can be exported in JSON format to parse in game.

2018-09-04 17_23_52-Start
The only currently supported language is a custom language that supports the following syntax:

::Actor::
<Command(parameters)>
// Comments
[#VoiceOverTag]
[character emotions]

Example:

// Intro speech
[#1]::Narrator::Hello and welcome to speechr.
<Wait(2)>
[#2]::Poffle::Not now, my wife has died. [sad]

Of course, you can use whatever syntax you want but several features of the app won’t work: auto audio, actor tagging and voiceover script exports for example.


DIALOGUES:

In this module, you can build complex dialogue trees. Each dialogue tree consists in one or more nodes which have inputs and outputs.
Nodes are connected via input and output ports. A node may contain 1 or more outputs, but only one input.

2018-09-04 17_24_55-Start
At the moment of this writing there ara only two types of nodes:
Script nodes and Choice nodes:
Script nodes have only one input and one output. Each node has a script linked to it, which can be edited in the bottom of the script or in the SCRIPTS module under a special DIALOGUES entry.
Choice nodes are designed to branch the flow of the dialogue, usually used for player decisions.
Choice nodes don’t have scripts attached, but each output port has a title/label property which can be used when parsing for identification.
Dialogues are exported to standard JSON format.


DIRECTOR:

This module lets you auto identify scripts which has actors and add an auto incremental voice over tag ([#1]) .
It also lets you classify each tagged line with its actor in order to quickly view and export scripts that are sorted per actor and stripped to only-tagged lines. Useful to distribute to voice actors

2018-09-04 17_38_54-Start

WIP Features:
It also has an Actor Properties section where you will be able to define each actor properties, like name, gender bio, etc.

Potential Use:
Actor properties could potentially be used for quick reference while scripting or even variables.
Example ::Poffle::I am {age} years old/.
Example ::Narrator::Accuracy Increased to {player.accuracy} or {actors.player.accuracy}


QUESTS:

Quests can be actual quests, objectives or properties that need to be tracked in the course of a game. Quests (and other user defined settings) can be written in hjson (recommended), json, and YAML. They will be converted to standard JSON on game content export.

2018-09-04 17_42_56-Start

Quest are divided into two objects: Properties and Conditions:
Properties are states linked to a quest that can change value.
Conditions are the expected properties value for a quest to be considered completed.
Example usage:

[Properties]
Title: Win the game
Description: Global Game Variables
State: Hidden
Win: false
SampleGlobalVar1: 1
SampleGlobalVar2: Some Text
SuperImportantVariable: false

[Conditions]
SuperImportantVariable: true // If This line is true, then the quest will be completed.

ITEMS (TODO):

Same functionality as quests, except that it wont have properties or conditions:
Example usage:

[Computer] uniqueName: computer_01 ram: 4gb daysUsed: 300 repaired: true

TODOs (TODO):

This will be a simple Kanban board to add tasks and complete them. Not intended to replace popular tools like trello, but to provide a quick way to add to-does.


KEYRING (TODO):

This section will have a tree structure (much like quests) where you will be able to mass import licence keys for services (steam, itch.io, etc) and then you will be able to assign it to users and mark them as used. Keys should be encrypted.


OPTIONS

Settings regarding the local client installation:

RESEARCHING:

  • How to handle localization.
  • In app variables: ability to reference other modules objects, and should be translated when exporting: for example:
    ::Narrator::{actors.roy.firstName} is {actors.roy.age} years old!
    <Animate({items.computer.uniqueName},TurnOn)>
    ::Roy::In order to advance I need to {quests.unlockDoor.description} before!
  • Possibility to convert it into a team based app. It Will need a mongo database but the current db should be compatible…
  • Locations map?

5 comments

  1. Hey :). Good work so far! This is a really interesting project. Are you still developing it? I’m working on a game which is quite heavy in the story department. I’m going to need a tool to edit dialog in, but I’m also thinking Quests, Outcomes, locations (Structures, Objects), Inventory and Skill management (a way to add Skills to Characters and define what they do). I’m going to try to join the beta :).

    Like

    1. Hi!!
      thanks for passing by!
      The app is in heavy development. We did a database migration that unfortunately is taking some time and some functionality is still basic (stopped adding features until the migration is done) . V0.3 is coming the following week.
      Meanwhile the standalone version is working quite good.
      I would love to hear some feedback and/or use cases you might have.
      let me know if you need anything.

      Skill management (or actor attributes) will be really nice to have. I’m thinking in a plain editor in the actor module where you can set up actor properties.

      Thanks
      Rodo

      Like

      1. Yeap, makes sense :). I connected with Discord and we can talk there. I’m interested in trying latest developmental builds once you fix the issues caused by the migration. I tried doing something similar about 10 years ago in C#, but I abandoned it because I had too little time (it’s hard to BOTH do a game story editor AND a game 😀 ).

        Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s