hge(开源的2D游戏引擎)
2014-02-19 16:57
375 查看
简介编辑
HGE 是一个硬件加速(Hardware accelerated)的 2D 游戏引擎(Game Engine),HGE 是一个富有特性的中间件,可以用于开发任何类型的 2D 游戏。HGE 封装性良好,以至于你仅仅需要关心游戏逻辑(Game Logic),而不需要在意 DirectX,Windows 消息循环等。HGE 架构在 DirectX 8.0 之上,能够跑在大多数的 Windows 系统上。
选用
HGE 的理由
1)专业化 --- 专注于 2D 领域2)简单化 --- 非常容易使用
3)技术优势 --- 基于 Direct3D API 有较好的性能和特性
4)免费 --- 对于个人或者商业用户都免费,遵循 zlib/libpng license
5)代码高度的一致性 --- 代码是否具有一致性,是衡量代码质量的标准之一(《 Code Reading: The Open Source Perspective》)
体系结构
HGE 有3个抽象层(layers of abstraction):HGE体系结构
1)核心函数(Core Functions)
处于核心的函数和例程(routines),被整个系统所依赖。
2)辅助类(Helper Classes)
游戏对象相关的类,架构于 HGE Core Functions 层之上,辅助用户进行游戏开发。
3)创作工具(Authoring Tools)
用于游戏开发的一组工具。
体系结构概述
1)Core Functions 层<1> 图形格式支持:支持 BMP, JPG, PNG, TGA, DDS, DIB 文件格式
<2> 支持窗口模式和全屏模式
<3> 音频支持和音乐回放(music playback):支持 WAV, MP3, MP2, MP1 and OGG 音频文件格式(audio file formats),支持 MO3, IT, XM, S3M, MTM, MOD and UMX 音乐文件格式(music file formats),支持压缩流的回放。声音大小和声道的控制
<4> 输入设备支持:鼠标和键盘
<5> 资源:读取硬盘上的资源,支持 ZIP 打包的文件格式
<6> 日志支持
2)Helper Classes 层
<1> 精灵(Sprites)和动画(Animations)
对于所有硬件设备特性的直接支持:锚点(anchor)支持,伸展、缩放、旋转的支持,不同的回放模式的支持
<2> 字体
读取和渲染(render)位图字体,多种字体排列方式,旋转和缩放字体,字符串宽度计算等
<3> 粒子系统(particle systems)和网格变形(distortion mesh)
高效的粒子系统,可用于创建烟雾、爆炸、魔法效果等,提供粒子系统的管理,支持定界盒(bounding box)计算和冲突检测(collision detection)
<4> 资源管理:通过简单的函数调用,来创建复杂的对象,自动的内存管理。对于资源组(resource groups)采用预先缓存和特殊的清除处理(这是一种通过控制对象分配和释放来提高效率的方法)
<5> GUI:强大而灵活的 GUI 管理,支持动画式的 GUI
<6> 矢量(Vectors),对于 2D 矢量的完全支持
3)Authoring Tools 层
<1> 资源的打包(pack):HGE 使用 ZIP 格式的资源包,你可以使用任何的打包工具,甚至还可以给资源包加密
<2> 纹理(Texture)工具
<3> 粒子系统编辑器:能够设定粒子的速度,方向,生命周期,轨迹,颜色,透明等
<4> 位图字体编辑器:运行通过系统中已经安装的字体来创建位图字体,你可以使用图形编辑器来为位图字体添加额外的效果
2一些优缺点编辑
1. 使用DX8,很多DX9特性不能完全支持,例如很多DX9的API,HLSL等,虽然这些看似在2D里用处不大2.低效的zip读取机制。zip的文件读取以及查找居然采用字符串比较,也就是attach的zip越多,查找速度越慢
3. 粒子系统带有编辑器,这点很不错,而且效果也还可以
4. 字体要提出批评,这点做的太差了,不支持中文。
5. 原始版不支持unicode,使用hge社区里某大侠提供的unicode版本后,做国际化方便多了
6. 纯粹简单游戏引擎,做下简单的的差不多,做复杂的格斗的话,很费力
相关文章推荐
- 介绍一款信息管理系统的开源框架---jeecg
- 专家解读:开源软件项目是否会被限制出口?
- 专家解读:开源软件项目是否会被限制出口?
- fuse-dfs的设定手册
- Centos下***(pptpd)的部署
- 国外比较好的几个的Php开源建站平台小结
- 开源SNS系统-ThinkSNS
- 3款值得推荐的微信开发开源框架
- Android 游戏引擎libgdx 资源加载进度百分比显示案例分析
- 开源操作系统和必备工具网站收集
- Gaea学习--Gaea是什么?
- [转]chrome涉及开源项目
- 开源“基爱圣经Chrome插件”
- 【OSChina-MoPaaS应用开发大赛】JeeSite(JES)
- 开源在线IDE,欢迎测试
- 16大跨平台游戏引擎
- 16大跨平台游戏引擎
- 开源的sip客户端
- [开源项目]科幻背景的MMO网游Ryzom介绍