a11s.Net

年纪大了,脑子不好用了,需要记录写东西了

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

主题:用于解决大量的零散的文件的分布,管理,版本控制以及升级的一套组件

为什么要把文件打包?

不可否认,玩家都是天才,只有天知道他们会对你脆弱的系统做如何的"改进".想想一下,当你面对一个游戏,而且他的全部资源都摆在你的面前.如果是我,一定会产生某些邪恶的思想.(周星星当年就说过:"曾经有一堆游戏资源文件摆在我面前....") Er... 这仅仅是一个方面.因为就算是打包后的文件依然有执着的人想办法提取内部的文件.是否加密,也是值得注意的一个问题.但是打包之后至少起到了防君子的效果.(虽然我的思想很邪恶,但是还不至于变态到去破解XX游戏的文件格式注意,这里的邪恶跟变态完全不是一个等级的..) 大量的文件易于管理,但是分布后呢?很多配置文件可以合并,但是这对于灵活来说反而会降低.不要指望我们的美工会去在一个ini里面分析你的header然后把一个图片的名称坐标,hotpoint array写入这个ini.他们更喜欢找一个同名的ini来配置单幅图像的信息.如此散乱的文件需要管理.如果问题这么简单倒是还好.如果对于经常更新的东西.下载下来,覆盖,每次都要保证全部的版本是一致的,每次都要验证全部的文件?天啊,你的游戏如果是网络游戏的话,一定相当脆弱.一旦出现"不可预知的问题"(比如用户喜欢你的资源文件然后Ctrl+X了或者用伟大的鼠标拖拽跑了...)那么对于你的系统来说似乎只能重装了...然后还有以往的update....

实现什么样的功能?

如果您看完的一条仍然无动于衷,那么您可以忽略这一条,然后请盖茨去喝咖啡商讨下一代操作系统的文件管理应该具备的功能(如果可能我们建议您这样做!)否则就请帮助我们设想一下这个可爱的组件应该具备的功能

1 文件打包成一个独立的pak(或者更神秘的扩展名)

2 pak文件里面可以有目录管理

3 pak文件可以方便的管理版本信息,甚至多个版本的同一个文件可以同时存在.当然,您也可以剔除掉过早的版本

4 可以将零散的配置文件合并,或者单独做一个配置文件信息提取的办法(Windows注册表就是一个比较好的例子,将众多的ini=>reg)

5 加密?有必要吗?

6 多个pak文件之间可以同时使用.构建成文件组的形式.比如某些部分是不会变的,某些是不经常变的,某些是专门用来更新的.

7 调用一定要简单.比如 XPak.getFile("img\test1.bmp") 或者XPak.GetObject("obj\test1") 或者 XFile.GetSettings("config.test1.width")

8 允许访问目录下非pak的文件,当然,我们不强制avi也放进pak,比如我,就非常喜欢看那些游戏动画,过分隐藏了也不好.会造成太多的怨念...

9 网络更新的支持.其实吧,同步部分跟游戏内容根本就没关系.所以单独做成一个产品多好?

如何实现?

实现的办法很多 目前想起了三种,但是我更希望大家把更狡猾的办法都提出来.然后我一起整理.(占位中..)

感兴趣的话我们就专门成立一个办公室,定义一个project来开始做这件事情.要知道,这仅仅是一个想法,欢迎大家来抄袭剽窃.总之我们的目的是有一套现成的可以用的文件管理系统.报名的话可以回复.sil.yo负责人事管理.

 

posted on 2006-05-21 12:03  a11s.net  阅读(475)  评论(0编辑  收藏  举报