OC

Knowledge OS
登录 注册
全部话题 移民 创业 iOS Mac Objective-C Swift Android 招聘 求职

如果用xmpp做双人对战游戏,该怎么做?

cuijin007
cuijin007 发布于 2014年03月12日
无人欣赏。

以两个小球为例, 小球在双方的控制下互相碰撞什么的。 如何保证两台机器的显示是同步的?碰撞什么的是同步的?

共18条回复
楼长 ·
tinyfool 回复于 2014年03月12日

建议你去读读《游戏引擎架构

我感觉应该不是一个真的同步架构,你可以跟朋友玩玩手机上面的网络对战游戏,例如切西瓜,其实两个人不是真同步的,只是比分是真同步的

2楼 ·
cuijin007 回复于 2014年03月12日

1楼 @tinyfool 嗯嗯。我其实在想碰撞之类的问题该如何解决呢。将一台作为主机,所有的碰撞全部发到另一台上,是不是信息量有点大,如果不这么发,又怕碰不准。导致接下来会累积错误。

3楼 ·
cuijin007 回复于 2014年03月12日

1楼 @tinyfool 我去看看那个书先。

4楼 ·
tinyfool 回复于 2014年03月12日

2楼 @cuijin007 不是真同步就不会有真碰撞了

5楼 ·
cuijin007 回复于 2014年03月12日

4楼 @tinyfool 那就是一方模拟碰撞,而另一方仅仅是显示两个东西的位置么?不过照我这样想,传输的信息量有点大啊...

6楼 ·
tinyfool 回复于 2014年03月12日

5楼 @cuijin007 你怎么还没听懂我讲的

就是说其实大多数游戏的逻辑是这么设计的

A和B联机,A的机器上,A是真的活动,B是系统模拟的,这时候,在B的机器上B撞上了一个砖头的话,那么,不用传输B的位置信息,只需要告诉A,B撞上了障碍物、扣了100分,这时候,A的机器上的假B,就开始去故意撞一个砖头了。B在B的机器上撞上了A也是同理处理。明白了么?

7楼 ·
cuijin007 回复于 2014年03月12日

6楼 @tinyfool 恩恩。这个我明白...但是,我们这边有要求必须同步...是个展示用的东西,两边的画面在视觉范围内不能看出来有太大的差异。

有点类似于两个人拿着鼓风机对着一地的乒乓球乱吹的这种视觉效果,而且随着时间推移,可能会有更多的乒乓球加进来。是不是如果这样的话,我就得把每个乒乓球的位置通过网络发过去?

8楼 ·
cuijin007 回复于 2014年03月12日

一开始可能我没表述清楚使用环境...

9楼 ·
tinyfool 回复于 2014年03月12日

7楼 @cuijin007 你为啥两边一定要同步?游戏性要求有那么高么?

10楼 ·
尼克徐 回复于 2014年03月12日

网络延迟有多大,是不是有足够大的影响呢?如果实时传递速度数据。
如果有延迟,能不能计算一个提前量,抵消延迟的影响?

本帖有18个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。
登录 或者 注册
[顶 楼]
|
|
[底 楼]
|
|
[首 页]

AltStyle によって変換されたページ (->オリジナル) /