格斗游戏 源码-糟糕的互联网代码正在杀死许多您最喜欢的格斗游戏

高品质格斗游戏在线代码之战,在北美早已取胜,但在台湾却没有!

现在看来,《侍魂》第二季DLC的推出有点令人失望。游戏目前还在不断更新和开发,并没有解决它最大的问题:恐怖的网游。当大多数玩家都在努力与几乎任何人玩游戏时,继续开发竞技游戏是否仍然有意义,无论多么精致或精心制作?

该游戏本身就是杰作。和同事聚在一起的时候,经常拉出双龙玩;对于菜鸟来说,它华丽而容易接近,沉重的砍伤让整个房间喘不过气来。无论他们的技能水平如何,双基龙霄对每个人都有很多乐趣。

想仍然在线与强敌竞争,或者与当地同学玩双截断龙射击,但在线战斗太糟糕了——比我能想到的任何其他格斗游戏都要糟糕——我很快就放弃了。出乎意料的剧烈耽搁,让原仙丽的动作显得呆滞、流畅、不尽如人意。当我无法让我的动作反映在屏幕上时,很难激励自己继续玩。

在线格斗游戏应该得到更好的。NetherRealm Studios和Capcom最终都拥有了卓越的网络代码,尽管是最小的独立游戏,包括memefighter,FootofAnimals等笑话,并且都通过更新的技术取得了良好的效果。

然而,在

多年来,SNK和ArcSystemWorks等格斗游戏类型的领导者以及其他主要位于加拿大的开发商和发行商推出了令人兴奋的新游戏,但他们的在线游戏多年来并没有太大变化。虽然《碧蓝幻想VS》处于3D动漫渲染的最前沿,但在网络代码方面,它远非过去

这些过时的互联网编码方式在美国以外的几乎所有新格斗游戏中都会重复出现。唯一会改变的是,当粉丝要求在投票支持用自己的钱投票时做某事时。

有什么大不了的?好吧,这可能需要一些解释,在此过程中,您可能会更多地了解在线格斗游戏的工作原理,这通常很有用。

淡入淡出的当前状态:基于延迟的网络代码

当玩家面对面在线时,大多数现代格斗游戏都使用基于延迟的网络代码,以补偿在相距很远的两个玩家之间传输数据时固有的和不可预防的延迟时间。

这意味着游戏会将两个玩家的输入延迟几帧(如果在大多数情况下更合理,则延迟 1/6/00 秒)以保持游戏平稳运行。

观察某种形式,这种方式有效。双方保持同步很重要,因为每个框架中都有很多重要信息。而且,即使每个玩家的输入只有很小的延迟,它也可以完全改变游戏玩法和感觉。面对面的回合和在线进行的回合有很大的区别。当最好的游戏玩家玩游戏时,使用基于延迟的 Web 代码的游戏会产生其他东西——几乎没有竞争力或公正性。

例如,夜间生长,显示在屏幕底部。

这些还假设参与者在地理位置上很近,并使用稳定的、希望是有线的连接。此条件是基于延迟的网络代码正常工作所必需的,很少满足。

那么,当联接中出现任何问题时会发生什么?游戏暂停和暂停,这会放弃玩家使用依赖于完美帧时间的策略。玩家可能会发现他们的输入在传输过程中的某个地方丢失,通常会损害事件的结果。失败可能不取决于谁拥有最好的策略或执行力,而取决于谁能够更有效地适应网络代码不断变化的不确定性。这是任何严肃的竞争场景的死亡。

通过观看里面的剪辑,您可以看到罪恶武器 XrdRev2 中的滞后尖峰是什么样子的。请注意,随着屏幕的进展,屏幕右上角的数字是如何从两帧开始的(表明连接速率比平均水平快!) 变为 7 帧、11 帧甚至 13 帧的延迟。在观察者看来很糟糕,播放时感觉更糟。我只能通过有意识地提前 1/四分之一秒按下每个键来管理组合。

五帧或更长时间的延迟通常意味着您遇到了麻烦。在更具挑战性的连接上,例如越野播放器或使用 Wi-Fi 时,滞后峰值将接管,并且基于延迟的网络代码将很快变得难以播放。这不是解决在线竞争问题的严肃技巧。只是。。。不好。它教给你不好的教训。

中级玩家利用快速、精确和一致的时机。当他们不得不将一个事件延迟两帧,另一个事件延迟六帧,下一个事件延迟四帧时,他们被迫执行不一致。我的一些同学停止了线上对战,因为他们宁愿放弃线下艰苦的练习和后线上练习延迟导致的表现极其不稳定。

胸记忆和反应时间都是格斗游戏的要素,基于延迟的网络代码,很有可能影响玩家对挑战性情况的反应。这损害了最具竞争力的球迷的整体表现,而正是这些球迷帮助保持了游戏的活力。

当与他人在线玩快速动作游戏是奇迹时,基于延迟的 Web 代码是可以接受的。它并不完美 - 不会有包括回滚在内的任何东西 - 但这不是重点。我们对它的工作感到非常满意。但这是第一个Xbox的时代,这是电子游戏时代永恒的时代。

开发人员明天可以做得更好,有些人可以,让我们谈谈如果他们不这样做会发生什么。在格斗游戏中,这一课比任何其他类型的游戏都重要得多。

坚持不懈的后果

格斗游戏仍然依靠草根社区来保持活跃和相关性,早在在线游戏成为可能之前。并非每款游戏都足够主流,足以让像《铁拳》或《街头霸王》这样的玩家进来,而这些找不到竞争场景的游戏正在猕猴桃藤蔓上消亡。

线下派对和锦标赛始终是最好的游戏方式,但它们只占玩家总数的一小部分。在大多数社区中,没有足够的战斗大厅或地方来结识有竞争力的玩家。这种秩序格斗游戏的粉丝,如果根本不玩多人游戏,一般只会玩在线对战模式。不起作用或无法帮助他们发展技能的在线模式将阻止开发任何有意义的场景。同样,这是格斗游戏的死亡。

洛杉矶的拳手们挤满了“碧蓝幻想大战”。 日作还没上映,日版就一夜之间达到了100名加拿大玩家,战场绰绰有余。

当游戏

是新的,比如最近发布的《碧蓝幻想大战蓝》,进口商在日本上映前一个月就已经大饱口福,尽管他们可以使用基于延迟的网络代码来玩它。在顺畅的连接上查找事件没有问题,并且由于新游戏在社区中很受欢迎,因此每个人都可以尝试一下。更多的玩家意味着更紧密的竞争对手之间的连接更顺畅,因此玩家在推出新游戏时几乎不必担心糟糕的互联网代码。事实上,对于像《侍魂》这样的游戏来说,这可能是玩家唯一一次找到突出的事件。

邪恶武器XrdRev2的一个公共大厅已经空了至少五年。

但是,如果您快进大约六个月 - 如果 DLC 角色已出局怎么办?事情似乎很严峻。去年年底《罪恶武器争斗》推出后,《动漫斗士》的粉丝们应该怎么做?突然之间,您所在地区不会有那么多活跃玩家,但根据您居住的地方和您使用的连接,可能没有任何活跃玩家。

如果你想玩这个“老”游戏,你必须开始指望与更远距离的玩家的不良连接,这就是基于延迟的连接开始失败的地方。体验几乎总是如此糟糕,以至于玩家放弃了它并继续玩新游戏。在一些极端情况下,他们可能会完全失去对战斗游戏的耐心。它变成了一个死亡螺旋,几乎没有任何游戏可以恢复它的生命力。最糟糕的是,球迷们不会离开,因为他们不喜欢这个游戏......

回滚是处理网络代码的更好方法

这是

格斗游戏中的大问题,所以一定有人在试图解决问题,对吧?这是令人失望的部分:好的格斗游戏在线游戏是一个已解决的问题,并且已经存在了十多年。

在不涉及技术细节的情况下,回滚网络代码使用多种方法以及传统的延迟来最小化和屏蔽滞后并纠正玩家错误。 输入,从而在更广泛的连接范围内获得更流畅、更准确的体验。它并不完美,比其他当前流行的在线播放解决方案更好。

名称“回滚”来自代码支持游戏状态以保持输入一致的方式。当回滚进展顺利时,这种变化是察觉不到的,当回滚无效时,字符可能会在屏幕上传输。但总的来说,这是一个更可行的设置。

早在 2007 年格斗游戏 源码,我就使用第一个 GGPO(GoodGame,PeaceOut)回滚客户端与我的在线同学一起玩 Mock Junior Street Fighter 2,结果无缝衔接——就好像我坐在对手身后的椅子上一样。我认为这一定是未来。事实上,Capcom和格斗游戏界的其他开发商将在《街头霸王4》的正式发布中加入类似的观点。右?

井。。。是吗?

尽管自那时以来已经过去了13年,但几乎没有什么变化。西方格斗游戏最终接受了回滚(真人快打、骷髅男孩和一些反例,如《强力部队:战斗》),但美国主要开发商在很大程度上坚持使用自己的基于延迟的解决方案。有些游戏比基于延迟的在线游戏玩法更好,但总的来说,它们根本无法提供流畅、一致的结果和回滚,从而提供更广泛的玩家。

基于延迟网络代码的经验从来都不够。使用回滚时,快速联接的体验特别好,但可以在更广泛的连接范围内利用它。参加高质量赛事的人越多,意味着更多的人坚持每场赛事的时间更长。社区赢了,开发者赢了,每个人都有更好的岁月。

回滚并不完美,实施需要认真的工作——事实上,真人快打花了五年时间——但好处是值得的。事实上,它们对于格斗游戏在拥挤的利基市场中的常年生存至关重要。您可以自己检测:杀手学院可以在Xbox One和Windows PC上免费玩。较旧的SNK游戏,如饿狼的标记和双龙零SP已经在其PC和PS4端口上回滚。即使是上面提到的植物大战——你会记得,它要花六英镑!上面列出的游戏比许多现代格斗游戏具有更好的在线体验。

美国开发商:最后的坚持

西方格斗游戏开发商长期以来一直接受回滚,但这种类型是在美国诞生和培育的。像Capcom,ArcSystemWorks和SNK这样的公司继续在这种类型的游戏中多产。其中,只有 Capcom 推出了带有回滚网络代码的小游戏,但迫切需要在街头霸王 5 中实现——也就是这次 Capcom 杯预选赛。

部分

动机可能是延迟播放在美国不再是问题,那么为什么要因为地理面积小、人口密集、宽带互联网接入质量高而改变呢?当我在东京的一家超市玩在线格斗游戏时,我体验到了流畅的连接——即使是以其卓越的在线游戏而闻名的游戏格斗游戏 源码,例如百万亚瑟王的圣血。这可能是整个问题所在:如果当前的解决方案在家里运行良好,为什么还要付出更多的努力呢?

然而,玩俄罗斯格斗游戏的不仅仅是美国人。铁拳世界巡回演唱会与日本,美国,加拿大和澳大利亚进入前十名。随着竞争和电子竞技的盛行,自从开发人员认识到它是一个全球社区并使用可用的最佳工具来为该社区提供最大容量以来,它已经过去了很久。

值得庆幸的是,看起来变化即将开始。Capcom最终努力修复StreetFighter5糟糕的回滚网络代码。经过多年对互联网代码的冷淡反应,几个月的粉丝无情地发送了“GGPO!在该公司的所有现场表演中,ArcSystemWorks表示将在其正式推出的旗舰产品CrimeWeapon,Strive中构建回滚网络播放。

自从开发人员承认这是一个全球社区以来已经有很长时间了

虽然Arc不是BandaiNamco的发行商,但Dragon Ball Fighter Z直到最近才将该公司介绍给主流,或者Capcom,它是该类型的俄罗斯专家。顺其自然,其余的利基市场经常效仿。如果更好的在线游戏带来更好的销售数字,那么《奋斗》可能会促使其他美国公司认真考虑回滚。

