英文原文:
https://gafferongames.com/post/introduction_to_networked_physics/
简介
嗨,我是Glenn Fiedler,欢迎来到《网络物理学》的第一篇文章。
在这个系列的文章中,我们将以三种不同的方式对物理模拟进行联网:确定性的锁步、快照插值和状态同步。
但在我们开始之前,让我们花一些时间探索我们将在本系列文章中联网的物理模拟:
the
在这里,我在开源物理引擎 ODE 中设置了一个简单的立方体模拟。玩家通过在其质心处施加力来移动。物理模拟采用这种线性运动并计算立方体与地面碰撞时的摩擦力,从而引发滚动和翻滚运动。
这就是为什么我选择了一个立方体而不是球体。我想要这种复杂的、不可预测的运动,因为一般来说,刚体会根据其形状以有趣的方式运动。
一个互动的世界
当玩家与其他物理模拟物体互动时,网络物理学变得很有趣,特别是当这些物体推回并影响玩家的运动时。
所以让我们在模拟中添加更多的立方体:
the
当玩家与立方体互动时,它会变成红色。当那个立方体静止时,它会变回灰色(非交互)。
虽然滚动并与其他立方体互动很酷,但我真正想要的是一种推动大量立方体的方法。我想出的是:
the
正如你所看到的,相互作用并不只是直接的。被玩家推来推去的红色方块也会把它们接触的其他方块变成红色。这样一来,相互作用的范围就扩大到了所有受影响的物体。
一个复杂的案例
我还希望在玩家和非玩家方块之间有一个非常复杂的耦合运动,这样他们就成为一个系统:一组由约束条件连接起来的刚性体。
为了实现这一点,我想如果玩家可以滚来滚去,创造出一个立方体的球,就像我最喜欢的游戏之一Katamari Damacy那样,那就很酷。
the
距离玩家一定距离内的立方体有一个向立方体中心施加的力。这些立方体在katamari球中仍然是物理模拟的,它们并不像原始游戏那样只是 "粘 "在玩家身上。
这对于网络物理来说是一个非常困难的情况!
下一篇:Deterministic Lockstep(确定性锁步)