幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 5822|回复: 14

[讨论]关于游戏循环的时间的问题的疑问

[复制链接]

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2006-12-29 17:36:40 | 显示全部楼层 |阅读模式
一般来说游戏的刷新率是在每秒30帧以上。也就是说,一次游戏循环只有1/30秒的时间。
而游戏的流程处理一般都是放在游戏循环里面,至少像hge等游戏引擎都是这么做的。
不少游戏教程里面也是这么教的。
但是,如果把游戏的AI处理做得复杂了,像光荣的《三国志》之类的大型slg,AI计算通常都是非常复杂,且消耗时间的。
1/30秒的时间来不及计算出结果,这个时候怎么办?
え~え~お!!!
回复

使用道具 举报

125

主题

288

帖子

1387

积分

⑥精研

积分
1387
发表于 2006-12-29 18:14:57 | 显示全部楼层
分块运算,或者多线程
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2006-12-29 18:38:43 | 显示全部楼层
恩,我想到的是多线程或c/s构架。
感觉多线程比较好点,特别是以后的cpu都是多核的,有优势。但是在线程同步上,不知道该如何处理。
做成c/s构架,有利于把单机游戏变成联机游戏。但是在消耗资源上,无疑会多了很多。

最后,请问你说的“分块运算”,具体是怎么来解决问题的?能说明一下么?
え~え~お!!!
回复 支持 反对

使用道具 举报

125

主题

288

帖子

1387

积分

⑥精研

积分
1387
发表于 2006-12-29 21:20:44 | 显示全部楼层
线程同步的功能通常由操作系统或应用程序框架提供,简单的同步(单向信号)不需要原子操作,你可以用自定义变量来完成这种任务(比方说,主线程读,子线程写)。
C/S构架?怎么会想到那个地方去的,这已经是框架层、而不是实现层上的问题了。
分块运算就是将作业分为多个小块,每次完成一个小块后计算时间花费,如果占用了过多的时间就转去执行另外一个作业,这样在时间片的划分方面可以不依赖于操作系统的实现。
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2006-12-29 22:32:10 | 显示全部楼层
谢谢。原来是这样的分步来做。
不过总感觉这个办法很费劲的样子,特别是要计算时间,总有一种在做不必要工作的错觉。

还是用线程的办法吧。
又仔细想了一下,觉得就slg游戏ai这类计算来说,线程即使不同步似乎也没有什么关系。
用多个线程共享一段内存的办法,似乎比较省事。

游戏用c/s结构来做,似乎也能解决这个问题,所以就想到了。
我的陋习,为了目的不择手段。  [s:7]
え~え~お!!!
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2006-12-30 22:01:54 | 显示全部楼层
多线程看起来美,但是不实用……偶始终坚持除非在完成以后效率不佳的情况下,经过分析以后再去用多线程!!

最近工作不顺线程死锁问题已经头大了…………谁让偶开8个线程都管不过来了 [s:8]  [s:8]  [s:8]

AVC对这方面知道的多,可能有其自身的经验……偶反正绝对不赞成先用多线程开发……应该先用单线程才是……
至于CS……偶不懂就不发表意见了- -
Style-C
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2006-12-30 22:39:19 | 显示全部楼层
按说两个线程就够用了,只把游戏的ai单独算。
目前想做游戏是一个3d a.rpg,60帧是必要的。
ai也比较复杂,想实现一个人工智能对话,估计有50多个npc,可能一次要计算几万到几十万组数据,一个游戏循环多半放不下。
cs构架的,我看到有的网游,好像是天堂2吧,为控制npc单独做了一个服务器程序。
所以我就瞎想,能不能使用这样的设计办法。[s:2]
え~え~お!!!
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2006-12-31 20:18:15 | 显示全部楼层
完全可以的……只是经验要足够就是~ [s:4]
Style-C
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
 楼主| 发表于 2006-12-31 21:37:26 | 显示全部楼层
l2,ro,wow都有开源的服务器模拟器,照着猫画老虎就行了。
反正是自己做了玩,失败了也不怕[s:1]
え~え~お!!!
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-1-4 20:28:16 | 显示全部楼层
某C也是考慮多線程的說,
同步方面問題不會太大
而且對某C說線程結構看起來不錯
但是C/S是什麼?有請大大指教

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-20 13:21 , Processed in 0.030875 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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