hge - 一個硬件加速的 2D 游戲引擎
HGE 是一個硬件加速(Hardware accelerated)的 2D 游戲引擎(Game Engine),HGE 是一個富有特性的中間件,可以用于開發(fā)任何類型的 2D 游戲。HGE 封裝性良好,以至于你僅僅需要關(guān)心游戲邏輯(Game Logic),而不需要在意 DirectX,Windows 消息循環(huán)等。HGE 架構(gòu)在 DirectX 8.0 之上,能夠跑在大多數(shù)的 Windows 系統(tǒng)上。
簡介
HGE 是一個硬件加速(Hardware accelerated)的 2D 游戲引擎(Game Engine),HGE 是一個富有特性的中間件,可以用于開發(fā)任何類型的 2D 游戲。HGE 封裝性良好,以至于你僅僅需要關(guān)心游戲邏輯(Game Logic),而不需要在意 DirectX,Windows 消息循環(huán)等。
HGE 架構(gòu)在 DirectX 8.0 之上,能夠跑在大多數(shù)的 Windows 系統(tǒng)上。
選用HGE的理由
1)專業(yè)化—專注于 2D 領(lǐng)域
2)簡單化—非常容易使用
3)技術(shù)優(yōu)勢—基于 Direct3D API 有較好的性能和特性
4)免費—對于個人或者商業(yè)用戶都免費,遵循 zlib/libpng license
5)代碼高度的一致性—代碼是否具有一致性,是衡量代碼質(zhì)量的標準之一(《 Code Reading: The Open Source Perspective》)
體系結(jié)構(gòu)
HGE 有3個抽象層(layers of abstraction):
1)核心函數(shù)(Core Functions)
處于核心的函數(shù)和例程(routines),被整個系統(tǒng)所依賴。
2)輔助類(Helper Classes)
游戲?qū)ο笙嚓P(guān)的類,架構(gòu)于 HGE Core Functions 層之上,輔助用戶進行游戲開發(fā)。
3)創(chuàng)作工具(Authoring Tools)
用于游戲開發(fā)的一組工具。
體系結(jié)構(gòu)概述
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> 輸入設(shè)備支持:鼠標和鍵盤
<5> 資源:讀取硬盤上的資源,支持 ZIP 打包的文件格式
<6> 日志支持
2)Helper Classes 層
<1> 精靈(Sprites)和動畫(Animations)
對于所有硬件設(shè)備特性的直接支持:錨點(anchor)支持,伸展、縮放、旋轉(zhuǎn)的支持,不同的回放模式的支持
<2> 字體
讀取和渲染(render)位圖字體,多種字體排列方式,旋轉(zhuǎn)和縮放字體,字符串寬度計算等
<3> 粒子系統(tǒng)(particle systems)和網(wǎng)格變形(distortion mesh)
高效的粒子系統(tǒng),可用于創(chuàng)建煙霧、爆炸、魔法效果等,提供粒子系統(tǒng)的管理,支持定界盒(bounding box)計算和沖突檢測(collision detection)
<4> 資源管理:通過簡單的函數(shù)調(diào)用,來創(chuàng)建復雜的對象,自動的內(nèi)存管理。對于資源組(resource groups)采用預先緩存和特殊的清除處理(這是一種通過控制對象分配和釋放來提高效率的方法)
<5> GUI:強大而靈活的 GUI 管理,支持動畫式的 GUI
<6> 矢量(Vectors),對于 2D 矢量的完全支持
3)Authoring Tools 層
<1> 資源的打包(pack):HGE 使用 ZIP 格式的資源包,你可以使用任何的打包工具,甚至還可以給資源包加密
<2> 紋理(Texture)工具
<3> 粒子系統(tǒng)編輯器:能夠設(shè)定粒子的速度,方向,生命周期,軌跡,顏色,透明等
<4> 位圖字體編輯器:運行通過系統(tǒng)中已經(jīng)安裝的字體來創(chuàng)建位圖字體,你可以使用圖形編輯器來為位圖字體添加額外的效果
