各大知名游戏引擎分析报告

2023-11-10

游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年4月20日。目前国内主流在用的游戏引擎有, Unity, Cocos, Laya, UE4, 白鹭, 接下来我们一起来分析这些引擎的特点。

这里有个游戏开发交流学习小组点击可以直接加入,一起学习交流吧

1: 国民3D引擎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的特点:

  1. 能制作精美的3D游戏画面,和定制渲染管线,画面效果不如UE4。
  2. 能制作各种类型的3D游戏上线,每种类型的游戏都被商业项目验证过。
  3. 完整的生态,一次开发多, 平台发布(PC, android, iOS, xBox)。
  4. Unity不开源, 需要支付授权费才可以修改引擎代码, 发布后也要付授权费。
  5. Unity开发2D游戏相对包体过大。
  6. Unity 3D H5支持比较薄弱,不支持微信/抖音/华为/Facebook等H5小游戏平台。

2: 国民2D游戏引擎Cocos, 3D引擎的新贵

Cocos Creator 使用JavanScript/TypeScript开发。回到2010年,手游刚刚兴起的时候,如果没有听过Cocos, 那么你一定不是手游行业的。2010年的时候,能跨平台开发的游戏引擎只有Cocos(Unity还不能支持手机平台), 2010年的时候手机硬件性能还有限,大部分都是2D游戏为主,Cocos 成为了国民手机移动端游戏引擎,那时,很多手机游戏,都是基于Cocos开发,也让它迅速了占领了开发者的市场。后来随着手机硬件的发展,3D游戏越来越多,手游市场份额慢慢的被Unity取代。Cocos引擎完全免费,包体小,做2D游戏技术成熟, Cocos Creator开发工具于Unity的易用性一样,极易上手。H5技术成熟,最近2年,全新引擎全面支持3D,一次开发能发布到PC端,Android,iOS,微信抖音华为等各大H5小游戏平台。总结一下Cocos Creator特点:

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

3: Laya 游戏引擎, H5上大规模跑3D游戏的游戏引擎

Laya游戏引擎,使用As, Js, Ts开发。H5 刚新起时,H5跑3D游戏,很多公司都不看好,认为以H5的性能,不足以跑效果好的3D游戏, 但是H5游戏有普通游戏无法比拟的优点就是不用安装,点开就可以玩。那个时候PC页游已经发展成熟,同时手机页游大规模兴起,页游依靠FlashPlayer,而到手机上,就没有FlashPlayer这个东西,随之取代的就是H5。对于是页游的开发者,想要把游戏跑到手机网页上,就需要将Flash开发的游戏,转成H5游戏。Laya最开始就是完成这件事情的。所以Laya支持的开发语言有AS, JS, TS,就是这么来的。Flash转H5,商业上不上太成功,后来随着h5的发展,直接转为H5 3D游戏引擎,是最早在H5上跑出大型商业3D游戏的H5 3D引擎, 在H5 3D这块积累了很多经验和成熟上线的产品案例,现在80%左右的3D微信抖音oppo vivo小游戏都是laya引擎做的。Laya是先做H5平台,然后再做的native平台(PC, iOS, Android)。总结一下Laya的特点:

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

4: UE4游戏引擎, 3A游戏的首选引擎

UE4, 开发语言C++和蓝图。UE4是3A游戏开发者引擎的首选,它以逼真的渲染效果著称。很多大型的3A游戏都采用UE4来开发,比如腾讯的《和平精英》等。UE4采用C++开发,虽然有蓝图,但是很多公司正式项目都去蓝图化,采用C++开发游戏,与C#和Js/Ts相比,开发难度大,当然C++可以获得更好的性能。UE4不支持H5,但是可以发布到主流的游戏平台,PC,iOS, Android等,但无法发布到H5游戏平台。总结一下UE4的特点:

  1. 画面效果好,3A游戏的首选。
  2. C++开发难度相对较大,所以爱她的程序员和恨她的一样多。
  3. 开发3A级游戏技术成熟, 画面效果好。
  4. 不支持H5。

5: 白鹭游戏引擎

白鹭引擎,开发语言是Js/Ts。白鹭游戏引擎对于H5游戏是有着不可磨灭的贡献,它是最早的H5游戏引擎,它里面的很多工具非常好用,到现在还被其他的引擎使用,比如骨骼动画工具,DragonBones被广泛引用到游戏开发中。最早一批的H5游戏开发者一定都是使用白鹭。白鹭引擎在H5游戏这个邻域有着不可磨灭的贡献。后来白鹭也推出了Native平台。总结一下白鹭的特点:

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

好了总结了身边的一些游戏引擎,到底学哪个呢?其实学习游戏开发过程中,最终把原理原则搞懂,引擎是工具, 开发者学习开始于工具,但不止于某个工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

各大知名游戏引擎分析报告 的相关文章

  • 1.17 从0开始学习Unity游戏开发--场景切换

    前面的所有文章我们都在一个固定的游戏场景内进行开发 在最开始介绍场景这个概念的时候就已经提及 这个场景可以是一张地图 或者是一个对战房间等等 所以显然这个场景可以有多个 并且可以从一个场景切换到另外一个场景 那么在Unity中如何进行场景切
  • [3dsMax]2018版下拉菜单项的子菜单无法选中

    软件自身问题 安装更新补丁即可解决 不想更新补丁也可以使用键盘的方向键进行选中 补丁百度云链接 https pan baidu com s 1LDxRFwQnR0GSONuz7wcEfA 提取码 6gpk
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • unity中创建询问弹出窗口

    在开发过程中进程会遇到需要弹出一个窗口询问用户是否进行的操作 今天就来制作一个这样弹出窗口 然后根据弹出窗口的选择内容不同进行不同的操作 本例中主要是为了删除一个数据 而在删除数据操作前需要得到用户的一个确认操作 这里面主要用到了Notif
  • Unity学习笔记(一)—— 基础知识

    一 基础知识 1 开发团队组成 2 unity特点 图形界面 所见即所得 入门简单 支持C 比OC C 更友好 js 国内外资源丰富 因为使用的人多 跨平台性好 PC端 移动端等 对VR AR的支持最完善 3 成功案例 游戏 炉石传说 神庙
  • unity后台加密时间锁

    前言 在做一些项目的时候 有些不良甲方在给完项目后会有不给尾款的情况 之前都是加一些水印啥的 感觉不是很方便 第一不美观 第二如果甲方给完尾款后还得重新打包去水印 然后又做过一个本地的时间锁 等到时间 程序直接退出 但是感觉还是不方便 有时
  • Unity 键盘控制人物移动——之输入方式代码的编写

    键盘输入 控制人物移动 在我们制作游戏中最常见的需求之一就是使用键盘移动游戏角色 那么我们首先需要获取键盘输入 以下提供两种方法获取键盘 这里尽量通过截图解释让大家理解代码的含义 GetInput void FixedUpdate Move
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • Unity3d获得android和ios设备的唯一标识

    android为mac地址 ios为advertisingIdentifier 函数都比较简单 网上也搜得到 我也就不多说了 主要是对于我们没做过安卓和IOS开发的人来说 整合进工程有各种的问题 我也就直接上网盘了点击打开链接 代码包里看得
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • Unity打包WebGL的优化常用操作?

    1 贴图部分优化 如果贴图格式时2048 在不影响画面效果的情况下 改成1024或者5 12 还可以缩小包体 2 压缩和解压缩问题 WebGL打包的时候分三种压缩情况 gzip 比Brotli文件打 但打包快 http和https都支持 B
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • Unity在UI界面上显示3D模型/物体,控制模型旋转

    https blog csdn net ChinarCSDN article details 81058773
  • 微信游戏如何开发

    中懿游游戏软件开发 微信游戏开发通常涉及使用微信小游戏平台进行开发 微信小游戏是一种在微信平台上运行的轻量级游戏 用户可以在微信中直接体验 无需下载安装 以下是在微信平台上开发小游戏的一般步骤 1 注册微信开发者账号 访问 微信开放平台 注
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • U3D游戏开发中摇杆的制作(UGUI版)

    在PC端模拟摇杆 实现玩家通过控制摇杆让玩家移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine using Unity
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste
  • 游戏开发常见操作梳理之小地图的制作

    游戏中一般存在小地图系统 实际上就是设置一个新的摄像机放置在玩家的正上方 然后在小地图上显示新摄像机看见的东西就可以了 在小地图上一般存在放大地图和缩小地图的按钮可以方便放大和缩小地图 这些操作是如何实现的呢 接下来直接上核心代码 usin

