小游戏开发引擎应该如何选型

标签: 小游戏 开发 引擎 | 发表时间:2022-12-28 18:13 | 作者:Finbird
出处:https://juejin.cn/frontend

写在前面

前面写了几期有关于小游戏的文章,主要从小游戏开发、小游戏运营、小游戏变现等多个角度进行了较为粗略的介绍,很多同学表示对小游戏引擎部分很感兴趣,希望能够有一些更为深入的分析介绍。今天就对目前主流的小游戏引擎进行探讨。

九层之台,始于累土,所有的代码都需要从“0”开始,一行一行的写出来的,简单的游戏这样做可以,但是想要快速的生产产品,这样的步骤一再重复,最终抽取出通用的代码,用来提高工业的生产效率。

观察游戏发现游戏中通用的功能包括UI界面的显示系统,模型的加载系统,物理引擎系统,动画系统等等,这一系列的通用功能集就可以通过游戏引擎实现批量化的实现。

正式进入正文前,希望看到文章的大佬能够动动手顺带帮我冲击榜单投投票: https://rank.juejin.cn/rank/2022/writer/1293455879050157?utm_campaign=annual_2022&utm_medium=user_web_share&utm_source=%E7%BC%96%E5%8F%B7350

小游戏与小游戏引擎的关系

小游戏现在囊括的范围包括微信小游戏、QQ 空间小游戏、QQ 玩一玩(厘米游戏)、Facebook Instant Games、各手机厂商的快应用小游戏,他们都在尝试着将社交场景和游戏场景做融合。

我们这里以微信小游戏为例,其运行环境是微信小程序环境的扩展,在小程序环境的基础上提供了 WebGL 接口的封装,使得渲染能力和性能有了大幅度提升。不过由于这些接口都是微信团队通过自研的原生实现封装的,所以并不可以等同为浏览器环境。

作为小游戏引擎,可以尽可能简化开发者的工作量,这样能够帮助开发者完成的主要工作包括:

  • 引擎框架适配微信小游戏 API,纯游戏逻辑层面,用户不需要任何额外的修改
  • 编辑器提供了快捷的打包流程,直接发布为微信小游戏,并自动唤起小游戏的开发者工具
  • 自动加载远程资源,缓存资源以及缓存资源版本控制

小游戏引擎选型需要考虑哪些因素

选择小游戏引擎一般情况下需要考虑以下几个方面,其中选择开发语言、性能、应用广度这三个重要的因素进行细致的说明。

  • 开发语言的支持
  • 2D、3D、VR的支持
  • 核心性能
  • 引擎的应用广度
  • 设计理念
  • 工作流支持力度
  • 商业化成熟案例
  • 学习资源与技术支持能力

1、开发语言的支持

拥有广泛开发者的小游戏开发语言共有2种:TypeScript、JavaScript。TypeScript 属于面向对象的高级脚本语言,通过编译器将原项目代码编译成 JavaScript 代码文件运行于浏览器之中,面向对象的高级语言无论是项目开发管理,还是项目开发的工具环境的成熟度都明显优于 JavaScript 脚本语言,尤其是中大型项目方面。

2、核心性能

性能是小游戏面临的核心门槛,游戏卡不卡顿,流不流畅都是小游戏开发者首要考虑的问题,只有一个成熟可靠的小游戏产品才能吸引用户持续玩下去甚至主动进行社交裂变。

近些年小游戏品质在迅速提高,包括精细的美术和炫酷的动画等。在复杂的游戏项目面前,上述种种元素,其流畅体验度对游戏引擎是极大的考验。所以选择性能优秀的引擎是保证品质的最重要基础,一定要谨慎。

在游戏项目研发开始时,一定要先对复杂的模块做 DEMO 测试,特别是带背景滚动的游戏。比如横屏卷轴游戏,对帧数稳定性要求极高,如果满足不了性能上的需求,可能会带来眩晕、眼花、疲倦等不良体验。

3、应用广度

随着小游戏开发者对于跨端需要的增长,希望自己开发的小游戏不仅是在微信中能够跑起来,还能支持App独立端、H5页面等也具备一定的竞争力和价值,一次开发可发行各个领域版本,这就需要小游戏引擎能够形成跨端统一的能力。

有哪些小游戏引擎

如果我们将以上考虑到的因素作为筛选条件,符合小游戏开发的引擎包括 Cocos2d-JS、Egret、Layabox、Unity是比较符合条件的。我们再通过细致的优劣势对比来看该如何帮助我们选型做决定。

1、Cocos

Cocos Creator 使用 JavanScript/TypeScript 开发,2010年的时候,能跨平台开发的游戏引擎只有Cocos, 大部分都是2D游戏为主,Cocos 成为了国民手机移动端游戏引擎,那时很多手机游戏,都是基于Cocos开发,也让它迅速了占领了开发者的市场。

后来随着手机硬件的发展,3D游戏越来越多,手游市场份额慢慢的被 Unity 取代。Cocos 引擎完全免费,包体小,做2D游戏技术成熟, Cocos Creator 开发工具和 Unity 的易用性一样,极易上手。

