23次发布
0.12.5 | 2020年9月11日 |
---|---|
0.12.4 | 2020年8月18日 |
0.12.3 | 2019年8月13日 |
0.11.7 | 2019年8月4日 |
0.9.3 | 2019年7月12日 |
#258 in 游戏开发
570KB
12K SLoC
Inkling
游戏对话的Ink标记语言的局部实现。
Ink是Inkle的创造。有关语言的更多信息,请访问他们的网站。
Using Ink you can easily write a story or create a dialog tree.
* Branching is very simple[]: <>
just start your line with an asterix or plus marker.
Want nested choices? Add more markers!
* * A branching choice contains all information below it
of the same level or higher.
* * * [I see.]
* * Pretty cool, huh?
- - Use gather points like this to return all nested choices <>
to a single path.
* * [Cool!] -> fin
* You can organize the story using knots <>
and divert (move) to them, like this:
-> next_knot
=== next_knot ===
Simple and fun.
-> fin
=== fin ===
Ink is very powerful and has a lot more features than shown here. <>
Do note that `inkling` only implements a subset of all its features. <>
Hopefully more in the future!
-> END
为什么是inkling?
- 简单的界面用于遍历分支故事或对话树
- 设计用于插入外部框架:与Inkle的实现一样,这不是一个独立的游戏引擎,而是一个将故事文本和选择传递给用户的处理器
- Rust本地化,无需与Unity或C#集成抗争
- 支持在标识符中使用非拉丁字母表
- 依赖项很少:目前只有
serde
作为可选依赖项以反序列化故事,可能在未来是可能可选的rand
。
为什么不是inkling?
- 与Inkle语言实现相比,功能较少
- 未在严重的工作负载和大脚本中测试
- 甚至不是alpha状态,这是什么????
功能
目前以及可预见的未来,功能集与Inkle自己的实现相比非常有限。可用功能包括
- 节点、缝合、胶水和偏转,即基本的故事结构
- 选择,包括粘性和非粘性选择,以及后备选择
- 嵌套选择和收集点
- 行文本替代序列(序列、循环、一次)和条件
- 条件以显示文本和选择给用户
- 行和选择的标记
- 选择、条件和文本中的变量
- 可选:通过
serde
反序列化完成的故事
可能的进一步开发候选者
- 脚本中的变量修改
- 包括其他文件
我怀疑我的技能水平是否可以实现的困难功能
- 高级流程控制:隧道和线程
- 验证所有故事分支是否完整
用法
请参阅文档或提供的示例以获取最小可行的故事处理器。通过激活serde_support
功能启用serde
反序列化。此功能为所有所需的结构推导了Deserialize
和Serialize
。
贡献
编写这个主要是为了好玩和创建一个简单的游戏,因此缺少功能。欢迎贡献!有关更多详细信息,请参阅CONTRIBUTING.md。
许可
Inkling 是自由版权,许可协议为 Parity 许可协议 和 Apache-2.0。更多详情请见 LICENSE.md。