当前位置: 首页 > 科技观察

Puzzlescript,一个开发H5益智游戏的引擎译者_0

时间:2023-03-14 08:19:46 科技观察

|审稿人陈军|孙书娟目前,在商业和客户(B2C)领域,无论是Web应用还是内部软件,通常可以分为:发布、搜索、执行和对话四种类型。本文着眼于第五类:个人娱乐。我将和大家一起一步步探索一款开源HTML5益智游戏的开发流程和平台。几年前,知名游戏制作人StephenLavelle为Increpare开发了Puzzlescript工具。是专门为推箱子类游戏制定游戏规则的脚本和平台。当然,这类类比方块游戏对你来说可能过于原始,我们可以利用它的Puzzlescript库来开发自己有趣的变体游戏。1.定义游戏的规则、关卡和方块我们先从创作者的角度来看Puzzlescript平台:所有的游戏都可以分为不同的关卡。玩家角色可以使用箭头键或“W”、“A”、“S”和“Z”键移动和操作。任何级别的级别都由像素贫乏的块对象组成。这些物体的排列会逐渐变得复杂,形成阻碍你取胜的障碍。在最初的推箱子游戏中,可以推动的物体包括:墙壁、板条箱和带圆点的地板。只有完成一个级别才能进入下一级别。有了前面的基础,下面我们来讨论如何定义自己的游戏规则,设计关卡,绘制组件,使用Puzzlescript脚本编写游戏代码。首先,我们可以设置规则,如果玩家向板条箱移动,板条箱本身应该朝相同的方向移动:[>Player|板条箱]->[>播放器|>Crate]这代表推箱子中的标准交互逻辑。程序代码可以将其解读为“用右边的模式(玩家移动到一个正方形,板条箱移动到下一个正方形)替换左侧的模式(玩家移动到带有固定板条箱的方格)”。在准备解释的过程中,你需要考虑游戏引擎将如何检查那些即将发生的动作,然后重新绘制游戏。如果你是Z时代的益智游戏玩家,可以参考热门游戏《巴巴就是你》的基本逻辑。让我们详细讨论名为ManicAmmo的特定Puzzlescript游戏的代码。该游戏基于某人被困在弹药库中的背景故事。当你点击底部的“hack”链接时,你可以看到屏幕被分成了三个窗口。右上角的窗口允许您运行当前编译的游戏。所以如果你点击它,然后按下空格键,游戏就会在这个窗口中运行。我们比较感兴趣的是左边的源代码窗口。您可以看到“对象”标题,以及其下方的一长串格式化数据。这意味着游戏将在视觉上呈现为5×5的立方体。此外,其基本颜色由数字代码定义。例如,下图中的“玩家”角色有一个黑色和粉红色的头部和黄色的腹部。上面清单的其余部分按不同的标题分组,“规则”部分包含您更熟悉的Puzzlescript代码:=====RULES=====[Bang]->[background][boom]->重启[>player][Droid]->[>player][>Droid][>Player|外壳]->[>播放器|>外壳][>机器人|外壳]->[>机器人|>Shell]从上面的代码可以知道,玩家可以像我们前面的例子一样,用推箱子的方式推某个地堡。通过这样一种快捷的接入方式,其他游戏开发者可以通过对现有代码的增删改查,快速构建自己的游戏。比如你可以在上面的规则下添加一行代码来修改游戏的规则,触发游戏从头开始构建:[>Player|目标]->[目标|>Player]可见,“Winconditions”是一个完整的关卡需要满足的单一规则。值得一提的是,黑客还可以利用上述方法破坏现有的游戏逻辑和运行。==============WINCONDITIONS==============AllPlayeronTarget当然这也是直接参与应用修改的方式。游戏开发者可以将应用代码上传到GitHub,然后让其他开发者clone到本地运行,避免web状态对游戏体验的实际影响。从理论上讲,这是一种“低摩擦”的参与方式(例如,添加代码行以查看同一页面上发生了什么变化),可以帮助参与者通过调试实际代码来提高游戏编程的A水平,并最终成为全栈游戏创造者。2.Puzzlescript平台使用Puzzlescript编写小游戏无疑是对开发设计能力的一次很好的考验。当你在公司的实际项目中开发和支持某些应用或工具时,你可能会注意到这样一个实用逻辑:某个工具或应用只有拥有专业的社区和广泛的迭代用户才能蓬勃发展。Puzzlescript也应用了这个原则。经过十多年的发展,Puzzlescript已经拥有成熟的论坛和一大批忠实的支持者,包括内容创作者、设计师、黑客、玩家、维护者和策展人。甚至Stephen本人也在继续添加和开发该平台。下面我们就来看看如何在这个平台上搜索和运行游戏。在ExhibitLibrary页面上,您可以按游戏名称或作者姓名进行搜索。如果您更熟悉该平台,还有一些其他标签元数据可用。由于每个游戏都可以用一个链接来表示,其他网站可以根据自己的展示意愿,利用该URL进行有效的游戏策划。例如,Philschatz网站按大小和挑战对游戏进行分类。事实上,该平台的所有当前游戏列表都将保存在一个json文件中,因此您可以导出自己的索引,或将其托管在itch.io等平台上。3.总结通过以上的讨论,我们了解了什么是Puzzlescript,推箱子游戏的基本原理,以及如何定义相关的规则。同时,我们还讨论了用户如何创建自己的游戏,如何修改他人的作品,以及如何通过论坛与其他开发者甚至是某个游戏的作者直接交流。既然平台本身是建立在开源的Github之上,何不自己设计一个小游戏来锻炼自己的全栈平台开发能力呢?原文链接:https://thenewstack.io/puzzlescript-a-devs-guide-to-an-html5-puzzle-game-engine/陈朱利安(JulianChen),社区编辑,IT项目十余年实施经验,善于控制内外部资源和风险,注重传播网络与信息安全知识和经验。