Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation organization & stubs for runtime specification #749

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 5 additions & 2 deletions Documentation/ArchitectureAndDevOverview.md
Expand Up @@ -72,7 +72,7 @@ Other transformers and structuring concepts exist, but hopefully this should giv

## Runtime code generation

The parsed hierarchy closely resembles the ink as it was originally written. However, the data that's loaded by the ink engine at runtime is very different. It's built out of smaller, more fundamental units, sort of like byte code, though not that low level. This content is exported to a JSON based format ready to be loaded by the runtime engine within the game. For more information on this format, [see the documentation](ink_JSON_runtime_format.md).
The parsed hierarchy closely resembles the ink as it was originally written. However, the data that's loaded by the ink engine at runtime is very different. It's built out of smaller, more fundamental units, sort of like byte code, though not that low level. This content is exported to a JSON based format ready to be loaded by the runtime engine within the game. For more information on this format, [see the documentation](archive/ink_JSON_runtime_format.md).

In the runtime, there's no concept of Knots, Stitches, Weave, or other high level ink structures. Instead, the runtime consists mainly of general purpose `Runtime.Container` objects and content, inheriting from `Runtime.Object`.

Expand Down Expand Up @@ -113,11 +113,14 @@ if (targetContent) {

## Runtime ink engine


_Note: This section of the documentation is incomplete. We're working on a formal specification for the runtime ink engine, stay tuned!_

As mentioned above, the runtime code is built out of smaller, simpler, objects compared to the ink as it's parsed directly.

All the higher level structures, including the story itself, any knots and stitches, and even choices, are built out of containers. Within the containers, content is iterated through sequentially, and appended to the output.

This structure is loaded by the ink engine in a [JSON based format](ink_JSON_runtime_format.md).
This structure is loaded by the ink engine in a [JSON based format](archive/ink_JSON_runtime_format.md).

### Containers

Expand Down
3 changes: 3 additions & 0 deletions Documentation/runtime-specification/docs/architecture.md
@@ -0,0 +1,3 @@
# Architecture

_High-level explanation of the runtime architecture_
@@ -0,0 +1,3 @@
# Compiled JSON reference

_Glossary & Examples of each type of object & instructions the ink compiler will generate_
3 changes: 3 additions & 0 deletions Documentation/runtime-specification/docs/glossary.md
@@ -0,0 +1,3 @@
# Glossary

_A glossary of terms used by the runtime_
17 changes: 17 additions & 0 deletions Documentation/runtime-specification/docs/index.md
@@ -0,0 +1,17 @@
# Welcome to MkDocs

For full documentation visit [mkdocs.org](https://www.mkdocs.org).

## Commands

* `mkdocs new [dir-name]` - Create a new project.
* `mkdocs serve` - Start the live-reloading docs server.
* `mkdocs build` - Build the documentation site.
* `mkdocs -h` - Print help message and exit.

## Project layout

mkdocs.yml # The configuration file.
docs/
index.md # The documentation homepage.
... # Other markdown pages, images and other files.
@@ -0,0 +1,3 @@
# State Saving & Restoration

_Explanation of how the ink runtime stores the state after each execution_
7 changes: 7 additions & 0 deletions Documentation/runtime-specification/index.md
@@ -0,0 +1,7 @@
# Runtime Specification

**Note: This version of the specification is based on version 1.0.0 of ink: https://github.com/inkle/ink/releases/tag/v1.0.0**

_Explanation how the runtime is structured_

_Table of Contents_
1 change: 1 addition & 0 deletions Documentation/runtime-specification/mkdocs.yml
@@ -0,0 +1 @@
site_name: "Ink Runtime Specification: 1.0.0"