游戏开发论坛

 找回密码
 立即注册
搜索
查看: 28504|回复: 92

宣三国英雄传提高速度的办法

[复制链接]

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2005-9-3 10:02:00 | 显示全部楼层 |阅读模式
宣三国游戏里BMP图片用了70M,背景音乐用MP3,BMP和MP3将大量消耗内存,刚有网友测试,宣三国在WIN98下不能运行,因为WIN98和2000不同,是没有自动分配那么大的虚拟内存

我设计游戏的时候凡是角色画面的颜色没有超过256色的我会保存为GIF格式,
举例:新坦克90那个小游戏我用GIF文件做地图,每张地图不超过70K,如果用BMP每张地图的文件大于800K,此类BMP用法如果用于大游戏将大大消耗内存,宣三国目前在载入图片上要消耗大量的时间,我看过宣三国的图片里的NPC,颜色都不超过256色,所以如果保存成GIF格式,游戏将从现在的总容量120M减少到50M以下。大家知不知道KOEI三国3,4,5都是16色的,不相信去截图。
我目前设计游戏的方法图片也是没超过256色的就用GIF,比如现在做的英雄坦克手驾驶室是用BMP16位色,但用于透明的那张就是GIF的,想知道文件是多大吗?是3K也不到,如果用BMP是600K, 600K/3K=200倍。
爆炸画面也是用GIF文件,用GIF做画面容量差不多减少10倍或更多。

宣三国如果将NPC改用GIF文件处理游戏导入速度会提高5倍以上,而且不影响游戏质量,整体效率提高了,其实现在的很多游戏里用的角色颜色都没超过256色,我早期的失落的玉玺其实是256的,而且是同一个调色板,而VB是可以用无数个256色的调色板的,所以不存在颜色失真问题。或者作者的图片资源是网上找的,其实用PHOTOSHOP7.0以上保存成GIF格式是举手之劳。

还有就是回贴里我说的MP3问题,就是有人说MP3不占资源,游戏里播放MP3是要解压的,非常占用资源,改用MIDI游戏整体速度将提高1/3。

我上传一张我保存的宣三国的图片,当然是GIF的,才107K,但原作者游戏里的BMP文件是811K,整整多了8倍。

以上只是我和一些网友的的意见,不可否认,宣三国游戏的程序设计是很成功的,但有些处理方法有待改进。
sf_20059310138.gif

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-9-3 10:18:00 | 显示全部楼层

Re: 宣三国英雄传提高速度的办法

接:
看写这张图的文件大小?是26K,因为它是GIF格式的,
如果用BMP保存是222K,别和我讨论现在电脑速度快内存大容量不是问题等问题,我现在想和大家讨论游戏开发的效率和精简问题,要是我全用BMP那我那些1M的小游戏文件容量就要翻数倍啦,再次证明了宣三国图片容量可以精简5倍-10倍以上的事实。
sf_200593101743.gif

73

主题

612

帖子

618

积分

高级会员

Rank: 4

积分
618
发表于 2005-9-3 10:42:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

首先感谢游戏之家的建议。
我说一下我的想法
因为dx7只支持bmp图片,所以无论你采用的是读入图片*.gif,*.jpg或api的bit绘图,在传递到dx7的表面时都是以*.bmp的形式存在。所以这样是不能降低内存的使用。
其实我已经找到方法只不过现在还没有使用。采用动态增减内存中的图片,不使用或使用频率过低的将会被释放,新增的将会被即时读入
关于mp3,的确在每次读入新的音乐时有时间停顿,用midi的效果不如mp3强,想提高整体游戏速度的可能性不大,但可以让游戏能够稳定的运行,不至于有停顿。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-9-3 10:58:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

我也用DX7,但我DX7和API混用,所以可以用GIF和其它图像格式。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-9-3 12:56:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

对了,可以保存成8位BMP图像,也是256色的。

187

主题

600

帖子

606

积分

高级会员

Rank: 4

积分
606
QQ
发表于 2005-9-3 13:58:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

不要争了!用我的引擎吧!自己写的压缩,自己绘制,不用DX的那个blt
不知作者修改代码嵌入我的引擎是否方便?我也算是坐个广告吧,目前偶也在开发中
对了,动态加载资源才是最有效的解决办法 这是肯定的,至于mp3的播放,应该问题不大吧
一般都是另外开一个线程播放的,所有对主循环不会造成大的影响的

如果大侠有意,可以一起商谈一下QQ:162165298

73

主题

612

帖子

618

积分

高级会员

Rank: 4

积分
618
发表于 2005-9-3 16:29:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

不知道boywhp的引擎能否解决通过调色板改变已改变士兵颜色的问题或有类似方法?

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
 楼主| 发表于 2005-9-3 18:51:00 | 显示全部楼层

Re: Re:宣三国英雄传提高速度的办法

yinxiaodan: Re:宣三国英雄传提高速度的办法

不知道boywhp的引擎能否解决通过调色板改变已改变士兵颜色的问题或有类似方法?


哦!那你这种做程序的方法有问题,应当说是DX7的限制,
我用WINDOWS API没有调色板问题,虽然是多个256色的
调色板但在真彩色下没变色,因为我用了真彩显示模式。

我早期的256色游戏就没办法处理多个调色板,我就用一个调色版,
进入游戏的时候先读调色板文件,其实这属于美工的工作,
你可以用PHOTOSHOP把你的NPC全复制在一张上,统一调板后再裁成
你要的小图就可以了。

32

主题

1583

帖子

1589

积分

金牌会员

Rank: 6Rank: 6

积分
1589
发表于 2005-9-3 20:27:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

实在不好意思,但是楼主说的显然严重不符合实际。

首先,Dx7不支持GIF文件,要改用GIF,必须使用API,效率反而更低。

我不知道“宣三国如果将NPC改用GIF文件处理游戏导入速度会提高5倍以上”这个说法是怎么得出的,但是就算如此也没有人会计较那么点读取速度。
(我曾经将我的游戏文件格式更改过以测试速度,结果差不多,好像用GIF还更慢点)
另外傻子都知道GIF文件小,所以不用你提醒。

其次关于那个什么“占用内存”的问题,用GIF什么的文件根本就没有任何帮助,Dx的Surface只要载入图片后大小就确定了,和你用什么方式载入以及载入的文件格式没有任何关系。
一个Surface占用的内存大小就是 当前颜色深度*图像的像素数,其实就连你的BitBlt使用的设备也是如此,不要以为使用GIF或JPG就不占内存了。

关于MP3的说法就更可笑了,说什么“游戏里播放MP3是要解压的,非常占用资源”,难道用MIDI就不占资源吗?你知道MIDI的工作原理吗?难道处理那些演奏指令会比解MP3压缩省资源?按这种说法,那BMP、WAV才是真正不需要解压缩的,你怎么不提了呢?
“改用MIDI游戏整体速度将提高1/3。”——和上面的所谓推断一样,我不清楚这到底是怎么推算出来的,但是我相信我的测试结果,我更相信大公司的结论(有几个大公司在商业游戏上连续使用MIDI?)。


对不起说话可能生硬了些,请见谅,但是请您下次发帖时尽量准确点。

187

主题

600

帖子

606

积分

高级会员

Rank: 4

积分
606
QQ
发表于 2005-9-3 21:32:00 | 显示全部楼层

Re:宣三国英雄传提高速度的办法

引擎支持动态修改 图片的颜色
支持透明
支持无限分层
支持屏幕选取
支持动态光影
支持模糊效果
支持黑白处理
支持混合效果
支持任务调度
。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-28 03:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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