《黑神话:悟空》揭示:国内3A游戏开发的语言困局与希望之火

原文标题:爆火的《黑神话·悟空》是用什么编程语言开发的?

原文作者:图灵编辑部

冷月清谈:

**《黑神话:悟空》的开发语言**

备受瞩目的国产3A单机游戏《黑神话:悟空》采用虚幻引擎开发,其底层源码主要使用**C++**语言。

国内软件开发的语言现状

在中国软件开发行业,Java和Python占据主导地位,而C++开发团队较少。原因在于C++学习曲线陡峭,开发周期长,导致企业在快速迭代的市场环境下难以选择C++。

《黑神话:悟空》的启示

《黑神话:悟空》的成功,展现了国内3A游戏开发领域的潜力。同时,也凸显了国内C++开发人才短缺的问题。

对软件行业的期许

希望国内能够涌现更多使用C、C++等编程语言开发的基础设施软件的开发者,打破国外垄断局面。

推荐阅读:

  • 《C语言程序设计现代方法(第2版•修订版)》
  • 《明解C++》
  • 《深入理解C#(第4版)》
  • 《Unity 3D游戏开发(第3版)》

讨论区:




怜星夜思:


1、国内游戏产业发展面临的挑战是什么?
2、C++在国内不受欢迎的原因是什么?
3、如何培养更多国内的C++开发人才?




原文内容



最近这个“黑神话·悟空”真是火的一塌糊涂,这款被誉为中国第一款 3A 制作的单机游戏,凭借其惊艳的画面、流畅的战斗体验和深厚的文化内涵,属实是火出圈儿了,连央视、外交部都纷纷点赞了。

关于这款游戏的制作和文化咱就不聊了,今天咱们聊聊另一个话题。

话说,你知道黑神话·悟空这款游戏是用什么编程语言开发的吗?

答案主要是C++(也用到C#和其他语言)

根据游戏开发公司游戏科学官网的显示,《黑神话:悟空》游戏使用的是虚幻引擎(Unreal Engine):

图片

而这个引擎的底层源码主要使用的就是C++。

开发这款引擎的是Epic Games,一家来自美国的游戏公司。

虚幻引擎属于开源项目,大家自己学习或者开发一些免费的东西是可以直接用的。但如果要开发像《黑神话:悟空》这样的商业产品,那就得给钱了。按照他们的协议,当产品销售超过 100 万$时,就要付 5% 的版税。

悟空的销售早就超过这个数了,所以现在每多一个人购买这款游戏,就会有 5% 进入到这家公司的钱包里。当然这种算法可能有些粗糙,在不同平台还有平台抽成,但大体是这么个意思,每销售一次,就会有一笔钱进到这家公司的账户。

我在微博、知乎、公众号很多平台看到大家都在感叹,国内的游戏公司很少愿意投入到这样的 3A 游戏制作,投入太大、周期长、收益不确定,导致大家都更愿意做投入小、来钱快的网游、手游,做一些奶头乐的游戏,而这类游戏,往往很难承载起文化传播的重担。

确实是这样,过去的十几年里,中国的游戏开发者们大多集中在网游和手游领域,原因很简单——来钱快。网游可以通过内购和会员制等方式持续盈利,而手游更是凭借短平快的开发周期和庞大的用户基数成为了香饽饽。

每次看到这样的评论留言,我就想到咱们软件开发领域其实不是一样的吗?

在中国的软件开发行业,Java 和 Python 几乎成为了开发者的首选。无论是互联网公司开发的各种应用,还是传统企业的信息系统,这两种语言无处不在。为什么它们如此受欢迎?原因很简单:Java 和 Python 的学习门槛低,开发速度快,并且有丰富的生态系统和社区支持。这让企业能够迅速推出产品,抢占市场份额,迎合快速迭代的商业需求。

再来看 C++,国内做 C++ 开发的团队实在是太少了,企业想招聘一个合适的 C++ 人员往往要付出更多的时间和成本。这里面有多方面的原因,一方面 C++ 学习曲线陡峭,开发人员需要掌握内存管理、操作系统机制等复杂内容,不仅耗时,而且容易出错。其次,C++ 的开发周期较长,企业在如此内卷的市场下,也很难快速迭代,毕竟市场不等人。

于是多年下来,造成的局面就是,国内的软件开发主要集中在网站、APP、小程序等领域,很少有涉及底层的软件系统。各种工业软件、操作系统、游戏引擎、数据库、浏览器这些东西基本都是国外的东西。

我看到很多人期望《黑神话:悟空》能像一束光,照亮国内 3A 游戏的道路,有更多的公司和团队进入到这个领域。其实我也希望,国内有更多的 C、C++ 这些编程语言的开发者,开发出各种基础设施软件,走向全球市场,未来别人用我们的东西,每卖出一份也能给我们交钱。而不只是像现在一样,做一些同质化严重的小程序和 APP。

期望归期望,但坦率来讲,这很难,毕竟《流浪地球》五年过去了,如今也只有一个《流浪地球》。

商业和资本本质毕竟还是逐利的,尤其是国内的市场太过浮躁,大家更看重短期利益。别说公司和企业了,个人同样如此,很多人都期望培训班培训三个月,就能月薪上万进入大厂。

不过星星之火总好过一片暗淡,当《黑神话:悟空》这样的星星之火越来越多时,终究有燎原之日。最后期望中国游戏产业和中国软件产业都能有美好的未来!


推荐阅读


《C语言程序设计现代方法(第2版 • 修订版)》

K.N.King | 著   

吕秀锋,黄倩 | 译

李忠 | 审

豆瓣评分 9.3,基于 C1X 标准全新升级。市面上最好用的C语言学习教程。第 2 版修订版中不仅有 C99 中的新特性,还与时俱进地增加了 C11 和 C18 中的内容。

《明解C++》

[日]柴田望洋|著

孙巍|译


日本编程教育界泰斗、《明解C语言》作者柴田望洋著作。作者结合多年编程教育经验打造了这本 C++ 入门佳作,从“C++ 基础”和“编程基础”两方面着手,让读者不仅能掌握 C++ 语法,更能掌握真正用 C++ 编程的能力。
《深入理解C#(第4版)》
Jon Skeet|著

世界顶级技术专家“十年磨一剑”的经典之作,在 C# 和 .NET 领域享有盛誉,本书深度探究 C# 的特性,第 3 版豆瓣评分 9.0,新版第 4 版,针对 C#5、6、7 全新升级,用实例展示编写代码和设计解决方案的最佳方式。

《Unity 3D 游戏开发(第3版)》

宣雨松 | 著
热销书强势升级,基于 Unity 2023 版本。涵盖基础篇和进阶篇,涉及编辑器、游戏脚本、UGUI、UI Toolkit、DOTS、静态对象、持久化数据、多媒体、Netcode 与网络编程、URP 渲染管线、扩展编辑器、资源管理等。含 224 个案例,手把手教你运用 Unity 进行游戏开发。
获得众多大牛推荐,Unity 中国 CEO 张俊波作序推荐,Unity 中国平台技术总监杨栋、Unity 官方讲师达哥、Unity 中国技术经理高川、Unity 开发者社区负责人刘玥倾力推荐。
《游戏设计信条:从创意到制作的设计原则》
Marc Albinet|著
路遥|译

《刺客信条》游戏设计总监,BAFTA 游戏设计大奖获得者,育碧 AAA 级游戏设计师 Marc Albinet 独创设计秘辛。多角度解读游戏设计关键核心。实例讲解从策划、创意、艺术创作到团队创意工作技巧的一系列流程。

全面介绍电子游戏的设计理念和基本方法。从脚本立意、玩家体验、互动效果、生产流程等角度讲述了游戏设计的关键核心,作者提出了游戏性 12 项原则等独到见解,解答了游戏设计者们不可回避的诸多问题。

《游戏开发:世嘉新人培训教材》

平山尚|著 

罗水东|译


本书获得 2009 年 CEDEC AWARDS 著作奖,被著名游戏公司世嘉选定为新人培训教材,是无数游戏制作者的入门教材,涵盖了游戏开发者都需要掌握的基础技术。这本书的学习曲线平缓,对初学者友好,全面介绍了游戏开发人员需要掌握的相关技术知识。

《游戏为什么好玩:游戏设计的奥秘》
王亚晖|译

超级马里奥兄弟、俄罗斯方块、三消游戏、吃豆人、塞尔达传说、暗黑破坏神…… 

游戏究竟为什么会让人觉得好玩?是什么机制吸引我们沉浸在电子游戏的世界中?一本游戏机制的百科大全,给入门者的第一本游戏设计书。无数游戏制作者的入门教材。

图片

《游戏机图鉴:一部游戏机进化的视觉史》
[美]埃文·阿莫斯|著
小宁子 王亚晖|译

入选英国《卫报》“游戏玩家不可错过的 20 本的经典图书”。本书是对游戏机的全景式梳理与回顾。书中以时间为线索,用极具艺术性的高清摄影图片呈现了 120 余款游戏设备的珍贵影像,全面记录了从第一世代到第九世代(1972—2020)的游戏机发展历史。此外,本书还收录了游戏机的硬件配置信息、周边设备、销售数据、游戏发售数据、相关商业史以及幕后趣闻,不仅是一场游戏机进化史的视觉盛宴,更是一部硬件视角下的游戏行业兴衰史。

相比于国外,国内游戏产业的政策支持力度不够,导致很多开发者难以坚持下去。

因为初学者基本上都是从pc开始的,毕竟pc便宜,入门c++的话,基本上门槛较高,Windows平台基本上主流游戏开发是用的C#和C++,而C#入门简单,不用管理内存,所以肯定是新手优先选择C#,有了基础的话,基本上就会涉及到跨平台,这个时候,如果觉得C#不够用了的话,就会学习C++。

举办C++编程竞赛和技术交流活动,激发学生的学习热情和创造力。

相关人才稀缺,企业招聘成本高。

大佬,问个不相关的,我大学学的是通信工程,如果我想从事游戏开发的话,需要学什么?

从这个文章里我其实没看出国内游戏产业有什么挑战,感觉故事里都是彩虹屁。但是评论里好像挺激烈的哈哈哈,我再看看。

缺少资金和技术支持,导致很多有潜力的项目难以落地。

我没有玩过黑神话悟空,不过我认为相比于国外,国内的土壤确实更适合休闲小游戏,玩家的付费意识也不如国外强。这可能会限制国内3A游戏的成长空间。

学习难度大,开发周期长,不符合国内快速迭代的需求。

建立企业与高校合作的产学研平台,让学生有机会接触实际项目,获得实战经验。

我觉得最大的挑战是缺乏创新和原创性,很多游戏都是模仿国外大作,没有自己的特色。

加大高校C++课程的培养力度,提高学生对C++的兴趣和基础。

把这篇文章打印出来,塞到大学生的书包里。