W1 Cybertech

W1

《黑神话·悟空》是用什么编程语言开发的:虚幻引擎与行业薪资探讨

Daniel Wu/文


《黑神话·悟空》自公布以来,不仅在游戏界引起轰动,还让大家重新聚焦中国传统文化及其再创作。《黑神话:悟空》终于在万众期待中正式登场。在发售不到24小时内,Steam在线玩家峰值已突破222万,位列Steam有史以来在线玩家峰值排行榜的第二位。首批玩家纷纷给予好评,称这款现象级作品正式开启了国产3A游戏元年(3A意指高投入、高成本、高时间的游戏开发模式)。作为中国首款3A游戏,《黑神话:悟空》凭借精致的画面、细腻的剧情以及融入《西游记》文化氛围,吸引了众多玩家的热烈讨论和广泛关注。《西游记》的经典故事被赋予了新的生命,许多玩家在追随《黑神话》的同时,也重温了周星驰的《大话西游》、日本动漫《七龙珠》等经典二创。与此同时,游戏还引发了对陕北说书等传统艺术形式的热议,甚至成为社交媒体上的热门话题。这种文化复兴的浪潮,不仅体现在对经典作品的再创作上,也体现在对传统艺术形式的现代化解读上。

《黑神话·悟空》是用什么编程语言开发的

作为一款由中国公司Game Science开发的动作游戏,《黑神话·悟空》采用了虚幻引擎5(Unreal Engine 5),这个引擎是当前世界上最先进的游戏开发引擎之一。虚幻引擎5主要依赖C++编程语言进行底层开发,并配有蓝图系统(Blueprint),允许开发者在无需深入编程的情况下创建复杂的游戏逻辑和互动功能。蓝图系统的出现,使得游戏开发更具灵活性,特别是在实现高度互动性和视觉效果的游戏场景时。值得注意的是,《黑神话:悟空》使用虚幻5引擎开发,其脚本方案采用了C#语言,这是技术大佬们通过解包分析出的结果。游戏开发过程中,团队在虚幻5的基础上进行了C#适配,虽然游戏底层仍使用C++,但流程脚本则采用了C#。这项技术积累展现了团队对虚幻引擎的深度掌握。

《黑神话·悟空》团队薪资情况

作为一款高品质的3A级游戏,《黑神话》的成功不仅依赖于强大的技术支持,还需要庞大的开发团队和资金投入。在薪资方面,根据网上披露的信息,游戏科学的员工平均月薪为24,305元人民币。其中,游戏特效师、动画设计师和3D设计师的月收入范围在19,333元至30,996元之间,这在中国游戏行业中属于中上水平。然而,从澳洲的薪资标准来看,这样的收入水平并不算特别高。如果年轻人单纯以赚钱为目的,进入游戏开发行业可能并不是最优选择。

从全球范围来看,游戏开发人员在不同国家和地区的薪资差异显著。以澳洲为例,虽然游戏开发者的薪资普遍不低,但相较于其他IT岗位,收入并不具有明显优势。在澳洲,从事游戏开发工作的程序员、设计师,月薪通常能达到5000美元以上。对于那些对编程有热情且愿意在这一行业扎根的年轻人来说,尽管前四年的奋斗期可能会比较艰辛,但一旦度过,就能获得相对稳定且不错的收入和职业发展前景。

强大的虚幻引擎5

《黑神话·悟空》使用了虚幻引擎5进行开发,这一引擎是目前全球最先进的游戏开发引擎之一。虚幻引擎5以其强大的图形处理能力和灵活的开发工具著称,尤其是在实现高保真的视觉效果和复杂的互动功能方面表现卓越。该引擎支持高度动态的全球光照系统(Lumen)和虚拟微多边形几何体系统(Nanite),使得游戏世界呈现出极高的细节度和真实感。

