客服

用Python写3A?Cygames的游戏引擎做得怎么样

有句话叫“二流的游戏公司做游戏,一流的游戏公司做平台”。索尼、任天堂、微软这些主机公司,除了推出第一方游戏以外,当然也在维护自家的游戏系统。

undefined

《堡垒之夜》的开发商Epic,也把自家的“虚幻引擎”共享出来,帮自己扩大影响

其实,以《公主连结RE:Dive》、《碧蓝幻想》闻名的手游公司Cygames,也有做3A游戏引擎的野心。

前几天,他们就在日本电子娱乐开发者大会(CEDEC 2020)上面,介绍了内部研发好几年的游戏引擎“Cyllista Game Engine”。

undefined

正在使用“Cyllista Game Engine”开发的3A游戏《Project Awakening》

这个引擎的目标,是用“简单的脚本语言写3A游戏”。根据演讲者的说法,这将是一个 “让开发者的效率发挥到极限,最棒的游戏引擎”。

undefined

Cygames游戏工程师冲幸太郎,正在开发“Cyllista Game Engine”

然后实现这一目标,游戏编写过程就必须足够简单与快速,支持一边编写,一边测试与迭代的高速开发方式。

同时,引擎用的语言,会用的开发者是越多就越好。于是他们,就把这几年人气最高,最为常见的Python作为编程语言了。

undefined

在各种编程语言排行榜上,Python都排在前几位

毕竟Python好学易懂,入门门槛低。这几年人工智能、机械学习的火爆,也带来了一大批新入门的学习者。

接近自然语言的写法,能够大幅提高开发的速度。大量的第三方包,与Pycham这种成熟的IDE工具,也给用户省下了“重复造轮子”的时间。

undefined

甚至连地产大亨潘石屹,都跑去学Python了

但Python还是有软肋的——作为一门解释型语言,Python的执行速度比较慢。所以在大型游戏制作的工作当中,Python基本上只是辅助工具,帮助完成测试。

操作游戏引擎的常见代码,一般还是需要用C++、C#这种编译型语言编写。采用Python作为编程语言的游戏引擎Pygame,主要服务的对象,也是对延迟要求不高的2D游戏。

undefined

使用python开发的文字冒险游戏《心跳文学部》(使用基于pygame的renpy)

虽然还在内部测试阶段,但“Cyllista Game Engine”里面,从资源管理器,到关卡设计工具,几乎所有的工具,都用Python写成。

为了解决Python的执行效率问题,Cygames的做法,是引入“NumPy”这个数学库,处理对延迟敏感的任务。

undefined

加入Numpy以后,循环处理快了200倍

为了进一步优化速度,他们还利用pybind11优化了C语言库调用。Python并行处理不行的弱点,他们也计划用multiprocessing回避。

undefined

作为一个现代引擎, “热重载”功能自然也是少不了的。CY引擎做到了随时修改代码、让效果立即在游戏中呈现。

undefined

至于游戏菜单这种操作界面(GUI),则采用了Qt for Python(PySide2)。虽然QT库的Python文档不多,但C++ QT的文档也能用。

undefined

总结起来,就是Python虽然很热门,但是作为游戏开发语言,有速度上的不足。但这些问题,Cygames经过数年开发之后,都想出了办法解决。

可以看到,以“不务正业”闻名的Cygames,拿到大家氪金的钱以后,除了发奖与做动画,也在做对业界有益的长期准备。

本次报道就到这里。对CY游戏引擎,大家有什么期许或评价,欢迎留言讨论。

另外,像《碧蓝幻想》或《公主连结RE:DIVE》这些Cygames手游,在OurPlay里是可以玩的哦。 

相关新闻
发现好游戏
游戏专区
游戏详情