最近2年全新引擎全面支持3D,一次开发能发布到PC端,Android、iOS、微信、抖音、华为等各大小游戏平台。

总结一下Cocos Creator特点:

  • 引擎完全免费、开源、包体小、定制灵活;
  • 引擎开发2D游戏经过大量验证,非常适合2D游戏开发。
  • 全新的3D引擎,能开发3D游戏,但是还有提升空间。
  • 一次开发多平台发布,与传统引擎不同的是,可以发布微信、抖音、华为小游戏多个平台。
  • Creator 3D引擎生态还不够丰富, 如第三方插件等。
  • Cocos H5 游戏runtime内核在行业做的非常好,可以提供高效的H5游戏运行方案。

2、白鹭引擎

白鹭引擎,开发语言是 JavanScript/TypeScript,白鹭游戏引擎对于H5游戏是有着不可磨灭的贡献,它是最早的H5游戏引擎,它里面的很多工具非常好用,到现在还被其他的引擎使用,比如骨骼动画工具,DragonBones 被广泛引用到游戏开发中。

最早一批的 H5 游戏开发者一定都是使用白鹭。白鹭引擎在 H5 游戏这个邻域有着不可磨灭的贡献。后来白鹭也推出了 Native 平台,不过发现目前白鹭引擎逐渐落寞。

总结一下白鹭的特点:

  • H5游戏的先驱,为H5游戏做了不可磨灭的贡献。
  • H5 2D游戏技术成熟,经过很多商业游戏验证;
  • 3D功能有,但是商业项目3D游戏用的比较少。

3、Layabox

Laya 游戏引擎,使用 JavanScript/TypeScript 开发。H5 刚新起时,H5 跑3D游戏,很多公司都不看好,认为以H5的性能,不足以跑效果好的3D游戏, 但是H5游戏有普通游戏无法比拟的优点就是不用安装,点开就可以玩。

那个时候PC页游已经发展成熟,同时手机页游大规模兴起,页游依靠FlashPlayer,而到手机上,就没有FlashPlayer 这个东西,随之取代的就是H5。

Flash 转 H5 商业上不上太成功,后来随着 h5 的发展,直接转为 H5 3D游戏引擎,是最早在H5上跑出大型商业3D游戏的H5 3D引擎, 在H5 3D这块积累了很多经验和成熟上线的产品案例,现在80%左右的 3D 微信、抖音、快应用小游戏都是 laya 引擎做的。

总结一下Laya的特点:

  • 最早的被大规模商业项目验证的H5 3D游戏引擎,发布微信抖音等小游戏平台非常成熟。
  • 借用强大易用的Unity编辑器可兼容3D资源,如果一个游戏是Unity开发,你要移植到H5,那么Laya一定是首选。

4、Unity

Unity, 使用 C# 或 Lua 语言开发。国民 3D 引擎,这个称号说明了 Unity 在 3D 引擎的市场地位,中小型的游戏公司做 3D 游戏,基本都是用 Unity , 很多大公司的游戏也用 Unity ,AppStore 上面80%的3D游戏都使用 Unity 游戏引擎开发。

为什么 Unity 打败了众多高手,成为国民游戏引擎,我们也好好的说一下。时间回到2010年左右,当时页游比较火,Unity那个时候引擎的定位是能开发PC端游和页游的游戏引擎。

随着手游时代来临,市场急需一个3D游戏引擎,能一次开发多平台发布到 Android、iOS、微信小游戏等 , 而 Unity 成为了当时唯一的3D游戏引擎解决方案。和手游市场一起,Unity实现快速增长。

Unity 能成为国民引擎还有一个很重要的原因,就是对初学者很友好,很方便就可以上手,极大的降低了3D游戏开发难度,Unity 引擎的市场份额越来越大,技术人才、SDK、第三方插件、技术资料等也越来越完整。

总结一下 Unity 的特点:

  • 能制作精美的 3D 游戏画面,和定制渲染管线,画面效果不如 UE4。
  • 能制作各种类型的 3D 游戏上线,每种类型的游戏都被商业项目验证过。
  • 完整的生态,一次开发多, 平台发布。
  • Unity 不开源, 需要支付授权费才可以修改引擎代码, 发布后也要付授权费。
  • Unity 开发2D游戏相对包体过大。

写在最后

现在市场上的 H5游戏引擎很多,很难去直接定义哪个引擎的好坏,只能说每个引擎都有自己的特性,在某方面跟项目的契合程度比较高。

对于专注于小游戏公司,使用最多的是 Cocos creator 和 Layabox,其中又要属 Cocos creator 最多。

对于中小型以上的游戏公司,使用最多的是 Unity,也是目前市面上使用最广的游戏引擎,也是使用人员最多的引擎。

相关 [小游戏 开发 引擎] 推荐:

小游戏开发引擎应该如何选型

- - 掘金 前端
前面写了几期有关于小游戏的文章,主要从小游戏开发、小游戏运营、小游戏变现等多个角度进行了较为粗略的介绍,很多同学表示对小游戏引擎部分很感兴趣,希望能够有一些更为深入的分析介绍. 今天就对目前主流的小游戏引擎进行探讨. 九层之台,始于累土,所有的代码都需要从“0”开始,一行一行的写出来的,简单的游戏这样做可以,但是想要快速的生产产品,这样的步骤一再重复,最终抽取出通用的代码,用来提高工业的生产效率.

基于引擎开发HTML5游戏实战(一)---游戏引擎

- - CSDN博客推荐文章
最近从一个技术沙龙活动中了解到一个游戏引擎( construct2), 这款引擎彻底地改变了游戏开发在我心目中的印象. 以前看过一些游戏开发的书籍,基本上都是从canvas,从坐标系讲起,再加上复杂地绘图编程,使得我不 敢对游戏开发有所奢望,更别提那些大制作. 但基于这款引擎让我在2个小时之内根据官方tutorial就能搞出一个看上去还不错的web游戏,并且不需要 一行代码,有点当年第一次接触ruby on rails时的震撼.

Mozilla开发Gladius 3D游戏引擎

- SotongDJ - Solidot
Mozilla正在开发名为Gladius的3D游戏引擎,它是Paladin项目的一部分,旨在将3D游戏引入Web. Mozilla已经开发了首个原型游戏RescueFox(工作在最新版Firefox),演示Gladius确能用于创建浏览器3D游戏. Mozilla开发者表示无意进一步开发RescueFox,但会继续开发其它3D游戏演示Gladius的进步.

虚幻引擎开发者谈移动游戏

- 彭全兵 - 爱范儿 · Beats of Bits
移动游戏领域当前正在不断升温,当家花旦 Rovio 跟 Zynga 到处攻城掠地,前者靠愤怒的小鸟拼命搂钱,后者则是疯狂收购,在过去的十一个月里收购了十一家公司. 对于传统的游戏开发者而言,随着移动设备性能的快速提升,他们已经可以开始制作一些更加“严肃”以及精致的游戏了,比如 iOS 平台上使用虚幻引擎的 Infinity Blade.

Unity游戏引擎向独立Android和iOS开发者免费

- - 博客 - 伯乐在线
Unity是跨平台视频游戏引擎,其背后公司 Unity Technologies 5月21日(当地时间)在官方 博客宣布向小型独立工作室免费授权 Unity 游戏引擎基本版的 Android 和 iOS 插件. Unity 引擎从 2009 年开始一直就向新开发者提供免费版,但这仅限于 PC、Mac 和 Web.

列举独立开发者适用的数种游戏引擎

- - GamerBoom.com 游戏邦
作者:Gavalakis Vaggelis. 人们时常想要自行制作游戏,也经常会有人组建起小团队,讨论新游戏的制作.. 多数情况下,有不少团队程序员决定自行制作游戏引擎. 我个人认为,任何游戏项目的参与者都应当考虑他们的目标. 如果真得是为了制作游戏,那么就没必要费心费力重新制作游戏引擎. 目前有大量的游戏引擎可供使用,让开发者开发游戏项目的过程变得更为简单.

Mega Crit 发布用开源引擎 Godot 开发的游戏

- - 奇客Solidot–传递最新科技情报
因为最近的 Unity 引擎引入受争议的安装量收费模式事件,独立游戏发行平台 itch.io 发起了 Jump Ship Jam 游戏开发马拉松活动. 卡牌类 Roguelike 游戏《杀戮尖塔(Slay the Spire)》开发商 Mega Crit 工作室在三周时间内实验使用开源引擎 Godot 开发了套牌构筑自走棋游戏《Dancing Duelists》,支持 Windows、Linux 和 Mac 三大平台.

推荐小游戏:Bastion(堡垒)

- 峰 - Trow Portal
好吧其实也不是太小,不过在这游戏动不动就几G的年代,几百M也算比较小了. 这游戏IGN评分9.0,verycd上面9.4分,昨天下下来花了大半天打完,感觉挺不错,不是传言中的那么神,不过确实是值得一玩的好游戏,所以特意跑来说说通关的感受. 从游戏性来说,Bastion介于ACT和RPG之间,感觉更偏向ACT一点.

百度向开发者全面开放地图引擎服务,推出可视化云存储编辑工具

- - 互联网的那点事
百度 LBS 开放平台刚刚启用 新域名,开始强化“平台”概念,集中开放 定位、 地图以及 搜索三个领域的服务. 相较于现在的开放平台,以前的百度 LBS 云对于开发者来说偏向简单的 API 工具. 开发者的业务数据没法很好地和地理数据整合到一起,而是独立分割,缺乏确切的经纬度或详细地址信息时,需要结合地理编码等接口进行处理.

Mozilla选择三星为合作伙伴,致力于开发下一代浏览器引擎Servo

- - 36氪 | 关注互联网创业
近日,Mozilla 官方博客正式宣布它将搭档三星共同打造下一代浏览器引擎Servo. 事实上,早在去年Mozilla旗下的研究机构Mozilla Research就已着手Servo项目. Servo采用Mozilla新推出的Rust语言编写. Mozilla希望通过和三星的合作能将Servo和Rust都能带到Android平台和ARM设备.