SandCat —更新3

这是游戏规则集开发语言SandCat的第三次更新。

SandCat是一种游戏描述语言,允许设计人员忽略软件开发,而完全专注于游戏设计

变更0.0.4

这是更改和添加的列表。

  • 我朝着可重用的集中式运行器迈出了第一步。 我重新组织了代码,并删除了跑步者不需要的所有内容。 有很多测试代码,例如一些不需要的opengl渲染库,因此将其删除。
  • 我创建了SandCat_Runner,它将其编译为dll,并提供了一些方法来加载游戏规则并对其进行查询。 它旨在成为在任何平台上播放SandCat规则文件的中央且唯一需要的库。
  • 我创建了SandCat_Unity,这是一个链接到SandCat_Runner的统一插件,允许游戏设计人员在Unity中加载和播放SandCat规则。
  • 我创建了一些不同的Unity实用程序类以促进快速迭代。 例如将SandCat游戏状态值映射到精灵或颜色。 这些使设计师能够更轻松地组织游戏的显示和交互方式。
  • 向SandCat_Runner添加了错误检查。 现在,它报告语法和运行时错误,而不是崩溃。 巨大的进步。
  • 动作和方法现在可以具有多个do-if语句。 这允许更大的灵活性。
  • 添加了语言功能以生成一定范围内的随机数。 可能需要更强大的方法来生成随机数,但这是一个很好的第一步,对于大多数游戏来说已经足够了。

表土

我为此更新了游戏Topsoil。 Topsoil是一款小型益智游戏,几周前发布。 您可以在这里看到真实的游戏 。 如果您想了解游戏,一定要看预告片。

这是表土的SandCat规则。

改进之处

这里的问题很明显。 是的,它可以工作,但是许多行为会重复多次。 这里的核心问题是网格。 该语言没有充分处理网格所必需的工具,并且由于许多策略游戏都依赖网格,因此这是一个大问题。 我认为需要两个新的语言功能来解决这些问题。

  • 线扩展。
    这行Cell1, Cell2, Cell3 : [Plant(0), Color(0)].
    等效于— Cell[1..3] : [Plant(0), Color(0)].
    我认为该功能甚至在网格之外也有很多用途,因此无论如何我都计划这样做。
  • 数组结构。
    我不太相信这是一个好主意,但我认为这是基本要求,因为设计人员需要能够索引到结构中。 如果没有数组,设计人员将不得不手动遍历未组织的对象。 例如,在Topsoil测试游戏中,我不得不多次遍历单元格-如果我可以直接索引到网格结构中,则可以大大简化逻辑。

我希望每个新功能都有很多用途。 我有意识地尝试避免创建仅解决非常特殊情况的非常特殊功能的陷阱。 我不认为这两个功能会落入这个陷阱,但是对于每一个新的语言功能,我都觉得自己越来越接近这种问题。 考虑到这一点,我计划首先添加线扩展功能,然后使用该功能重新创建Topsoil。 从那里我将重新评估并确定是否仍然需要数组结构。 考虑到有多少游戏从根本上依赖于网格和空间关系,我想它们会成为现实。

这就是所有更新! 谢谢阅读。