虚幻引擎5的核心编程语言是C++,这使得开发者能够在底层对游戏的各种功能进行精细控制。然而,为了提高开发效率和降低编程难度,虚幻引擎5还引入了蓝图系统(Blueprint)。蓝图系统是一种基于节点的可视化脚本工具,允许开发者通过拖放节点的方式来创建游戏逻辑和事件,无需编写大量代码。对于复杂的互动和视觉效果,蓝图系统提供了极大的灵活性和直观性,使得非程序员也能参与到开发过程中。得一提的是,《黑神话:悟空》使用了虚幻5引擎进行开发,并采用了C#作为脚本语言,这是通过技术高手的解包所揭示的。开发团队在长期技术积累的基础上,对虚幻5引擎进行了C#的适配处理,游戏底层仍使用C++,而流程脚本则采用C#编写。

什么是蓝图系统 (Blueprints)

虚幻引擎5(Unreal Engine 5,简称UE5)的蓝图系统(Blueprints)是一个强大且直观的可视化脚本系统,允许开发者无需编写代码就能实现游戏逻辑和互动。蓝图系统是UE5的核心功能之一,使得开发人员和设计师可以更轻松地构建复杂的游戏行为和系统,而无需深入学习C++等编程语言。

什么是蓝图系统?

蓝图系统是虚幻引擎中的一种可视化编程工具。通过拖放和连接节点的方式,开发者可以创建游戏逻辑、动画、UI和其他内容。每个蓝图节点都代表一个函数、事件或变量,节点之间的连线表示数据流或逻辑关系。

蓝图的主要类型

  • 类蓝图(Class Blueprints):用于定义游戏中的对象或角色的行为。每个类蓝图可以包含多个组件、函数和事件,能够实现丰富的互动性。

  • 关卡蓝图(Level Blueprints):用于定义特定关卡的行为和逻辑,通常用于处理关卡中的事件,如触发器、定时器和其他关卡特有的功能。

  • 组件蓝图(Component Blueprints):允许开发者创建可重用的组件,这些组件可以被多个类蓝图使用,以减少重复工作。

  • 动画蓝图(Animation Blueprints):专门用于控制角色的动画,允许通过蓝图逻辑来控制动画过渡、混合和其他复杂的动画行为。

蓝图的组成部分

  • 节点(Nodes):蓝图的基本构建块,包括事件节点、函数节点、变量节点、流程控制节点等。

  • 变量(Variables):用于存储数据,变量可以在蓝图之间传递,支持多种数据类型,如整数、浮点数、布尔值、字符串、对象等。

  • 函数(Functions):蓝图中的函数是可重复使用的代码块,开发者可以将一系列操作封装到函数中,以便在多个地方调用。

  • 事件(Events):事件是蓝图的触发器,用于在特定条件下执行一段逻辑,如玩家输入、碰撞检测、定时器触发等。

蓝图的优势

  • 直观性:蓝图系统通过可视化界面降低了编程的门槛,使得非程序员也能参与游戏逻辑的设计。

  • 快速迭代:开发者可以快速测试和调整蓝图逻辑,而无需编译整个项目。

  • 代码和蓝图的结合:UE5允许开发者将蓝图与C++代码结合使用,既可以通过蓝图实现简单逻辑,又可以通过C++编写复杂功能,从而灵活控制项目的性能和功能。

蓝图与UE5的新特性

在UE5中,蓝图系统得到了进一步增强,支持更多的功能和优化,包括对Nanite虚拟化几何体技术、Lumen全局光照系统的支持,以及更复杂的物理和动画系统的集成。这使得蓝图系统在制作高质量、高保真的次世代游戏时,仍然保持了易用性和强大的功能。

游戏开发中的实际应用

蓝图系统广泛应用于游戏开发的各个方面,例如角色控制、敌人AI、UI交互、关卡设计、物理模拟、网络同步等。通过蓝图,开发团队可以更好地协作,并快速实现原型和最终产品。

C#语言

黑神话悟空的开发团队在长期技术积累的基础上,对虚幻5引擎进行了C#的适配处理,游戏底层仍使用C++,而流程脚本则采用C#编写。

网络上的大量评论将C#与微软直接挂钩,这是一个常见的误解。为澄清这一点,我今天撰写这篇短文,希望大家能够对C#有更客观的认识,避免带有主观偏见:

