游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 游侠无极限

为什么处理游戏循环一定要放在Windows消息循环里?

[复制链接]

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2005-7-22 12:15:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

又错了:
不过对目前大家写的性能要求不高的程序,对于现在的硬件来说。
怎么做都可以^^

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2005-7-22 13:38:00 | 显示全部楼层

Re: 为什么处理游戏循环一定要放在Windows消息循环里?

不错的想法,主线程做画面更新。WORK线程做游戏逻辑。
在双CPU中更能发挥双其的效能。也是通常所说的功能与介面分离。
所以在一般的程序设计中,这样做是非常好的


你自己去用吧,反正我是不用

莫名其妙的死机死得你自己都难看,即使是Windows2000比较好的系统也会蓝屏

DX在操作显卡页面的时候,你最好还是别去开一个什么工作线程去访问它

我的技术比较烂。所以目前我还是搞点简单的

2

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2005-7-22 15:33:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

现在有CPU+GPU,为什么要选择双(多)CPU呢
我看不出来它的优点在哪里,硬件上价格高了不少,编程还很复杂

我们只是做游戏不是作科学计算
现在GPU做通用计算也很方便,只要写个好的负载均衡管理器,决定某些特殊运算是运行在CPU还是运行在GPU上,我们可以直接利用GPU的并行执行能力,而根本不用管什么线程同步

多CPU并行计算是未来趋势,但现在就上马根本没有必要

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2005-7-22 16:52:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

对于楼上的关点,我并不完全赞同。
如果是初学者的话这些都不是问题。
现在双内核的CPU在市面上已经能够买到了。
后面CPU的频率也可能不会象以前那样增长得太高。
不管你是否喜欢,要炸干机器性能必须使用类似于多线程的技术。另外,我看GPU也差不
多要搞类似CPU的多执行单元了吧。

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2005-7-22 16:52:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

啊哈,我又想到一条为什么游戏中只要一个线程的理由了。
在一般的游戏中,游戏是以帧为基本单位。而游戏中的每帧的画面都大都应该在游戏逻辑运行完一次后才能确认的,所以在其间使用多线程的理由弱化了。

我认为LZ能够问这个问题估计还不会碰到性能瓶颈。
当你碰到的时候你也不会再问这个问题。

最后,我再强调一下。多线程不是在任何情况下都能起到加速的作用。相反,它本身的实现就会消耗一定CPU资源。

14

主题

118

帖子

118

积分

注册会员

Rank: 2

积分
118
发表于 2005-7-22 16:56:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

另外,如果是初学者。能快速做出一个完整的作品非常重要。
个人血与泪的经验。

3

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2005-7-22 19:02:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

拜托大家看清楚,我说的也应该很清楚了,这里就2个线程,一个窗口的,一个游戏的,对全屏游戏来说,就相当于单线程了,但是对于窗口模式运行的就不同,一个窗口模式运行的游戏,如果使用的是完全的单线程,那么很显然,在进行窗口调整,拖动的时候,游戏的渲染部分会被搁置,因为消息循环忙于处理窗口消息,基本没有时间空闲!我要说的就是这个问题,我是一个喜欢窗口模式游戏的人!(前几天试验一个DDraw的全屏模式游戏例子程序,程序居然死响,在按C S D无效的状态下,无奈只好按Reset)

1

主题

130

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2005-7-22 20:11:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

没问题的,线程处理游戏数据,像在网游里面,有很多线程在处理连接池和游戏中的数据,不过线程调试的确麻烦一点,特别在线程处理GDI,数据库接口时

5

主题

51

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2005-7-23 14:02:00 | 显示全部楼层

Re:为什么处理游戏循环一定要放在Windows消息循环里?

Re:为什么处理游戏循环一定要放在Windows消息循环里?

另外,如果是初学者。能快速做出一个完整的作品非常重要。
个人血与泪的经验。

silekey,真是英雄所见略同,猩猩相吸呀!!!如果我是曹操你一定是刘备。。。

2

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
发表于 2005-7-25 09:50:00 | 显示全部楼层

Re: Re:为什么处理游戏循环一定要放在Windows消息循环里?

silekey: Re:为什么处理游戏循环一定要放在Windows消息循环里?

对于楼上的关点,我并不完全赞同。
如果是初学者的话这些都不是问题。
现在双内核的CPU在市面上已经能够买...


有一点应该注意,GPU在现在几乎“每台”机器都有,但多CPU的话用户则要配主板和加CPU,也许开发者没有问题(我们公司用的都是双CPU的机器),但我想不到让个人用户去买双CPU配置的原因,我宁愿把钱用来买块好显卡

并且编程方面还是需要注意许多问题,而CPU+GPU的并行基本上你不用干涉就可以获得很大的性能提高,再稍付出不用太多的精力,就可以把性能提到更高,这对开发者来说有很大的吸引力

多CPU是发展趋势,但不是现在的应用主流,你可以研究它的技术以就会未来的变化,但商业活动就是商业活动,现阶段能赚到钱的才是好东西,在一个东西还没有大规模应用的需求时就贸然上马,估计结局会比较郁闷
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-26 14:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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