Skip to content
This repository was archived by the owner on Jun 7, 2024. It is now read-only.
This repository was archived by the owner on Jun 7, 2024. It is now read-only.

Requirements for the new game engine #40

Open
@rossjrw

Description

@rossjrw

Per #35, the new game engine will have events defined by a static TOML file or files. The old game engine (LoopService.js) was not static, allowing me to pass arbitrary functions for each event to do whatever I want; this will no longer be possible. Each possible side effect must be documented and implemented specifically. So, what needs to be possible?

  • Each interaction must have introductory dialogue and a set of options.
  • Choosing an option should initiate another interaction.
  • It should be possible to skip the options and proceed directly to a default interaction under some condition.
  • Options should be able to be toggled on or off given some condition.
  • Individual lines of text, and even groups of several lines, should be able to be toggled on or off given some condition.
  • Any "some condition" should be able to access the game state to check for pretty much anything. (what is 'anything'? is it feasible to codify each possibility?)
  • The event files must be read-writable so that I can make a UI to easily add new ones.
  • It should be possible to generate a tree mapping all interactions together.
  • It should be possible to find orphaned/wanted/tail interactions.
  • It should be possible for options to appear during the text of an interaction, or otherwise produce an indistinguishable effect, that allows an option to be selected that will cancel and interrupt the current interaction and begin a new one.
  • It should be possible for option selection to be interrupted, e.g. by a character growing impatient if time is running.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    planningplanning implementation ideas for later

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions