小游戏引擎选型注意事项

news2024/9/20 10:58:25

写在前面

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

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

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

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

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

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

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

  • 引擎框架适配微信小游戏 API,纯游戏逻辑层面,用户不需要任何额外的修改

  • 编辑器提供了快捷的打包流程,直接发布为微信小游戏,并自动唤起小游戏的开发者工具

  • 自动加载远程资源,缓存资源以及缓存资源版本控制

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

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

  • 开发语言的支持

  • 2D、3D、VR的支持

  • 核心性能

  • 引擎的应用广度

  • 设计理念

  • 工作流支持力度

  • 商业化成熟案例

  • 学习资源与技术支持能力

1、开发语言的支持

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

2、核心性能

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

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

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

3、应用广度

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

当然通篇主要研究的小游戏还是以微信为基础,但是目前还有字节、百度、阿里、FinClip等平台可以投放小游戏。当我们开发了微信小程序后,也可以适配其他的小游戏平台,让自己的小游戏能够触达最广阔的用户群体,实现最大的价值。

其中 FinClip 小程序游戏还有个需要特别强调的点,只要开发小程序后适配 FinClip 平台,并在第三方 App 中集成 FinClip SDK 即可实现在第三方 App 中运行小游戏,App 可以是自己的,也可以是外部其他厂商的。这样一来小游戏的价值也能更加广阔,也不限于几大主流平台中。

有哪些小游戏引擎

如果我们将以上考虑到的因素作为筛选条件,符合小游戏开发的引擎包括 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,也是目前市面上使用最广的游戏引擎,也是使用人员最多的引擎。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短短一年,市值抹去三分之一 跌落高坛的苹果

美东时间1月3日(周二),苹果(AAPL)收报125.07美元,跌幅3.74%,市值降至1.99万亿美元,2万亿美元市值俱乐部中的最后一家就此陨落。此前微软和石油巨头…

电影《绝望主夫》观后感

上周的时候,看了开心麻花的电影《绝望主夫》,讲的是一对夫妇整个世界对换的故事,即丈夫整个继承了妻子世界,妻子继承了丈夫世界观,这确实给人了一种新的视角,一个对调视角。 记得以前刷视频的时候&#xff…

算法之回溯算法

目录 前言 如何理解回溯算法 两种回溯算法的经典应用 1.0-1背包 2.正则表达式 总结 参考资料 前言 很多经典的数学问题都可以用回溯算法解决,比如数独、八皇后、0-1 背包、图的着色、旅行商问题、全排列等等。用来指导像深度优先收索这种经典的算法。 如何理…

2021 CCF “计算之美”学术大会参会总结

最近在回顾读研以来参加过的大大小小的学术会议记录,在此整理记录之。 前言 2021年6月12日,2021年CCF“计算之美”——新基建时代产、教、研、地融合学术大会在海上丝绸之路起点宁波成功举办。近200人参与本次大会,40余位嘉宾带来精彩分享&…

pwr | 谁说样本量计算是个老大难问题!?(三)(配对样本与非等比样本篇)

1写在前面 之前我们介绍的基于发生率或者均值进行样本量计算的方法,但都是在组间进行计算。🤔 有的时候我们需要获取组内变化,进行样本量计算。🤫 常见的就是配对样本,比如相同受试者进行多个时间点的观察,…

Navicat远程连接禅道一键安装在Linux的MySQL数据库

禅道一键安装的数据库,默认只能在服务器本机访问。远程访问须进行配置,本文说明具体的配置方法,并且已经过验证。 1、首先检查对应的端口是否开放,默认端口为3306. 2、连接到禅道自带的网页版数据库 3、执行SQL创建一个新角色 …

外贸人需要知道的销售技巧有哪些?

外贸销售技巧米贸搜整理如下,希望对你有所帮助:第一步:准备好。没有准备意味着为失败做准备,没有计划意味着为破产做打算。这是为什么呢?因为你不知道你这次要谈什么,所以你首先要做的是准备好整个谈话的结果。第一,我…

PDF能转换成PPT吗?该怎样转换?

PDF能转换成PPT吗?当然是可以的啦!我们在工作时候经常需要将PDF文件转换成各种格式的文件,这样可以更方便我们处理各种文件,PPT文件可以用来汇报、展示工作内容等,是我们经常使用的文件类型之一,所以有时候…