随机推荐

  • javascript问答(含答案)

    1 我们可以在下列哪个 HTML 元素中放置 Javascript 代码 您的回答
  • 经典算法问题——稳定匹配(Stable Matching)

    经典算法问题 稳定匹配 Stable Matching 问题起源 在1962年 经济学家 David Gale 和 Lloyd Shapley 提出 能否设计一个高校录取过程 能够自我执行 self enforcing 形成一个最佳的匹配效
  • < element-Ui表格组件:表格多选功能回显勾选时因分页问题,导致无法勾选回显的全部数据 >

    文章目录 前言 一 解决思路 二 实现代码 仅供参考 具体问题具体分析 gt HTML模板 gt Js模板 往期内容 前言 在 Vue elementUi 开发中 elementUI中表格在本身是自带多选功能的 但是在某些情况下 并不能完全
  • some() 方法

    该方法是是数组的Array prototype some array some element index arr 返回值 true 或者false true 至少有一个元素 满足 方法提供的函数判断 false 一个都满足 方法提供的函数
  • 存储器的概述——DRAM动态存储器

    DRAM存储器 1 DRAM存储元的工作原理 SRAM存储器的存储位元是一一个触发器 它具有两个稳定的状态 而DRAM存储器的存储位元是由一个MOS晶体管和电容器组成的记忆电路 如图所示 2 DRAM芯片的逻辑结构 下面我们通过一个例子来看
  • SQLServer 批量修改或插入

    场景 今天在工作中遇到这么一个场景 我需要根据条件对表A做批量更新或插入 因为条件比较复杂 所以我使用了临时表B 先把需要更新或插入的数据查询出来放入临时表 然后更新表A的某字段 更新条件是A id B id 更新效果是若记录存在表A中 则
  • 大规模 Vision-Language 模型预训练的数据增强:Supervision Exists Everywhere

    Supervision Exists Everywhere A Data Efficient Contrastive Language Image Pre training Paradigm 论文地址 代码地址 主要工作 核心思想 具体实现
  • 线程池的声明需要手动进行

    Java 中的 Executors 类定义了一些快捷的工具方法 来帮助我们快速创建线程池 阿里巴巴 Java 开发手册 中提到 禁止使用这些方法来创建线程池 而应该手动 new ThreadPoolExecutor 来创建线程池 这一条规则
  • 行链接和行迁移

    行链接 Row chaining 与行迁移 Row Migration 当一行的数据过长而不能插入一个单个数据块中时 可能发生两种事情 行链接 row chaining 或行迁移 row migration 行链接 当第一次插入行时 由于行
  • fiddler抓包工具入门到入职之如何精准的定位前后端的bug

    Fiddler是一款强大的网络调试工具 可以拦截和分析HTTP请求和响应 帮助开发者定位前后端的问题 下面介绍如何使用Fiddler精准定位前后端的Bug 并使用Python代码进行操作 拦截HTTP请求和响应 打开Fiddler 在 Fi
  • 无法连接虚拟设备 sata0:1,因为主机上没有相对应的设备——解决方案

    其实并不复杂 就两个步骤 你装完虚拟机之后什么也别干 如若开虚拟机或虚拟机里面的系统时 出现标题状况 则可以这样解决 1 点击虚拟机 再点击左侧页面编辑虚拟机设置 2 选择CD DVD IDE 将使用物理驱动器的选项改为下方的使用ISO映像
  • 什么是IDaaS?推荐一款开源的IDaaS产品

    IDaaS是云时代的身份和访问管理 IAM 他们之间的关系 IDaaS SaaS IAM IDaaS是一个云服务平台 客户使用提供IDaaS服务相关的产品 例如单点登录 智能多因素认证 来实现云时代所需的既安全又高效的身份和访问管理功能 一
  • 保持工作稳定情绪与心理健康的八大秘诀

    近期发生的新闻热点再度引发公众对稳定情绪和心理健康的关注 有时候我们遇到的最大的敌人 不是运气也不是能力 而是失控的情绪和口无遮拦的自己 如何在工作中保持稳定的情绪 谈谈你的看法 在工作中保持稳定的情绪对于个人的心理健康和工作效率都至关重要
  • 并行单边jacobi算法 奇偶序列

    单边jacobi算法大家都非常熟悉 就是不停地计算旋转矩阵 简单说就是计算c和s 然后旋转 然而其中做一轮旋转 任何两列都需要旋转一次 需要n n 1 2次单独的旋转 这样的旋转其实是可以并行来实现的 这也就是为何jacobi算法最近比较热
  • SpringDataRedis 使用

    1 SpringDataRedis 特点 2 使用 SpringDataRedis 步骤 3 自定义 RedisTemplate 序列化 4 SpringDataRedis 操作对象 1 SpringDataRedis 特点 提供了对不同
  • C#开发学习~~~Console.WriteLine()

    前言 奥利给 冲冲冲 概述 Console WriteLine 是system名称空间中Console类中的一个方法 用于向控制台写入字符串并换行 其格式项采用如下形式 index alignment formatString index
  • 关于返回值RESULT

    关于返回值RESULT HRESULT Here s the RESULT 值分成32位值 HRESULT值中16到30这15个比特位包含的是设备代码 设备代码标识的是可以返回HRESULT返回代码的操作系统部分 由于Windows操作系统
  • P1089 津津的储蓄计划

    题目描述 津津的零花钱一直都是自己管理 每个月的月初妈妈给津津300300元钱 津津会预算这个月的花销 并且总能做到实际花销和预算的相同 为了让津津学习如何储蓄 妈妈提出 津津可以随时把整百的钱存在她那里 到了年末她会加上20 20 还给津
  • Spring 事件发布

    前言 事件发布是 Spring 框架中最容易被忽视的功能之一 但实际上它是一个很有用的功能 使用事件机制可以将同一个应用系统内互相耦合的代码进行解耦 并且可以将事件与 Spring 事务结合起来 实现我们工作中的一些业务需求 和 Sprin
  • 各大知名游戏引擎分析报告

    游戏引擎之争就像编程语言之争一样 在游戏开发圈永远是一个火爆的话题 目前市面上主流的一些游戏引擎 我们来给他们做一些比较 了解他们的历史 特点 为了严谨 备注一下写这个文章的时间编写时间是2021年4月20日 目前国内主流在用的游戏引擎有