游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2426|回复: 4

问关于游戏美术资源打包和更新

[复制链接]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-5-6 02:33:00 | 显示全部楼层 |阅读模式
新人,对与这方面一直不太理解,可以看到很有游戏下来都带了很多几十M的dat文件
知道这个是美术资源,但是这些资源是怎么打包的呢?有没有什么经典的库和算法?还是一个公司一个做法

另外版本更新的时候,这些资源dat文件是如何更新的?是直接把里面某些数据段覆盖掉吗?

赐教 [em2] [em2]

1

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2009-5-6 02:34:00 | 显示全部楼层

Re: 问关于游戏美术资源打包和更新

突然发现还有一个问题忘了问,客户端版本一般怎么比对?
一般是保存一个整体的版本号?还是挨个DLL比对?

6

主题

258

帖子

269

积分

中级会员

Rank: 3Rank: 3

积分
269
发表于 2009-5-8 16:54:00 | 显示全部楼层

Re:问关于游戏美术资源打包和更新

可参考软件配置管理相关文章

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-5-8 19:35:00 | 显示全部楼层

Re:问关于游戏美术资源打包和更新

基本上每个公司的方法都不太一样
都是先基本的技术,比如压缩,文件读写,流读取等等
我记得sim city的资源就完全没有打包
作为经典案例建议你google一下mpq的格式定义

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2009-5-8 22:46:00 | 显示全部楼层

Re:问关于游戏美术资源打包和更新

其实不复杂,和JIT即时编译机制有相通之处,就是一个创建时间的比较

首先要明白:客户端的文件如果是最新的,那么创建时间肯定晚于服务器上文件的创建时间,反之客户端的文件就是旧的需要更新了,但是为了提高更新效率,并不是一个个和服务器上的文件做对比

而是建立一个文件列表索引文件,里面记录服务器上的“最新版”所有文件的创建时间,首先更新本地的索引文件,如果更新了,说明服务器上的文件列表有更新,然后和本地做对比,整理一份需要更新或新建的文件列表清单,然后主动连接服务器进行下载,全部完成以后,在索引文件进行记录,更新完一个就记录一个ok,这样方便“断点续传”,所有都更新完成,全部是ok了,就证明本地都是最新的了,不过这里面有个小问题是值得注意的,本地文件的创建时间不能是本地计算机的时间,应该下载完以后,修改成服务器的当前时间,(比如如果本地时间设置到了一年以前)那本地的列表可能永远都是旧的,每次都要更新,这是可怕的。

通过这个文件列表索引,能大大提高更新效率,而且也能做好版本的控制。

另外,更新服务器一般和游戏服务器分离,大致思路就是这样

打包和网络传输方面,自己封装一套序列化和反序列化的IO流协议就可以了,游戏里面这些都必须是最基本的功能了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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