现在如何选择游戏引擎unity开发2d游戏3D游戏?

微信小游戏现在非常的火,当我们下定决心做微信小游戏开发的时候,面临我们的第一个问题是怎么选一个H5的游戏引擎,那么今天本小编就来给大家分析一下目前能开发各大平台H5小游戏的游戏引擎和它们的优缺点。入选原则:
(1)能一次开发,同时发布到多个游戏平台的游戏引擎; (android,IOS, PC, H5, 微信小游戏, QQ, facebook,抖音等);
(2) 必须要有非常方便的可视化编辑器;
(3) 市场有求职需求,而且还要比较好找工作;那么恭喜 "cocos creator","Laya", "白鹭",三款游戏引擎成功入选,其它的引擎我们就不讨论了。Cocos Creator:
http://www.cocos.com优点:
(1) 市场份额最大,招聘的职位最多;(cocos手游以来就有很多用户)
(2) 2D编辑器做的很好,组件化开发的设计思想,和Unity 开发很像(Unity童鞋有福气了)
(3) 资料多。一群人塘坑,总比一个人走夜路要好;缺点:
(1) 3D功能偏弱,一直被诟病,据说2.2以后,3D能上一个台阶 (现在啊?版本2.1) Laya:
http://www.layabox.com优点:
(1) 全网93%的3D微信小游戏都是由它开发的;
(2) 做引擎很多年了,2006年laya团队班底就出了国内自主研发的3D引擎;
(3) Laya 开发人员薪水高, 因为少;缺点:
(1) 编辑器还差了那么一点点;
(2) 资料不是很多;
(3) 职位少;白鹭:
http://www.egret.com优点:
(1)微信小游戏市场份额大约23%左右;
(2) 做H5引擎比较早,支持3D;
(3) 做棋牌的童鞋们注意了,白鹭 + 网狐, H5的棋牌解决方案,没错,网狐H5上采用的是白鹭; 缺点: (1)资料少,
(2)编辑器不如组件化开发方便,unity毕竟创造了一个引擎的使用标杆。怎么选,其实选哪个都可以做出游戏出来。(不用担心了)如果你做2D游戏,又想快速上手,可用cocos creator;如果你做3D游戏,可用Laya来开发。}
本篇我们主要学习一般的游戏引擎都包含哪些内容,主要是由工具套件和运行时组件两部分组成。以下所有内容均来自《游戏引擎架构》一书,这里只是总结学习。一. 运行时组件下图就显示了一个典型的三维游戏引擎的主要运行时组件。通常上层依赖下层,下层不依赖上层。游戏引擎架构1. 目标硬件这层主要是代表运行游戏的平台或者游戏主机。主要有基于Windows,Linux或者MacOS的PC,基于IOS或者Android系统的手机或者平板,索尼的PlayStation系列,微软的XBox系列,任天堂的掌机等等。2. 设备驱动程序设备驱动主要负责管理硬件资源,屏蔽了操作系统和上层引擎,使得上层的软件不需要知道不同硬件的细节。3. 操作系统在PC,手机和平板上,操作系统一般同时运行着多个软件,使用时间片的方式共享硬件,这称为抢占式多任务,我们不能拥有所有硬件的控制权。但是在游戏主机上,操作系统只运行一个游戏,可以认为我们独占了整台机器。4. 第三方软件开发包和中间件大部分引擎都会借用第三方软件开发包及中间件(我们也要!!)数据结构及算法:STL,STLport,Boost,Loki等。图形:大多数渲染引擎都是建立在硬件接口库上的,比如OpenGL,DirectX等。碰撞和物理:主要有碰撞检测和刚体动力学两部分组成,比如Havok,PhysX等。角色动画:Havok等。人工智能:主要提供一些与AI相关的接口,例如寻路啊,动态避让等。生物力学角色模型:主要是考虑了角色的重心,体重分布和地心引力和其他作用力的影响下如何平衡的运动。5. 平台独立层游戏引擎需要运行在不同的平台之上,所以需要一层把其余的引擎部分和大部分底层平台隔离。6. 核心系统游戏引擎及其他大规模复杂的C++软件都需要一些有用的使用软件,包括断言,内存分配,数学库,自定义数据结构和算法,调试用打印及日志,异步文件I/O等。7. 资源管理器主要是提供接口去访问任何类型的游戏资产和其他引擎输入数据。8. 渲染引擎在任何游戏引擎中,渲染引擎都是最大及最复杂的组件之一,渲染引擎的设计通常采用分层架构。低阶渲染器:包含引擎中全部原始的渲染功能,着重于高速渲染丰富的几何图元集合。其中图形设备接口,使用图形SDK(如OpenGL,DirectX)初始化设备,建立渲染表面等;其他渲染组件收集需要提交的几何图元(网格,线表,点表,粒子,地形块,字符串等),根据低阶渲染器提供的viewport将相机结合至世界坐标及三维投影参数;低阶渲染器也使用材质系统及动态光照系统管理图形硬件的状态和游戏的着色器。场景图/剔除优化:低阶渲染器绘制所有被提交的几何图形,不太考虑这些图形是否确实可见,一般简单的游戏时间只使用背面剔除和相机平截头体的剪切平面就好了,复杂的游戏世界需要高阶的空间细分,包括二元空间分割树,四叉树,八叉树,kd树,包围球树等。视觉效果:粒子系统,贴花系统,光照贴图,动态阴影,全屏后期处理效果等。前端:HUD,游戏内置GUI,IGC,FMV等。9. 刨析和调试工具游戏是实时系统,所以经常要刨析游戏的性能,以便优化。主要包括内存分析工具,调试用绘图,游戏内置菜单,主控台以及能够录制和回放游戏的功能。10. 碰撞和物理主要包括碰撞检测和刚体动力学模拟。一般需要实现布娃娃系统,刚体,碰撞检测,力及约束等。11. 动画一般有5种基本动画:精灵/纹理动画,刚体层次结构动画,骨骼动画,顶点动画,变形目标动画。12. 人体学接口设备主要用于处理玩家输入,常见的输入设备有键盘鼠标,游戏手柄,还有其他游戏专用控制器,比如方向盘,鱼竿等。13. 音频游戏引擎中的音频和图形同样重要,难以想象一个没有声音的游戏,但是这么重要的功能却常常被忽略。14. 在线多人/网络游戏让多位玩家同时在同一个虚拟世界游玩,本地多人或者在线多人。15. 游戏性基础系统就是属于这个游戏的所有专有逻辑。包含游戏世界和游戏对象模型,事件系统,脚本系统,AI等。16. 个别游戏专用子系统为一些特定游戏专门开发的系统,比如相机,武器,道具,AI等。二. 工具及资产管道游戏引擎需要读取大量的数据,包括游戏资产,配置文件,脚本等。1. 数字内容创作工具游戏的内容大部分都是由美术人员使用数字内容创作工具(DCC)制作出来的,包括Maya和3ds Max制作的三维网格模型和动画数据,PhotoShop制作的图片,纹理,Sound Forge制作的音频等。2. 资产调节管道DCC制作出来的数据其实不是很适合用于游戏引擎,主要原因是:DCC软件的内存模型太过复杂。读取DCC软件格式的文件太慢。所以数据从DCC导出后我们还需要进行再处理,才能在游戏引擎中使用。从DCC到游戏引擎的管道叫做资产调节管道。3. 世界编辑器很多复杂的游戏世界都需要专门的大世界编辑器来存储和编辑游戏世界。4. 资源数据库游戏引擎需要处理多种资产类型,每种资产都带有大量的元数据,我们可以把这些元数据存在数据库中也可以存成文本文件,之后还需要提供一个用户界面让使用者创造和编辑这些数据。}

我要回帖

更多关于 2d 3d 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信