跨平台游戏引擎开发
2015-07-23 18:13
721 查看
跨平台游戏引擎的意义
目前移动平台开发涉及Andoird,ios,windows-phone,blackberry等多个平台,每个平台的开发接口都不同,同一款游戏要想部署到不同平台需要大量的重复劳动,严重影响开发成本,跨平台游戏引擎能使用统一的开发接口,能做到written once, run everywhere的效果,大大提高开发效率
跨平台游戏引擎现状(unity3d,cocos2d-x,phonegap,qt-quick)
unity3d是一款比较流行的跨平台3d游戏引擎,据说最近也出了2d版本。使用c#,javascript等语言开发,有比较成熟的ui设计工具
cocos2d-x 是国人开发的一款跨平台2d游戏引擎,拥有非常大的用户量。使用c++开发,开源免费。有cocostudio等开发辅助工具
phonegap 基于html+css+javascript的跨平台开发工具,跨平台效果最好的一个,但是效率不及native的引擎
qt-quick 使用qml+cpusplus的开发方式,qml是一个类似css的语法的界面设计语言,有非常灵活的语法。集成开发工具qt-creater。个人比较喜欢这个,但是目前还不是很成熟。
研发自己的游戏引擎(GameEngine)
首先,研发自己的游戏引擎可以对程序有100%的把控能力,根据自身需求灵活添加功能。
还有一点重要的原因是想cocos2d-x等开源程序虽然代码是开源的,更新也很迅速,但是从1.0到3.0api的版本变换差异非常大,使用旧版本引擎开发的程序想要升级,风险太大。
研发自己的游戏引擎当然也有弊端,需要用专门的团队来维护。
游戏引擎系统架构图
抽象应用程序(Application,PlatformApplication,Windows)
图形引擎设计 (Graphic,Drawable,Bitmap,Shape)
节点设计 (Node,Scene,Layer,Sprite,Text,EditText,Canvas)
动画引擎设计 (Animation)
事件处理系统设计 (Event,Touch,Keyboard)
字体渲染设计 (FontManager)
粒子系统设计 (ParticleSystem)声音引擎设计 (AudioEngine)
文件系统设计
(FileSystem)
多任务设计
(Process,Thread,AsyncTask)
网络引擎设计
(HttpClient,HttpMethod,GetMethod,PostMethod)游戏引擎跨平台移植(Android,IOS,Windows,Linux) 游戏引擎性能优化(顶点缓存VBO,多重采样,PNG解析优化,IO优化,字体渲染优化)
游戏引擎的辅助工具设计
未完待续。。。
目前移动平台开发涉及Andoird,ios,windows-phone,blackberry等多个平台,每个平台的开发接口都不同,同一款游戏要想部署到不同平台需要大量的重复劳动,严重影响开发成本,跨平台游戏引擎能使用统一的开发接口,能做到written once, run everywhere的效果,大大提高开发效率
跨平台游戏引擎现状(unity3d,cocos2d-x,phonegap,qt-quick)
unity3d是一款比较流行的跨平台3d游戏引擎,据说最近也出了2d版本。使用c#,javascript等语言开发,有比较成熟的ui设计工具
cocos2d-x 是国人开发的一款跨平台2d游戏引擎,拥有非常大的用户量。使用c++开发,开源免费。有cocostudio等开发辅助工具
phonegap 基于html+css+javascript的跨平台开发工具,跨平台效果最好的一个,但是效率不及native的引擎
qt-quick 使用qml+cpusplus的开发方式,qml是一个类似css的语法的界面设计语言,有非常灵活的语法。集成开发工具qt-creater。个人比较喜欢这个,但是目前还不是很成熟。
研发自己的游戏引擎(GameEngine)
首先,研发自己的游戏引擎可以对程序有100%的把控能力,根据自身需求灵活添加功能。
还有一点重要的原因是想cocos2d-x等开源程序虽然代码是开源的,更新也很迅速,但是从1.0到3.0api的版本变换差异非常大,使用旧版本引擎开发的程序想要升级,风险太大。
研发自己的游戏引擎当然也有弊端,需要用专门的团队来维护。
游戏引擎系统架构图
抽象应用程序(Application,PlatformApplication,Windows)
图形引擎设计 (Graphic,Drawable,Bitmap,Shape)
节点设计 (Node,Scene,Layer,Sprite,Text,EditText,Canvas)
动画引擎设计 (Animation)
事件处理系统设计 (Event,Touch,Keyboard)
字体渲染设计 (FontManager)
粒子系统设计 (ParticleSystem)声音引擎设计 (AudioEngine)
文件系统设计
(FileSystem)
多任务设计
(Process,Thread,AsyncTask)
网络引擎设计
(HttpClient,HttpMethod,GetMethod,PostMethod)游戏引擎跨平台移植(Android,IOS,Windows,Linux) 游戏引擎性能优化(顶点缓存VBO,多重采样,PNG解析优化,IO优化,字体渲染优化)
游戏引擎的辅助工具设计
未完待续。。。
相关文章推荐
- vim 打开Linux下文件每一行后面都有^M的样式
- sort和qsort函数的用法
- Redis HA实践配置
- c/c++类型和字节大小整理
- ssi开发 学习笔记第四天--第一个例子
- 【面向专家】极客头条使用体验征文(结束)
- 查看eclipse ADT SDK JDK版本号
- linux 系统运维
- android 创建桌面快捷方式
- Hibernate教程
- 分析java CPU消耗
- 常用排序算法之JavaScript实现
- 关于js异步调用webservice
- 安卓天天练练(五)CompoundButton
- nginx状态监控
- 网络中常用的9个命令
- Java基础——原码, 反码, 补码 详解
- ActionResult的本质四:HttpStatusCodeResult & RedirectResult/RedirectToRouteResult
- eclipse中SVN分支合并到主干
- 配置Android开发环境遇到的问题