年初时,我们承诺会每两个月与大家分享一次,《英雄联盟》客户端性能改进的最新幕后进展。
我们坚持不懈地进行客户端代码的清理工作。稍后还会和大家介绍在过程中我们干掉的那些恼人的bug。成果尽管显著,但前路依然漫长。客户端的清理工作任重而道远。
近期成果
我们在第一篇文章中就说过,解决客户端性能问题的最佳方式,应该是合并与删减客户端中的插件与ember应用。
为不熟悉的朋友们解释一下,插件是可以将客户端代码分解为有效模块的工具。而ember应用则可以驱动用户界面。
朝着这个目标我们不断前进。下方图表展示的是客户端插件与ember应用数量的变化情况。
看过上方图表之后,你可能觉得“挺好,但是对客户端性能究竟有什么影响呢?”一两句话很难说清,但总的来讲:插件和ember应用数量越少,说明客户端代码效率越高。而高效的代码不仅能提升客户端的性能,也更便于开发者的维护。
检测客户端启动需要的时间是我们衡量工作效果的方式之一。下图可以看到这一数值的变化情况:
不难看出,过去几个月中游戏启动时间基本保持稳定。考虑到工作本身存在的风险,可以说这已经比较成功了。不加倍谨慎的话,像这样把大块代码搬来搬去并重写插件,很容易导致无法预料的问题 —— 但目前看来一切顺利。
接下来的几个版本中,启动时间很有希望得到进一步的改善,特别是我们已经可以确认启动过程的任意时刻正在加载哪个插件。(最近讲解客户端的文章当中有关于这方面的深入讨论,在“Affinity的问题”这一部分下面)
目前的计划是,合并工作至少会再持续几个月,因为我们认为插件与ember应用数量的降低有着深远的收益 —— 完成代码环境整体清理后,无论是bug,内存泄漏还是崩溃等问题都更好解决了。
既然说到bug和崩溃,来看看我们进行的一些修复吧。
近期修复的一些BUG
客户端团队一直在伺机解决之前积累下来的大量bug。从10.13版本起,《英雄联盟》补丁说明中会单独加入客户端bug修复部分。
先带大家看看今年以来开发团队逐个版本所解决的一些客户端bug吧:
● 10.1 - 修复了“开始游戏”按钮旁的《英雄联盟》图标有时会消失的问题
● 10.1 - [MAC]修复了断开连接超过1分钟后重新连接网络有时会导致客户端崩溃的问题
● 10.1 - 生涯页面的背景变化可以被其他玩家正确看到
● 10.3 - 在战利品页面开启海克斯科技宝箱后点击商城,它的图标现在会正确高亮显示
● 10.3 - 调整藏品页面的显示顺序,不再默认为“字母降序排列”
● 10.3 - 藏品页面中按照“已经历的历程点”排序现在正常生效
● 10.4 - 修复了在英雄选择阶段采取某些操作(删除/被删除好友,被拉黑)会导致好友面板与聊天窗口失灵的问题
● 10.4 - 藏品页面中又可以使用英雄别名进行搜索了
● 10.4 - 在藏品页面中搜索英雄不再区分大小写
● 10.4 - 现在藏品页面中可以准确按字母顺序排列英雄
● 10.4 - 点击“再玩一局”后,玩家在查看个性化内容时进入游戏,客户端不再显示黑屏
● 10.5 - 移除了藏品页面英雄栏底部多余的滚动条
● 10.7 - 修复了自定义房间中“发送好友请求”按钮无效的问题
● 10.7 - 在冠军杯赛页面浏览之后的比赛时,“查看赛程”信息界面不再模糊不清
● 10.8 - 未作保存退出表情面板时,现在会正确弹出保存提示
● 10.8 - 退出游戏结束页面不再将玩家带到生涯页面
● 10.8 - 现在登录客户端后会正确显示召唤师图标
● 10.9 - 修复了一个导致“蓝色近战小兵”召唤师图标无法选取的问题
● 10.9 - 修复了一个已拉黑玩家的名称在黑名单中无法显示的问题
● 10.9 - 进行多项修复,解决了老版ember导致内存泄漏的问题
● 10.10 - 修复了一个登录游戏时符文页会丢失或被删除的问题
● 10.10 - 现在点击“开始游戏”按钮后符文页会自动关闭
● 10.10 - 重新排列符文页不再会出现重复的符文页或引起客户端崩溃
● 10.10 - 修复了一个部分玩家无法编辑符文页的问题
● 10.11 - 现在关闭设置窗口时,“低配机器适应模式”与“在游戏时关闭客户端”选项会正确保存
● 10.11 - 修复了藏品页面中“皮肤品质”按钮部分变为空白的问题
● 10.12 - 修复了几个导致英雄选择界面中符文页无法正常生效的问题
目前就这么多了!大家如果想报告bug。还可以随时点击客户端右下角的“报个bug”按钮进行反馈。
下一步
在改进客户端的过程中,我们一直问自己一个很基本的问题:《英雄联盟》客户端配得上广大的玩家吗?
当然,答案是否定的。至少在现阶段是这样。
要解决的bug还很多,崩溃尚未杜绝,深层的架构顽疾也等着我们去铲除。在能够坚定地说出“客户端配得上我们的玩家”之前,年初开启的这次改进行动永远不会停止。
这个过程需要时间,而我们会不断与大家分享最新的消息。接下来的几个版本中,我们打算继续合并插件与ember应用,bug见到多少消灭多少。希望下次和大家分享相关消息时,清理行动已经准备开启全新的阶段了,届时英雄选择界面的响应性能会是我们的重点。