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 游戏开发

Parity-6.0.0 AND Apache-2.0

570KB
12K SLoC

Inkling

crates.io Documentation

游戏对话的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反序列化。此功能为所有所需的结构推导了DeserializeSerialize

贡献

编写这个主要是为了好玩和创建一个简单的游戏,因此缺少功能。欢迎贡献!有关更多详细信息,请参阅CONTRIBUTING.md

许可

Inkling 是自由版权,许可协议为 Parity 许可协议Apache-2.0。更多详情请见 LICENSE.md

依赖关系