游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3044|回复: 7

如何让客户端渲染服务器端的物体?

[复制链接]

75

主题

102

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2008-8-22 10:40:00 | 显示全部楼层 |阅读模式
我要把游戏的所有场景和逻辑部分都放在服务器段,客户端只负责给服务器端发命令,让人物做各种动作,这样就可以很快捷的做到所有的客户端画面同步,命令可以很方便的发出去,但怎样才能让服务器端的场景渲染到客户端上呢???

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2008-8-22 12:44:00 | 显示全部楼层

Re:如何让客户端渲染服务器端的物体?

什么叫“我要把游戏的所有场景放在服务器端”呢?
在服务端计算?还是在服务端渲染?
呃,?

75

主题

102

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2008-8-22 13:52:00 | 显示全部楼层

Re: Re:如何让客户端渲染服务器端的物体?

snhun: Re:如何让客户端渲染服务器端的物体?

什么叫“我要把游戏的所有场景放在服务器端”呢?
在服务端计算?还是在服务端渲染?
呃,?



不好意思,新手,我的意思是说,我的主要目的是想做到服务器与和客户端完全同步,因为如果我把场景放在客户端的话,我的场景中会有物体被删除,或被编辑可是这样的活,这是如果另一台客户端刚刚进来,那么他场景中的物体是初始的设置,怎样让后进来的客户端能得到当前场景状态呢?

打个比方    一台服务器,a客户端运行,在场景当中建立一个box,这是b客户端才进来,如何才能让b客户端不通过创建直接得到与a客户端当前场景当中的这个box呢?也就是完全得到a的当前状态?

1

主题

7

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2008-8-22 15:34:00 | 显示全部楼层

Re: 如何让客户端渲染服务器端的物体?

a删除box的时候发消息给服务器
然后服务器转发给各个客户端

然后服务器上维护一个和场景创建销毁有关系的队列
b进来的时候服务器发给b这个队列
然后b根据这个队列进行初始化后的调整

31

主题

249

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2008-8-24 10:48:00 | 显示全部楼层

Re:如何让客户端渲染服务器端的物体?

这样的设计在目前的硬件条件下不可行

0

主题

769

帖子

1052

积分

金牌会员

Rank: 6Rank: 6

积分
1052
发表于 2008-8-24 15:50:00 | 显示全部楼层

Re:如何让客户端渲染服务器端的物体?

应该是把渲染的物体的资源全都放客户端,服务端不该做这些什么动作的处理,最多就是给个ID一样的东西叫 客户端执行这个ID对应的动作,要是全部逻辑都做服务端由服务端执行然后返回结果会挂的
带宽瓶径很是郁闷...

75

主题

102

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2008-8-27 10:21:00 | 显示全部楼层

Re: Re: 如何让客户端渲染服务器端的物体?

tiny2huge: Re: 如何让客户端渲染服务器端的物体?

a删除box的时候发消息给服务器
然后服务器转发给各个客户端

然后服务器上维护一个和场景创建销毁有关系的队列
b进来的时候服务器发给b这个队列
然后b根据这个队列进行初始化后的调整



这个办法我也想过,不过我的操作如果几万步呢,还有undo redo这样的操作,在加上我还有些界面操作,这样下来,我要在服务器端维护非常庞大的命令或消息队列,我想即使实现了,也会非常不稳定。
玩过很多游戏,玩家a先在场景当中吧汽车撞坏了,或者杀了许多敌人,地上有很多尸体,玩家b这是进来就会看到玩家a在场景当中已经破坏的这些结果,这是怎样做到呢?

75

主题

102

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2008-8-27 10:29:00 | 显示全部楼层

Re: Re:如何让客户端渲染服务器端的物体?

无名剑: Re:如何让客户端渲染服务器端的物体?

应该是把渲染的物体的资源全都放客户端,服务端不该做这些什么动作的处理,最多就是给个ID一样的东西叫 ...


我们现在的服务器结构就是这样的,不过无法实现我想要的效果,我们现在是多人操作,但如果中途突然有人挂掉,再重新进入服务器就无法更新到和其他人一样的操作状态,比如其他人已经把场景当中的某个物体进行编辑。
难道只能让服务器维护一个命令序列这一个办法么?那如果多人操作,服务器就要记住所有的人的每一部操作。。。这样的开销也太大了。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 13:27

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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