游戏中的bug都是怎么来的?

Cassie-Arts


BUG是游戏设计中的错误。在如今动辄数十个G的大型游戏中,它的存在不可避免。BUG的成因各不相同,种类也五花八门。不过,我们常见的就是下面这几种:

身体错位

为了方便给角色换服装、发型以及妆容,大型3D游戏里的角色模型都是用纸娃娃系统分部位拼起来的。当系统出错的时候,就可能出现身体部位错乱的情况。

比如辐射里著名的180转头BUG:

像WWE里这种脸部错位其实也是同理的BUG:

再来一张FIFA镇楼:

无脸症

由于面部贴图渲染错误,导致游戏中常常出现脸部消失的惊悚的画面。

首当其冲的肯定是刺客信条大革命啦:

FIFA12:无头症

数值错误

数值设定错误通常都是程序猿手误造成的,当然也不排除数值策划的锅。既然是人做的,就很难根除这样的问题。

最著名的例子就是古墓丽影一代里劳拉那引人注目的胸部了。建模师在修改模型时不小心把胸部增大了一倍……不过也正是因为这个手误才有了如今性感的劳拉形象。

数值错误可能出现在程序的各个地方,造成的后果也千差万别,这里就不一一举例了。

穿模、穿墙

为了模拟真实的物理碰撞,游戏中的模型会以一定频率进行碰撞检测。但如果检测频率不够(或者失效),当你撞向边界的时候就可能骗过检测机制,出现穿墙的现象。

另外,为了减少运算量,绝大多数游戏模型都不是直接进行碰撞检测的。而是运用了一种叫做“包围盒”的技术,把模型划分成多个不同的部分再用一个个矩形盒子(或者球形)框住它。检测碰撞时首先计算的是矩形盒子的碰撞。

由于包围盒不可能完全贴合实际模型,甚至可能小于模型本身,就可能出现穿模的情况。

诡异的抽搐

在开放式游戏,特别是大型沙盒类游戏中,由于地形复杂又没有太多限制,很容易触发BUG。最常见的就是人物莫名抽搐或者尸体乱飞的情况。这其实都是因为物理引擎应用不到位造成的。

老滚5里这种BUG尤其多:

在FIFA等有大量物理碰撞的体育游戏中也很常见:

数据库出错

在大多数游戏中,你捡起的每一个物品在程序内部都有一个单独的ID标识用于存放到数据库中。如果这套机制出现了问题,那就可能多出同类物品或者物品直接消失。

这是一类非常严重的BUG,有时候只能通过账号回滚的方式处理。

除了上面这些常见的“小BUG”,我们在游戏中还经常遇到黑屏,不能启动,帧数过低等等严重影响游戏进行的“大BUG”。这就涉及到太多复杂的机制了,只有开发者自己才能知道究竟出了什么问题。


我是一个喜欢分享游戏经验的非资深老玩家,觉得这个回答有帮到你就点个赞吧,顺便关注一下。


核游


BUG这个存在,阻拦在开发者和玩家之间。游戏中的每一个致命的错误,每一次突发的崩溃,对于开发者而言都是一次巨大的打击。


那么BUG是怎么产生的呢?简单来说,游戏中会产出BUG大抵是下面三个原因造成的:

1. 程序员没有能力修复,所以让玩家来承受。

2. 可以修复,但修复的投入大于回报,那就当做没看见。

3. 在测试当中没有遇到,玩家发现了。

以上,就是玩家为何会在游戏中看到BUG的原因。


BUG产生之后,一般由玩家反馈至开发者,但开发者也很苦恼啊,因为他要面临一个问题——重现BUG。你找到一个BUG容易,但开发者要解决一个BUG时就需要从根源入手,测试BUG真正触发的条件是什么,这需要耗费大量的时间。

简单举个例子:

在一款游戏中,开发者遇到一个玩家提供的BUG,他苦思冥想啊,日夜操作啊,呕心沥血地看代码。发现自己的代码都很正常,并没有什么错误的地方。检查自己的代码是个漫长的过程,同时很枯燥,开发者等于要推翻自己之前的想法重新排查代码中错误的部分。

