游戏开发论坛

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: tonykee

上午写了两个类,实现了自定义资源文件,数据流的存取

[复制链接]

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 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
总之这个问题需要统筹考虑~打多少包,不同的包可能出现的更新需求,等等

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-3-14 09:04:00 | 显示全部楼层

Re:上午写了两个类,实现了自定义资源文件,数据流的存

我比较倾向于在开发的前期不用打包,直接读取单独的文件。前期设计和实现很多细节没有确定,数据组织变化频繁,这个时期打包有害无益。
中后期设计目标明确,数据组织变化频率开始变得缓慢的时候,可以考虑打包了。不要把所有资源都放入一个资源包,要按照是否一起更新的判断来划分包,这样可以大幅度减少开发过程中打包,更新包的开销。
  资源包不要每个人在机器上都保存一份,那是很容易造成混乱的。也不可能放在vss之类的源代码管理工具上,最好是放在一个内网服务器上,在程序员的机器上映射为一个网络磁盘驱动器,由一个专人负责资源的更新和维护,所有程序开发人员把程序运行的数据资源的目录设在这个网络磁盘驱动器上,这样就保证了数据的完整性。
虽然有过担心服务器I/O负载过重,但是事实证明,只要程序的I/O设计合理,以一般服务器的配置完全能承受同时10~20个人的同时I/o请求。而且大部分时候程序员是在设计和编码,同时调试程序的可能很少。所以这样做完全是实用的。

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2008-3-14 10:35:00 | 显示全部楼层

Re:上午写了两个类,实现了自定义资源文件,数据流的存

楼上的说的很有道理,我现在想写出接口,可以选择从包或路径里面直接读数据,而不用改程序的代码,写些接口就可以完成了,很快就要做完了,谢谢各位
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-20 09:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表