一款游戏的爆火原因是多方面的,但技术作为基础性原因,发挥着至关重要的作用。

英雄联盟冷门的原因分析(英雄联盟爆火13年)(1)

10月8日,2022英雄联盟全球总决赛S12正式揭开战幕。在首日比赛中,来自中国LPL赛区的JDG和RNG分别战胜来自北美LCS赛区的EG和来自韩国LCK赛区的GEN,获得俱乐部在此次赛事中的开门红。而EDG则以0:1不敌来自韩国LCK赛区的T1。

自2011年创办以来,S赛已成为《英雄联盟》每年最具影响力的赛事。iG、FPX和EDG等国内知名俱乐部曾先后在赛事中问鼎。而此次LPL赛区的四支战队也将代表中国赛区向第4个“总冠军”发起冲击。

2022年,不论是EDG夺冠引发的全网热度爆发,还是《双城之战》席卷全球的动画热潮,还有广为流传的“儿歌”孤勇者,都源自这个发展已经超过10年的IP——《英雄联盟》。自2009年诞生以来,《英雄联盟》距今已经运行近13年。尽管游戏在全球市场出现过阶段性颓势。但如今仍是国内最受欢迎的MOBA类端游。

对于一款游戏而言,长久存活或许并不罕见,但难免会因为玩家的流失度过巅峰期,亦或是成为小众,运营超过10年的《英雄联盟》以及它背后的多元生态,能不断走进大众视野,成为茶余饭后的谈资,甚至是社会现象级热点,这一点着实不寻常。换句话说,《英雄联盟》已经突破了游戏范畴,它所构建的生态和社会文化已然相融,并在不断并发出新的生命力。

英雄联盟冷门的原因分析(英雄联盟爆火13年)(2)

一款游戏的持续火爆,离不开技术开发、内容、运营的大力支持,包括游戏本身的公平性、精美的形象设计、与时俱进的背景故事、专业化的竞技赛事等等各方面因素,总之,开发团队精心的策划与设计成就了这款长盛不衰的作品。

下面,我们就从技术相关角度分析一下,游戏开发需要具备哪些技术和知识。

数学基础:一名优秀的游戏开发者,需要具备一定的数学基础,这个要根据内容来定,一般上层逻辑很少考虑到积分等高等数学内容,但如果内容包括图形学,就需要设计者具备矩阵线性代数、高数等知识功底。

算法知识:常见的基本算法知识包括排序、分治、贪心、动态规划,除此之外还包括一些非常见的算法,如八叉树查找,碰撞检测等,还有一些算法需要开发者自己去寻找。

C语言:这里主要是C++,基本语法,模板,代理,命名空间,const,继承,内存结构,虚表,引用,断言,宏定义等。

英雄联盟冷门的原因分析(英雄联盟爆火13年)(3)

数据结构:在数据知识方面,游戏开发者需要掌握一定的链表,数组,队列,堆,栈,图,树等数据结构知识,然后是各种排序,查找,遍历等算法知识。

设计模型:一般来说,游戏开发需要设计模式来快速搭建游戏逻辑框架,还要通过设计模式来理解引擎各个模块的设计思路,如果想设计游戏引擎,设计模式更是少不了的。

引擎模块:游戏开发需要对引擎模块了如指掌,最好是熟知游戏引擎架构,如果不理解引擎模块,写出来的代码经常会出现各种问题(比如同步问题),编辑器等各种功能也用不好。

内存管理:尽管很多引擎或者语言能够帮助解决内存问题,但免不了在特殊情况下需要自己动手处理,内存池技术,各种C++的使用,都是需要精通的。

开发工具:这里并不是指只是对某一个引擎熟练使用,而是对不同引擎相关的内容都有一定理解,可以很快触类旁通。

编译原理,链接,第三方库:游戏开发过程中,经常会遇到各种链接错误,编译错误,打包错误,这需要你有一定的知识或经验去解决它们。

性能分析与优化:这块的技能主要涉及三个方向——内存,CPU,GPU。可以从渲染批次、渲染实用化、布料优化、网络同步数据量、物理开销、加载资源优化、裁剪、声音文件加载,LOD,美术资源制作规范化等方面着手,调试的时候可以使用引擎内置工具,进一步的细节,可以采用Intel的VTune工具。

对游戏有一定的了解:虽然不玩游戏也一样能参与游戏开发,但玩过游戏的人还是有优势的。玩过游戏的人对游戏会有更多的想法与意见,也习惯去主动学习其他游戏的技术与优点。(程序这样,策划更是如此)

开发经验:这个就比较宽泛了,只言片语难以说清。比如,你的游戏莫名出现了一些bug,新手完全无从下手,而有经验的人会有各种手段去调试并解决。经验丰富的老手有时抵得上N个新手,所以这就需要大家不断学习与实践。

游戏逻辑模块系统:游戏玩法核心,包括各种武器,状态,技能,背包,战斗等逻辑系统。

动画模块系统:包括状态机,Montage,动画融合,IK等。

物理模块:给需要交互表现的对象赋予物理特性(包括刚体,流体,粒子,布料等),调整重力大小等各种参数,调整交互中力的大小,调整物理约束。

AI模块:AI导航,与玩家交互等,玩家的很多功能系统也需要给AI来使用,更深层次的可以考虑将机器学习相关的内容融入。

UI模块:搭建各种界面框架(背包,捏脸,地图等),非常耗时间与精力,后期需要不断调整。

英雄联盟冷门的原因分析(英雄联盟爆火13年)(4)

渲染模块:客户端表现的核心,不用多说,内容非常多且深。

网络模块:底层架构,同步,网络连接。

场景模块:包括地形,关卡,植被,角色管理与优化等。

输入与输入处理模块:将玩家输入处理转换成逻辑,需要注意的有组合键,输入法切换等。

游戏登录与更新:一般由专门的工具组来做,比如我们常见的各种游戏登录器,在线更新等。

此外,一款游戏的设计,还需要美术,策划,程序人员的共同参与。

一款游戏的爆火原因是多方面的,但技术作为基础性原因,发挥着至关重要的作用。尤其是C语言、javascript脚本语言、数据、算法、开发引擎、AR和VR等相关知识的应用,很好地保证了游戏产品的正常运转。一个游戏开发者就是半个程序员,所以,学好IT相关知识,也许未来你也可以创造出像《英雄联盟》一样的传奇游戏。

,