C#是一种由ECMA国际标准组织制定的编程语言,目前的最新版本为ECMA-334第7版,于2023年12月发布。该标准详细描述了C#程序的形式与解释,包括C#程序的语法、约束、语义规则等内容,但并未涉及C#程序如何被数据处理系统使用或调用,也未描述C#应用如何处理输入或输出数据。

需要注意的是,ECMA标准不仅限于编程语言,还涵盖了文件格式、数据格式以及Web浏览器API等多个技术领域,共同构成了现代软件开发的基础。除了ECMA标准外,C#还拥有ISO/IEC国际标准的支持。

ISO/IEC 23270:2018是关于C#语言的国际标准,详细描述了C#程序的形式、语法和语义规则,但同样没有涉及具体的系统使用或调用方式。ISO/IEC 23270:2018取代了早期版本的ISO/IEC 23270:2003和ISO/IEC 23270:2006。

相关的重要标准包括:

  • ECMA-334 C#语言规范
  • ECMA-335 通用语言基础架构 (CLI)
  • ECMA-372 C++/CLI语言规范
  • ECMA-422 C#规范套件
  • ISO/IEC 20619:2023 C#规范套件
  • ISO/IEC 23270:2018 编程语言 — C#
  • ISO/IEC 23271:2012 通用语言基础架构 (CLI)
  • ISO/IEC TR 25438:2006 CLI技术报告:通用泛型
  • ISO/IEC TR 23272:2011 从Partition IV XML文件提取的信息

这些标准对C#开发者和程序员而言至关重要,确保了在不同平台和编译器上的代码兼容性和一致性。C#以高性能、内存安全、强类型及脚本灵活性著称,广泛应用于各个行业。其现代化语法、MIT许可的友好协议以及大厂的背书,使其在业界深受信赖。特别是C#的异步编程模型与ORM支持,助力开发者高效地完成项目,并引领技术潮流。

在GitHub上,可以找到C#相关的开源仓库:

选择C、C#、C++还是Python?

  • C++:如果目标是参与虚幻引擎5(Unreal Engine 5)开发,那么C++是最推荐学习的语言。虚幻引擎是以C++为核心开发的,很多高级功能和优化需要通过C++来实现。虽然蓝图系统可以处理很多逻辑,但要做深入的开发和优化,C++是必须掌握的。

  • C#:C#在Unity引擎中使用广泛。如果对Unity感兴趣,可以优先学习C#。C#语法简洁、易学,是很多初学者的首选,尤其是对2D和手机游戏开发感兴趣的年轻人。

  • C:C是C++的基础,但如果直接目标是游戏开发,特别是用虚幻引擎5,直接学习C++更为实用。C语言的学习可以帮助理解底层概念和系统编程,但在游戏开发中直接用到的机会较少。

  • Python:Python在游戏开发中并不是主要语言,但它在工具开发、数据处理、自动化脚本等方面有广泛应用。如果有兴趣扩展技能,比如开发游戏辅助工具或处理数据,学习Python也是有益的。

随着AI技术的发展,确实有部分游戏开发相关的重复性工作可能被AI取代,如自动化的关卡设计、简单的代码生成等。但AI更多的是辅助开发者,提高工作效率,而不是完全取代。因此,掌握深层次的技术,如引擎内部优化、复杂系统设计、创意设计等,依然是无法被AI取代的。

游戏开发的薪资水平较高,尤其是精通C#\C++和虚幻引擎的开发者。薪资因地区、经验、公司规模而异,但总体而言,熟练掌握虚幻引擎5的开发者在市场上有较强的竞争力,尤其是在高端游戏开发和影视制作领域,薪资通常高于行业平均水平。

对于想要进入游戏开发的年轻人来说,学习C++和虚幻引擎5是非常有前景的选择。虽然AI可能会改变部分工作模式,但高水平的开发者始终有着广阔的职业前景和优厚的薪资。与此同时,掌握C#和Python等其他语言也能为未来的发展提供更多选择和灵活性。

W1提供专业IT研发与咨询服务,欢迎联系我们了解详情。

Scroll to Top