首页 > 编程语言 >从网友探秘 《黑神话:悟空》 的脚本说说C#

从网友探秘 《黑神话:悟空》 的脚本说说C#

时间:2024-08-24 10:15:27浏览次数:6  
标签:悟空 C# ISO 23270 https IEC 探秘 ECMA

《黑神话:悟空》千呼万唤始出来。在正式发售后不到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#代码的兼容性和一致性。在Github上C# 相关开源仓库:

 

相关链接:

标签:悟空,C#,ISO,23270,https,IEC,探秘,ECMA
From: https://www.cnblogs.com/shanyou/p/18377461

相关文章

  • 导入导出DockerDesktop软件里的images镜像
    前言一、导出查看已有imagesPSC:\WINDOWS\system32>dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEpengzhile/pandoralatest43f234c4e8a85daysago250MBtwang2218/gitlab-ce-zh11.1.41935cc9f87984......
  • 计算机网络——TCP三次握手和四次挥手
    一、前言TCP的三次握手和四次挥手是面试被高频问到的一个知识点。其中有较多的细节问题,本篇文章全部会详细讲解!TCP使用三次握手和四次挥手来建立和终止连接。为什么建立和终止连接还需要这么麻烦呢?TCP设置三次握手和四次挥手是为了确保可靠的连接建立和终止,在网络通信中保护......
  • Java 12 新特性—Switch 表达式
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • @Scheduled 定时任务自定义
    简介@Scheduled定时任务自定义可以通过SchedulingConfigurer实现。SchedulingConfigurer是SpringFramework中的一个接口,用于配置定时任务。当你需要对定时任务进行更高级别的定制时,这个接口就显得非常有用。可以通过SchedulingConfigurer接口来自定义一些高级配置......
  • 【解压即玩】最终幻想7 重制版中文+预购特典+全DLC,难忘的一作
    数年前,一家名为神罗的公司(起初称为神罗工程所)发现了一种深埋于地底的神秘生物遗骸(被称为杰诺瓦)以及一种名为“魔晄”的能源。这家公司通过将这种生物遗骸浸泡在魔晄中来生产电力,从而迅速崛起成为全球最大的能源垄断企业。魔晄不仅可以用来发电,还能增强人体的能力,但过量使用......
  • C++学习,关键字
    列表是C++中的保留字,这些保留字不能用作常量或变量或任何其它标识符名称:asmelsenewthisautoenumoperatorthrowboolexplicitprivatetruebreakexportprotectedtrycaseexternpublictypedefcatchfalseregistertypeidcharfloatreinterpret_casttypenameclassforreturnunionconstfr......
  • C++学习, 变量作用域
    从广义上看,有三个地方,可以声明变量:在函数或块中声明的变量,为局部变量。在函数参数定义的变量,为形式参数。在所有函数之外的变量,为全局变量。局部变量(LocalVariables)在函数或块内声明的变量是局部变量。它们只能由该函数或代码块中的语句使用。本地变量不为其自......
  • C#实现数据采集系统-数据反写(3)ModbusTcp写入数据模块开发
    写入报文分析//000100000006FF050001FF00写单个线圈//000100000006FF0600050023写单个寄存器//写多个寄存器//00060000000BFF1000020002040021002A//前7位相同,第八位功能码不同,九、十位写入地址,这是格式一样部分线圈......
  • winform中使用BindingSource绑定到dataGridView中显示,增删改操作
    winform中使用BindingSource绑定到dataGridView数据源,并进行增删改操作。privateBindingSourceusersbinding;//定义数据源//查询记录事件Listdata=BLL.UserList();//获取对象集合Listdata//绑定用户列表if(usersbinding==null){usersbinding=newBindingSour......
  • C++11新特性(二):语言特性
    C++11新特性语言特性nullptr空指针nullptr空指针的使用可以规避掉以往设置为NULL的风险。NULL在编译器中常常被设置为0或者其它数字,此时判断指针是否为NULL,即判断指针类型是否能够等于整型值,并不安全。int*p=nullptr;强类型枚举强类型枚举不能隐式转换为int类型,可以指定......