从网友探秘 《黑神话:悟空》 的脚本说说C#
《黑神话:悟空》千呼万唤始出来。在正式发售后不到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# 语言标准: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
从网友探秘 《黑神话:悟空》 的脚本说说C#的更多相关文章
- linux 公社的网友出品的 Qt5.5 安装脚本,copy过来了
http://www.linuxdiyf.com/linux/13046.html Qt5.5已经发布了,前两天PyQt也很快推出了一个5.5的对应版本.试验了一下(花了个周末啊!),真是越来越好用了 ...
- 蒲公英 · JELLY技术周刊 Vol.19 从零开始的 Cloud IDE 开发
蒲公英 · JELLY技术周刊 Vol.19 你是否也会有想法去开发一个自己的 IDE 却苦于时间和精力不足,完成 Desktop IDE 却又被 Cloud IDE 的概念追在身后难以入睡,这样的两 ...
- 在Unity中使用Lua脚本
前言:为什么要用Lua首先要说,所有编程语言里面,我最喜欢的还是C#,VisualStudio+C#,只能说太舒服了.所以说,为什么非要在unity里面用Lua呢?可能主要是闲的蛋疼.....另外还有 ...
- 剖析虚幻渲染体系(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. ...
- 删除ubuntu旧内核
ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理. 先用uname -a 查看当前内核版本: xzc@xzc-HP-ProBook-4446s:~$ ...
- 使用Tampermonkey(油猴) 插件,重新实现了,百度搜索热点过滤功能
昨天晚上,花了点时间学习了Chrome插件的制作方法,并书写了<Chrome 百度搜索热点过滤插件 - 开源软件>这一文章,简单地介绍自己实现的百度搜索热点过滤神器的原理和使用方式,并进行 ...
- chrome DevTools之黑箱大法(Blackbox ) 黑箱化源代码
Blackbox 提高JavaScript调试效率 所有人前端开发人员都会遇到的问题,您的应用程序代码中会出现错误.您开始调试,但是逐行执行代码时,调试器有时会跳转到不是您的焦点的源文件(例如第三方J ...
- 跳过爱奇艺优酷vip
1.google chrome浏览器 2.下载插件安装 Tampermonkey https://pan.baidu.com/s/1qvRQD2UO6gPHogjtSUBwUw 将 ...
- (转)调皮的location.href
来自 wooyun'drops --->呆子不开口 0x00 背景 随着水瓶月的到来,在祖国繁荣昌盛的今天,web系统的浏览器端也越来越重,很多的功能逻辑都放在了js中,前端的漏洞也越来越多. ...
- springMVC 调查问卷系统 record
Maven下的依赖包有两个 spring-web和springWebMVC springwebMVC包含spring-web依赖, 但是spring-web的等级大于Spring-webmvc 没有 ...
随机推荐
- Kubernetes(一)Overview
1. Kubernetes介绍 要了解Kubernetes,首先我们需要了解Container与Orchestration. Docker Docker的出现是为了解决:部署依赖.以及兼容性.以及繁琐 ...
- vue+thinkphp5实现微信扫码支付(NATIVE支付)
前言 统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口.下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流 ...
- 【价格全面下调】一片含税79元,双核A7@1.2GHz,-40℃~85℃真工业级!
自9个月前,创龙科技全志T113-i核心板(SOM-TLT113)推出之后,受到广大工业用户的高度关注,且超过300家企业已选用创龙科技T113-i核心板用于终端产品开发. 为了让更多用户轻松选择T1 ...
- power bi柱形图如何设置高亮自动显示
通过度量值,将需要高亮的数据颜色设置为明显高亮于背景的颜色,将不需要设置为高亮的颜色设置为稍深于背景的颜色, 效果如下:
- mysql求同比环比
-- 参考:SQL计算月环比.月同比_路易吃泡面的博客-CSDN博客 -- mysql同比环比 drop table if EXISTS ordertable; create table ordert ...
- Canvas绘制圆角图片
效果图: 思路: 先绘制一个圆角长方形 在画布中裁剪下来 在圆角长方形内绘制图片 图片四个角超出圆角长方形的区域被隐藏 具体代码: <!DOCTYPE html> <html lan ...
- MFC基于对话框工程笔记->新建MFC对话框
一.前言 最近用MFC做了一个对话框小工具,学到了很多知识,现在做一下总结,以作备忘.(如有不足,后期添加修改) 二.MFC使用->新建MFC对话框 操作环境:VS2010 主要使用语言:C.C ...
- Golang channel底层是如何实现的?(深度好文)
Hi 你好,我是k哥.大厂搬砖6年的后端程序员. 我们知道,Go语言为了方便使用者,提供了简单.安全的协程数据同步和通信机制,channel.那我们知道channel底层是如何实现的吗?今天k哥就来聊 ...
- VulnHub_DC-4渗透流程
VulnHub_DC-4 DC-4 is another purposely built vulnerable lab with the intent of gaining experience in ...
- JavaSE进阶核心之class类
Java顶级对象之Object 什么是Object类 Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入 Object类是所有java类的 ...