chore: update README
This commit is contained in:
parent
127db83041
commit
f27538f88f
1 changed files with 70 additions and 10 deletions
80
README.md
80
README.md
|
|
@ -1,13 +1,73 @@
|
||||||
# Ink
|
# Ink
|
||||||
An experimental, high-performance alternative to Inkle's C# compiler and runtime.
|
|
||||||
|
|
||||||
## High-level Goals
|
Ink is a narrative scripting language developed by [Inkle](https://www.inklestudios.com/), designed to allow writers and game designers to express branching narrative in a natural way. It has powered many of Inkle's titles such as _80 Days_, _Heaven’s Vault_, and _Overboard!_.
|
||||||
* Create the fastest possible implementation of Ink
|
|
||||||
* Eliminate edge-cases that could cause confusion or performance penalties, found within the Inkle implementation of Ink
|
This project aims provides a modern, high‑performance implementation of Ink aimed at game engines and custom tooling pipelines, imposing minimal runtime overhead, and even usable in constrained environments.
|
||||||
* Support as much of the language as possible, with some quality-of-life improvements
|
|
||||||
|
> 📝 **Experimental** This project is in an early, unstable state. Breaking changes are expected. Only use in production if you're super rad.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Build From Source
|
||||||
|
|
||||||
|
This project tracks the latest release of the Zig compiler (0.16.x), and requires LLVM 21.x to generate its code.
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://codeberg.org/haxolotl/ink
|
||||||
|
cd ink
|
||||||
|
zig build -Doptimize=ReleaseSafe
|
||||||
|
```
|
||||||
|
|
||||||
|
## Project Goals
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
|
||||||
|
The canonical Ink implementation is written in C#, and integrates well for Unity. Unfortunately, it is not optimized for software developed in unmanaged languages, such as C or C++, giving rise to competing runtimes such as JBenda's wonderful [inkcpp](https://github.com/JBenda/inkcpp).
|
||||||
|
|
||||||
|
Our goal is to build the **fastest, most efficient Ink compiler and runtime**, with:
|
||||||
|
|
||||||
|
- A compact, pre-compiled binary format
|
||||||
|
- A stack‑based virtual machine designed for predictable performance
|
||||||
|
- Zero‑allocation execution paths where possible
|
||||||
|
|
||||||
|
### Ease of Integration
|
||||||
|
|
||||||
|
Ink should be trivial to embed in any engine or toolchain. This implementation is designed to be:
|
||||||
|
|
||||||
|
- **Language‑agnostic** — usable from C, C++, Rust, Zig, C#.
|
||||||
|
- **Engine‑agnostic** — simple to integrate into Unity, Unreal, Godot, or custom game engines.
|
||||||
|
- **Build‑system friendly** — self-contained within its generated library file, without any dependencies.
|
||||||
|
|
||||||
|
### Developer Tooling
|
||||||
|
|
||||||
|
Writers and developers deserve tooling that naturally fits into their workflow. This implementation aims to support:
|
||||||
|
|
||||||
|
- Better error messages and reporting
|
||||||
|
- Fast command‑line compilation
|
||||||
|
- Binary introspection and runtime tracing
|
||||||
|
- AST and IR introspection
|
||||||
|
- Integration hooks for editor extensions and custom pipelines (coming soon!)
|
||||||
|
|
||||||
|
## What is supported?
|
||||||
|
|
||||||
|
This implementation currently only supports the minimum language features to be a usable compiler and runtime for most projects. The following features are not currently supported, but planned for the near future:
|
||||||
|
|
||||||
|
- Tags
|
||||||
|
- Tunnels
|
||||||
|
- Lists
|
||||||
|
- Sequences
|
||||||
|
|
||||||
|
## When will there be a stable release?
|
||||||
|
|
||||||
|
Our benchmark for when the first stable release can be tagged is the ability to compile and run [The Intercept](https://github.com/inkle/the-intercept), a sample of a real-world Ink story created by Inkle.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
If you like this project and want to support its continued development, consider buying me a coffee. This code ain't gonna write itself!
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://www.buymeacoffee.com/haxolotl">
|
||||||
|
<img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" height="50" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## Unsupported Features (Planned for near future)
|
|
||||||
* Tags
|
|
||||||
* Tunnels
|
|
||||||
* Lists
|
|
||||||
* Sequences
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue