来自 Y8.com 的开发者 Martin Kral 将和我们分享他创作的一个 Roguelike 生存割草 H5 游戏,聊一聊他的开发经验与技巧,并将游戏源码开放给大家免费下载。

游戏截图

你好 Martin,很高兴和你交谈。你从事游戏开发多久了?

Martin:我已经从事游戏开发大约 12 年了,其中 9 年是专业的。前三年,我没有足够的收入来维持自己的游戏开发,所以我被雇用在不同的岗位,并在空闲时间学习开发技术。

和 Y8 的合作成效如何?

Martin:在 Flash 游戏时代,Y8 是我最喜欢的发行商之一,因为那里的人真的很平易近人,如果你有一个高质量的产品,它将帮助你取得成功。加入 Y8 后,和 Y8 的合作颇有成效。内容团队会给你的游戏提出改进建议,并且将很大一部分收益分享给开发者。以我的经验来说,受欢迎的游戏要达到百万次游戏体验数并不困难。所以如果你正在制作 H5 游戏,我强烈建议你试一下 Y8 的 revenue-sharing program

https://zh.y8.com/revshare?pk_campaign=SlashTheHordesGit

为什么选择用 Cocos Creator 开发游戏?

Martin:得益于 Cocos Creator 的网页实时预览功能,我们能很方便地调试游戏,加快项目的迭代速度。制作多人联机游戏时,Cocos Creator 能帮助我们节省大量时间,因为引擎拥有很强的跨平台能力,可以同时在多个设备上玩游戏。

你为什么喜欢制作 HTML5 游戏?

Martin:我认为 HTML5 游戏最棒的地方在于「自由」。无论你制作的是什么类型的游戏,都可以在网络上找到你的受众。你不必依赖于某一个集中式应用商店。而且,这类游戏通常体量较小,试错成本较低,因此你能够大胆去尝试一些疯狂的想法,希望游戏能病毒式传播开来!

请和大家介绍一下你的这款游戏吧!

Martin:Slash the Hordes 的想法并不标新,灵感主要来源于 Vampire Survivors。在游戏中,玩家将控制一个角色,击杀从四面八方袭来的敌人,极限求生。我们将游戏源码免费分享给大家,希望可以激励更多开发者尝试使用 Cocos Creator 制作游戏,为大家开发和发行游戏提供更多参考与资源。

游戏有哪些技术实现亮点?

Martin:在 Slash the Hordes 的研发中,我重点使用了几个工具:

  • 对象池(Object Pool),可更轻松地管理可重用对象。

  • 事件系统(Event System),将逻辑与其他系统(如动画、分析和声音)分离。

  • 模态系统(Modal System),拥有可重复使用的窗口系统。

以对象池为例。该游戏的对象池可以在这里找到:

https://github.com/MartinKral/Slash-The-Hordes/blob/master/assets/Scripts/Services/ObjectPool.ts

要让它工作,你只需要三行代码和一个带有组件的预制件。

要初始化,可以这样调用它:

const enemyPool: ObjectPool<Enemy> = new ObjectPool(enemyPrefab, this.node, 50, "Enemy");

第一个参数是敌人对象的预制件,它应该有一个与对象池类型匹配的组件(在本例中为敌人)。

第二个参数是父节点,所有的子节点将在这里被实例化。

第三个参数是第一个立即实例化的预制件的数量。如果你知道你将经常使用大约 50 个敌人,那么这个数字应该是 50;如果你需要 51 个敌人,对象池仍然可以扩大并为你提供一个新的敌人。这个值只是为了减少游戏过程中引擎的工作量。

第四个参数代表组件的字符串名称,在本例中即是「Enemy」。

初始化后,你可以通过以下方式简单地获得一个新敌人:

const borrowedEnemy: Enemy = this.enemyPool.borrow();

然后:

this.enemyPool.return(borrowedEnemy);

一般来说,对象池的好处在于它大大减少了实例化和后续内存分配、释放的数量。换句话说,它可以显著提高游戏的性能。

这个对象池还能够处理池的扩展,并立即为你提供附加的组件。它在游戏中被多次使用,一个明显的例子在这里:

https://github.com/MartinKral/Slash-The-Hordes/blob/master/assets/Scripts/Game/Items/ItemSpawner.ts

有一些模块我也会在下一个项目中使用——主要是「应用层」方面,可以有一个相机和其他公共服务;一个单独的场景生命周期对象(例如 Game.ts),用来设置游戏并控制场景的流动;此外还有 gameSettings,一个让游戏设计师可以完全控制游戏的单一的数据文件。

Slash the Hordes 还有很大的优化空间,如果大家有任何建议,请随时提交 issue(甚至是 PR)!


感谢 Martin 的分享!点击文末【阅读原文】即可下载游戏源码。

源码下载

https://github.com/MartinKral/Slash-The-Hordes

在线试玩

https://zh.y8.com/games/slash_the_hordes

Y8 官网

https://zh.y8.com/

Cocos Creator 深度支持各大主流平台,开发者可将内容一键发布至 Web/小游戏/原生等平台,实现一次研发、多端触达。伴随引擎技术的多次突破,Cocos 的应用领域已从游戏拓展到智能座舱、XR、虚拟角色、元宇宙等,成为横跨多领域的 3D 引擎,并面向更多行业提供了完整的解决方案。期待看到更多开发者用 Cocos 实现自己的创意想法,创作出更多元、有趣、高质量的作品!

Cocos实现大热的 Roguelike+割草玩法?完整源码免费下载相关推荐

  1. 2022年Roguelike“割草”游戏风潮为何刮的如此强劲?

    在开始之前,先推荐B站上的一套 <CocosCreator零基础 3D 俯视角割草游戏>视频教程,作者"好巧啊c"已经连载更新到 26 集. B站地址:(文末阅读原文直 ...

  2. C++large fibonacci大斐波那契数列的实现(附完整源码)

    C++large fibonacci大斐波那契数列的实现算法 C++large fibonacci大斐波那契数列的实现算法完整源码(定义,实现,main函数测试) 用于对任意大数执行算术运算的库lar ...

  3. cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...

    cocos2d 三合一跑胡子房卡+服务器组件+后台控制+棋牌完整源码 安装方法: 1将工程下的res和src目录复制到version/fromSource 目录中 2使用cocos2dx命令 把src ...

  4. cocos creator休闲游戏甜品幻想H5+安卓+IOS三端源码开发脚本为javaScript

    cocos creator休闲游戏甜品幻想H5+安卓+IOS三端源码,开发脚本为javaScript方便扩展和阅读,支持cocos creator2.X版本,完整的源码可拿来运营学习研究二次开发. 1 ...

  5. 字体大宝库:12款好看的手写艺术字体免费下载

    <字体大宝库>系列给大家带来最新12款好看的英文手写艺术字体可以免费下载使用,相信里面有你喜欢的.手写字体常用于印刷.网页设计及其它创意设计任务中,能够强调设计的自然性.非正式性,让设计作 ...

  6. 字体大宝库:15款漂亮的手写艺术字体免费下载

    Web 设计人员正在不断寻找新的迷人的和独特的东西以吸引读者的目光,这也适用于字体.字体中在抓住观众的注意力的过程中发挥了至关重要的作用,引导读者深入发现内容的内在价值. 手写字体风格可分为两大类:斜 ...

  7. java计算机毕业设计ssm基于大数据的汽车流量监控cvej1(附源码、数据库)

    java计算机毕业设计ssm基于大数据的汽车流量监控cvej1(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也 ...

  8. cocos creator2.2.2益智教育游戏《夜幕降临》源码H5+安卓+IOS三端源码

    cocos creator2.2.2益智教育游戏<夜幕降临>源码H5+安卓+IOS三端源码,开发脚本为typeScript方便扩展和阅读,支持cocos creator2.X版本,完整的源 ...

  9. web前端期末大作业:文化网站设计——中国风文化html源码(6个页面) HTML+CSS+JavaScript...

    web前端期末大作业:文化网站设计--中国风文化html源码(6个页面) HTML+CSS+JavaScript 期末作业HTML代码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到 ...

最新文章

  1. VI连接esx主机时报错“client.xml”错误
  2. arcgis python规划地类-基于ArcGIS的Python——要素类至地理数据库
  3. 开发机器上利用vs2013调试远程IIS上的c#程序
  4. 客户旅程_我们进入微服务世界的旅程-以及从中学到的东西。
  5. Linux declare命令、Linux tail 命令
  6. 南方cass简码识别大全_cass简码识别教程.doc
  7. 吊打本地搜索神器everthing,最快 最强的电脑本地搜索神器!
  8. excel如何把顺序倒过来_excel怎么把顺序倒过来
  9. 分词并去停用词自定义函数:seg_word(sentence)
  10. 快手财报,广告、直播、电商齐头并进
  11. flash as3_vinson_01:绘制扇形
  12. 关于数据库having的用法的详细介绍
  13. 计算机开机最快,你电脑开机要多久?4招让你的电脑开机速度比之前快几倍
  14. 朝鲜青年结婚流行新大件——手机
  15. 多所院校发布研究生补录通知!
  16. 千字详解:“Java性能调优六大工具”之JConsole工具
  17. python tkinter 日期时间选择器,附详细可运行源码
  18. python写数字,Python3生成手写体数字方法
  19. 矩形波发生器c语言,矩形波发生器电路设计方案汇总(六款模拟电路设计原理图详解)...
  20. 杂记-有关Ubuntu快捷方式不能正常打开的问题

热门文章

  1. linux scp文件传输,Linux 文件传输 SCP
  2. Android应用截图和SurfaceView截图问题(学生PAD抽奖系统)
  3. STM32 IO口的八种模式
  4. android车机手机黑屏闪黑终结者-Winscope工具使用介绍
  5. 计算机基础教案文字处理软件,计算机应用基础实训课教案第四章:Word文字处理软件.doc...
  6. mysql可执行程序在什么路径_Linux查看可执行程序所在路径
  7. Matlab读取.mat文件画图
  8. android 画中画 分屏 区别,小米MIUI系统手机分屏VS画中画功能,教你游戏聊天两不误...
  9. 计算机信息学院开学演讲稿,大学开学演讲稿范文(精选16篇)
  10. CGrendering | 法国橡树庄园建筑可视化表现