第九章 冲刺期的第一个Bug
5月3日,立夏前三天,洛阳的气温毫无预兆地窜到三十度。
宿舍的电扇坏了,叶片有气无力地转着,搅动一室闷热。
李君宪盯着屏幕上那个诡异的bug,额角的汗滑到下巴,滴在键盘的空格键上。
bug描述很简单:当玩家在“无事可做”
状态下静止超过两分钟,然后移动,时间系统理应恢复正常流速。
但测试时,有四分之一的概率,世界时间会卡在某个随机倍率——可能是0.5倍慢放,也可能是10倍快进,再也回不到1.0。
更诡异的是,这个bug无法稳定复现。
李君宪测试了二十次,只出现了三次。
陈末在北京测试了三十次,出现了八次。
林薇用自己的电脑测试十次,一次都没出现。
叶晚测试五次,出现了两次。
苏语没装开发环境,没法测。
“像是时间系统的状态机在某个边缘情况下死锁了。”
陈末在语音会议里说,背景是清脆的键盘声,“我打了日志,发现bug出现时,world.timescale的值会被写入一个非法的浮点数,有时候是nan(非数字),有时候是inf(无穷大)。
但不知道触发条件。”
“和渲染线程的同步有关吗?”
李君宪问。
他的代码里,时间系统和渲染更新在两个不同的线程里跑,靠锁同步。
这是为了性能,但也埋下了隐患。
“有可能。
我加了更细粒度的日志,今晚跑通宵测试,看能不能抓到现场。”
陈末顿了一下,“但即便找到原因,修复也可能需要重构时间系统。
距离5月10日的节点只剩七天了。”
压力像一层透明的膜,贴在皮肤上。
宿舍里更热了,李君宪能闻到机箱散热口喷出的焦糊味——那台三千块攒的老爷机,在连续四十八小时高负载后,终于开始抗议。
“先不管这个bug。”
林薇的声音进来,背景是画笔在纸上的沙沙声,“遮罩图的alpha通道我做好了,但导入工程后,窗框边缘的渐变在有些机器上会出现锯齿。
叶晚,你那边显示正常吗?”
“我……我这里正常。”
叶晚的声音有些犹豫,“但我电脑配置低,可能看不出来。
林薇姐,你把图发我,我用我的电脑再试试。”
“好。
另外,磨损素材的随机组合系统,我写了简单的测试程序。”
林薇继续说,“但发现一个问题:如果每次开局场景的磨损程度都随机,会破坏‘积累感’。
玩家今天擦干净的桌子,明天开局又脏了,就没有‘经营’的实感了。
我建议改成:磨损程度在第一次开局时随机生成,之后存档,每次读档沿用同一套磨损。
这样,这个世界会‘老’下去。”
“同意。”
李君宪记录,“但存档系统还没做,这是个远期目标。
本章未完,点击下一页继续阅读