閱讀1014 返回首頁    go 阿裏雲 go 技術社區[雲棲]


HGE 係列教材(1) --- 簡介

HGE 是一個硬件加速(Hardware accelerated)的 2D 遊戲引擎(Game Engine),HGE 是一個富有特性的中間件,可以用於開發任何類型的 2D 遊戲。HGE 封裝性良好,以至於你僅僅需要關係遊戲邏輯(Game Logic),而不需要在意 DirectX,Windows 消息循環等。

HGE 架構在 DirectX 8.0 之上,能夠跑在大多數的 Windows 係統上。

 

1. 選用 HGE 的理由:

    1)專業化 --- 專注於 2D 領域

    2)簡單化 --- 非常容易使用

    3)技術優勢 --- 基於 Direct3D API 有較好的性能和特性

    4)免費 --- 對於個人或者商業用戶都免費,遵循 zlib/libpng license

    5)代碼高度的一致性 --- 代碼是否具有一致性,是衡量代碼質量的標準之一(《 Code Reading: The Open Source Perspective》)

 

2. 體係結構:

HGE 有3個抽象層(layers of abstraction):

    1)核心函數(Core Functions)

    處於核心的函數和例程(routines),被整個係統所依賴。

    2)輔助類(Helper Classes)

    遊戲對象相關的類,架構於 HGE Core Functions 層之上,輔助用戶進行遊戲開發。

    3)創作工具(Authoring Tools)

    用於遊戲開發的一組工具。

從上圖可以看見:

    1)用於代碼隻需要架構在 HGE Helper Classes 之上

    2)通常遊戲資源(Game Resources)需要使用 HGE 創作工具來產生

 

3. 體係結構概述:

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> 位圖字體編輯器:運行通過係統中已經安裝的字體來創建位圖字體,你可以使用圖形編輯器來為位圖字體添加額外的效果

最後更新:2017-04-02 06:51:29

  上一篇:go HGE 係列教材(5) --- 輸入、聲音和渲染
  下一篇:go HGE 係列教材(6) --- 程序流程與細節