现有游戏引擎的分析—— 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又快又省事。
- 现有游戏引擎的分析—— 2D (一)
- 现有游戏引擎分析——3D(二)
- 2d游戏引擎(一)——整体框架
- 游戏引擎篇(一)-苹果2D引擎SpriteKit
- Ophone平台2D游戏引擎实现——物理引擎(一)(二)个人整理
- 2D游戏引擎(四)—— 向引擎添加游戏杆支持
- 2D游戏引擎(十)—— 增强游戏引擎中的子画面
- 2D游戏引擎(十一)—— 向游戏引擎添加滚动背景支持
- Java 2D 游戏引擎开发(一)
- 动手实现2d游戏引擎(一)
- 漫谈3D游戏引擎(一)
- OPhone平台2D游戏引擎实现——概述及框架(一)
- OPhone平台2D游戏引擎实现——场景、图层、元素(一)
- 2d游戏引擎(二)——向引擎添加位图类
- 2D游戏引擎(三)—— 向引擎添加输入支持
- 开源3D&2D游戏开发引擎之GoDot简单介绍(一)
- 移动平台的2d游戏引擎(android&iphone)
- hge(开源的2D游戏引擎)
- Android 中Odex文件生成与合并, 移植apk【转载+修正】
- IOS学习六:Date Picker, Picker View选取器控件初步
- mysql 安装
- ftp文件传输协议
- php-Arrays 函数-array_diff_uassoc-用回调函数做索引检查来计算数组的差值
- 现有游戏引擎的分析—— 2D (一)
- BCB搭建UG二次开发环境
- 接口(Interface)与抽象类(abstract class)
- oracle中启用、禁用表空间、表压缩
- 宏和内联函数
- 第一个Struts2程序,包含编码设置以及开发模式
- 为oralce pl /sql脚本(包,函数,存储过程)产生类似java doc的文档
- 一种病态的生活方式会回了人的一生
- Debug Assertion Failed! File: isctype.c Line: 56 Expression (unsigned) (c+1) <=256