inkle / inkle/ink

Runtime Specification

Open
#738 17 comments 4 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
4.9k
Forks
540
PR merge metrics
No merged PRs in 30d

Description

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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.