StarterAdventure/draft/README.md
2025-02-21 13:37:09 -05:00

2.2 KiB
Raw Blame History

Interactive Story Draft

  • File Format: .isd

The Interactive Story Draft (ISD) format is a intermediate language designed for drafting interactive fiction before implementation in Twines Harlowe or similar engines. It allows authors to structure branching narratives, define conditions, and track variables efficiently.


Specifications

  1. Passages:

    • Syntax: :: PassageName
    • Description: Defines a new passage or section in the story.
  2. Links:

    • Syntax: [[Link Text -> TargetPassage]]
    • Description: Creates a navigational link to another passage.
  3. Variables:

    • Syntax: $variableName
    • Description: Represents a variable to track states or information.
  4. Variable Assignment:

    • Syntax: (set: $variableName to value)
    • Description: Assigns a value to a variable.
  5. Conditional Statements:

    • Syntax: (if: condition)[Text if true]
    • Description: Displays text or content based on a condition.
  6. Else Clause:

    • Syntax: (else:)[Text if false]
    • Description: Follows an (if:) statement to handle the false condition.
  7. Random Number Generation:

    • Syntax: (set: $variableName to (random: min, max))
    • Description: Sets a variable to a random number between min and max.
  8. Text Styling:

    • Syntax: ''italic'', '''bold''', ^^superscript^^, ~~subscript~~
    • Description: Applies basic text formatting.

Usage

:: Introduction
Welcome to your adventure! You find yourself at a crossroads.

[[Take the left path -> LeftPath]]
[[Take the right path -> RightPath]]

:: LeftPath
You walk down the left path and encounter a mysterious stranger.

(set: $hasKey to true)
The stranger gives you a key.

[[Continue -> Crossroads]]

:: RightPath
You walk down the right path and find a locked door.

(if: $hasKey)[
    You use the key to unlock the door and discover a treasure!
]
(else:)[
    The door is locked. You need a key to open it.
]

[[Return to the crossroads -> Crossroads]]

:: Crossroads
You're back at the crossroads.

[[Take the left path -> LeftPath]]
[[Take the right path -> RightPath]]