游戏开发论坛

 找回密码
 立即注册
搜索
楼主: tarkey

游戏结构。。

[复制链接]

10

主题

33

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2004-6-14 12:58:00 | 显示全部楼层

Re:游戏结构。。

楼主的想法非常好, 这种结构设计游戏不失为一种好办法, 不过各个模块要做到只要加一个模块就可以用的话, 恐怕没有那么简单, 但是这种思路是对的. 能否和楼主交个朋友. 交流交流, 探讨探讨.

我得msn lythm780522@hotmail.com

8

主题

16

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2004-6-19 04:47:00 | 显示全部楼层

Re:游戏结构。。

这种东西,第一个做的人会很累的.完善了以后会不错吧?
过去是封装,现在是模板化.衷心关注楼主的开发成果,呵呵.

18

主题

122

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2004-6-19 11:02:00 | 显示全部楼层

Re:游戏结构。。

还行

1

主题

42

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2004-7-21 22:46:00 | 显示全部楼层

Re: 游戏结构。。

状态机里保存的临时数据如npc-move是某个特定的npc移动产生还是所有的npc移动都会产生npc-move?
内存池的大小为512个node,如果npc-move是某个特定的npc移动产生,那么就会有象npc-move-1。。。npc-move-n这样的状态,512个node显然是不够的,在网游服务器端的话至少要50000个,而不管状态有没有改变,每个要处理该状态的模块都会在状态机中查询,这样的话还不如在处理模块中保存状态数据的指针或者采用消息投递的模式效率更高。
如果是所有的npc都产生npc-move,那么如果在ProcessModule(处理npc-move消息的模块)之前有2个npc产生npc-move消息,那么先产生的npc-move在未被处理只前就被状态机丢弃了
int CFiniteStateMachine::Set(const char *varName, void *varvalue)
{
    if(m_hasher.Find(varName) != NULL)
    {
        m_hasher.Remove(varName);<-----如果已经有npc-move则先remove在加入新数据
        return m_hasher.Enter(varName, varvalue);
    }
    return m_hasher.Enter(varName, varvalue);
}

3

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2004-9-26 15:07:00 | 显示全部楼层

Re:游戏结构。。

受益多多!

3

主题

32

帖子

38

积分

注册会员

Rank: 2

积分
38
发表于 2005-1-18 19:11:00 | 显示全部楼层

Re:游戏结构。。

呵呵,没有注释难懂...不过大致还是明白了楼主的意思,把状态先存起来,然后在渲染的时候才取出来,分开处理,但是还是不知道楼主所说的CEngine检查m_updateFrequency,每个周期就让模块刷新一次如何实现,能否给出游戏主循环?

8

主题

111

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2005-1-19 10:27:00 | 显示全部楼层

Re:游戏结构。。

FSM应该叫有限状态机啊?怎么搂主叫它无限状态机
看搂主写的fsm就是一个自定义变量池嘛,可以叫FSM吗?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2005-1-19 11:00:00 | 显示全部楼层

Re:游戏结构。。

无限状态机可以基于FSM实现。
你要把它看成是一个变量池,它就是一个变量池,就好象你看到牙签说这不就是根牙签吗,但是有人却可以拿牙签杀人。。

8

主题

111

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2005-1-19 11:09:00 | 显示全部楼层

Re:游戏结构。。

功能与类名不符啊,尤其作为底层代码.如果真的要写一个FSM,(或者说是要写一个真的FSM)你起什么名字?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
 楼主| 发表于 2005-1-19 11:26:00 | 显示全部楼层

Re:游戏结构。。

ISM和FSM的区别只是储存空间的问题,相对于某个项目来说,一个很大的有限的空间也能看成是一个无限空间。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-20 03:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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