本来打算在十月底写一篇关于游戏设计的文章,结果碰到一个严重的问题,决定分享一下。
游戏服在启动时需要加载任务数据,下图是加载过程中的一段代码
任务数据是通过excel管理和配置的,如下图所示
- 以前的同事在判断ContentType时,认为这个值只有两种可能,所以在else判断中没有判断是否为1的情况。
- 策划决定给游戏添加新的任务功能,扩展了这个值的范围,新添加了12、13、14。
由于以下的因素,导致了游戏服出现严重的事故:
* 游戏定于周一更新,因此上周六加班来测试和一些收尾工作
* 策划A在dev分支编写了用于测试的excel数据表
* 然而在周六,编写这个excel表的策划A没有来加班,其它的同事B在不知情的情况下将测试用的excel表合并到了stable分支
* 编写任务逻辑的同事早就不在了,因此没有人观察到ContentType出现了既不为0也不为1的情况,这种情况导致了一些不应该出现的成就任务被触发了,多给了一些玩家几千元宝
* 这些成就任务很早以前就被废弃了,但是一直没有从excel表移除,一直在通过其它策划维护,不让它被触发
最终决定将所有游戏服数据回档,坑了不少人。
时间太紧,哪天再修改和详细描述一下。