强大的解谜原型制作工具:PuzzleScript 上手指南
(本文翻译自PuzzleScript官方文档)
PuzzleScript 网址(在线制作游戏):https://www.puzzlescript.net/
PuzzleScript 是一个帮助你制作基于网格的游戏的工具。
最著名的网格解谜游戏是推箱子:

推箱子有一条规则:
如果玩家尝试走向箱子,那么推动它。
PuzzleScript 让你能够很简洁地表达这个规则:
[ > Player | Crate ] -> [ > Player | > Crate ]
PuzzleScript的引擎会去查找符合左边规则的地方,并替换成右边的形式。
> 是一个定向符号. 4个定向符号为 <, >, ^, v。
看看下面的语句,猜猜会发生什么:
[ < Player | Crate ] -> [ < Player | < Crate ]
这表示,当你远离箱子的时候,箱子会朝你靠近。
在每一个游戏的回合,引擎的是这样工作的:
player 被标记为想要运动的物体(响应玩家输入)。
每一条规则会尽可能地执行多次,然后才会继续下一条。
执行被标记的各个运动。
一个额外的阶段,用于执行一些额外的规则。
额外的阶段可以做什么?一个例子: 如果你希望三个箱子靠在一起后会消除,你可以这样写:
late [ Crate | Crate | Crate ] -> [ | | ]
如果不在前面加late关键词,三个箱子将在下回合开始时才会消除。
这是一个跟着你的幽灵眼珠:
[ Eyeball | ... | Player ] -> [ > Eyeball | ... | Player ]
这是一个顽皮的传送精灵,每当她看到你时,她就会和你交换位置:
late [ Sprite | ... | Player ] -> [ Player | ... | Sprite ]
等等!这不对!这会导致这条规则不断地执行,玩家和精灵不断地交换位置,应该改成这样:
late [ Sprite | ... | Player ] -> [ Temp | ... | Sprite ] late [ Temp ] -> [ Player ]

如果你是一个喜爱水果的小喵?
[ > Kitty | ... | Fruit ] -> [ | ... | Kitty ]
[ > Kitty ] -> [ Kitty ]
上述第二行是为了猫咪移动到水果上的时候不会再额外的进行正常的移动。

如果你想让箱子只能被水平推动?
Horizontal [ > Player | Block ] -> [ > Player | > Block ]
horizontal表示只在移动方向为水平的情况下匹配这个规则 . 你也可以改成竖直方向(vertical ).

把你可以同时写几个模式,而不仅仅是一行。这个例子是一个相扑手在模仿你的移动:
[ > Player ] [ Sumo ] -> [ > Player ] [ > Sumo ]

这大约涵盖了所有基础知识。 你现在可以尝试修改这些示例了。 如果你愿意,还有很多要阅读的内容,但我建议你在有需要的情况下学习其余部分。
没有必要了解 PuzzleScript 的所有细节——它是一种制作游戏的工具,如果你不使用它,那么引擎就无法实现它的目的。