前些天开会总结下这半年的工作内容和收获,这半年收获还挺多的,也挺忙。总的来说,自己还算比较负责,问题和bugs到我这边后基本都解决,而且明明白白,有些值的学习的都会记录在文档中方便后期查阅。
因为前面几个月还负责另外一件事情,就是之前说过的,负责线上问题(发现问题,分析问题,解决问题)和玩家反馈的问题(确定是不是规则,还是bugs,查日志),从另一方面,因为遇见奇奇怪怪的问题,去思考一件事情的复杂度,是否真的有点过,或者设计实现如何。
就比如游戏上线腾讯平台九个月,海外两个版本四个月,前几天线上玩家反馈一个问题,还是第一次出现,问题大概是几个人组队副本打怪不掉血,而且玩家也没法重现,我看玩家录制的视频几次,因为没有前后,所以猜测怪是不是会有无敌buff。后来QA和相应的策划说在什么情况下确实会有,就根据这个线去尝试复现。这个玩法基础代码是我写的,有几十行代码重载由另外同事负责,所以具体原因还是要不断测试复现。后来具体了解规则就是“在玩家进入一片区域后会在四周上的阻挡,不让玩家出去,大boss在血条剩下百分比多少后,会出两个分身,此时boss给自己无敌buff,慢慢回血,当有人死亡后,阻挡会消失,无敌buff消失的规则是分身死亡…”(不是很明白这种规则),问题复现办法就是,出现分身时,故意让一个队员死亡,然后阻挡消失,其他队员把分身引出一定的范围并击杀,此时boss无敌buff没有消失,再深入规则,只有在一定范围内,分身死亡,无敌buff才会消失,就是这个隐藏的条件,导致距离过远(配置文件中是30好像)在分身死亡时,就只有一次机会取消boss的buff,此时距离过远,所以没办法取消。事后我在想,这种问题确实很难测试,还有就是这种问题其实有两个限制条件:分身死亡,不能离boss太远。但是太远是多少呢?而且有些配置化的东西,程序这边也不大好控制,测试也可能不能覆盖所有情况,简单测试确实没有问题。有点难办。
还有邮件系统,一直出现bug,基本偶现的情况,负责线上问题的时候,发现过两个bug,一个是全剧邮件超时了还能被玩家看到,导致领取时服务端直接返回没什么提示和日志打印,客户端表现是邮件无法删除也领不了奖励,只有下次重新登陆时才看不见过期邮件。另一个是玩家切场景过程中领取邮件,导致邮件被删除奖励没有拿到这种bug,后来分析下流程,里面逻辑有些问题,但总结一点是前面检查条件都没问题了,因为邮件奖励比较丰富,且发放的方式多种,某一种情况下导致发放失败而前面的都成功,在此之前邮件已经删除,所以这里其实没有彻底解决的办法。而且很容易出现状态不一致,也没有在失败的情况下回滚一些数据。一般设计准则是先检查各种条件,然后再尝试发放奖励,肯定是需要记录那些失败那些成功,然后删除邮件,内部系统删除邮件基本不会失败,所以一方面防止多次领取的局面,再者通过补偿那种很少情况出现的失败。
虽然之前听说有外挂,怎么怎么弄,可是我们游戏后来在某个版本才出现有玩家利用外挂的情况,说真的,这种东西一般检查和防御也需要一定的人力和工作量,前提是游戏火了成功了,不然还那么多多时间还不如好好打磨产品,当然这种事情也有两面性。很多逻辑都是服务端来检查和处理的,所以改客户端其实影响很小,比如修改金钱什么的但是服务器那边不通过,修改时间什么的虽然会造成比如很短暂的cd,移动过快等,这些都可以有解决方案的。要是那种单人副本类的,怪这些在客户端自己创建,那么可能会利用外挂顺利很快的通关,但一般可以对上传数据做校验和演算。
通过解决线上问题和定位一些问题,会查看一些相关的代码模块,算是熟悉其他同事写的系统模块,自己也会思考下如果自己写会怎么实现。
到目前为止,经过前面线上项目的总结,虽然还有两三个偶现不知道在什么情况下会发生的问题,能踩的坑基本都踩了一遍,后面再做一款游戏,在美术品质有保证的情况下,策划的玩法系统等好玩留存率和付费率高,那么基本很快可以搞出一款游戏,这些不必过于担心,但给我的感觉是,有些方面还是要着重优化,这是一个长期的进行时事情。
最近事情应该不多,开始新的项目,前期可能还是处理线上问题,顺便看下技能和buff等其他同事主要负责的功能,另外可能业余再学点其他的相关知识。
最后,虽然自己觉得某种方案更好,但因为一些原因无法在具体项目中落实,也不知道如何是好,最终还是希望项目能做好,少出问题。
网友评论