只剩下 SNK。除了公司的老游戏,SNK没有说已经回滚,但延迟的网络代码仍然是格斗游戏中最差的游戏之一。开发商今年在 Evo 上宣布,它正在制作其旗舰系列的最新作品《拳皇 15》。拳皇14是一款很棒的游戏,但在日本没有大型比赛,这在很大程度上是因为它的在线体验很差。

其实,拳皇13也是如此,不是吗?SNK几代人一直在重复历史,但其他格斗游戏开发商——甚至是这些顽固分子——已经表明他们不必这样做。

作者:大卫·卡布雷拉

序言

本文讨论了如何使用 Unity 引擎制作 2D 格斗游戏。本文作者尝试使用Unity 2D进行格斗游戏制作,但得到了一些基本的解决方案,但在思维上遇到了一些问题。因为关于格斗游戏制作的讨论不多,格斗游戏的制作也有很多涉及数学判断的困难,虽然讨论非常基础,但本文发表就是为了引起讨论。

早已解决的问题

字符的多个判别帧问题

我在角色下创建了多个子对象,在这些对象中添加了触发器作为角色的各种判断框架,然后调整了动画中每个帧的判断框的位置,并借助框架风波控制了判断框的打开。

角色的当前状态

我编写了一个枚举结构来记录角色的当前状态,并且在大多数情况下在动漫帧风暴的帮助下切换状态。例如,在“垂直跳转”动画的第一帧中调用 AnimEventJump 函数。在不同状态下可以完成的操作是在更新中的开关的帮助下实现的。

目前写了一种在画面中实现“打击感”的方法:

当攻击标签的判断框

遇到2PHurt标签的判断框格斗游戏 源码,先关闭攻击判断框,然后将角色的动漫播放速率设置为0。并控制HitStop秒后恢复播放速率为1(HitStop位浮点值,取控制帧时间),从而达到帧效果。测试仍然是可行的,但我不知道这是否是正确的想法。

构思阐述

虽然与

以上解决方案,我遇到过很多问题,我反思了整体思路,不知道是否正确,就拿出来和大家讨论一下。

在学习了Unity并准备将其用于格斗游戏制作之后,我自然而然地创建了角色及其动漫。RigidBody2D质心组件和碰撞盒BoxCollider2D后来被添加到角色中。

角色有重量,有对撞机

,自然落在下面有对撞机的那种地面(作为地面)。因此,角色目前的半蹲完全是通过Unity的内置碰撞体和刚体属性实现的。

为了实现角色沟通,我尝试使用AddForce和控制速度(velocity),但最终决定格斗游戏最适合的沟通方式是直接控制角色坐标(transform.position+=)。

我在动漫帧风暴波的帮助下跳跃,并在“垂直跳跃”的第二帧中添加了“AddForce(Vector2.up*JumpPower)”以实现跳跃。“垂直跳跃”的第一帧仍然是半蹲的画面,为了实现“向前跳”和“向后跳”,允许玩家同时按下“向上(8)”和“向前/向后(6/4)”的时间决定了执行“向前跳”、“向后跳”、“垂直跳”中的哪一个。

我今天遇到的主要问题是,角色除了能够站在地面上,还可以站在另一个角色身上。

由于我完全依靠Coliider和RigidBody躺下,因此当角色跳到另一个拥有BoxCollider的角色时,他很自然地站在前面。

我试图用OnCollisionEnter解决这个问题,当角色接触时,如果你站在另一个角色上,让另一个角色远离远处或移动自己。但由于某种原因,功效没有实现。我也没有弄清楚代码中的问题是什么。

后来,我去学习了GameMaker引擎,一个是从这个引擎中寻找想法。其次,我听说很多用GameMaker制作的游戏,如Undertale和RivalofAether质量都很好,我一直很感兴趣。在研究中发现,GameMaker一般使用Place_meeting来实现物体碰撞,例如,当正下方的物体接触一个名为Ground的物体时,物体y轴坐标不会改变。

所以我想

关于在Unity中使用光线Physic.Raycast来测量角色一个方向的碰撞,但我只是认为这被卡住了格斗游戏 源码,我从来不知道如何解决它。

希望给大家解释一下传统2D格斗游戏的设计思路是什么。以及如何使用 Unity 实现这些想法。