发布时间:2023-11-27 01:06:27 浏览量:98次
译者 | 陈峻
审校 | 孙淑娟
目前,在企业与客户(B2C)领域,无论是Web应用还是内部软件,通常可以被分为:发布、搜索、执行和对话四种类型。本文着眼于第五种类别:个人娱乐类。我将和您逐步探索一个开源式的HTML5益智游戏的开发过程和平台。
若干年前,著名的游戏制作人Stephen Lavelle为Increpare公司开发了Puzzlescript工具。它是专门针对推箱子式游戏,来制定游戏规则的脚本和平台。当然,此类推箱子式游戏,可能对您说过于原始,我们完全可以使用其Puzzlescript库开发出属于自己的各种有趣的变体小游戏。
让我们首先从创作者的角度来审视Puzzlescript平台:所有游戏都可以被分为不同的级别。玩家角色可以使用箭头键,或“W”、“A”、“S”和“Z”键来移动和操作。任何级别的关卡都是由像素较差的块对象所组成。这些对象的排列方式会逐渐变得复杂,并形成阻止您获胜的障碍。在原版的推箱子游戏中,可被推动的物体包括:墙壁、板条箱、以及带有圆点的地板。您只有完成一个关卡,才能进入下一个关卡。
有了前面的基础,咱们来讨论一下如何定义自己的游戏规则,设计关卡,绘制组件,以及使用Puzzlescript脚本来编写游戏代码。
首先,我们可以设定如下规则:如果玩家向某个板条箱移动,那么该板条箱本身也应朝着相同的方向移动:
[> Player | Crate] -> [> Player | > Crate]1.
这代表了推箱子中的标准交互逻辑。程序代码可以将其解读为“将左侧的模式(玩家移动到带有固定板条箱的正方形处)替换为右侧(玩家移动到正方形,板条箱移动到下一个正方形)”。在准备解读的过程中,您需要考虑游戏引擎如何去检查那些即将发生的动作,进而重新绘制游戏。如果您是一名Z时代的益智游戏玩家的话,可以参考“Baba is You”这款热门游戏的基本逻辑。
下面让我们详细讨论一个名为Manic Ammo的特殊Puzzlescript游戏的代码。该游戏基于某人被困在弹药掩体中的故事背景。当您点击底部的“hack”链接后,便可以看到屏幕被分成了三个窗口。
右上角的窗口允许您按照当前编译的方式运行游戏。因此,如果您单击它,并按下空格键,游戏会在此窗口中进行。而我们更感兴趣的是位于左侧的源代码窗口。您可以看到“对象”标题,以及下方一长串格式化的数据。它表示的是游戏将以5×5的方块的视觉效果予以呈现。而且,其基本颜色由带有数字代码所定义。
例如,下图中的“玩家”角色便是由黑色和粉红色的头部所组成,其腹部为黄色。
上述清单的其余部分按照不同的标题被区别开来,其中的“规则”部分就包含了您较为熟悉的Puzzlescript代码:
=====
RULES
=====
[Bang] -> [background]
[boom] -> restart
[> player][Droid] -> [> player][> Droid]
[> Player | Shell] -> [> Player | > Shell]
[> Droid | Shell] -> [> Droid | > Shell]1.2.3.4.5.6.7.8.
由上述代码可知,玩家可以像我们前面的例子那样,以推箱子的方式,去推动某个掩体。
通过这样的快速访问方式,其他游戏开发者能够通过对现有代码的增、删、调整,来迅速构建自己的游戏。例如,您可以通过在上述规则下,添加一行代码,来修改游戏的规则,并触发游戏并从头开始构建:
[> Player | target] -> [target | > Player]1.
可见,“Winconditions”是完成一个关卡所需要满足的单一规则。值得一提的是,黑客也可以运用上述方式,去破坏现有的游戏逻辑与运行。
==============
WINCONDITIONS
==============
All Player on Target1.2.3.4.
当然,这也是一种参与应用程序修改的直接方式。游戏开发者完全可以将应用代码上传到GitHub处,然后要求其他开发者将其克隆到本地运行,以避免Web状态对于游戏体验带来的实际影响。从理论上说,这是一种“低摩擦”的参与方法(例如:通过添加代码行,来查看同一个页面上发生的变化)将有助于将参与者逐步通过实际代码的调试,来提高游戏编程的水平,并最终成为全栈式游戏创造者。
使用Puzzlescript编写小游戏无疑是对开发和设计技能的一项很好的测试。当您在公司的实际项目中开发和支持某些应用或工具时,您可能会注意到这样一种实践逻辑:某个工具或应用只有拥有了专业的社区和广泛的用户,才能得到蓬勃的发展与迭代。Puzzlescript同样适用这个道理。经历了十来年的发展,Puzzlescript已经拥有了成熟的论坛,以及一大批忠实的拥护者,其中不乏内容创作者、设计师、黑客、玩家、维护者、以及策展人。就连Stephen本人也在持续对该平台进行补充与开发。
下面,我来看看如何在该平台上搜索和运行游戏。在展览库页面上,您可以通过游戏的名称或作者姓名来进行搜索。如果您比较熟悉该平台的话,也可以使用其他一些标签元数据。由于每个游戏都可以被表示为一个链接,因此其他网站可以根据自己的展示意愿,通过使用URL,进行有效的游戏策划。例如Philschatz网站便是按照游戏的大小和挑战难度来进行分类的。实际上,平台的所有当前游戏列表都会被保存在一个json文件中,便于您导出自己的索引,或是托管到itch.io之类的平台上。
通过上文讨论,我们了解了什么是Puzzlescript,推箱子类游戏的基本原理,以及如何定义相关规则。同时,我们也讨论了用户该如何创建自己的游戏,如何修改他人的作品,以及如何通过论坛与其他开发者、乃至某个游戏的作者直接进行沟通与交流。鉴于该平台本身构建在开源的Github上,您何不自行设计一款小型游戏,来练习一下自己的全栈平台开发能力呢?
原文链接:
https://thenewstack.io/puzzlescript-a-devs-guide-to-an-html5-puzzle-game-engine/
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施控,专注传播网络与信息安全知识与经验。
热门资讯
探讨游戏引擎的文章,介绍了10款游戏引擎及其代表作品,涵盖了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戏设计领域和数字艺术教育的重要性,欢迎点击咨询报名。
游戏中玩家将面临武侠人生的挣扎抉择,战或降?杀或放?每个抉定都将触发更多爱恨纠葛的精彩奇遇。《天命奇御》具有多线剧情多结局,不限主线发展,高自由...
3. B站视频剪辑软件「必剪」:免费、炫酷特效,小白必备工具
B站视频剪辑软件「必剪」,完全免费、一键制作炫酷特效,适合新手小白。快来试试!
4. 手机游戏如何开发(如何制作传奇手游,都需要准备些什么?)
如何制作传奇手游,都需要准备些什么?提到传奇手游相信大家都不陌生,他是许多80、90后的回忆;从起初的端游到现在的手游,说明时代在进步游戏在更新,更趋于方便化移动化。而如果我们想要制作一款传奇手游的
5. 3D动画软件你知道几个?3ds Max、Blender、Maya、Houdini大比拼
当提到3D动画软件或动画工具时,指的是数字内容创建工具。它是用于造型、建模以及绘制3D美术动画的软件程序。但是,在3D动画软件中还包含了其他类型的...
三昧动漫对于著名ARPG游戏《巫师》系列,最近CD Projekt 的高层回应并不会推出《巫师4》。因为《巫师》系列在策划的时候一直定位在“三部曲”的故事框架,所以在游戏的出品上不可能出现《巫师4》
一、声音优化在绝地求生游戏中能够提前听到脚步声往往能提前取得战机,主要有两种方法:1、利用SoundLock软件,软件的功能主要是限制最大音量。百度搜索...
UI设计师、动画设计师、特效设计师每一个职位的功能和负责的方面都不同。所以,3D美术这方面需要大量的人才。但是要成为一个3D游戏建模师,也不是那么...
众所周知,虚幻引擎5(下面简称UE5)特别占用存储空间,仅一个版本安装好的文件就有60G,这还不包括我们在使用时保存的工程文件和随之产生的缓存文件。而...
想让你的3D打印模型更坚固?不妨尝试一下Cura参数设置和设计技巧,让你轻松掌握!
最新文章