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

  1. 编码错误:游戏开发人员在编写游戏代码时可能会犯错误,例如逻辑错误、语法错误或算术错误。这些错误可能导致游戏执行时的异常行为和bug。
  2. 资源问题:游戏中使用的资源(如图形、声音、动画等)可能存在问题,例如贴图错误、错误的音频剪辑或动画关键帧错误。这可能导致游戏显示异常或崩溃。
  3. 数据不一致:在复杂的游戏系统中,数据一致性问题可能导致bug。例如,游戏中的变量状态与预期不符,或者不同系统之间的数据同步错误。
  4. 硬件和软件兼容性问题:游戏在特定的硬件设备或操作系统上可能存在兼容性问题。不同的配置、驱动程序或软件版本可能与游戏代码或资源相互冲突,导致异常和bug。
  5. 测试不足:即使开发人员在测试游戏时尽力发现和修复bug,但由于游戏的规模和复杂性较大,可能会出现一些未被发现的bug。这些问题可能在游戏发布后由玩家发现并报告。

游戏开发人员通常会采取各种方法来尽量减少和修复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是游戏设计中的错误。在如今动辄数十个G的大型游戏中,它的存在不可避免。BUG的成因各不相同,种类也五花八门。不过,我们常见的就是下面这几种:

身体错位

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

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

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

再来一张FIFA镇楼:

无脸症

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

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

FIFA12:无头症

数值错误

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

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

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

穿模、穿墙

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

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

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

诡异的抽搐

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

老滚5里这种BUG尤其多:

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

数据库出错

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

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

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


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




个人想法。bug就是程序员在编程的时候有些地方可能想得不是很全,没考虑到各种情况。还有可能经验原因吧,或者技术了解不是太成熟,有些地方写出来的有些代码看似正确,但是在特定情况运行就会出现异常




游戏中的bug通常是由程序代码中的错误或者设计问题引起的。以下是一些常见的bug来源:

  1. 代码错误:程序员在编写游戏代码时可能会犯错误,如语法错误、逻辑错误或者算法错误。这些错误可能会导致游戏出现异常行为或崩溃。
  2. 内存错误:游戏中使用的内存可能会出现问题,如内存泄漏、内存溢出或者访问非法内存。这些问题可能会导致游戏运行缓慢、崩溃或者出现奇怪的行为。
  3. 资源管理问题:游戏中的资源(如图像、音频、模型等)可能被错误地加载、释放或使用。这可能导致游戏中出现缺失的资源、错误的资源显示或者资源占用过多的问题。
  4. 并发问题:在多线程或多进程的游戏中,不正确的同步或竞争条件可能导致bug。这可能会导致游戏中出现意外的行为或者崩溃。
  5. 设计问题:游戏的设计可能存在问题,如不合理的游戏规则、不平衡的游戏性或者不完善的用户界面。这些问题可能会导致游戏体验不佳或者玩家遇到困惑。

展开阅读全文

页面更新:2024-02-28

标签:劳拉   可能会   开发者   数值   数据表   模型   异常   内存   错误   情况   代码   玩家   测试   财经   资源   游戏

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top