《黑神话:悟空》千呼万唤始出来。在正式发售后不到24小时,Steam在线玩家峰值突破222万,在Steam所有游戏在线玩家历史峰值中排名第二。第一拨玩家纷纷晒出好评,称这款现象级产品正式开启国产3A游戏(3A 俗称:大量的资源、大量的金钱和大量的时间)元年,黑神话悟空是国内首款3A游戏,画面剧情都很精致,再加上融入了西游记的文化氛围,所以迎来了很多观众的讨论和关注。
难得的是,《黑神话:悟空》使用的虚幻5开发,脚本方案是C# ,这是大佬们解包出来的,这款游戏是在开发过程中基于自己的技术积累,然后对虚幻5做了C# 的适配,游戏底层还是用的C++, 流程脚本用的C# 。具体请看拆解过程:解密《黑神话:悟空》脚本[1]。
网上的大量评论把C# 和微软挂钩,这是一个错误的认知,也是我今天写这篇短文的目的,希望大家能够对C# 有一个客观的认知,不要带上个人的主观色彩:
C#是由ECMA国际组织制定的编程语言标准,目前最新的版本是ECMA-334的第7版[2],发布于2023年12月。这个标准详细描述了C#程序的形式和解释,包括C#程序的表示、C#语言的语法和约束、解释C#程序的语义规则,以及符合C#实现的限制和限制。C#标准并不描述C#程序如何被数据处理系统使用,也不描述C#应用程序如何被数据处理系统调用,以及输入数据如何被C#应用程序使用或输出数据如何被C#应用程序产生 。
需要注意的是,ECMA标准不仅限于编程语言,还包括文件格式、数据格式以及Web浏览器API等多个领域的技术标准。这些标准共同构成了现代软件开发和技术应用的基础。除了上面说的这个ECMA 还有ISO/IEC的标准。
ISO/IEC 23270:2018 是关于C#编程语言的国际标准。这个标准详细描述了C#程序的形式和解释,包括C#程序的表示、C#语言的语法和约束、解释C#程序的语义规则,以及符合C#实现的限制和限制。ISO/IEC 23270:2018标准并不描述C#程序如何被数据处理系统使用,也不描述C#应用程序如何被数据处理系统调用,以及输入数据如何被C#应用程序使用或输出数据如何被C#应用程序产生 。
此外,ISO/IEC 23270:2003和ISO/IEC 23270:2006是C#语言的早期版本标准,但它们已经被ISO/IEC 23270:2018所取代。ISO/IEC 23270:2003和ISO/IEC 23270:2006分别于2003年和2006年发布,但后来由于新版本的发布而被撤销。
相关的标准包括:
ECMA-334 C# language specification
ECMA-335 Common Language Infrastructure (CLI):
ECMA-372 C++/CLI language specification
ECMA-422 C# specification suite
ISO/IEC 20619:2023 C# specification suite
ISO/IEC 23270:2018 Programming languages — C#
ISO/IEC 23271:2012 Common Language Infrastructure (CLI)
ISO/IEC TR 25438:2006 Common Language Infrastructure (CLI) — Technical Report: Common Generics
ISO/IEC TR 23272:2011 Common Language Infrastructure (CLI) — Information Derived from Partition IV XML File
这些标准对于C#程序员和开发者来说非常重要,因为它们确保了不同平台和编译器上的C#代码的兼容性和一致性,高性能、内存安全、强类型与脚本灵活性于一身,广泛应用于各行业,以成熟稳定著称,搭配现代化语法与MIT友好许可,更有大厂信赖背书。其异步编程模型与ORM支持,更是助力高效开发,引领技术潮流。在Github上C# 相关开源仓库:
C# 语言标准:https://github.com/dotnet/csharpstandard[3]
C# 语言设计:https://github.com/dotnet/csharplang[4]
C# 语言的VS Code支持:https://github.com/dotnet/vscode-csharp[5]
相关链接:
[1]解密《黑神话:悟空》脚本:https://mp.weixin.qq.com/s/WPpI-2X0ZAeRtIhAV4CWaQ
[2]ECMA-334的第7版:https://ecma-international.org/publications-and-standards/standards/ecma-334/
[3]C# 语言标准:https://github.com/dotnet/csharpstandard
[4]C# 语言设计:https://github.com/dotnet/csharplang
[5]C# 语言的VS Code支持:https://github.com/dotnet/vscode-csharp