跨平台游戏引擎开发

来源:互联网 发布:研究所升级数据 编辑:程序博客网 时间:2024/05/16 07:15
  • 跨平台游戏引擎的意义

目前移动平台开发涉及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)
  • 资源管理系统 (AssetManager,LocaleManager,ImageIO)
  • 多任务设计 (Process,Thread,AsyncTask)
  • 网络引擎设计 (HttpClient,HttpMethod,GetMethod,PostMethod)
  • 游戏引擎跨平台移植(Android,IOS,Windows,Linux)
  • 游戏引擎性能优化(顶点缓存VBO,多重采样,PNG解析优化,IO优化,字体渲染优化)
  • 游戏引擎的辅助工具设计

未完待续。。。