前语
随着游戏行业被广大人群接受,人们现在能在很多终端享受游戏的乐趣,如:电脑,手机,电视等等。
由于本人主要从事手机端游戏开发,下面介绍一下接触过的手戏引擎:Unity3D ,Cocos , Egret ,LayaBox。
Unity3D
Unity 3D 也称 Unity,是由 Unity Technologies 公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。
Unity 3D 可以运行在 Windows 和MacOS X 下,可发布游戏至 Windows、Mac、Wii、iPhone、WebGL(需要 HTML5)、Windows Phone 8 和 Android 平台。也可以利用 Unity Web Player 插件发布网页游戏,支持 Mac 和 Windows 平台的网页浏览,是一个全面整合的专业游戏引擎。
业界现有的商用游戏引擎和免费游戏引擎数不胜数,其中最具代表性的商用游戏引擎有 UnReal、CryENGINE、Havok Physics、Game Bryo、Source Engine 等,但是这些游戏引擎价格昂贵,使得游戏开发成本大大增加。而 Unity 公司提出了“大众游戏开发”(Democratizing Development)的口号,提供了任何人都可以轻松开发的优秀游戏引擎,使开发人员不再顾虑价格。
Unity 的中文意思为“团结”。Unity 的核心含义是想告诉大家,游戏开发需要在团队合作基础上相互配合完成。
时至今日,游戏市场上出现了众多种类的游戏,它们是由不同的游戏引擎开发的,Unity 3D 以其强大的跨平台特性与绚丽的 3D 渲染效果而闻名于世,现在很多商业游戏及虚拟现实产品都采用 Unity 3D 引擎来开发。
Unity 3D 的特色
Unity 3D 游戏开发引擎目前之所以炙手可热,与其完善的技术以及丰富的个性化功能密不可分。
Unity 3D 游戏开发引擎易于上手,降低了对游戏开发人员的要求。下面对 Unity 3D 游戏开发引擎的特色进行阐述。
1) 跨平台
游戏开发者可以通过不同的平台进行开发。游戏制作完成后,游戏无需任何修改即可直接一键发布到常用的主流平台上。
Unity 3D 游戏可发布的平台包括 Windows、Linux、MacOS X、iOS、Android、Xbox360、PS3 以及 Web 等。跨平台开发可以为游戏开发者节省大量时间。
以往游戏开发中,开发者要考虑平台之间的差异,比如屏幕尺寸、操作方式、硬件条件等,这样会直接影响到开发进度,给开发者造成巨大的麻烦,Unity 3D 几乎为开发者完美地解决了这一难题,将大幅度减少移植过程中不必要的麻烦。
2) 综合编辑
Unity 3D 的用户界面具备视觉化编辑、详细的属性编辑器和动态游戏预览特性。Unity 3D 创新的可视化模式让游戏开发者能够轻松构建互动体验,当游戏运行时可以实时修改参数值,方便开发,为游戏开发节省大量时间。
3) 资源导入
项目可以自动导入资源,并根据资源的改动自动更新。Unity 3D 支持几乎所有主流的三维格式,如 3ds Max、Maya、Blender 等,贴图材质自动转换为 U3D 格式,并能和大部分相关应用程序协调工作。
4) 一键部署
Unity 3D 只需一键即可完成作品的多平台开发和部署,让开发者的作品在多平台呈现。
5) 脚本语言
Unity 3D 集成了 MonoDeveloper 编译平台,支持 C#、JavaScript 和 Boo 3 种脚本语言,其中 C# 和 JavaScript 是在游戏开发中最常用的脚本语言。
6) 联网
Unity 3D 支持从单机应用到大型多人联网游戏的开发。
7) 着色器
Unity 3D 着色器系统整合了易用性、灵活性、高性能。
8) 地形编辑器
Unity 3D 内置强大的地形编辑系统,该系统可使游戏开发者实现游戏中任何复杂的地形,支持地形创建和树木与植被贴片,支持自动的地形 LOD、水面特效,尤其是低端硬件亦可流畅运行广阔茂盛的植被景观,能够方便地创建游戏场景中所用到的各种地形。
9) 物理特效
物理引擎是模拟牛顿力学模型的计算机程序,其中使用了质量、速度、摩擦力和空气阻力等变量。Unity 3D 内置 NVIDIA 的 PhysX 物理引擎,游戏开发者可以用高效、逼真、生动的方式复原和模拟真实世界中的物理效果,例如碰撞检测、弹簧效果、布料效果、重力效果等。
10) 光影
Unity 3D 提供了具有柔和阴影以及高度完善的烘焙效果的光影渲染系统。
Unity 3D 的发展
2004 年,Unity 3D 诞生于丹麦的阿姆斯特丹。
2005 年,发布了 Unity 1.0 版本,此版本只能应用于 Mac 平台,主要针对 Web 项目和 VR(虚拟现实)的开发。
2008 年,推出 Windows 版本,并开始支持 iOS 和 Wii,从众多的游戏引擎中脱颖而出。
2009 年,荣登 2009 年游戏引擎的前五,此时 Unity 的注册人数已经达到了 3.5 万。
2010 年,Unity 3D 开始支持 Android,继续扩大影响力。
2011 年,开始支持 PS3 和 XBox360,此时全平台的构建完成。
2012 年,Unity Technologies 公司正式推出 Unity 4.0 版本,新加入对于 DirectX 11 的支持和 Mecanim 动画工具,以及为用户提供 Linux 及 Adobe Flash Player 的部署预览功能。
2013 年,Unity 3D 引擎覆盖了越来越多的国家,全球用户已经超过 150 万,Unity 4.0 引擎已经能够支持在包括 MacOS X、Android、iOS、Windows 等在内的 10 个平台上发布游戏。同时,Unity Technologies 公司 CEO David Helgason 发布消息称,游戏引擎 Unity 3D 今后将不再支持 Flash 平台,且不再销售针对 Flash 开发者的软件授权。
2014 年,发布 Unity 4.6 版本,更新了屏幕自动旋转等功能。
2016 年,发布 Unity 5.4 版本,专注于新的视觉功能,为开发人员提供了最新的理想实验和原型功能模式,极大地提高了其在 VR 画面展现上的性能。
Cocos
雅基软件 —— Cocos 引擎官方团队,致力于为移动游戏行业提供先进的技术和服务, 让游戏开发者可以更加专注的进行游戏内容创作,并携手行业伙伴深度合作, 共建一个开放、务实的移动游戏生态。 雅基软件,于 2011 年 12 月 30 日在中国厦门注册成立, 凭借深厚的技术底蕴和多年游戏行业的经验积累,自主研发了“Cocos 引擎”系列产品, 包括第二代游戏编辑器 Cocos Creator、全球流行的开源引擎框架 Cocos2d-x 等产品。 Cocos 目前在全球拥有 140 万的注册开发者,30 万的月活跃开发者,遍布全球超过 203 个国家和地区, 覆盖超过11亿玩家设备,采用 Cocos 引擎开发的游戏覆盖市面全品类,在移动游戏中国市场份额占比 45%, 全球市场份额占比 30%,是一款优秀的开源移动游戏引擎。
Cocos是什么?
Cocos是由触控科技推出的游戏开发一站式解决方案!
游戏从创意、开发、测试、上线都有一个完整的流程,触控科技从产品设计角度直接用清晰的脉络把上面提到的这些工具、服务进行了整合,形成最短、最清晰的工作流。这个整合后的产品就是现在的cocos。
原本cocos引擎家族所有独立产品,如Cocos2d-x引擎框架,Cocos Studio界面编辑器、Cocos Code IDE代码调试打包工具等,如今都统一在cocos里,里面包含了从新建立项、游戏制作、到打包上线的全套流程。
Cocos覆盖整个手游制作的完整流程,重新定义了无缝的工作流,让游戏开发铁三角策划-美术-程序能够在这套cocos工具上更好地协同工作。最大程度提高开发者的工作效率。开发者可以通过cocos快速编辑资源和动作、编写和调试代码、集成商业服务的SDK、打包输出,最终导出适合于各个平台、各渠道发布的游戏安装包。
Cocos脚本语言
Lua , JavaScript
Cocos核心功能介绍
新建游戏项目:一键立项,自动生成制作游戏所需的基本目录结构、资源、代码、支持库
编辑游戏界面:依托近20种基础控件和众多自定义控件,可以方便快捷的拼接各种各样华丽的游戏界面
编辑游戏动画:支持骨骼动画和帧动画,可以根据用户喜好快速实现游戏中各种逼真动画
编辑游戏场景:不必再为各式各样的分辨率所困扰,使用布局特性设计游戏场景,全面适配各种分辨率
编辑游戏逻辑:自动创建游戏界面对象;支持代码自动补全;支持断点调试,实时预览变量修改
调试游戏项目:分别可在Windows、Mac平台上调试游戏,无须长时间等待编译
打包游戏项目:一键部署,便捷生成apk/ipa程序
Egret
北京白鹭时代信息技术有限公司(简称白鹭科技),作为HTML5领域的技术和服务提供商,致力于为移动互联网全行业提供技术解决方案与服务。2014年2月创立于北京,曾先后获得顺为资本、深创投和经纬创投等机构的多轮投资。为更好地推动HTML5游戏产业的全面发展,白鹭科技以技术为核心,从开发工具、游戏自研、游戏发行、技能培训等多个维度,全面打造移动游戏服务生态。
白鹭科技专注技术创新,攻克底层技术制约,为开发者带来一整套游戏研发解决方案,自主研发了白鹭引擎(Egret Engine)、Egret Pro、白鹭加速器(Egret Runtime)、骨骼动画工具(Dragon Bones)、可视化编辑器(EUI Editor)等多款产品,让开发者简单、高效的开发出移动游戏。
国内,白鹭科技与百度、360、小米、OPPO、vivo等多家厂商达成深度合作,为多个小游戏平台开发专属接入工具,目前已经支持一键接入百度智能小游戏、小米快游戏、QQ & OPPO & vivo小游戏平台等多个巨大流量入口,开发者可以轻松的一键将游戏打包成符合平台标准的产品发布。此外,使用白鹭引擎开发的游戏已登陆AppStore(海外)、GooglePLay(海外)、Facebook、Line、KakaoTalk等平台,帮助开发者轻松出海。
目前白鹭全球活跃开发者已超50万人,并与腾讯、华为、小米、360、百度、猎豹、微软等数百家公司达成深度合作。
(一)关于白鹭引擎Egret
Egret引擎是一个开源免费的游戏框架,用于构建二维游戏、演示程序和其他图形界面交互应用等。Egret使用TypeScript脚本语言开发。当游戏完成最终的打包后,可以将程序转换为HTML5游戏。实现跨平台特性。
Egret不仅仅是一个基于HTML5技术的游戏引擎,我们的产品线中除了Egret引擎还提供了很多辅助游戏开发的工具。准确的来说,Egret是一套游戏开发的解决方案。你可以使用Egret引擎来帮助你开发HTML5游戏,并运行在手机和PC端的浏览器中,同时也你可以使用Egret提供的相关工具搭建你自己的游戏开发工作流。
Egret团队在2014年5月15日正式发布了第一个测试版本,同时提供了附带的系列相关开发工具,以帮助开发者在使用Egret开发游戏时,更加快速便捷。
(二)开源的特性
Egret引擎是一款开源免费的2D游戏引擎。
BSD协议是一个给予使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或者以BSD协议代码为基础进行二次开发时,需要满足三个条件:
如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD协议鼓励代码共享,但需要尊重代码作者的著作权。BSD协议允许使用者修改和重新发布代码,也允许使用或在BSD协议代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候对源码进行修改或二次开发。
(三)白鹭引擎Egret的特点
开源免费
基于BSD开源协议的Egret引擎,可以让您自由的使用Egret来创作自己的游戏。
优秀的设计思想
Egret的设计思想大量借鉴了优秀的2D动画软件Flash的一些设计思想。在引擎的设计中,Egret底层使用了弹性跑道模型,显示列表,脏矩阵,事件模型等技术。在这些技术基础之上,我们封装了对用户极为友好的API。开发者在开发游戏时,无需考虑底层渲染逻辑,只关心游戏逻辑即可。
高效的渲染模块
在图形图像渲染中,Egret完全使用HTML5标准中的canvas技术。极大程度上保证了使用Egret引擎开发的游戏在各个浏览器上的兼容性。同时,为了给玩家更好的游戏体验,我们不仅仅提供了CPU渲染,还提供了性能更为强大的硬件加速渲染模式。该模式无需开发者自动开启,引擎会根据当前用户硬件类型智能判断启用。
完善的配套工具
Egret引擎的设计宗旨始终围绕在简化游戏开发上,用户在使用Egret的时候,能够体会到,所有的引擎设计全部围绕游戏开发。同时Egret提供的配套工具也极大简化了游戏开发流程。从游戏的代码编写,UI制作,地图拼接,关卡制作到最终游戏上线,研发过程中都有大量工具支撑。
灵活的工作流
Egret不限制开发工具的使用,我们也为一些优秀的第三方工具提供了相关插件。让用户在不改变开发习惯的情况下无缝迁移到Egret。
社区支持
Egret为用户建立了用户社区,如果在使用Egret过程中遇到了哪些问题,可以直接在用户社区中得到答案。同时,我们也为用户提供了大量文档手册,方便用户学习。
(四)白鹭引擎Egret的功能
Egret继承了Flash的优点,同时更加针对游戏开发,主要包括如下功能:
显示列表:清晰、稳健、高效的视觉抽象结构
精灵:一种轻量级显示容器
事件机制:提供了一套生成和处理事件消息的标准方法
纹理集合:将大量图片汇集为一张纹理图进行处理
矢量绘图:封装了方便简单的矢量绘图功能
网络加载:封装了常用的网络通讯协议
位图字体:可通过位图字体方式显示文本
性能监控:可在游戏中快速开启性能监控面板
反射:对TypeScript增加了反射机制,方便模块化开发
XML处理:提供标准的XML格式解析生成功能
骨骼动画:支持业内最优骨骼动画解决方案DragonBones
资源加载:提供了整套资源加载方案,优化网络加载功能
GUI:提供大量组件,可快速开发游戏中的UI控件
LayaBox
Layabox是北京蓝亚盒子科技有限公司打造的中国游戏引擎提供商品牌,旗下第二代引擎LayaAir是基于webGL的开源引擎,性能与3D是引擎的核心竞争力。配套引擎专属的可视化开发工具,引擎与工具同时支持ActionScript3、JavaScript、TypeScript三种开发语言,并且一次开发可以同时发布APP(安卓与iOS)、HTML5、小游戏(微信小游戏、QQ小游戏、百度小游戏、支付宝小游戏、BiliBili小游戏、字节跳动小游戏、小米快游戏、OPPO小游戏、vivo小游戏、华为快游戏、等)。除支持2D\3D的游戏开发外,引擎还可以用于应用软件、广告、营销、教育、线上虚拟展馆、智慧城市、智慧工业等领域。
公司创始人谢成鸿是2000年成立的页游平台“可乐吧”的创始人,拥有长达20年的引擎开发经验。当前,腾讯、阿里巴巴、网易、美团、三七互娱、完美世界、电魂网络、光宇游戏、金科文化、猎豹移动、第七大道、掌趣、蓝港互动、精锐教育、等大型企业纷纷采用Layabox的引擎开发游戏产品。截止2020年9月,LayaAir引擎开发者超过70万。在小游戏与HTML5领域,LayaAir的3D引擎市场占有率超过90%。
LayaAir是Layabox旗下的第二代HTML5引擎。是全球唯一支持ActionScript3、JavaScript、TypeScript三种开发语言,并且一次开发同时发布Native APP与HTML5的游戏引擎,也是全球首款基于HTML5协议的全能型引擎。除支持2D\3D\VR\AR的游戏开发外,引擎还可以用于应用软件、广告、营销、教育等众多领域。
LayaAir引擎是一套全新设计的精简API的游戏引擎,具有极致的性能、轻量易用、支持多语言开发、API功能齐全、工具链完善高效、免费、支持多版本发布等特点。
极致性能
LayaAir引擎同时支持WebGL与Canvas渲染。优先使用webgl渲染(当WebGL不可用时,自动无缝转换为canvas渲染)。引擎设计过程中以性能为优先原则进行极致优化,在谷歌等优秀的浏览器环境下运行性能媲美Unity3D等APP原生引擎。LayaAir拥有多款APP级的已上线2D游戏精品和3D游戏精品,证明LayaAir引擎的流畅性能。
轻易易用
LayaAir引擎 API设计上追求精简,简单易用,上手容易,引擎本身非常注意自身大小,是目前同等功能最小的HTML5引擎。
支持多种编程语音开发
LayaAir引擎同时支持ActionScript3、TypeScript、JavaScript三种语言开发HTML使用任意一种自己喜欢的语言开发即可。
功能齐全
LayaAir引擎同时支持2D,3D,VR ,AR,时间轴动画,缓动、UI系统、粒子动画、骨骼动画、物理系统等。
工具链完善
LayaAir引擎除提供可视化的集成式开发环境LayaAirIDE编辑器外,还支持大量主流的第三方工具链,如:Unity3D、TiledMap、Spine、DragonBones等。建立了完善的工具链生态,可视化的编辑器,清晰的工作流,让美术,策划,程序紧密配合,大幅提升开发效率。