对于游戏开发过程中的任务“耦合”,最近感触颇多,多说几句。这里描述一个场景:
明天要发布某个游戏版本,现在有个功能模块中发现了一个Bug,会导致女性角色能穿上男性角色的服装。当然大家都不希望老板因此而不爽,所以Team Leader A去告诉负责Avatar系统渲染的Programmer B去检查问题(为什么找B而不是其他人,请自行想象),B检查20分钟之后发现这是数据错误,也就是说服务器方面发过来的数据就是错误的。B接着通知A他的测试结果和发现的原因,然后又去改另外一个Bug。A接下来去找负责服务器上角色逻辑处理的Programmer C,C检查了2个小时之后发现这不是代码里头的Bug导致的而是个数据问题,也就是说数据库内保存的某个物品数据的类型数值和外观并不匹配。C通知了A,A又去找负责维护游戏设定数据的Designer D,D打开自己的Excel之后检查了一个小时,才找到一个数据填写错误——只是该填写为2的一个单元格填成了1而已——问题终于找到了。
D改好这个有问题的Excel表格之后提交到svn,再通知A和Programmer E,E更新了Repo. 内的数据之后再把表格导入到数据库,然后再删掉已经有了这种‘非法的道具’的所有角色数据库内的记录,然后再通知C重新启动服务器组——问题就快被解决了,只要再做测试去验证一下。
这个情景想必大家都比较熟悉。谁都不会因为添错一个单元格这点儿小事儿对肇事的策划发一顿脾气,我猜你们那儿就不会,对吧?尽管整个团队可能就因为这点儿小事儿白白浪费掉几个小时。但是多数时候都没人去计算类似事情的成本,更不去考虑如何改进。
我们试试看如何改进:
- 策划的数据表Excel是可以添加数据‘有效性’限制的,同时可以做绝大多数运算,所以也能利用这个功能检测出绝大多数错误;
- 程序在加载数据的时候,应该附带必要的合法性检查,何况在系统启动时做检查的开销并不算昂贵;
- 是否可以让策划自己修改Excel、修改DB表、重启测试服务器、并且接着验证自己的修改结果?对于专业从事游戏开发的人来说,学会这些想必不难;
这个问题的关键还是任务存在大量的任务耦合,我们确实需要任务分配、团队合作,但是不能过度,否则沟通成本会上升到过分的程度、而且带来不良气氛、降低工作效率。我们的工作中存在大量不被察觉的可怕的效率低下,如何改进,非常值得思考。发现、设计、改进工作流应该是主要问题之一。
{ 1 } Comments
顶你。现实中的确经常遇到这类问题
Post a Comment