量子位@射击游戏里的子弹是如何飞行的( 二 )
文章图片
但是在进行多人游戏时 , 服务器将需要做更多的计算 , 来确保所有对象都同步 , 并且必须解决不同客玩家之间的差异或冲突 , 以免在同一台服务器上给玩家带来不一致的体验 。
一个方法是 , 在游戏时间之前加载对象的“池” , 并在需要时“弯曲并启用”它们 。 一旦撞击到物体表面 , 就回收这个对象 , 将其保存以备后用 。
这种方法将减少反复创建和销毁对象的计算和内存成本 。
至于游戏时间的同步 , 存在着多种计算方法:
1、时间是与渲染分开计算 , 即使存在跳帧 , 游戏也能精确地表示对象 。 这种方法需要计算自上次渲染之后经过的确切时间 。
【量子位@射击游戏里的子弹是如何飞行的】2、计算每一帧的时间 , 将物理引擎绑定到帧速率 。 如果禁用帧速率上限 , 或开始丢帧 , 则会看到加速或卡顿的效果 。

文章图片
而且 , 这种算法在子弹速度足够快时 , 可能会遇到对象彼此“互穿”的情况 , 尽管它们在引擎中从未重叠 。
混合系统
有没有办法结合了以上两种方法的优点呢?答案是有的 。
最简单的办法就是不同武器使用不同的引擎 。
大多数FPS游戏引擎可以处理两种类型的子弹模拟 。 这样就可以选择拥有各种各样的武器 。 《侠盗猎车手》和《半条命》等游戏都具有可以支持两种物理类型的武器 。
比如《光环》中的突击步枪使用命中扫描引擎 , 而刺针枪使用子弹弹道模型 。

文章图片
游戏开发人员还可以混合使用两种技术来弥补每个系统的弱点 , 从而提供更加逼真的体验 。
例如 , 要解决物体从弹道互穿的问题 , 可以在引擎的每个时刻上绘制子弹射线 , 查看射线是否会相交 。
也可以混合两种算法以增强游戏的功能 。
《狙击精英》系列就是一个很好的例子 。 扣动扳机后 , 引擎将使用hitscan来确定子弹是否足够靠近目标以触发慢动作 。 如果结果为true , 引擎将在子弹时间内计算弹道 。

文章图片
推荐阅读
- 微生物:子弹打不透?地球上唯一外壳由铁构成的生物,连它的脚都是镀铁的!
- [原子弹]中国第一枚原子弹试爆成功,为何美国却说中国试爆的是一枚钚弹?
- 麦田军事观察走量子技术路线?美军潜艇或先装备,才动手先别吹,弃激光通信论
- 天下有警为何美国却说中国试爆的是一枚钚弹?,中国第一枚原子弹试爆成功
- 前哨迷彩真的靠谱吗?老兵告诉你答案!,电影里用沙袋挡子弹
- 『原子弹』原子弹扔下45秒后爆炸,投弹的飞机又是如何逃脱的?
- 【原子弹】“当了裤子也要造原子弹”,首颗原子弹花了多少钱?数字令人落泪
- 可可酱75吋量子点电视让孩子健康成长,如何才能健康不伤眼的看电视?TCL
- 量子位AI就能让它动起来!再也不怕3D动画拖更了,只要做出角色3D模型
- 『让子弹飞』因为长得漂亮,而被经纪人介绍给自己儿子,现在名气比影帝老公还大
