Unity3D培训
美国上市Unity3D培训机构

400-111-8989

热门课程

游戏开发程序员如何查bug解决问题?

  • 发布:达内untiy3d编辑001
  • 来源:Unity3D教程
  • 时间:2018-08-20 15:05

一般情况,bug都是由人为设计考虑不完善或者手误导致的,游戏开发程序员如何查bug解决问题?归根到底,想解决一个问题,必须要能重现问题,可以反复重现的bug,才能让你在解决完以后,验证问题已经被解决。

游戏开发程序员如何查bug解决问题

在开始入行游戏开发之前,我曾经参加过一个历时四年的航天项目开发,也是这次宝贵的经历,让我接触到了好几个航天研究所的老工程师,因为项目从射频,基带,嵌入式计算机,控制软件等多系统的同时开发和联合调试,各部分的开发人员知识点相差非常远(就是不太懂别人在做什么),一旦整个系统出现bug,如何定位和解决问题,成了系统工程中非常关键的能力。

掌握这种能力,让我在后来的游戏开发中提高了很多效率,我也一直在团队内部分享这个经验,这不能保证做出好玩的游戏,但至少可以保证一个游击队一样的小团队,能在能力和资源有限的情况下把游戏做完,很多游戏开发者都感叹,如果你的游戏做完了,那你已经超越了90%的游戏项目。

这方法到底是什么呢?

就是一个词:重现。

归根到底,想解决一个问题,必须要能重现问题,可以反复重现的bug,才能让你在解决完以后,验证问题已经被解决,下面说一下几个关键的步骤。

先从基础原理说起,不讲具体的调试技术。

这个原理很像计算机软件开发常用的快速排序法(文末有链接),也就是二分法。

先随便把整个带有问题的功能块切两半,看看问题出现在哪一半,然后再切两半,最终把问题夹在一个很小的代码区域,就可以通过阅读代码思考问题原因了。

一般情况,bug都是由人为设计考虑不完善或者手误导致的,只要定位了bug原理,解决起来并不困难,不过,在解决后,还要多做一步验证,就是把解决问题的代码恢复成bug时的状态,再看一下bug是否又再次出现。如果bug定位准确率90%,通过这样一个反复的过程,可以把故障解决率提升到99%,这看起来有点啰嗦,但是在一个复杂的系统开发中,是可以总体提升很多效率的。

这里还有一个非常管用的具体操作方法,我管它叫一页纸方法。就是先召集所有相关的工程师,讨论可能引起bug的功能区域,把这些需要验证的功能区列出来,再在第二列上写出验证的具体步骤,每验证完一个功能,就画上对勾,这样都验证完就可以在一页纸上一览全局,非常利于快速定位问题。

然后再对包含问题的部分,再来一页纸进行测试,直到问题解决。

上面说的方法其实适用于所有软件项目工程,下面再具体说一下和游戏开发非常相关的常见调试方法。

用unity来举例,常用的方法无非是以下几种:断点单步调试,打日志观察数据变化,在屏幕上绘制ui显示,还有调整timescale等等,大原则就是把程序的运行进行可视化,可以稳定观察,才能解决问题,绝对不能靠瞎蒙的方式,胡乱写新代码掩盖bug,会给整个工程带来灾难。

最后,总结一下,我觉得在实战中,解决问题最最关键的是靠方法,可以在动手前,把各种想测试的方法也写在纸上,每测试完一个就划掉,直到遇到对的方法和结论。

在机器学习非常厉害的今天,我觉得程序员最大的价值,就是做机器做不了的事情,解决问题的能力应该就是其中之一吧。

感谢大家阅读由Unity3D职场分享的“游戏开发程序员如何查bug解决问题?”希望对大家有所帮助,想了解更多培训信息请关注Unity3D培训机构官网

免责声明:以上内容仅作为信息传播,文中部分信息来源于互联网,仅供阅读参考。

预约申请免费试听课

上一篇:unity3d开发有哪些好的辅助工具?unity3d开发软件有什么?
下一篇:Untiy游戏开发使用什么架构?
游戏角色阴影如何用Unity3D添加?

游戏角色阴影如何用Unity3D添加?

Unity 2018.3一次开发支持多个VR平台

Unity 2018.3一次开发支持多个VR平台

Unity3D游戏开发使用的架构

Unity3D游戏开发使用的架构

Unity Profiler 真机调试以及函数耗时教程

Unity Profiler 真机调试以及函数耗时教程

选择城市和中心
贵州省

广西省

海南省