现在什么手机游戏最火? 不用问,肯定是人人都在撸的“王者荣耀” !但是只会打游戏,不去研究可不行。一直在想,像王者荣耀这样火的游戏是用什么引擎和语言开发的?今天笔者就去找了一些相关的资料,整理出来了一篇小短文,分享给大家!
开发引擎——Unity3D
Unity3D是个游戏引擎,是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。这个引擎毫无疑问是用的C/C++。但是作为游戏开发者,比如腾讯或天美,他们要做的就是利用这个开发工具。具体说来,游戏中的人物,场景,特效等是用的诸如Photoshop,3dsmax等软件建立2D/3D模型。Unity3D游戏引擎,就像是个播放器(player),可以运行在Windows,安卓,iOS,浏览器。我们用C#写游戏脚本,就好像使用视频制作软件做个视频,只要有播放器,它就能播,而不用管是什么操作系统。
这涉及到软件中一个跨平台概念,所谓的跨平台就是代码在一个平台上实现了,移植到别的平台可以继续使用,java刚开始流行的时候很大一个特点就是跨平台,写的java代码既可以在windows平台上运行,也可以在linux平台上运行,在mac平台上也可以,具体平台对接工作在环境中已经配置好了,所以在王者荣耀的app解压之后能看到dll文件,这就是在windows平台下生成的动态库文件,然后通过Xamarin转化成jar包供java直接来调用,由于中间层做了转化,所以在配置不高的手机上游戏还是比较卡顿,对硬件的要求比较高。
下载王者荣耀的apk文件解压,从那些dll文件就可以看出,王者荣耀客户端背后肯定是Unity3D是主要技术栈。
王者荣耀的前台客户端主要用C#开发
其次就是王者荣耀的前台客户端了,王者荣耀的编写主要还是windows平台上完成代码,主要用c#完成。C#本身是微软公司发布的一种面向对象的、运行于.NET Framework和.NET Core(完全开源,跨平台)之上的高级程序设计语言。我们用C#写游戏脚本,就好像使用视频制作软件做个视频,只要有播放器,它就能播,而不用管是什么操作系统。意思就是我们用C#写王者荣耀,游戏被开发后即可适用于大部分手机平台,手机的兼容问题就会比较小,这就是所谓的跨平台。C#现在在市场上也是广泛用于游戏脚本的开发,对于游戏脚本,C#还是比较有优势的。
核心后端服务是用C++开发的
虽然王者荣耀的游戏开发用的是C#写的脚本,但在涉及到性能地方还是c/c++来完成,毕竟对于游戏来讲性能也是非常大的一个技术指标,当然要开发程序需要遵守Unity3D引擎的规则。其实在日常过程中大家可能更加关注游戏客户端本身,后台的服务器的负载和并发能力容易被忽略,游戏讲究是一种极致的体验,如果服务器端配合不顺畅照样玩起来不爽。这款游戏的后台服务器数量达到了几千台,并且数据之间还要流畅的通讯,同时还需要场景备份,这就要求王者荣耀的后台服务器能够完美承载这么多数据,这一点非C++不可,因为太性能上C++有无可比拟的优势。另外想要成为一个优秀的、有能力程序员,做软件开发的话,就来学习C/C++吧,这里我推荐一个C语言C++交流扣裙,--78,414;31,33,不管你是大牛还是小白,大家都一起成长进步。不然的话你打一局游戏动不动就卡顿,你想想是什么心情?
所以现在C/C++就是腾讯公司的核心技术语言。
总的来说,王者荣耀的游戏开发引擎就是Unity3D,前台客户端是用C#开发、核心后端服务是用C++开发的。谢谢阅读!
领取专属 10元无门槛券
私享最新 技术干货