z***e 发帖数: 5393 | 1 比如说MMORPG游戏里面的NPC,特别是打怪时候的怪物,是server端初始化的时候就生
成呢,还是说在开始战斗的时候才生成?
比如wow里面的那些老虎/驼鸟什么的,设定某个地区有100只,那么这是游戏server一
开始就初始化了?那设定1000只就初始化1000只?占内存会不会太多啊?
还是说在没战斗之前,所有老虎都指向同一个instance,进入战斗后才生成一个单独的
? |
A***e 发帖数: 1257 | 2 server端全部生成,client端进入视野了再生成
【在 z***e 的大作中提到】 : 比如说MMORPG游戏里面的NPC,特别是打怪时候的怪物,是server端初始化的时候就生 : 成呢,还是说在开始战斗的时候才生成? : 比如wow里面的那些老虎/驼鸟什么的,设定某个地区有100只,那么这是游戏server一 : 开始就初始化了?那设定1000只就初始化1000只?占内存会不会太多啊? : 还是说在没战斗之前,所有老虎都指向同一个instance,进入战斗后才生成一个单独的 : ?
|
p****t 发帖数: 11416 | 3 server端就是记录某坐标有某NPC吧,具体这东西长啥样完全是client端算出来,
实际数据传输量恐怕比文字MUD还小
【在 A***e 的大作中提到】 : server端全部生成,client端进入视野了再生成
|
A***e 发帖数: 1257 | 4 server要存monster的状态
【在 p****t 的大作中提到】 : server端就是记录某坐标有某NPC吧,具体这东西长啥样完全是client端算出来, : 实际数据传输量恐怕比文字MUD还小
|
R***a 发帖数: 41892 | 5 还是比文字MUD大。文字mud你不look object的话,只要传个名字过去就成了。
这个 图形的除了名字之外还有种族性别外貌服饰的ID,也就是look的
东西每次都得传。另外文字mud不用传interactive的接口,所有命令都是服务端
再判断。图形的得把这个npc有啥interactive的动作得传过去
【在 p****t 的大作中提到】 : server端就是记录某坐标有某NPC吧,具体这东西长啥样完全是client端算出来, : 实际数据传输量恐怕比文字MUD还小
|
p****t 发帖数: 11416 | 6 名字服饰这些东西也就是每次你进入一个小地图/房间传一次,有改变再传一次
【在 R***a 的大作中提到】 : 还是比文字MUD大。文字mud你不look object的话,只要传个名字过去就成了。 : 这个 图形的除了名字之外还有种族性别外貌服饰的ID,也就是look的 : 东西每次都得传。另外文字mud不用传interactive的接口,所有命令都是服务端 : 再判断。图形的得把这个npc有啥interactive的动作得传过去
|
R***a 发帖数: 41892 | 7 文字mud更加是这样啊,你进了屋子发呆,不没事敲look,那你跟server啥数据都没有。
chat另说。
【在 p****t 的大作中提到】 : 名字服饰这些东西也就是每次你进入一个小地图/房间传一次,有改变再传一次
|
z***e 发帖数: 5393 | 8 ...
看起来只有你是的确在搞这个,所以晓得我到底在问什么:D
但是如果每个monster都有一个instance(server side),会不会太占内存?我上面说
的那种on demand动态创建mob的方法有什么逻辑问题吗?
【在 A***e 的大作中提到】 : server要存monster的状态
|
A***e 发帖数: 1257 | 9 不会占内存,通常一个server上就几万个monster,每个monster的状态数据不会超过1k
。动态创建效率太低,一般不用,除非有特殊需求
【在 z***e 的大作中提到】 : ... : 看起来只有你是的确在搞这个,所以晓得我到底在问什么:D : 但是如果每个monster都有一个instance(server side),会不会太占内存?我上面说 : 的那种on demand动态创建mob的方法有什么逻辑问题吗?
|
a*****e 发帖数: 1700 | 10 你这说的只是一种方法
传统 MUD 是动态录入房间 obj,没人在里面,就被 GC 掉了,也很方便
尤其是不少 NPC 的状态不需要 persistency,也没有必要放在内存里
各有各的做法,主要还是取决于游戏要求,和采用的系统所具备的功能
传统 LP MUD 有 bytecode,dynamic loading,transparent serialization,还是很
灵活的
当然现代的 MMOG 的后台就更多样了,有 python, java, 甚至 erlang 做的
1k
【在 A***e 的大作中提到】 : 不会占内存,通常一个server上就几万个monster,每个monster的状态数据不会超过1k : 。动态创建效率太低,一般不用,除非有特殊需求
|