游戏文件系统(a11s)
2006-05-21 12:03
183 查看
主题:用于解决大量的零散的文件的分布,管理,版本控制以及升级的一套组件
为什么要把文件打包?
不可否认,玩家都是天才,只有天知道他们会对你脆弱的系统做如何的"改进".想想一下,当你面对一个游戏,而且他的全部资源都摆在你的面前.如果是我,一定会产生某些邪恶的思想.(周星星当年就说过:"曾经有一堆游戏资源文件摆在我面前....") 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负责人事管理.
为什么要把文件打包?
不可否认,玩家都是天才,只有天知道他们会对你脆弱的系统做如何的"改进".想想一下,当你面对一个游戏,而且他的全部资源都摆在你的面前.如果是我,一定会产生某些邪恶的思想.(周星星当年就说过:"曾经有一堆游戏资源文件摆在我面前....") 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负责人事管理.
相关文章推荐
- 游戏中虚拟文件系统的设计
- 黑客破译Xbox360文件系统 克林顿颁游戏禁销法令
- Win8.1系统提示缺少xinput1_3.dll文件游戏不能运行
- 网络游戏服务器开发:脚本系统的制作,linux下使用tolua制作Lua脚本系统(不需要PKG文件)
- 傻瓜教学--vmware安装虚拟机系统和多开游戏和共享真机文件
- 关于游戏中文件数据和系统文件和程序调用的几个技术方案
- 游戏文件系统设计
- 游戏文件系统的解决方案
- 运行时权限与文件系统权限的区别
- sersync 文件同步系统(三) 插件使用说明
- 认识EXT2文件系统
- 【转】关于iPhone文件系统NSFileManager讲解
- U盘装系统可以在里面放其他文件吗?
- [20150925]Linux之文件系统与SHELL
- Linux下简单配置SAMBA服务,实现与Windows系统文件共享.
- 系统调用-文件访问
- 32、文件系统
- Linux系统中xorg.conf文件简介
- win7无法访问局域网win2003系统共享的文件的解决方法
- 对象存储、块存储、文件系统存储概念与区别