作者chenglap (无想流流星拳)
看板GameDesign
标题Re: [请益] 整个游戏设计结构
时间Wed Dec 26 23:27:23 2012
※ 引述《yoll522 (522)》之铭言:
: 我游戏的主回圈大概如下
: while(quit!=ture){
我不懂 SDL.
但我建议你用 timer 回圈, 而不要用 while loop, 因为这东西
代表将你的所有系统机能吸尽.
这会产生两个坏处:
1. 在不同的电脑上, 效能会不一样
2. 一 frame 里的动作没必要地精细
後者的问题就是, 你一秒到底检查过多少次输入, 以及做过多少
次输出? 我认为你是过多了. 人类来说, 25 fps 已经去到很流
畅的效果, 也就是说, 一秒只需要执行 25 次. 而 60 fps 再上
去就没有意义了.
从你写的看, 我怀疑你执行了超过 60 次, 那就是效能上的浪费
. 另外更新显示(输入输出)和游戏逻辑运作, 应该使用不同的回
圈. 尽可能将游戏逻辑和系统逻辑分离, 方便移植.
: 当然也有可能是我那些函式的内容设计的不够好才会造成延迟 @@
: 不好意思麻烦各位高手给点意见,谢谢
--
战略游戏版 SLG
(C)lass > 8 战略高手 > 11 GameTopics > 28 SLG
绝望人民共和国官方网站...
http://chinesepeking.wordpress.com/
--
1F:→ VVll:用while当然也是可以 但必须加个sleep避免 系统资源 被绑架 12/26 23:49
2F:推 yoll522:请问什麽是timer loop? 12/27 00:30
3F:→ yoll522:感谢大大的提醒,难怪我之前再用执行绪时如果while 12/27 00:30
4F:→ yoll522:没有delay一下,程式一直行瞬间当掉,大概就是因为 12/27 00:31
5F:→ yoll522:我执行绪的while把所有效能全部吃光了 12/27 00:31
6F:→ yoll522:另外你说的游戏逻辑跟系统逻辑我之前也没想到,感谢你 12/27 00:33
7F:→ yoll522:等之後有时间的话我想再重写一次整个游戏架构,不然好烂 12/27 00:34
8F:推 fasthall:可参考看看MVC pattern 找些开源的游戏来看看source code 12/27 01:34
9F:推 juicefish:25fps是指人眼普遍的最高视觉频率 在指令键简单的可以 12/27 03:16
10F:→ juicefish:60fps甚至120fps那种比较是格斗或动作游戏比较需要用到 12/27 03:16
11F:→ juicefish:指令输入的顺畅感会有差异 12/27 03:17
12F:→ yoll522:了解了,感谢你们的帮忙 12/27 07:39
13F:推 BSpowerx:就算用delta time去控制速度,也要设一个sleep把fps控制 12/27 09:29
14F:→ BSpowerx:在60,毕竟超过60基本上没什麽意义 12/27 09:29
15F:推 yoll522:原来如此,我那时候以为既然有delta time的话就不需要限制 12/27 09:43
16F:→ yoll522:fps了,结果却造成系统浪费效能,感谢你们的帮忙与提醒 12/27 09:44
17F:推 yoll522:之前没限制的时候我fps时cpu跑25,限制fps60後cpu是2 12/27 09:47
18F:→ yoll522:之前没限制fps的时候我cpu是25『上一行打错』 12/27 09:47
19F:推 LayerZ:fps要看游戏说,对FPS这种类游戏100fps跟120fps其实还是有 12/27 10:07
20F:→ LayerZ:差别..会影响到一瞬间甩枪的精准度 12/27 10:07
21F:→ LayerZ:我甚至觉得只要能自由调整视角的都要维持60..不过这好像比 12/27 10:09
22F:→ LayerZ:较难办到 如果视角固定,又没有太多瞬间的动作 30fps还ok 12/27 10:10
23F:→ azureblaze:视角会动的低於45我就分得出来 12/27 10:18
24F:→ azureblaze:高於60一般没意义,因为显示器通常是60Hz 12/27 10:18
25F:→ LayerZ:给楼上,我以前也是这样觉得,现在似乎不只了.. 12/27 10:20
26F:→ VVll:玩第一人称射击 FPS 30跟60就很明显 12/27 21:32
实话说, 我一向都是用 10 fps.
※ 编辑: chenglap 来自: 61.18.51.146 (12/27 21:34)
27F:推 Bencrie:开 vsync 就会自己锁 fps 了,省效能又可以消除 tearing 12/28 00:47