《黑神话:悟空》千呼万唤始出来。在正式发售后不到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#的更多相关文章

  1. linux 公社的网友出品的 Qt5.5 安装脚本,copy过来了

    http://www.linuxdiyf.com/linux/13046.html Qt5.5已经发布了,前两天PyQt也很快推出了一个5.5的对应版本.试验了一下(花了个周末啊!),真是越来越好用了 ...

  2. 蒲公英 · JELLY技术周刊 Vol.19 从零开始的 Cloud IDE 开发

    蒲公英 · JELLY技术周刊 Vol.19 你是否也会有想法去开发一个自己的 IDE 却苦于时间和精力不足,完成 Desktop IDE 却又被 Cloud IDE 的概念追在身后难以入睡,这样的两 ...

  3. 在Unity中使用Lua脚本

    前言:为什么要用Lua首先要说,所有编程语言里面,我最喜欢的还是C#,VisualStudio+C#,只能说太舒服了.所以说,为什么非要在unity里面用Lua呢?可能主要是闲的蛋疼.....另外还有 ...

  4. 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)

    目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...

  5. 删除ubuntu旧内核

    ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理. 先用uname -a 查看当前内核版本: xzc@xzc-HP-ProBook-4446s:~$ ...

  6. 使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能

    昨天晚上,花了点时间学习了Chrome插件的制作方法,并书写了<Chrome 百度搜索热点过滤插件 - 开源软件>这一文章,简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式,并进行 ...

  7. chrome DevTools之黑箱大法(Blackbox ) 黑箱化源代码

    Blackbox 提高JavaScript调试效率 所有人前端开发人员都会遇到的问题,您的应用程序代码中会出现错误.您开始调试,但是逐行执行代码时,调试器有时会跳转到不是您的焦点的源文件(例如第三方J ...

  8. 跳过爱奇艺优酷vip

      1.google chrome浏览器  2.下载插件安装 Tampermonkey  https://pan.baidu.com/s/1qvRQD2UO6gPHogjtSUBwUw       将 ...

  9. (转)调皮的location.href

    来自 wooyun'drops --->呆子不开口 0x00 背景 随着水瓶月的到来,在祖国繁荣昌盛的今天,web系统的浏览器端也越来越重,很多的功能逻辑都放在了js中,前端的漏洞也越来越多. ...

  10. springMVC 调查问卷系统 record

    Maven下的依赖包有两个 spring-web和springWebMVC springwebMVC包含spring-web依赖, 但是spring-web的等级大于Spring-webmvc 没有 ...

随机推荐

  1. 在SMT32程序HEX文件中加入固件版本信息

    将固件版本信息定义成一个常量存放在程序中,需要的时候可以通过串口等接口查询代码版本信息,另一种,是利用编译器的语法,将固定的信息保存到某地. #define VERINFO_ADDR_BASE (0x ...

  2. python基础-入门必备知识

    1 标识符 标识符是编程时使用的名字,用于给变量.函数.语句块等命名,Python 中标识符由字母.数字.下划线组成,不能以数字开头,区分大小写. 以下划线开头的标识符有特殊含义,单下划线开头的标识符 ...

  3. 缩小50%,Mini版T3/A40i核心板,让您的设备更小巧!

    小尺寸核心板给用户带来何种价值? 创龙科技常收到用户对于小尺寸核心板的需求反馈,尤其在电力数据采集器.电力DTU.电力通讯管理机.运动控制器.工业HMI.工业网关等工业设备中. 小尺寸核心板3大优势将 ...

  4. 【ClickHouse】5:clickhouse集群部署

    背景介绍: 有三台CentOS7服务器安装了ClickHouse HostName IP 安装程序 程序端口 centf8118.sharding1.db 192.168.81.18 clickhou ...

  5. python rsa-oaep加密示例

    代码: 1 from Crypto.PublicKey import RSA 2 from Crypto.Cipher import PKCS1_OAEP 3 import base64 4 rsa_ ...

  6. Python入门学习介绍

    什么是Python? Python它是一种直译式,面向对象,解释式的脚本语言.它和Java,C/C++,Go语言一样都是高级语言,但由于它是解释式语言,所以运行速度会比Java,C/C++等语言慢(虽 ...

  7. java WT -- JSON WEB TOKEN 加密/校验工具类

    依赖项 <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</art ...

  8. 高程读后感(三)— JS对象实现继承的6种模式及其优缺点

    目录 1.原型链 1.1.默认的原型 1.2.原型和实例的关系 1.3.原型链的问题 2.借用构造函数 2.1.传递参数 2.2.借用构造函数的问题 3.组合继承 4.原型式继承 5.寄生式继承 6. ...

  9. AT_abc178_d 题解

    洛谷链接&Atcoder 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 给定一个正整数 \(S\),问有多少个数满足以下条件: 序列中必须为 \(\ge 3\ ...

  10. Django--StreamingHttpResponse下载文件

    from django.shortcuts import render, HttpResponse from django.http import StreamingHttpResponse impo ...