Skip to content

Runtime Specification #738

@tcannonfodder

Description

@tcannonfodder

This issue is to kick off a project discussed in the Inkle discord with @ephread: writing a specification for Ink runtimes.

Reason

Right now, building an ink runtime requires reverse-engineering the C# implementation, which causes a few issues:

  • Increased engine developer burden
  • (Likely) differences between runtimes, making ports harder
  • Code that will feel like the C# implementation, rather than writing a language/platform-specific implementation that matches the existing ecosystem

How we can help

If runtime developers collaborate & write a specification for:

  • The high-level architecture of an Ink runtime
  • A comprehensive spec for the compiled JSON bytecode
  • How to parse & prepare the JSON bytecode from Ink exports
  • How state saving & restoration should work
  • How external function calls work in Ink
  • Accompanying tests, including a defined "call and response" test suite that plays through a complete, compiled Ink story over various paths to verify the behavior ( https://github.com/inkle/the-intercept feels like a great candidate for this)

We can dramatically improve Ink's tooling, and pave the way for better adoption across the board; both for current & future tools.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions