现有游戏引擎的分析—— 2D (一)

来源:互联网 发布:民生证券软件下载 编辑:程序博客网 时间:2024/05/23 01:20

       

        越来越多的游戏开始采用游戏引擎来加快开发速度,游戏引擎也就越来越多。我对游戏引擎的研究时间较短,撰写本系列短文,抛砖引玉,欢迎大家多多讨论和提出不同意见。

     按照先易后难的模式,我们先讨论2D的游戏引擎(包括2.5D)

    

  第一部分:2D游戏引擎的基础形态

    1. 最下面的层

      引擎的最底层,通常是对操作系统的Driver层或者底层进行封装,以方便解决移植问题(大部分引擎都支持多个平台),另一方面也避免硬件和操作系统的更新,导致引擎无法工作。

      接下来,引擎要解决跟第三方模块的配合问题,也就是plug in接口层。

      引擎还需要支持脚本语言或者跟其他语言进行扩展,我们把这部分和plug in都并入到扩展层吧。

      底层封装和扩展层虽然跟引擎核心关系不大,但非常影响引擎的可靠性。

    2. 辅助层

       引擎为了提高效率,大都接管了部分操作系统的工作,例如:内存管理、线程管理、网络控制、加载(升级)、资源管理等等。

        这个层对performance影响较大,不但要算法好,还要编码过硬。

    3. engine层

       通常包括2个engine,一个是虚拟机(VM)engine,一个是渲染器(Rendering)engine,这两个engine直接是可以互动的,这样威力更为强大。

      单纯的VM engine和Rendering engine有很多:

     VM engine: java, javascript的engine 在网上到处都是,推荐阅读google 的javascript vm

     Rendering engine: emsoft应该做了一个,并有一些分析文章点击打开链接。开源的有很多,google的skia 是比较有名的一个。

      其他engine: 例如物理engine 等

    4. 游戏框架层

     现在很流行MVC框架,有不少便于游戏开发的框架被加入到游戏引擎当中。如果你的游戏类型跟框架类型相同,那么按照模板填写内容,确实能提高效率,但大多数时候,游戏团队都会修改框架或者采用自己习惯的框架。


     做一个2D的游戏引擎,在当下不是一件太难的事情,但由于flash大包大揽,已经很少有团队再去折腾这类软件,直接用flash又快又省事。


         

原创粉丝点击