|
|
发表于 2008-3-12 15:13:00
|
显示全部楼层
Re:上午写了两个类,实现了自定义资源文件,数据流的存
(func(133)) 2008-03-12 06:43:12
来~讨论讨论MMO在线更新后,更新数据怎么并入原来的资源包~
(?凭佑?? 2008-03-12 06:44:06
一般不都是准备一个列表结构么……
然后重新打包一个……
(AKAI) 2008-03-12 06:44:56
按魔域的更新,一般不去起 解析原来的资源包,直接新加包
(AKAI) 2008-03-12 06:45:36
除非,你是你直接写的打包软件
(?凭佑?? 2008-03-12 06:46:14
加新的数据的话
直接在列表后添加嘛
(func(133)) 2008-03-12 06:46:20
关键是并入原来的包,要追求数据紧凑的话,还要移动很多包内文件
(?凭佑?? 2008-03-12 06:46:20
数据直接PACK到包后
(func(133)) 2008-03-12 06:47:00
我也觉得加在包后比较折中
(?凭佑?? 2008-03-12 06:47:42
既然你不想解包重计算
当然是放包后了
(AKAI) 2008-03-12 06:48:29
简单点,可以这样,先在客户端,用代码将包解压到文件夹,然后,用DOS命令类的进行文件的操作,如删除,添加移动,最后在将该文件夹,打包,替换原来的包,OK
(func(133)) 2008-03-12 06:48:30
如果是覆盖,包内的子文件数据,新版比老版短,直接覆盖~
(func(133)) 2008-03-12 06:49:20
2 AKAI:那样的话,需要一定的磁盘空间,和计算时间
(AKAI) 2008-03-12 06:49:39
不过,记得先检查下,玩家那个盘的剩余空间够吗
(func(133)) 2008-03-12 06:49:50
刚才在GameRes看到的,有人说,直接模拟文件系统~
(AKAI) 2008-03-12 06:50:45
又想姑娘好,又想礼钱,天下的美事,你都想要,怎么可能
(AKAI) 2008-03-12 06:51:12
除非,你是你直接写的打包软件
(func(133)) 2008-03-12 06:51:17
这么做的话,基本算能做到紧凑,但文件拆成块的话,大文件在多做几遍操作后,肯定出一大堆碎片,又要经常整理碎片
(func(133)) 2008-03-12 06:51:33
自己写打包啦
(AKAI) 2008-03-12 06:51:51
那就简单了,你可以这样:
(func(133)) 2008-03-12 06:52:49
NND,本来没事的,我的打包是发布前打包好,游戏里只读。结果看了那个贴,我死想干吗还要写包,结果想到在线更新可能要并包 = =
AKAI) 2008-03-12 06:55:52
如果是自己写的打包软件,那就更简单了,你可以把那个包想成一个数据库,然后,新创建一个包,按你的更新机制,从老包里读出需要数据段,写入新的包,在中间写入你需要更新数据,最后将新包,拿去覆盖老包,OK,简单
(func(133)) 2008-03-12 06:58:55
嘿嘿,总之要想IO时间,磁盘空间,和包内紧凑,都兼得的话,还是不好办的
(?凭佑?? 2008-03-12 06:59:46
要包内紧凑就把PAL和INDEX分开放……
(?凭佑?? 2008-03-12 07:00:09
保证紧过初夜……
(AKAI) 2008-03-12 07:01:17
最省事的就是,直接加新包,别管老包,大不了不去都老包的那些老数据,直接读新包的新数据
(func(133)) 2008-03-12 07:01:41
嗯~
(カミヤ0079) 2008-03-12 07:01:47
磁盘碎片就不用管了
(func(133)) 2008-03-12 07:02:44
不是磁盘碎片,刚才说的碎片是说包的管理模拟文件系统
(func(133)) 2008-03-12 07:03:58
总之这个问题需要统筹考虑~打多少包,不同的包可能出现的更新需求,等等 |
|