吃鸡游戏火爆全球,已经把腾讯的《王者荣耀》都比下去了,有传言,腾讯给“王者荣耀”开发团队的年终奖就超过了100个月,有的达到了120个月。如今,吃鸡游戏火爆程度,他们团队到底拿了多少年终奖呢?
但你知道吗?你热爱的“吃鸡”可能是用Python写的。学会这门编程语言,你是不是也离120个月年终奖更近一步了呢?
?
网易的两大游戏客户端引擎,NeoX 和 Messiah,都是使用 Python 作为脚本语言的。具体来说,服务器端可以说是完全Python,毕竟能够热更新的Python可以不停服!当然游戏的客户端核心引擎部分,还是用C++,一些类似基本渲染还是用C++来实现的。
那么,为什么游戏引擎以Python为核心,Python用途到底还有哪些?今天我们就来看看。
1
恰好我目前所在的项目,用的就是 NeoX,服务端用 MobileServer,这两个都以 Python 为核心。
很多人应该不了解所以简单说下,算是交流交流。
游戏服务端
完全 Python。
纯粹的 Python 有相当多的优势,各个项目组在分享经验的时候,常常说到 XXX 天不停服。
越是火的游戏,就越是一天 24 小时都有人玩,任何时候停服都是损失。
这时候热更的优势就体现出来了。而用 Python 实现热更也是非常自然。
游戏客户端
核心引擎部分当然是 C++,但是提供的功能很少。
只有基本的渲染,和一些为了提升速度而用 C++ 实现的库,比如数学库。
所有的逻辑全部 Python 实现。用惯了 Python 来写逻辑之后,是不太想用其他语言的。
2
以我所在的公司来说,前后端基本都是以Python 写业务逻辑,少量很旧的游戏用的是Lua。但是核心代码,也就是引擎都是C++写的。
对于客户端来说,主要负载在于渲染,不在于业务逻辑,实际性能测试来说,玩家正常操作下,脚本每帧耗时大概在百分之3以内。手游客户端的主要难点在于安卓碎片化的兼容、渲染合批优化、界面打开顿卡的优化、内存泄漏以及耗电。
对于服务器来说,游戏服务器的主要难点在于跨服操作、协议数据的解析、服务器战斗结算和客户端同步问题。服务器的主要性能消耗点在于 协议数据解析、协议数据的加密和解密、服务器场景的AOI、服务器寻路。
一般来说为了能够让服务器能够承受更多的玩家,很多计算是会分包给worker线程,多进程,甚至有的是放到CGI服务器去做的,比如协议数据的加密和解密。这些核心逻辑,基本都不会变,因此一般都用C++写的,然后上层包装Python。具体某个游戏的后端业务逻辑就是用Python来写。
之所以用Python写,原因也很简单,因为游戏的业务逻辑代码寿命往往都不是很长久,游戏策划需求变动很大,各种节日或者促销活动的加入也需要快速开发。另外,游戏客户端对实时更新代码的需求非常大,因此基本都有Patch机制和代码运行时热更新机制。而这些机制,用Python这类脚本语言也是非常合适的。
3
Python不仅已经成为数据分析、人工智能领域必不可少的工具,还被越来越多地公司用于网站搭建。Python 方向岗位的薪水在水涨船高,成为目前最有潜力的编程语言之一。
当我们思考应该找哪一门语言入门时,Python是个不错的选择。Python是一门比较简单的编程语言,同时具有极高的可读性和灵活性,最近它已经成为大学院校在教授计算机专业时选择的入门语言之一。
Python 是一门对新手友好、功能强大、高效灵活的编程语言,学会之后,无论是想进入数据分析、人工智能、网站开发这些领域,还是希望掌握第一门编程语言,都可以用 Python 来开启无限未来的无限可能!