hge(开源的2D游戏引擎)

简介编辑

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体系结构

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. 纯粹简单游戏引擎,做下简单的的差不多,做复杂的格斗的话,很费力
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基本功能和翎风的一样。 ------------------------------------------------------------------ [2016.09.30] 更新M2功能 ------------------------------------------------------------------ 1.增加脚本命令:InSafeZone //检测人物是否在安全区 ------------------------------------------------------------------ 2.修改程序防止最新僵尸攻击 3.增加脚本命令:SETRANDOMNO //产生一个随机数字 [@main] #IF #ACT SETRANDOMNO //产生一个随机数字 #SAY : //将显示出产生的随机数 [@@CHECKNO] #IF CHECKRANDOMNO //检测输入的验证码是否正确 #ELSEACT MESSAGEBOX 验证码错误! CLOSE BREAK 4.增加脚本命令:ISONMAP MAP //检测当前人是否在MAP地图上 5.增加脚本命令:DELAYCALL 作用:延时执行同一个NPC脚本中指定的标签内容 格式:DELAYCALL S LABEL 其中S是延时秒数(毫秒),Label是执行的脚本标签 示例:DelayCall 3000 @DELAYCALLTEST --- 3秒后自动跳到@DELAYCALLTEST节执行 6.增加脚本命令:KILLBYMON //是否被怪杀 7.增加脚本命令:KILLBYHUM //是否被人杀 地图增加一参数:KILLFUNC(X) //X可以随意数字 说明: 人物在该地图杀人,将触发QFunction-0.txt的[@KillPlay数字]节 人物在该地图杀怪,将触发QFunction-0.txt的[@KillPlayMon数字]节 注:宝宝杀人杀怪有效(秒杀除外) 8. //杀人的怪物名字 9. //杀人的人物名字 #IF KILLBYMON SENDMSG 5 在:%m(%x:%y)把干掉了! #IF KILLBYHUM SENDMSG 5 在:%m(%x:%y)把干掉了! 10.增加人物S变量:(0~99个) 11.解决地图标记 NoHUMNoMon 有人刷怪不能用的问题! 12.增加NPC命令:REPAIRALL //特修身上所有装备 13.增加数据库(修复神水)设置:3 14 //特修身上所有装备 14.增加脚本命令:ISGROUPMASTER //检测是否组长,加入编组后组长会触发QFunction-0.txt 15.增加挂机泡点功能。 ===================================== OFFLINE S EXP S是时间,单位秒 EXP为每S秒得到的经验值 默认必须在安全区域有效 脚本示意: (******************************************************************) (@@offlinemsg) [@main] 一、点击开始脱机泡点后,可输入一段留言信息给你的朋友。\ \ \ \ [@@offlinemsg] #IF CHECKLEVEL > 0 #ACT OFFLINE 5 500 //每5秒增加500经验 --------------------------------------------------------------------------- 16.;检测是否组长 [@MAIN] #IF ISGROUPMASTER #ACT GroupMoveMap 3 330 330 #elsesay 你不是组长. 加入编组后组长会触发QFunction-0.txt [@GroupCreate] #if #say 加入编组 --------------------------------------------------------------------------- 17.增加脱机泡点功能 18.增加地图标记有人刷怪 [0 比奇] NoHUMNoMon ;有人才开始刷怪 19.增加地图标记禁止仍背包物品 [1 沃玛森林] NOTHROWITEM ;禁止仍背包物品 20.增加地图标记死后不爆背包物品 [2 毒蛇山谷] NODR
### 回答1: 3k引擎是一款较为古老的游戏引擎,而hge引擎(Hiroshima Game Engine)则是一款采用C++编写的轻量级游戏引擎。如果要将一个基于3k引擎的项目转换为hge引擎,以下是一些基本的教程步骤: 1. 首先,了解hge引擎的基本特性和使用方式。可以参考官方文档和教程以及在线论坛来获取相关信息。 2. 分析3k引擎项目的代码结构和功能。了解项目中使用的主要功能和类,以便在转换过程中进行相应的调整和修改。 3. 在hge引擎中创建一个新项目。根据自己的需求和项目的特性来设置项目的相关参数,例如窗口大小、显示模式等。 4. 将3k引擎项目中的资源文件(例如图片、音频等)复制到hge引擎项目中的相应目录下。确保资源文件的路径和名称在hge引擎中能够正确访问。 5. 逐个转换和调整3k引擎项目的功能和代码。根据hge引擎的语法和功能进行相应的修改,包括更新事件循环、渲染、碰撞检测等相关代码。 6. 调试和测试hge引擎项目。在转换过程中会遇到一些问题和bug,使用调试工具和测试用例来排查和修复这些问题。 7. 最后,将hge引擎项目打包和发布。根据平台的要求和项目的需求来生成可执行文件或者库文件,准备发布给用户使用。 总之,从3k引擎转换到hge引擎需要一定的工作量和代码调整。需要熟悉hge引擎的使用方法和特性,并对原始项目的代码结构和功能有一定的理解和分析能力。只有在转换的过程中不断学习和调试,才能顺利将3k引擎的项目转换到hge引擎上。 ### 回答2: 3K引擎转HGE引擎的教程可以分为以下几个步骤: 1.了解HGE引擎:首先,需要对HGE引擎有一定的了解,包括其概念、功能和特点。可以阅读官方文档或者在线教程,掌握HGE引擎的基本知识。 2.分析3K引擎代码:将3K引擎的代码进行仔细分析,了解其架构、功能模块和代码结构。这样可以更好地理解3K引擎的代码,并为接下来的转换工作做好准备。 3.选择合适的工具:在转换过程中,可以选择一些合适的工具来辅助完成。例如,可以使用代码编辑器来修改和转换代码,使用调试工具来排查错误等。 4.修改代码适配HGE引擎:根据HGE引擎的要求和特性,对3K引擎的代码进行修改和调整,以使其能够适配HGE引擎的规范和接口。可能需要对输入输出、图形渲染、声音播放等方面进行修改。 5.测试和调试:在代码修改完成后,需要进行测试和调试,以确保转换后的代码能够正常运行并达到预期的效果。可以使用HGE引擎提供的调试工具,对代码进行逐行调试,检查和修复可能存在的问题。 6.优化和完善:转换完成后,还可以对代码进行优化和完善。可以使用一些优化技巧来提高游戏的性能和用户体验,包括资源管理、内存优化、算法优化等方面。 总之,将3K引擎转换为HGE引擎需要深入了解两个引擎的特点和代码结构,并进行相应的修改和调整。同时,还需要进行测试和调试,优化和完善代码,确保转换后的游戏能够在HGE引擎上正常运行。 ### 回答3: 转换3k引擎到hge引擎的教程如下: 首先,确保你对3k引擎和hge引擎有一定的了解和使用经验。了解两者的基本概念和结构对于转换工作非常重要。 第一步是了解3k引擎的主要特点和功能。3k引擎是一个开源的2D游戏引擎,它提供了丰富的功能和工具来帮助开发者创建2D游戏。熟悉3k引擎的API和工具将为你转换到hge引擎提供必要的基础知识。 接下来,了解hge引擎的主要特点和功能。hge引擎是一个用于Windows平台的2D游戏引擎,提供了高效的渲染和输入处理功能。了解hge引擎的API和工具是你成功转换的关键。 一旦你对两个引擎都有了一定的了解,你可以开始将你的项目从3k引擎转换到hge引擎。 首先,创建一个新的hge引擎项目。确保你按照hge引擎的项目结构来组织你的代码和资源文件。 接下来,逐个将3k引擎中的功能和代码迁移到hge引擎中。这可能涉及到修改你的代码逻辑、重新组织你的资源文件,以及使用hge引擎的API来实现你之前在3k引擎中使用的功能。 在转换过程中,你可能会遇到一些挑战和问题。这时,你可以参考hge引擎的官方文档和开发者社区来获取帮助和支持。 最后,测试和调试你的转换后的hge引擎项目。确保所有的功能都正常运行,并且没有出现任何错误或异常。 总结起来,将3k引擎转换到hge引擎需要你对两者有一定的了解和熟悉。然后,你需要逐步迁移你的代码和资源文件,并在转换过程中解决可能出现的问题。最后,测试和调试你的转换后的hge引擎项目,确保一切工作正常。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值