在HGE1.81版本开始修改结构。

为什么不在HGE加强版本上面修复,原因很简单,这个版本的作者D3D功底一般,封装方面的技术一般。不但没有使引擎更符合大型游戏的开发,而且使很多方面搞得相当复杂。不利于引擎的以后强化。

所以最理想的还是从官方的原版开始修改引擎基础部分。使之更符合大型游戏的开发。

资源管理方面,HGE提供了一个从Zip压缩文件加载的接口类。其实任何一个商业游戏都是不可能使用Zip压缩文件作为客户端图片资源文件的。因为大家都

是使用了各自的自定义文件格式资源文件。

Zip压缩文件适用于补丁的更新。但是目前主流的做法好像已经改变。使用了微端技术。其实说白了,就是玩家一边玩游戏一边下载客户端资源文件。不用再像以前那样需要一次性下载几个G的客户端文件。显然断点续传的功能要做好的。比如那些像迅雷一些功能是需要参考的。但是写入客户端文件就容易了。当然不是那种采用Zip结构的压缩文件进行解压后覆盖原文件的做法,这种做法本来就不应该提倡,因为每一次更新都需要附带以前的那些资源一起更新,造成下载和解压都很耗时,尤其是现在大多数玩家的耐心都是有限的。更不理想的是会造成游戏长期发展的局限性。就好像一些玩家那样,提起游戏是感觉不错,想玩,但是想起几个G的客户端文件就泄气了。因为很多人的时间都是很紧的。另外好不容易坐到电脑目前,但是一打开游戏,面对那些长时间的补丁更新,换成谁,都会很不爽的。显然不利于游戏的发展壮大。

因此多年以来,资源管理一直是游戏界最头痛的方面。

显然HGE需要修改以符合目前的主流技术的地方还是相当多的。

因为我直接采用了DirectX9.0 SDK,所以一些特效方面还是可以加强的。

废弃了HGE原来的D3DX81mo.DLL,包括其声音类。使用了FMOD——目前商业主流的音源API。

类的封装不需要过深,提供相应的空间给以后的功能增加。最讨厌的是那些封装太深的类文件,看起来头痛,修复而不出BUG是不可能的。游戏引擎最好的还是直接加直接。

至于资源文件,采用自己定义的结构化文件,这些是大众化的做法了,没有什么新奇的。采用了简单的加密,其实感觉还是多余的,还没有看到过不被破解得体无完肤的资源文件。

此资源文件可以导入任何类型的图片,不会像一些人的做法只可以导入指定格式的图片文件。因为D3D接口支持各种图片格式,另外一些图片格式的使用会带来很多好处。按照需要使用合适的图片格式文件是发挥D3D接口的优势。

另外在这里告诉大家的是:当你导入图片文件到资源文件里面,最好不要通过任何的GDI对象来操作,否则保存的数据会多出很多未知的数据。造成文件变大。不信,你可以测试一下。

那么如何保存原图片文件大小的数据呢,很简单,通过流复制就行了。

一个资源文件最小都几十MB,大的两三百MB是很正常,这样大的文件,加载和读取显然是比较困难的,虽然现在的CPU已经很强大了,但是我们还需要想下,是不是每个玩家都是游戏发烧级别的?老牌子机器在国内是非常非常多的。

其实资源文件虽然已经读入内存,但是通过索引来搜索我们需要的那个图片文件,显然根据文件结构树的深化程度,CPU所需要的时间是不同的。这种情况大家在解压这些rar压缩文件的时候就应该深有体会了。就为了这几张图片,把这样大的文件驻留在内存里面显然不是理想了,但是频繁地加载显然更不合理。

所以就需要寻找合适自己的资源加载和管理方式了。我目前的做法是使用流来操作。效率相当高。

转载于:https://www.cnblogs.com/GameDelphi/archive/2012/03/01/2374929.html

