以两个小球为例, 小球在双方的控制下互相碰撞什么的。 如何保证两台机器的显示是同步的?碰撞什么的是同步的?
建议你去读读《游戏引擎架构》
我感觉应该不是一个真的同步架构,你可以跟朋友玩玩手机上面的网络对战游戏,例如切西瓜,其实两个人不是真同步的,只是比分是真同步的
1楼 @tinyfool 嗯嗯。我其实在想碰撞之类的问题该如何解决呢。将一台作为主机,所有的碰撞全部发到另一台上,是不是信息量有点大,如果不这么发,又怕碰不准。导致接下来会累积错误。
1楼 @tinyfool 我去看看那个书先。
2楼 @cuijin007 不是真同步就不会有真碰撞了
4楼 @tinyfool 那就是一方模拟碰撞,而另一方仅仅是显示两个东西的位置么?不过照我这样想,传输的信息量有点大啊...
5楼 @cuijin007 你怎么还没听懂我讲的
就是说其实大多数游戏的逻辑是这么设计的
A和B联机,A的机器上,A是真的活动,B是系统模拟的,这时候,在B的机器上B撞上了一个砖头的话,那么,不用传输B的位置信息,只需要告诉A,B撞上了障碍物、扣了100分,这时候,A的机器上的假B,就开始去故意撞一个砖头了。B在B的机器上撞上了A也是同理处理。明白了么?
6楼 @tinyfool 恩恩。这个我明白...但是,我们这边有要求必须同步...是个展示用的东西,两边的画面在视觉范围内不能看出来有太大的差异。
有点类似于两个人拿着鼓风机对着一地的乒乓球乱吹的这种视觉效果,而且随着时间推移,可能会有更多的乒乓球加进来。是不是如果这样的话,我就得把每个乒乓球的位置通过网络发过去?
一开始可能我没表述清楚使用环境...
7楼 @cuijin007 你为啥两边一定要同步?游戏性要求有那么高么?
网络延迟有多大,是不是有足够大的影响呢?如果实时传递速度数据。 如果有延迟,能不能计算一个提前量,抵消延迟的影响?
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル