Trickster

Trickster

学习魔法,从零开始创造咒语。唯一的限制就是你的创造力!

魔法

诡术师

discord-plural kofi-singular fabric-api cicada

Modfest: Carnival 参赛作品

诡术师是一款基于深奥语言的魔法模组,灵感大致来源于Hex Casting。 随身携带一本由古代秘法学者撰写的书籍,学习编写咒语,创造出从简单到复杂、随心所欲的魔法效果。

一个简单的咒语

那么我能创造什么?

是的。

你可以编写的咒语构建于图灵完备的树状结构之上, 让你拥有完全的自由来创造你想要的结果。 咒语几乎可以做到你能想象到的任何事情*!

*前提是你的想象力受限于可用符文(Glyph)的范围。 Library inc. 对过度活跃的想象力或其他形式的不当创造力概不负责。

一个持久的多核心咒语构装体

这是个相当大胆的说法,不是吗?

是的,但我们认为这并非空穴来风。

首先,咒语在完成之前不会停止施放,而实际上,它可能永远不会完成! 咒语与游戏的其他部分同时运行,并且可以像 Minecraft 中的其他一切事物一样,随时保存到磁盘或从磁盘加载。这意味着你可以让一个咒语持续运行,然后退出游戏,两天后再回来,它会从你离开的地方继续执行。

此外,咒语可以无限大、无限复杂。虽然咒语的执行速度有限制(以避免给服务器带来过大负担),但咒语本身的复杂度完全由你掌控!

那么我该如何开始?

其实,我们已经让这部分变得非常简单了。

所有的图案(Pattern)、物品和方块都记录在《师者之言》(The Teacher's Language)一书中,作者是阿雷利·哈伦(Areli Haron), 这本书是精通秘术的古代文明为数不多的遗物之一。 随着你在世界中不断发现新事物,书籍中也会添加相应的笔记,记录这些发现。

如果你愿意,也可以访问网络书籍 trickster.ing。

文档

我还能期待什么?

正如任何优秀的魔法模组所应具备的,我们提供了一系列可靠的工具和小饰品,以辅助咒语的编写和施放。

一些可用的玩具

函数式编程中的函数式

对于更偏向编程思维的玩家来说,本模组中的咒语施放系统可以被描述为基于树的函数式编程,最接近的类比是 Lisp。这意味着几点:

  • 数据是不可变的。
  • 递归不仅是可能的,也是实现循环行为的主要方式。
    • 这也意味着通过尾调用优化(Tail-Call Optimization)可以实现无限(甚至相互!)递归。
  • 数据只能在树中从一个节点向上移动到下一个节点。
    • 不过有多种流程控制选项可以克服这一限制。

这与其他的函数式范式相结合,创造了一种非常简洁但功能强大的脚本语言。

致谢

部分物品纹理由 Discord 上的 @midnightcartridge 提供。

也感谢 @crephan 帮助制作了大量物品纹理和模型。

本模组最初是为 Modfest: Carnival 制作的, 但此后已在其原始范围基础上得到了长足的发展。