HGE重新架构资源管理相关推荐

  1. 百万级PHP网站架构工具箱

    百万级PHP网站架构工具箱 在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de.Poppen.de是德国的一个社交网站,相对F ...

  2. 【转】【UML】使用Visual Studio 2010 Team System中的架构师工具(设计与建模)

    Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级 ...

  3. 百万级PHP网站架构-Poppen.de

    在了解过世界最大的PHP站点,Facebook的后台技术后,今天我们来了解一个百万级PHP站点的网站架构:Poppen.de.Poppen.de 是德国的一个社交网站,相对Facebook.Flick ...

  4. 物联网技术体系、网络架构和产业链条,入门知识大全

    最初的物联网概念,国内普遍认为的是MIT Auto-ID中心Ashton教授1999年在研究RFID时最早提出来的,当时还被称之为传感网,其定义是:通过射频识别(RFID).红外线感应.全球定位系统. ...

  5. 使用Terraform创建托管版Kubernetes

    目前,阿里云容器服务已经可以创建托管版 Kubernetes 集群了.相比于默认的 Kubernetes 集群,托管版本会主动替您运维一套高可用的 Master 组件,免去了默认版本集群中三个 Mas ...

  6. Terraform 学习总结(6)—— 基于阿里云平台上的 Terraform 实战

    Terraform 是什么 Terraform(https://www.terraform.io/)是 HashiCorp 旗下的一款开源(Go 语言开发)的 DevOps 基础架构资源管理运维工具, ...

  7. 国泰君安基于OpenStack构建金融云

    导读 国泰君安是目前国内规模最大.经营范围最宽.机构分布最广的证券公司之一.经营业绩稳居业内前三,经营管理.风险控制.合规体系.信息技术等水平领先,也是国内证券信息化技术创新的"领头羊&qu ...

  8. 【案例学习】芬兰铁路的 Docker 使用实践分享

    写在前面 VR集团是一家经营芬兰铁路的国有公司, 每年提供8200万辆客运列车服务并且可以运输3600万吨货物.拥有150多年历史的运输业务分成了不同的部门,这些部门都有各自的技术团队,但整个集团却没 ...

  9. Terraform 实战 | 万字长文

    新钛云服已为您服务1456天 (万字长文,建议 PC 端观看效果更佳) Terraform 是什么 Terraform(https://www.terraform.io/)是 HashiCorp 旗下 ...

最新文章

  1. 越线人群计数--Crossing-line Crowd Counting with Two-phase Deep Neural Networks
  2. Spring注解详解
  3. Jackson 注解 -- 忽略空字段
  4. 生态和场景一站式集成?来看看小程序的“共享主义”
  5. ShardingCore 如何呈现“完美”分表
  6. Oracle初始化参数之memory_target
  7. Rabbitmq的原生javaAPI讲解
  8. 怎样知道别人在蹭我家wifi?
  9. 我与前端之间不得不说的三天两夜之html基础
  10. XSS注入,js脚本注入后台
  11. mysql中的select into 与insert into语句用于备份数据
  12. CSDN创始人董事长蒋涛对话阿里云张献涛:距离云计算终极目标还有多远?
  13. 第03讲 struts2中ActionSupport引入
  14. 英伟达实时 3D 设计协作和仿真平台已正式发布
  15. ubuntu16安装搜狗输入法教程
  16. “构建之法”--第三次作业:原型设计
  17. NDT方法总结与公式推导
  18. 微信支付之 内网穿透
  19. Android开源的社交应用
  20. 【荐藏】代谢组学分析系列

热门文章

  1. ntv.js框架(第三章) - 机顶盒HTML和CSS编写注意事项
  2. ORA-28056:Writing audit records to Windows Even...
  3. hadoop 伪分布模式
  4. __doPostBack用法 【csdn】
  5. android 监听屏幕是否锁屏
  6. android Map集合的遍历
  7. IntentService详解
  8. 利用Android Studio的 Monitor Memory 查找内存泄漏
  9. vs2010如何安装qt插件
  10. 怎样让你的安卓手机瞬间变Firefox os 畅玩firefox os 应用