Questions tagged «first-person-shooter»

3D或伪3D动作游戏类型以其第一人称视角和偏远射弹作战的偏向而最著名。



14
如何在多人游戏中实现“子弹时间”?
我以前从未见过这样的功能,但是它应该提供一个有趣的游戏机会。 是的,在多人/实时环境(想象中的FPS)中,如何实现慢动作/子弹时间效果? 对于目前正在慢动作的玩家来说,这是一种幻想。因此,每个人都看到他“实时”,但他看到一切都变慢了。 更新资料 旁注:请记住,FPS游戏必须保持平衡才能使其有趣。因此,是的,此子弹时间功能必须牢固,在不影响其他玩家的情况下,给“玩家”带来一点好处。 另外,两个玩家有可能同时激活其子弹时间。 此外: 无论将来如何,我都将在将来实现。并且,想法是为所有这些构建一个全新的游戏引擎。如果这提供了新的选择,那么我对听取这些想法会更感兴趣。 同时,在这里,我们也与我的团队一起考虑这一点,当我们的理论将被拟定时,我将在这里与大家分享。 这有可能吗?因此,已经回答了“这是否有可能”的问题,现在是时候找到最佳解决方案了。 我会一直保持“答案”,直到出现特别出色的东西,例如具有类似于伪代码的原型理论为止。 物理学家和哲学家怎么说: 链接供您使用,因为主题已关闭。 https://physics.stackexchange.com/questions/17118/time-traveling-and-time-dilation-within-a-multiplayer-videogame https://philosophy.stackexchange.com/questions/1704/seeing-everything-in-slow-motion-but-being-real-time 我在物理站点上写问题时想到的条件(已复制): 播放器在慢动作的影响下具有优势,可以进行更精确的动作(射击,移动等),这是因为以慢得多的速度观看所有内容。 他的行为应实时影响其他玩家。 看着我们受影响的玩家的玩家没有任何区别,只是他们可以体验到他所做的动作(例如,玩家被射击/影响躲避了火箭)。 当玩家摆脱这种影响时,他只是继续以平常的速度前进。(如果这不可能,那么我想他将不得不受苦,直到时间恢复同步) 关于子弹时间(慢动作)的参考: 可悲的是,大多数实现仅是单人游戏 http://www.gamesradar.com/a-videogame-history-of-bullet-time/

2
实时FPS游戏向服务器发送什么?
将本地播放器的位置告诉服务器的正确方法是什么?一些文档说,最好在产生输入时发送输入。还有一些文件说,客户以固定的间隔发送其头寸。 使用发送输入方法:如果玩家按住方向键该怎么办?这意味着我需要在每个帧中将包发送到服务器。是不是太多了?鼠标输入还可以播放播放器。这是一个例子: http://www.gabrielgambetta.com/fpm_live.html 如何以固定间隔的方式发送头寸。它向服务器发送的消息太少。但这也会降低响应速度。 那么哪种方法更好呢?


5
最佳的前悬式公式是什么?
给定一个空间点,一个行进方向以及自开始以来的时间,什么是令人信服的,不晕车的模拟头球的公式?在以前的游戏中取得了什么成功?是否有任何关于哪种鲍勃诱发疾病的研究最少? 一个示例天真头鲍勃公式,应用于向上轴: http://www.wolframalpha.com/input/?i=abs%28sin%28x%29%29

2
从子弹而不是照相机中射出子弹,但保持相对于标线的准确性
我正在开发第一人称游戏,但遇到了问题。在我的游戏中,正在渲染玩家的枪支,并在屏幕中央放置一个标线片,如下所示: 首先,让我们想象一下没有渲染枪模型。然后发射子弹很容易-您只需将子弹精确地产生在玩家“眼睛”所在的位置,然后使用trig来根据玩家所看的方向计算速度。 但是现在,当我们添加枪支模型时……我们不能只是在子弹眼所在的地方产生子弹,我们就必须在枪的尖端产生子弹(对吗?)。因此,您可以这样做,但是然后...如何将子弹移动到标线指向的位置? 请记住,我的游戏中的子弹(在这种情况下实际上是火箭)将移动得足够慢,以至于看不到它的运动,因此,如果子弹太快而无法观察到的话,一些通常无法解决的解决方法将不起作用。例如,如果您没有生成它,使其看起来好像是从枪尖中出来的,那么玩家肯定会注意到这一点。

4
防止玩家在在线FPS中进行黑客入侵?
为什么我们仍然抱怨多人第一人称射击游戏中的墙骇客? 是否有可能在服务器端对所有播放器执行遮挡剔除?例如,仅当播放器在客户端的视锥中可见并且未被任何对象遮挡时,才将播放器xyz信息发送给客户端。即使碰撞几何非常简单,大多数时候作弊者也不会收到战术信息。 为什么不这样做呢?

1
实施网络平滑
我们正在制作倍增的第一人称射击游戏。客户端将其位置以固定速率(当前为10Hz)发送到服务器。服务器以相同的速率(10Hz)向所有玩家发送一条包含所有玩家位置的消息。 不出所料,由于60fps游戏每秒仅接收10次更新,因此动作非常不稳定。平滑此运动的最佳方法是什么?最明显的方法是在最后两个数据包之间进行插值,以便在收到新数据包时完成插值。但这会为所有播放器增加100ms的即时延迟。 另一种方法是使用从最近几个数据包推断出的速度和加速度来预测玩家在下一个数据包到达之前的位置,但是,如果预测错误,则玩家会在收到新数据包后立即跳起来。 有谁知道AAA标题如何解决这个问题?

2
Halo如何吸引弹丸?
我正在尝试绘制弹丸并做广告牌。弹丸由布满告示牌的“粒子”和“示踪剂”组成。当我在弹丸上做广告牌时,玩家的观看方向平行于弹丸轴时,看不到它。 Halo或其他游戏如何解决此问题,以便可以从后面看到弹丸。

2
多人FPS服务器端性能
这与MMO的性能有关,除了有关带宽的问题。这与cpu负载有关。 我使用node.js和webGL编写了一个简单的FPS。这非常简单,就像MIDI Maze的BuddyMaze克隆一样。发生的事情很少,每个人都可以二维移动(没有高度),发射简单的弹丸,然后撞到墙壁上。 现在,如果我与服务器建立多个连接,每个玩家在旋转时迅速射击,那么在服务器最大化核心并放慢速度之前,我可以在游戏中获得约15-20名玩家。这是在服务器上以30 fps的速度运行时。在10 fps下,我获得约25-30个连接。这是非常糟糕的,因为游戏很快将有更多工作要做,而我需要让更多的玩家适应这一点,这是可行的努力。 我的兄弟刚刚指出了有关其同事的TF2服务器的一些统计信息。他的服务器的规格低于我们的服务器,但它运行的是TF2,显然是一个复杂得多的游戏,每秒高达500滴答声,每个核心36个用户。另外,我们目前消耗的带宽比它们消耗的要多得多,但是我们还没有试图降低太多带宽。 这怎么可能?有什么样的技巧可以将服务器性能提高到这种程度?我知道的一些东西包括: 降低服务器上的帧速率,并在客户端上插入位置。我得到了一些好处,但是显然TF2服务器甚至都没有为此烦恼。 在客户端上执行诸如冲突检测之类的昂贵工作,并在服务器上很少进行验证。我还没有搬过来,今晚我会。即使这样,我也不希望获得如此巨大的收益。 将运动场划分为区域(四叉树)以最小化计算。还没有机会。 我考虑过不幸的是,node.js的速度比TF2正在使用的速度慢得多,并且可能不适合这种高强度任务。 这一切都在服务器配置魔术中吗? 那么,行业中的其他窍门是什么,即仅执行服务器上的最低要求,又具有完美的游戏体验?“推迟到客户端以节省CPU时间”与“不信任客户端”之间存在很大的冲突,因此也许有助于了解在各种情况下的界​​限如何? 更新资料 剖析确实是我所发现的唯一绝对可靠的咒语。我很快在代码周围包装了一些计时功能(感谢FP!),发现了我从未想到的东西:将数据广播到客户端的行为几乎占了整个执行时间。具体来说,约占90%。进一步的测试表明,这段时间取决于客户端数量和数据大小,而后者则更多。在20位用户的负载下,我只发送“ {}”而不是全部数据,从而将广播时间从24ms缩短为2ms,降低了90%。但是只有5个用户,广播大约需要0.5毫秒。因此,我显然需要在此处进行一些优化。 最明显的改进是视线检查。这样既可以减少关心数据的人数,也可以减少发送给感兴趣的各方的数据量。我可以尝试一下这个领域中的其他技巧,以便将广播操作的成本降至最低吗?

3
第一人称游戏中的重力强度
在我们的游戏中,我们将重力加速度设置为9.8 m / s ^ 2的适当值。尽管从物理上来说是正确的,但它感觉更像是在月球上四处移动。它的感觉大约是16 m / s ^ 2。其他人有没有经历过?仅仅是因为我们没有运动模糊或声音来提供明显的速度感吗?如果感觉合适,仅将其设置为16 m / s ^ 2可以吗?

2
FPS游戏中基于TIN的地形格式示例
您是否知道使用三角不规则网络(TIN)而不是网格进行海拔表示的FPS游戏的地形格式?或者至少是一款游戏的开发工具接受TIN作为地形高程输入的游戏? 我唯一的示例是ASCII场景导出(ASE)格式,可以将其用作Unreal引擎(UnrealEd)的地形编辑器中的输入。我主要是在寻找支持地形洞的格式(在视觉上和在碰撞检测中)并允许使用地下模型。我想避免雕刻和覆盖网格化的地形高程网格来放置地下模型。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.