Linux文件描述符fd详解重定向原理

文章目录什么是文件描述符fd&#xff1f;文件描述符的分配规则重定向的原理什么是文件描述符fd&#xff1f; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.…

AppScan 是一款web安全扫描工具

AppScan介绍&#xff1a; AppScan是IBM的一款web安全扫描工具&#xff0c;主要适用于Windows系统。该软件内置强大的扫描引擎&#xff0c;可以测试和评估Web服务和应用程序的风险检查&#xff0c;根据网站入口自动对网页链接进行安全扫描&#xff0c;扫描之后会提供扫描报告和修…

2022 中国白帽人才能力与发展状况调研报告

声明 本文是学习2022中国白帽人才能力与发展状况调研报告. 下载地址 http://github5.com/view/55039而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 中国白帽人才能力与发展状况调研报告 2022.11 补天漏洞响应平台 奇安信行业安全研究中心 概述 …

元数据管理Datahub架构讲解

目录1. 概述2. 各模块介绍2.1 Metadata Store​2.2 Metadata Models2.3 Ingestion Framework2.4 GraphQL API2.5 User Interface3. Ingestion Framework的架构3.1 Metadata Change Event(MCE)3.2 Pull-based Integration3.3 Push-based Integration​3.4 Applier(mce-consumer)…

CAN学习资料汇总

先简单做个汇总&#xff0c;细节稍后再逐一写出来 CAN&#xff0c;CANOpen与OSI七层协议的关系 CAN CAN是控制器局域网络(Controller Area Network, CAN)的简称&#xff0c;是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的&#xff0c;并最终成为国际标准&#xff08;…

暴涨1000w播放!B站爆款恰饭,弹幕刷屏“上链接”

12月27日&#xff0c;在2022 AD TALK bilibili营销伙伴大会上李旎谈到B站第一批主流用户大多数已经进入28-30岁的阶段&#xff0c;近亿的用户开始对内容的需求有了新的变化。除此之外&#xff0c;B站近几年的用户增长速度亮眼&#xff0c;2022年第三季财报显示平台日活用户已经…

动态内存管理(15)

目录 1、动态内存函数的介绍 1、malloc 2、free 3、calloc 4、realloc 2、常见的动态内存错误 3、C/C程序的内存开辟 4、柔性数组 1、定义 2、柔性数组的特点&#xff1a; 3、使用 1、动态内存函数的介绍 1、malloc malloc 向堆区申请一块连续可用的空间&#xff…

【高阶数据结构】AVL树(动图详解)

&#x1f308;欢迎来到数据结构专栏~~AVL树详解 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句…

5G NR 标准 第12章 波束管理

第12章 波束管理 第 11 章一般性地讨论了多天线传输&#xff0c;然后重点介绍了多天线预编码。 讨论多天线预编码的一般假设是可以对不同的天线元件进行详细控制&#xff0c;包括相位调整和幅度缩放。 实际上&#xff0c;这需要在数模转换之前在数字域中执行发射机侧的多天线…

path 路径模块

1、什么是 path 路径模块 path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性&#xff0c;用来满足用户对路径的处理需求。 方法名 说明 path.join() 用来将多个路径片段拼接成一个完整的路径字符串 path.basename() 用来从路径字符串中…

Kubernetes(4)- 数据存储

第八章 数据存储 ​ 在前面已经提到&#xff0c;容器的生命周期可能很短&#xff0c;会被频繁地创建和销毁。那么容器在销毁时&#xff0c;保存在容器中的数据也会被清除。这种结果对用户来说&#xff0c;在某些情况下是不乐意看到的。为了持久化保存容器的数据&#xff0c;ku…

【Java 数据结构】常见排序算法(下)

目录 1、上期回顾 2、冒泡排序 3、快速排序 3.1 理解快速排序的二叉树结构 3.2 Hoare 法 3.3 三数取中 3.4 小区间优化 3.5 挖坑法 3.6 前后指针法 3.7 注意事项 4、归并排序 1、上期回顾 上期我们主要介绍了排序的基本认识&#xff0c;以及四个排序&#xff0c;分…