直到最后,这位开发者拍着大腿跳起来:“老子终于找到了!!!”

各位猜猜他在哪里找到BUG出现的原因呢?

原来是一个数据表中弄错了一个索引值,就这一个数值导致了BUG的出现。当然他检查数据表的过程肯定没有我写下来“数据表”这三个字那么简单。

一个数据表中包含了几十种的类,用于储存游戏中的一切数据,同时还跟其它的数据表有关联。问题就出在他关联的那张表上只设定了接收16个值,但是他用于储存游戏数据表的设定了接收24个值。这中间一来二去,游戏中就会丢失8个值的数据,这就导致了游戏BUG的出现。

以上,还只是玩家提供准确BUG的效果。如果开发者收到的是这些邮件:

“我半个身子沉到地下了!!”

“我养的宠物走在路上突然死了!!”

“敲尼玛!!!你游戏又崩溃了,退款!”

那么这些没头没脑的邮件基本不会给予BUG修复有任何实质上的帮助,正确提交BUG的方式应该是:

1. 详尽说明BUG出现的时间

2. 你当时在游戏中做了什么操作

3. 使用的是什么设备

4. 问题出现的时间点

这些详尽的BUG反馈能帮助开发者更快修复BUG。


PS:欢迎小可爱们微信搜索“任玩堂”或“appgamecom”关注任玩堂微信公众号,更多新游资讯尽在任玩堂!


任玩堂


既然是BUG,肯定不是制作者有意留在游戏里的,这和《魂斗罗》那种上上下下左右左右BA这种后门是不同的。

我就拿我最熟悉的格斗游戏来举例说明吧。大体上分为两种一种是程序员没有测试到的,另一种是程序员测试不到的。

先说第一种“程序员没有测试到的”。

就拿大陆受众最广的《拳皇97》来说,绝对是没有测试到的BUG就是著名的恶意浮空了。通常小题型角色或者女性角色通过一定的指令输入,在版边可以使自己的身体“漂浮”起来,与对方形成同一地形的高低差。这种高低差所导致的直接后果就是在击打对手的时候,对方在版边的时候没有hitback,也就是己方不会因为攻击而被拉开距离,这时候使用任意可以连打的轻攻击便可以造成无限连。

另外角色浮空也是同样,这都属于影响游戏体验,可能体验都不合适,确切的说是完成度的恶性BUG,这种BUG通常是游离于游戏底层系统之外的。

而像“程序员测试不到的”游戏BUG则多数并不脱离游戏系统,但在设计之初,程序员并想不到此种测试方法来验证而导致的。此类游戏BUG谈不上恶性,因为是植根于游戏底层系统,某些还会让游戏增加一定的乐趣。此类游戏通常是判定或者帧数设计的不协调,会造成一定程度上的不平衡。同样拿《拳皇97》来举例的话,典型就是以特瑞为首的各种浮空无限连,这就属于判定BUG。像八神的“鬼步”、山崎龙二的“无限踢沙”则属于帧数BUG。严格来说大门五郎的头上扶——超受身——地雷阵属于帧数和判定BUG的综合体,在《拳皇98》也是,也由于有了这套连续技,大门五郎的段位上了几个台阶。所以在后来的《拳皇2002》中大门再次登场时,就严格修正了超受身的收招帧数。

顺便一提的是《街霸2》最开始“连续技”本身也是BUG之一,但玩家的反馈良好,所以在后续作品中就保留了下来,可见BUG也是尤其积极意义的。


唐草大魔王


MC里的bug是被我和herobrine入侵了,哈哈



风之痕一皮皮佣


本人自己研究过并尝试开发过独立游戏,对于游戏中bug,其实简单的说,就是在编写游戏代码的过程中,造成了失误或者是粗心考虑不周,导致一些墙体穿插,无遮挡物,人体变形等等一系列的不正常逻辑行为,统称为游戏bug。


而这种游戏中长见的bug,是可以修复的,但是需要逐一解决,需要在代码的世界中逐一排查并修复,是个技术活。

这也是为什么,许多国内的游戏开发商,开发出一个游戏后,需要限定内测一批玩家,求得激活码,才可以进入游戏体验。而不是一开始就正版发行。


要知道,一个游戏的好坏,除了题材,玩法,逻辑,和互通性等元素之外。游戏体验更为重要,直接影响到玩家心目中的评分。如果说一块游戏因为大量bug的存在,不仅严重影响体验感,还会被玩家各种喷,极度影响正式发布后的效果。

当然,即使国内知名的游戏大公司,在经过层层核查和玩家体验后,依然有不少bug会浮出水面,就好比一个优秀的人,始终有不足的缺陷。一句话,永远没有完美的游戏,bug必定存在。



相信游戏中经常遇到外挂现象吧,知道外挂是如何攻破游戏防线的吗?就是利用游戏的bug,明确的说这是更深层次的,游戏代码不完善而产生的bug,因为代码其实就是一种语言,而语言的严谨性永远不会完美,必有漏洞,以上所属均是bug的由来。


不知道读友们怎么认为呢?(谢谢大家观看,别忘记关注一下哦!)


逍遥白帝


很多都是疏忽大意,测试时不全面。

以上古卷轴5的几个bug为例子:

一,恢复药水bug,偷懒,代码直接复制粘贴,却没有把被复制的模板的特有数据给修改。

非常出名的bug,五分钟可以让你脱坑,因为五分钟你就无敌了。

游戏中有炼金这个万能的生活职业,可以制造各种功能的药水,包括加攻击的,加抗性的,加魔法效果等等。

复原术药水就是强化恢复系魔法的药水,按照描述,本来应该只强化恢复系魔法,比如驱散亡灵,加血等魔法的。可是当你嗑药之后,却发现不止恢复系魔法加强了,连身上的装备的附魔效果也加强了。

其中一个装备附魔效果是加强制造炼金药水时的药效。

所以复原术药水可以加强炼金,炼金可以做出更高的复原术药水,无限循环下来,数据会以指数级增加。。。。然后游戏索然无味。

bug的原因就是,大部分盔甲附魔居然都是恢复系魔法,包括加强单手,双手,弓箭伤害的附魔,绝大部分降低魔法消耗的附魔,加血的附魔等等。

这个下载一个上古卷轴5的官方mod工具ck,打开游戏文件skyrim.esm就能看到了。ck在stean的工具里可以下载。

造成这个bug的原因我推测就是,程序员在做附魔的效果的时候,是批量化的以一个模板复制出足够多的目标,然后一个一个修改。而模板就是一个恢复系魔法的效果——附魔效果(ench effect)和魔法效果(spell effect)同类,修改一些就可以互相替代的。

二,强大的吸血鬼和死灵法师perk的bug。技能的效果的限制条件没有设置完整,导致吸血鬼这个例外居然可以享受恢复系魔法的perk的额外福利!

原版游戏中,吸血鬼很强大,因为点亮恢复系的死灵法师 perk之后,吸血鬼会享受到更强大的buff加成,这个数值是25% 。讽刺的是死灵法师perk的描述包含两个单词against undead。

游戏中很变态的一个buff叫做魔法吸收,有概率让敌人的攻击魔法无效,并吸收点转化为mp,所有种族正常情况下可以获得80%的魔法吸收,只有布莱顿种族由于有每天使用一次的龙皮技能,所以可以做饭100%魔吸。可是通过死灵法师perk加成的吸血鬼却可以享受到100%的魔吸,80%*125%=100%。也就是吸血鬼可以无视99.9%的魔法,毒药,龙吼,甚至可以在岩浆里行走——因为岩浆的设定就是魔法攻击。

游戏的另一个设定是,玩家的抗性无法达到100%,这也突出了吸血鬼的强大,毕竟布莱顿每天只能有60秒。

造成这个bug的原因是什么呢?

1.上古卷轴5里的所有魔法都是一个模板改出来的,对敌魔法和自己加的buff没本质区别,只是限定的释放目标不同而已,特殊一点的就是,装备附魔和很多buff在本质上也是等于自己对自己释放的魔法。

2.死灵法师perk的描述是对抗不死族的时候魔法效果加强,实际魔法效果是增加自己释放的魔法的效果25%,目标限定是不死族。

我们粗略的看看2里的描述和实际效果,似乎这样就没问题了,游戏实际也就是这样的。

但是我们再看看1里的东西,自己对自己的buff也是自己释放出去的魔法,所以当自己是吸血鬼的时候,又会怎么样呢?会出现bug。

上古卷轴5的bug数不胜数,以上只是著名bug里中的2个而已。

大型游戏复杂,逻辑关系和脚本多,所以冲突也多,疏忽也多,一个不小心,bug就出现了,有些还会直接让游戏崩溃。


不可名状之玲


游戏都是程序员一点点写出来的,所以游戏出的bug必然跟他们有关

1.程序代码有漏洞

2.测试的时候不全面,导致bug无法反馈到程序员那里,bug也就一直存在

以上两点基本上是游戏出bug的主要原因,至于bug会不会修复,得看这个bug的影响有多大,对于涉及金钱或者日常必要功能如交易、组队等,像DNF广西三区的“复制门”,云幂卡金币,卡喇叭等,会第一时间修复,其他的一些小bug看官方心情,比如某个建筑物穿模了。

还有这种,估计官方不会修复😂:


吕不归


BUG专指电脑系统或者是系统缺陷,而游戏里面的bug就是游戏里面的系统缺陷产生的漏洞。
bug一词原本的意思其实是虫子或者是臭虫,那为什么现在这一词被称为是电脑漏洞呢?原来,第一代的计算机是由许多庞大且昂贵的真空管组成,并利用大量的电力来使真空管发光。可能正是由于计算机运行产生的光和热,引得一只小虫子钻进了一支真空管内,导致整个计算机无法工作。研究人员费了半天时间,总算发现原因所在,把这只小虫子从真空管中取出后,计算机又恢复正常。后来,Bug这个名词就沿用下来,表示电脑系统或程序中隐藏的错误、缺陷、漏洞或问题。


其实现在大部分都采用成熟的游戏引擎。出现最多bug出现最多的bug一般都是逻辑上的错误和因为环境造成的bug。如果说任务走不下去,一般很多都是逻辑上的错误。而对于那些走着忽然之间就挂了,还有明明打到装备却过会儿就没有啦,这一般都是网络传输错误或者是服务器跟不上,处理不了那么多请求造成的。
如果喜欢我的回答可以点个关注,以后经常会有优质回答,提供给大家。


电玩说


游戏中出现BUG,有多项原因。我还是是听一个程序猿舍友曾经天天讲得,我也就听一些我们普通人能够理解的大白话,职业词汇说出来我也不懂,大概有这么几回事:有可能是程序员的错误代码,程序员代码写错了那自然肯定会出问题。代码这个东西,就像是机器上的零件,嗯,差不多。修复代码就像给一个出现问题了的东西重新修复。

听说写外挂就是这样的,用CE钻空子我还有点了解。这东西一开始主要是修改数据,我之前就用CE修改过赛尔号,然后回到曾经,弄了一些曾经绝版的活动。使用难度也不是太难,先搜索内存,然后找到基址(看教的视频基址,那个对于我这个小白是什么都不懂),接着再修改下一下数值。一开始是各种浪,刷什么“龙族金币”(游戏道具)那个爽啊。第一次感觉用辅助道具钻游戏BUG的空子是真的爽。



弱网环境处理,网络质量较差导致丢包和延迟。意思就是卡的时候就容易出BUG,这个我举一个例子大家就清楚了:在穿越火线手游,曾经最常用卡BUG的方法就是“断网重连”,这个卡过这类BUG的玩家应该深有体会。看过此类卡BUG的视频也多多少少见过,容易上手。我在手游刚出来的时候就用这一招玩藏猫猫,一局各种BUG,卡进箱子、墙壁,瞬间断网一下就有开局这样的效果。虽然说不上百试百灵,但是成功率不低。因为跟不知道什么时候在一个拐角会卡进去,固定的点不多。但是新的跳跳乐这招好用。

bug测试工程师他只是一个“攻城狮”,城外的人想进去(找各种游戏BUG的玩家),他是一个游戏工作者来寻找BUG的。而我们这些游戏玩家,是从快乐中发现BUG,并且去操纵它、驾驭它。BUG对于他们来说是敌人,而对于我们是朋友。

总之,只要是个游戏,它并不是100%都是没有BUG的,只是没有被人发现而已。想想当时我玩过的所有类型的游戏都经历过游戏出现BUG然后疯狂占便宜,没有不透风的墙。不管是回合制游戏还是射击游戏、动作游戏,它都有BUG,我一开始从没想到过反恐精英OL有BUG,穿越火线BUG倒是不少(不是黑腾讯,的确它的BUG多,但是腾讯的修复能力强啊)。不像蛋拐的一个“三斧两炮”修复了多少年?手机上还修复快一点,电脑上有的BUG重新修复一下不知道的花多长时间。BUG是什么?我觉得BUG存在的意义很大,只有发现BUG,技术才能提升。我蛋拐就是靠着这些“骚操作”玩到至今,没钱,韭菜党就是有技术,迟早刷几个号能出。不会卡BUG,我认为在蛋拐就是小白进阶高手的必备技能,枪没有可以,但是能力得有。而这些个BUG正是拉近差距的必备因素。


雪碧说赛尔号


嗯,游戏的BUG是怎么来的。我们通常说,世界上只有两种软件,一种是没人用的软件,一种是被人骂的软件,其中被人骂的很重要的一个原因就是存在BUG。

从严重程度来讲,BUG根据其严重程度分为阻断,严重,一般,建议级。所谓的阻断级就是无法执行的BUG,例如接收整型的参数你传一个字符串进去,自然就无法执行了,这类BUG通常是最容易被发现的,因为最明显的编译都不会通过,有些单元测试就可以知道问题的所在了;所谓严重级就是影响程序正常的BUG,我们通常遇到的都是这类BUG,因为其在一般运行状态下或者程序员比较一根筋的逻辑下,通常不会出错,但是面对大量用户,面对不同环境的条件下,这类BUG就会爆出来;所谓一般就是不影响正常使用的BUG,这类BUG通常在UI层,比如职务写成了植物;所谓建议级就是相对于当前的算法,有更好的处理方式的BUG,比如受限于当时的技术或者程序员的能力,有些算法比较耗时间,那么有更好的算法可以更高效,其实这也算一个BUG,姑且称之为建议级别的吧。

根据BUG重现的频率我们又会把BUG分为常现,易重现,偶然重现,不易重现,不重现类型。所有的BUG都是被发现的,这个不难理解,不被发现的Bug那就不是BUG了。根据BUG出现的原因,通常它们有些很容易就被发现,有些偶然会出现,有些是不容易被发现,有些是就是比挨雷劈还要小概率的不重现。各举个例子吧,程序员把性别写成姓别,你只要不改,那这个BUG就在那里,所以这个BUG就是常现。还有一类BUG,是在某种特定条件下才重现的,这种条件比较经常,那就是偶然重现。比如验证身份证,如果程序员没考虑到身份证最后一位有X的情况,那么就是易重现的BUG。还有一类BUG是在比较苛刻的条件下才出现的BUG,比如整型有个长度限制,如果你存款大于了这个值那么才能出现这个BUG,前几天看过一个新闻貌似就是这样。还有一类BUG是他妹的就不重现,这类BUG出现的条件一般都是极度具有偶然性的,几乎不重现的,怎么测都不重现的,那对于这类BUG只能通过BUG出现的结果,分析其原因,然后努力创造这种条件才能把这个BUG揪出来了。

至于原因,那就多了,人为因素,环境因素等等。好累,准备吃饭了,不想写了。说说游戏的BUG吧,其实,现在游戏大部分采用成熟的游戏引擎,出现最多的BUG主要是逻辑错误和因为环境造成的BUG。如任务走不下去,很多原因是逻辑错误。而对于那种所谓走着走着挂了,明明打到装备,过会没了,这一般都是网络传输错误或者服务器性能跟不上,处理不了那么多请求造成的。当然,不要忘了了最大的BUG,回档。。。。这个说白了就是数据坏了,服务器重新还原了数据而已。


分享到:


相關文章: