【好奇系列】LOL pc端技术栈研究

以前的LOL客户端更像是传统的游戏普遍的客户端,实时互动的内容不多,而新客户端却更像是浏览器的一个个网页。

老版的客户端开发运用到了AdobeAir,但是后面随着LOL的发展,老技术已经出面了很多的问题,例如玩家在进行一场游戏的时候,希望保持登录,接受好友请求等,旧有的技术占用资源过高。

LOL新界面
LOL的版本更迭很快,很多新功能需要添加,所以开发一个新的客户端就不得不提上了日程,这时候利用HTML5和JS来开发客户端是一个比较成熟的选择,所以新版的LOL客户端前端UI用到了HTML5和JS的渲染技术,业务逻辑和后端通信则是利用C++来处理。

所以我们看到LOL客户端的主界面的每一个操作就好像是一个个的链接,我们点击鼠标打开商店的时候,有时候会有一个刷新过程,并不是客户端设计的不好,实际上新版客户端设计的远比旧版要好。

前端的开发,用到了嵌入式Chromium框架,也就是简称CEF的东西,CEF基本的框架包含C/C++程序接口,,通过本地库的接口来实现,而这个库则会隔离宿主程序和Chromium&Webkit的操作细节,支持HTML5等技术,可以实现JS、HTML5、CSS的解析。

通过新的架构,用户可以实现很多的功能,各个模块是既有独立又有关联的,它们之间又通过某种机制保持通信的畅通,调用本地的英雄图片和声音资源,与好友联系,对局中的状况等都不会受到影响。

启动lol后台进程
LeagueClient(主进程,承担前端、后端插件、与服务器通信)、LeagueClientUx(CEF承载进程,负责前端容器逻辑处理和LeagueClient通信)、LeagueClientUxRender(CEF承载进程,CEF承载进程,负责界面渲染等)。

因为前端和后端相互不受影响,这样我们在进入到游戏对局的时候,就可以选择把游戏的客户端关闭,如果你在游戏内的帧数较低、电脑配置较低,可以选择在设置中勾上这个选项,有利于玩游戏时的顺畅。

总结
技术栈:
前端:嵌入式Chromium框架下-JS、HTML5、CSS;
后端:C++;