所有文章

篡改猴 Tampermonkey 安卓版扩展已上架 Edge 商店

篡改猴 Tampermonkey 是一款非常著名的浏览器扩展,它允许用户通过油猴脚本(也叫做用户脚本)来自定义或增强网页功能。前几日其安卓版本上架 Edge 商店。目前打开安卓版 Edge 扩展商店就

2024-11-04 06:24:58 · 1次阅读
 
 
iPhone 在全球都卖得更好了,除了中国市场

iPhone 还是「顶梁柱」。 #欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。 [爱范儿](https://www.ifanr.com) |[原文链接](https://www.ifanr.com/1604824) ·[查看评论](https://www.ifanr.com/1604824#comments) ·[新浪微博](https://weibo.com/ifanr)

2024-11-03 18:30:59 · 1次阅读
 
 
Thunderbird 安卓版本正式发布:功能强大、注重隐私的电子邮件应用,源自 K-9 Mail

Thunderbird: Free Your Inbox 即安卓版本的 Thunderbird 目前已经正式上架 Google Play,基于开源的 K-9 Mail 电子邮件客户端开发,主打开源,注

2024-11-03 09:29:59 · 1次阅读
 
 
LocalSend 1.16.0 更新,不再支持 Windows 7,非常好用的开源跨平台文件传输工具,附下载地址

跨平台文件传输工具 LocalSend 刚刚更新了最新的 LocalSend 1.16.0 版本。由于 Flutter 不再支持 Windows 7 ,所以从这个版本开始,LocalSend 也不再支

2024-11-03 06:35:59 · 0次阅读
 
 
中国团队夺冠的赛博格「奥运会」,让我们看到人与机器的共生

没有失败者的比赛,为了一个没有障碍的世界 #欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。 [爱范儿](https://www.ifanr.com) |[原文链接](https://www.ifanr.com/1604878) ·[查看评论](https://www.ifanr.com/1604878#comments) ·[新浪微博](https://weibo.com/ifanr)

2024-11-03 04:24:20 · 2次阅读
 
 
油耗「2」开头,吉利 EM-i 正式发布,比亚迪终于等来了对手

打不过,就加入。 #欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。 [爱范儿](https://www.ifanr.com) |[原文链接](https://www.ifanr.com/1604846) ·[查看评论](https://www.ifanr.com/1604846#comments) ·[新浪微博](https://weibo.com/ifanr)

2024-11-01 15:00:21 · 0次阅读
 
 
营业利润暴跌 41% 的保时捷,开始发力挽救中国市场

性能、智能,齐发力。 #欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。 [爱范儿](https://www.ifanr.com) |[原文链接](https://www.ifanr.com/1604723) ·[查看评论](https://www.ifanr.com/1604723#comments) ·[新浪微博](https://weibo.com/ifanr)

2024-11-01 02:25:01 · 0次阅读
 
 
荣耀 Magic 7 系列发布!AI 深度赋能,手机也能「自动驾驶」

AI 时代「最强」手机 Magic 7 系列,来了! #欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。 [爱范儿](https://www.ifanr.com) |[原文链接](https://www.ifanr.com/1604753) ·[查看评论](https://www.ifanr.com/1604753#comments) ·[新浪微博](https://weibo.com/ifanr)

2024-11-01 02:00:05 · 1次阅读
 
 
聊一聊分布式系统中的时间

![](https://www.raychase.net/wp-content/uploads/2024/10/image-5-1024x768-1.jpg)今天聊一下时间的话题。在分布式系统中,“时间”是一个挺有趣,但是很难处理的东西。我把自己的理解简单整理下来。 <!-- /wp:paragraph --><!-- wp:heading --> ## 不可靠的物理时钟 <!-- /wp:heading --><!-- wp:paragraph --> 首先,单一节点的物理时钟是不可靠的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 物理时钟本身就有偏差,可是除此之外,可以引起节点物理时钟不准确的原因太多了,比如clock jump。考虑到[NTP协议](https://en.wikipedia.org/wiki/Network_Time_Protocol),它基于UDP通信,可以从权威的时钟源获取信息,进行自动的时间同步,这就可能会发生[clock jump](https://linux.die.net/man/2/gettimeofday),它就是说,时钟始终会不断进行同步,而同步回来的时间,是有可能不等于当前时间的,那么系统就会设置当前时间到这个新同步回来的时间。即便没有这个原因,考虑到数据从网络传输的延迟,处理数据的延迟等等,物理时钟是非常不可靠的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 如果一个分布式系统,多个节点想要仅仅依赖于物理时钟来完成什么操作,那么只能祈祷运气足够好了。在[《从物理时钟到逻辑时钟》](/5768)这篇文中,我已经介绍了**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">对于物理时钟不可靠的问题,我们有一个解决的办法,就是引入Lamport逻辑时钟,或者使用向量时钟</mark>**,这里就不赘述了。 <!-- /wp:paragraph --><!-- wp:heading --> ## 超时 <!-- /wp:heading --><!-- wp:paragraph --> 分布式系统中什么样的执行结果最难处理,成功还是失败?其实都不是,最难处理的结果是超时,因为执行超时了,但是系统却并不知道它: <!-- /wp:paragraph --><!-- wp:list --> - 是没执行, - 是执行成功了, - 还是执行失败了。 <!-- /wp:list --><!-- wp:paragraph --> 所谓超时,一个显然的问题是,超过多少时间才算超时?往往没有一个公式,更没有一个标准答案,我觉得《[Designing Data-Intensive Applications](https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/)》这本书里面对这一点总结得很好——**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">对于超时时间的定义,其实就是一个tradeoff,一个基于failure detection delay和risk of premature timeouts之间抉择的平衡</mark>**。如果超时时间设置长了,就会减少超时判定的误杀,但是对于系统失败的识别就会延迟;反之,如果超时时间设置过短,那就会触发更多看起来是超时的case,但是它们本身其实并没有真正超时。 <!-- /wp:paragraph --><!-- wp:paragraph --> 通常来说,对于超时的处理,其实办法也不多。一种是放弃,一种是重试。就像消息投递,如果要保证“至多投递一次”,那在投递超时后,就直接放弃;如果要保证“至少投递一次”,那在投递超时后,就重试。如果要重试,那就需要引入保证幂等性的机制。 <!-- /wp:paragraph --><!-- wp:paragraph --> 分布式事务SAGA对于超时的处理,其实也是遵照上面的原则,在系统内单步都成为事务的基础上,把流程视作一个状态机,无论单步操作是成功还是失败,都会根据清晰的预定义逻辑,触发相应的正向流程或者反向流程,可是唯独超时,多数情况下最有意义的事情就是重试,也只能重试,因为谁也不知道它究竟实际是成功了还是失败了。 <!-- /wp:paragraph --><!-- wp:paragraph --> 说完操作超时,再来说一下节点超时。很多分布式系统中都会使用一种lease(租约)的机制,比如一个集群中的leader,作为leader会扮演不同的角色,但是必须要renew这个lease,否则超过一定的时间,无论它给不给响应,它都会被开除出leader的角色,而follower会重新选举(或者其他方式)一个leader。 <!-- /wp:paragraph --><!-- wp:paragraph --> 比较难处理的是,如果这个节点本来是被hang住了,导致了超时,它也已经被踢下leader的角色,但是之后它“活”过来了(比如经过了一个超长时间的GC),它还以为自己是leader,继续去干leader干的事,变成了一个假leader。这其实就是出现了[脑裂](https://en.wikipedia.org/wiki/Split-brain_(computing)),本质上是一个一致性的问题。这种情况比较难处理,因为即便有heartbeat不断检测,在每两个heartbeat的间隙,可能这种重要的变动就发生了。 <!-- /wp:paragraph --><!-- wp:paragraph --> 要解决这种问题,需要使用token fence的方法,即让每次最关键的状态数据的更改,携带一个单调递增的token,这种情况下这个假leader发起更改的token,已经小于系统中最新的token了,接收这个数据更改的子系统应该拒掉这个请求。上面说的节点超时的情况我在《[谈谈分布式锁](/7671)》里面有详细说明。 <!-- /wp:paragraph --><!-- wp:heading --> ## 计算机的两种时钟 <!-- /wp:heading --><!-- wp:paragraph --> 有两种时钟是计算机普遍支持的,**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">一种叫做time-of-day clock</mark>**,就是我们一般意义上的时钟,代表着相对于1970年1月1日的epoch 时间,也就是Java里面System.currentTimeMillis()返回的。网络时间协议NTP就是用来同步计算机这个时间的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 不过,其实**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">还有一种时钟,叫做monotonic clock(单调时钟)</mark>**,在Java里面相应的接口是System.nanoTime()。这个时钟有一个特点,就是它永不回头。对于time-of-day clock来说,时间是可能“回头”的,对于很多应用来说,时间回头是要命的。不过这个时钟给出的具体时间却是毫无意义,如果在不同的机器上调用System.nanoTime(),会得到完全随机的结果。API的名字是纳秒,可是这个时钟并不给出到纳秒的时间精度,它的作用是用来帮助计算间隔时间的:在同一个节点,第二次调用的时间减掉第一次调用的时间,这个结果(时间间隔)是严格递增(不回头)的。从这个意义上说,除去时间这个视角本身,这个时钟更像是一个单调的计数器。既然是单调的计数器,就可以用来帮助产生系统严格自增的ID。 <!-- /wp:paragraph --><!-- wp:paragraph --> 下面是System.nanoTime() Javadoc上面的解释: <!-- /wp:paragraph --><!-- wp:quote --> <blockquote><p>Returns the current value of the most precise available system timer, in nanoseconds.<br/>This method can only be used to measure elapsed time and is not related to any other notion of system or wall-clock time. The value returned represents nanoseconds since some fixed but arbitrary time (perhaps in the future, so values may be negative). This method provides nanosecond precision, but not necessarily nanosecond accuracy. No guarantees are made about how frequently values change. Differences in successive calls that span greater than approximately 292 years (263 nanoseconds) will not accurately compute elapsed time due to numerical overflow.</p></blockquote> <!-- /wp:quote --><!-- wp:heading --> ## TrueTime <!-- /wp:heading --><!-- wp:paragraph --> 一般来说,我们都知道计算机的时钟有误差,可是这个误差是多少,差1毫秒还是1分钟,并没有任何严格保证。绝大多数接触到的时间API也是如此,可是,Google数据库Spanner的[TrueTime API](https://cloud.google.com/spanner/docs/true-time-external-consistency)却。它使用了GPS时钟和原子钟两种完全独立的机制来冗余某一个机制失败导致的时钟问题,增加reliability。此外,它还有和System.nanoTime()一样的严格递增的特点。 <!-- /wp:paragraph --><!-- wp:paragraph --> 它有三个核心API,很有意思: <!-- /wp:paragraph --><!-- wp:list --> - TT.now() 它返回 [earliest, latest] 这样一个范围,表示当前时间就在这个范围内; - TT.after(t) 它返回当前时间是不是肯定在t之后 - TT.before(t) 它返回当前时间是不是肯定在t之前 <!-- /wp:list --><!-- wp:paragraph --> 有了TrueTime,这让分布式系统中,本来无法通过物理时钟解决的问题也变得可解决了。比如对于操作冲突的问题,现在的新办法就是等一个buffer时间,TrueTime认为已经前一个操作的结束时间肯定已经过去了,再来启动后一个操作。当然,这个方法的缺点是throughput,因为整个操作周期因为buffer时间的关系变长了。 <!-- /wp:paragraph -->

2024-10-21 00:41:56 · 1次阅读
 
 
豆瓣评分9.0!大师手绘敦煌壁画公开面世

敦煌,是每分每秒都在消逝的人类奇迹,我们每一次踏入都在加速它的消亡。如何更好地保护、传承,是一代又一代敦煌守护人的课题。时逢岁末,中信出版重磅发布年末压轴新品—— 全新升级版《敦煌日历2025》,诚意相见。

2024-10-15 13:59:00 · 4次阅读
 
 
诸葛亮输在不会“摸鱼”

诸葛亮客死五丈原,让司马懿笑到最后,一直是三国历史上让人难以释怀的事情。不过,换个角度看,诸葛亮输掉与司马懿之争,也是在提醒后世的打工人,不要这么卷,该摸鱼的时候要会摸鱼。

2024-10-14 14:22:00 · 1次阅读
 
 
几个有意思的分布式系统设计模式

![](https://www.raychase.net/wp-content/uploads/2024/09/digital-brain-1024x768.jpg)分布式系统有它特有的设计模式,无论意识到还是没有意识到,我们都会接触很多,网上这方面的材料不少,比如[《Catalog of Patterns of Distributed Systems》](https://martinfowler.com/articles/patterns-of-distributed-systems/),还有[《Cloud Design Patterns》](https://learn.microsoft.com/en-us/azure/architecture/patterns/)等等。这里简单谈谈几个我接触过的,也觉得比较有意思的模式。 <!-- /wp:paragraph --><!-- wp:heading --> ## LSM Tree <!-- /wp:heading --><!-- wp:paragraph --> 对于这个话题,基本上第一个在我脑海里蹦出来的就是LSM树(Log Structured Merge Tree)。其实,[LSM树](https://en.wikipedia.org/wiki/Log-structured_merge-tree)本来只是指一种数据结构,这种数据结构对于大吞吐量的写入做了性能上的优化(比如日志写入),同时对于根据key的读取也有不错的性能。换言之,对于读写性能的平衡,**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">大幅优化了写入,而小幅牺牲了读取</mark>**,现在它也不再被局限于数据结构本身,而是泛化为能够提供这样特性的一种机制。 <!-- /wp:paragraph --><!-- wp:paragraph --> 整个写入过程分为两个部分,为了追求极致的写入速度,写入方式都被设计成追加的: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - C0:这一层其实就是内存中写入的buffer,它的实现可以用RBTree,或者是SkipList,这种树状有序的结构,它的写入和范围查询都很快。在[Bigtable的设计](/6367)中,它被称为Memtable。 - C1:这一层则主要待在磁盘上了,它可以由若干个文件组成,每一个文件都是有序的数据,这样拿着一个key去文件查询对应的数据,根据indexed keys可以用二分法来查找。在Bigtable的设计中,它就是SSTable。<!-- /wp:list --><!-- wp:paragraph --> 所以,为了追求写性能,数据写入会直接插入到C0中,一旦C0达到一定大小,就会建立一个新的C0&#39;来替代旧的,而原有的C0会被异步持久化成C1中的一个新文件(其实就是做snapshot);C1中的文件全都是有序的,它们会不断地被异步merge,小文件不断被合并成大文件(下图来自维基百科)。极端情况下,同一个key可以有若干次更新,并且更新能同时存在于C0和C1所有的文件中。 <!-- /wp:paragraph --><!-- wp:image {"id":7711,"sizeSlug":"large","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-6-1024x514.png) <!-- /wp:image --><!-- wp:paragraph --> 对于根据key的查询,需要先去C0中找,如果找到了最好,没找到的话需要去C1中找,最坏的情况下需要找每个文件。如果数据存在于多个地方,数据采用的优先级是,C0&gt;新的C1文件&gt;旧的C1文件。 <!-- /wp:paragraph --><!-- wp:paragraph --> 对于不存在C0中的数据查询,为了尽量避免去每一个C1的文件中查询,Bigtable会使用bloom filter来做第一步的存在性判断(校验用的数据全量加载在内存中),根据结果,如果这一步判断通过,这意味着数据可能存在于目标文件;如果没通过,这意味着数据肯定不存在于目标文件。 <!-- /wp:paragraph --><!-- wp:heading --> ## Write-Ahead Log <!-- /wp:heading --><!-- wp:paragraph --> 顺着LSM Tree的话题,说到WAL。WAL适用于解决这样一个问题:一个系统对于写请求有较苛刻的延迟或者吞吐量的要求,同时又要严格保证durability(数据不丢)。 <!-- /wp:paragraph --><!-- wp:paragraph --> 因此直观上,WAL包含三步: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - 首先要求append日志,日志是持久化的,并且可以根据一致性的要求持久化到不止一个存储中 - 接着就是把数据更新到内存的某个数据结构中(比如上面的LSM Tree在内存中的结构C0),这时候同步的请求响应就可以发回客户端了 - C0的数据会异步merge压缩到持久性存储C1中(LSM Tree部分的操作)<!-- /wp:list --><!-- wp:paragraph --> 基本上思路就是把能延迟的操作全延迟了,如果服务端挂掉了,根据持久性存储+日志就可以完全恢复到挂掉之前的状态,因此数据不会丢。 <!-- /wp:paragraph --><!-- wp:paragraph --> 于此,有一系列相关的pattern,比如: <!-- /wp:paragraph --><!-- wp:list --> - Low-Water Mark,低水位线:指的是这条线以前的数据全部都以常规方式持久化了(C1),因此如果节点挂掉的话,只需要根据现有的文件+低水位线以上的日志就可以完全还原挂掉之前的状态,也就是说,理论上低水位线以前的日志可以删掉了; - High-Water Mark,高水位线:日志是持久化的,但是这个持久化需要在多个节点上发生,这条线就指向了最新一条已经成功持久化到“大多数”节点上的日志(这个大多数其实就是Majority Quorum模式)。 - Hinted Handoff,提示性移交,它和WAL有一定类似性,因此经常被放在一起比较:如果一个节点挂掉了,那么更新会跑到另外一个(随机的)节点上面去,等到挂掉的节点恢复的时候,这些数据会被重新写入那个恢复的节点,执行replay从而恢复一致性。 <!-- /wp:list --><!-- wp:heading --> ## Clock Bound Request Batch <!-- /wp:heading --><!-- wp:paragraph --> Request Batch太常见不过了,请求可以批量发送,减少overhead,从而减少资源(网络带宽、序列化开销等等)的消耗。通常的batch是根据大小或者数量来划分批次的,但是修饰词Clock Bound指的是,这样的分批还要依据时间,就是说,系统可以等待一段时间,这一段时间内的请求都可能打包成一个batch,但是这样的打包还要有时间限制,到了这个时间,无论当前的batch有多小,都必须要发送出去了。 <!-- /wp:paragraph --><!-- wp:paragraph --> Kafka客户端就有这样的一个机制,message可以被group,但是: <!-- /wp:paragraph --><!-- wp:list --> - batch.size 这个参数指定batch最大有多少; - [linger.ms](https://docs.confluent.io/platform/current/installation/configuration/producer-configs.html#linger-ms) 这个参数指定了最多等多久。 <!-- /wp:list --><!-- wp:paragraph --> 还有一些流处理系统也采用这种方式,比如Spark的micro batching。 <!-- /wp:paragraph --><!-- wp:heading --> ## Singular Update Queue <!-- /wp:heading --><!-- wp:paragraph --> Singular Update Queue非常有用,queue本身就是用来处理异步的事件,可以有若干个producer产生消息到队列里面,有若干个consumer来处理它们。这种场景下这个queue为核心的机制扮演了至少这样几个角色: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - **缓冲**,平滑请求的波峰; - **流控**,保护下游系统不被负载冲垮; - **校验**,能写入queue的数据一定是符合格式的,从queue读取的数据也一定是符合格式的; - **解耦**,对于MxN的调用关联关系,所有的producer只和queue打交道(写入),而所有的consumer也之和queue打交道(读取),这样,复杂度就变成了M+N。<!-- /wp:list --><!-- wp:paragraph --> 对于写请求,我们需要保证这些事件处理不会有并发的问题,通过采用Singlar Update Queue,对特定的topic,我们可以设计一个良好的sharding规则,加上对于每一个sharding(在Kafka等系统里面我们叫做partition),设置为只有一个consumer线程,这样的话就保证了不会有并发问题,因为只有一个线程来处理所有这个sharding的消息,这种方式可以简化系统,不需要引入第三方锁系统就可以处理同一个sharding之间存在并发冲突的消息。 <!-- /wp:paragraph --><!-- wp:paragraph --> 我想起另外一个相关的话题,monolith(单体应用)还是microservices(微服务),一直是一个争论。早些时候,在微服务概念刚提出的时候,它受到了追捧,但是现在出现了越来越多批评的声音。一个突出的微服务的问题就是各个微服务之间像蜘蛛网一样复杂调用依赖的问题。而这样的问题,其中一个解决办法就是引入这样的queue在中间解耦。 <!-- /wp:paragraph --><!-- wp:paragraph --> 有些时候,queue里面未必存放全部完成update所需的数据,而是只放很少的内容,比如只有一个key,consumer拿到这个key以后去别的service获取完成任务需要的信息,因此这个queue就起到一个通知的作用。这其实就是Claim Check模式了。 <!-- /wp:paragraph --><!-- wp:heading --> ## Asynchronous Request-Reply <!-- /wp:heading --><!-- wp:paragraph --> Asynchronous Request-Reply本身是一个简单而且常用的机制,就是请求发起以后,服务端响应说,请求任务正在处理中,并返回给client一个token。后续client拿着这个token就可以来(可以是另外一个单独的用于状态查询和结果获取的服务)查询请求的处理状态(poll),同时,服务端也可能会通知(push)客户端情况。 <!-- /wp:paragraph --><!-- wp:paragraph --> 不过,既然上面谈到了Singular Update Queue,它们俩有时是有关联的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 在使用Singular Update Queue的时候,如果consumer处理一个消息需要花很长的时间,那么它就可能成为整个系统吞吐量的瓶颈。很多时候,这个consumer花很长时间来处理往往不是因为有复杂的CPU计算,而是等待,比如等待一个远程调用结束,等待一个文件写入结束等等。 <!-- /wp:paragraph --><!-- wp:paragraph --> 对于这样的问题,有两种解决思路: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - **一种是划分出更多的partition**,这样就可以设置更多的consumer线程来处理,但是这种方法带来的代价是更高的overhead。 - **第二种是把处理流程变成异步执行的**,而把它变成异步的就意味着系统没法直接妥善处理异步处理结果(它可能成功,也可能失败),因此对于这样一个子问题,有两个进一步解决的思路: - **触发处理流程之后,预约下一个“回访”**,也就是采用这里提到的Asynchronous Request-Reply这样的机制,但是这个回访需要在一定时间后发生,并且一定要发生,因此这需要一个高可用的定时任务的服务(需要支持重试策略和失败处理),或者是封装一个delay queue,即里面的消息需要过一段时间才能被poll到,因此这个机制有可能会比较复杂。 - **还有一个思路则是让consumer来集成Coroutine**,这样一个consumer线程可以被分享同时处理若干个消息,这些消息都来自同一个partition(有一些开源库就专干这个事儿),于是这样多个消息就可以被同一个线程以非阻塞的方式并行处理。这个方法的一个局限性是,这些消息在Coroutine框架内处理时,不能存在并发冲突的问题。<!-- /wp:list --><!-- wp:heading --> ## Rate Limiting &amp; Throttling <!-- /wp:heading --><!-- wp:paragraph --> 最后比较一下Rate Limiting和Throttling。我也是不久前才区分清楚,以前我基本是把它们混在一起使用的。它们都是用来限流的,并且有多重不同的方式,可以是基于fixed window,sliding window等等。 <!-- /wp:paragraph --><!-- wp:paragraph --> 但是它们的区别,本质上是它们工作的角度不同。**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">Rate Limiting是从client的角度来管理资源的</mark>**,比如说,规定某一个/每个用户对于资源的访问不能超过一定的限度,因为资源不能让一个客户端全占了,这样其他人才可以有访问资源的权利;**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">而Throttling则是从service的角度来管理资源的</mark>**,比如说,规定某个/每一个API的访问throughput上限是多少,一道超过这个限度,请求就会被拒掉,从而保护服务。 <!-- /wp:paragraph --><!-- wp:paragraph --> 和这两个可以放在一起的,其实还有一个Circuit Breaker,不过Circuit Breaker的功能和这两个有较大区别,不太容易弄混,因此就不赘述了。 <!-- /wp:paragraph -->

2024-10-02 00:46:16 · 3次阅读
 
 
为什么即时战略游戏越来越落寞?

## 硬核科普警告! 即时战略(RTS)在过去30年的发展中,传统型RTS已经衍生出了三种细分品类,分别代表着三种玩法设计侧重,他们是战术型、战略型、动作型。**题主提到的落寞应该是特指传统型RTS和动作型RTS**,他们代表了RTS的席卷行业的起源时代,以及达到RTS热度顶峰的电竞时代。 ![](https://pic1.zhimg.com/v2-8ce2dcda8f2e65daf84aa42138da0dda_720w.jpg?source=b1748391?rss) 这是一种并不算公认的分类方案,几乎只被开发者和学院派认同,玩家们的分类标准则是众说纷纭。而**对于多数游戏的发行商来说,他们更乐意于混淆各种RTS的定义,甚至带上即时战术的标签,以此来拓展游戏销路的受众面,并且吃到冷门品类的舆论支持红利**,也就是我们常听到的口号“现在还有在做RTS的...必须要支持”。不过作为玩家,我们能够清晰的体会到这四类RTS的根本差距,玩法的互不相通让我们能很好的辨认他们的区别,我对此做一点简单的介绍。 <blockquote>注:本文仅限于在游戏设计上满足即时战略四大要素、且即时制的游戏作品,即包含:资源采集、生产建设、发展科技、单位控制要素又是即时制的游戏,详见RTS维基百科<sup data-text="即时战略维基百科" data-url="https://en.wikipedia.org/wiki/Real-time_strategy" data-draft-node="inline" data-draft-type="reference" data-numero="1">[1]</sup></blockquote> - - - ### 1.战术型即时战略: 倾向于人员布置、战术安排与使用的玩法;拥有复杂地形环境和丰富战场条件,不再重视采集资源与生产建设,而是专注于发展科技和单位控制要素<sup data-text="策略游戏:第五部分——实时策略游戏与回合制" data-url="https://web.archive.org/web/20081221074049/http://archive.gamespy.com/articles/february02/strategygames05/" data-draft-node="inline" data-draft-type="reference" data-numero="2">[2]</sup>。代表作有英雄连1、星战战争帝国、先祖遗产、战争黎明2、钢铁收割。玩家需要考虑的是各种不同类型的单位,如何进行战术协同,是在铺设地雷后坚守高地、还是在机枪扫射下突击大桥等等<sup data-text="《英雄连游戏评论》" data-url="https://web.archive.org/web/20071130081116/http://ve3d.ign.com/articles/reviews/4043/Company-of-Heroes-Review" data-draft-node="inline" data-draft-type="reference" data-numero="3">[3]</sup>,总之,在你思考完战术安排后,布置相应人员并根据情况变化,随时做些简单的调整即可。 ![](https://picx.zhimg.com/v2-c956ef86db959548275c4df0e49bbf4c_720w.jpg?source=b1748391?rss) 这类RTS的微操作空间少,掩体需要进驻时间、火炮需要架设过程、机枪需要放置动作,生效反馈有延迟性,如果玩家频繁的进行指挥,反而会打乱单位原本的行动进度。单位在战斗时虽然有一定的命中随机性来控制单位平衡,不过一直打不过敌人一定是思路有问题,只要策略上有针对性就必然会获得胜利——这是因为战术型即时战略本就是汲取了相近的游戏类型即时战术(RTT)的成功经验,与RTT一样强调兵种独立性、重要性、配合复杂地形环境和丰富战场条件带来更多战术可能性。<sup data-text="即时战术游戏定义" data-url="https://en.wikipedia.org/wiki/Real-time_tactics" data-draft-node="inline" data-draft-type="reference" data-numero="4">[4]</sup><sup data-text="Destructible environment 场景破坏 - 维基百科" data-url="https://en.wikipedia.org/wiki/Destructible_environment" data-draft-node="inline" data-draft-type="reference" data-numero="5">[5]</sup>单位有着明显的克制关系,一支机枪小队压制价格远超自身的十队精英步兵不在话下,很少有其他RTS中的不死族蜘蛛、虫族刺蛇、苏军天启坦克这种什么都能打的万金油兵种,同样也就因此少有能让玩家“F2A”的时候,导致传统型与战略型RTS玩家普遍感觉打起来不够爽,没有部队规模养成后,全面进攻时碾压式的正反馈。 考虑到这一类型大量参考了RTT游戏设计,在历史溯源方面没有必要深究,毕竟RTT游戏比RTS的出现还要早,战术型RTS的首个作品一般被认为是来自遗迹娱乐开发的战争黎明1,<sup data-text="战锤40k:战争黎明 - 维基百科" data-url="https://en.wikipedia.org/wiki/Warhammer_40,000:_Dawn_of_War" data-draft-node="inline" data-draft-type="reference" data-numero="6">[6]</sup>并在同样是遗迹娱乐开发的同类型后续作品英雄连1中达到时代巅峰水准,尽管取得了巨大的成功,但在其正统续作英雄连2中,遗迹娱乐仍然选择靠近动作型RTS,提高了微操收益并加快了游戏节奏。 战术性RTS由于游玩时经常带有一定的石头剪刀布式的三角克制解谜属性,需要思考战术应对,又追求即时制游戏的快速交互,对于普遍喜欢缓慢进行规划的策略游戏玩家群体并不友好,所以成为了目前最冷门的RTS玩法分支,如果对这类游戏有着极大热忱却找不到游戏可玩,更推荐诸如钢铁之师2、终极将军、叙利亚战争、战争游戏红龙等类型相对近似的RTT游戏<sup data-text="即时战术商业游戏表" data-url="https://en.wikipedia.org/wiki/List_of_real-time_tactics_video_games" data-draft-node="inline" data-draft-type="reference" data-numero="7">[7]</sup>,或是全面战争这种混合型RTT作品。<sup data-text="RTS的现状 - 为什么闪电战和全面战争并不是RTS" data-url="https://web.archive.org/web/20060409154749/http://pc.ign.com/articles/700/700747p1.html" data-draft-node="inline" data-draft-type="reference" data-numero="8">[8]</sup> ![](https://pic1.zhimg.com/v2-b83b7dcacaee9f87fd28093f63f030ab_720w.jpg?source=b1748391?rss) ### 2.动作型即时战略: 倾向于高速反应、快速操作、瞬间反馈玩法;单位拥有极高的反应速度,强调微观管理<sup data-text="维基百科 - 微观管理和宏观管理" data-url="https://en.wikipedia.org/wiki/Micromanagement_(gameplay)" data-draft-node="inline" data-draft-type="reference" data-numero="9">[9]</sup>,对局有短时长且快节奏的特征。代表作有星际争霸2、红色警戒3、帝国时代4、魔兽争霸3,动作型RTS的底层逻辑在大体上就是传统型RTS,然而游戏速度远快于传统型RTS、微操收益也远高于传统型RTS,即使是同水平的高手,也会因几次失误的微操作而完全失去战场的主动权,是否强调微观管理的设计是区别一款RTS是动作型还是传统型的重要依据。 ![](https://pic1.zhimg.com/v2-5e9e33b7101888f3944d67669ce5d053_720w.jpg?source=b1748391?rss) 与战术型RTS相同,这两种RTS都有微操作,不过实际的设计思路和游玩思路完全不同,动作型RTS的单位通常没有自主意识,难以独立行动,需要玩家不断下达非常具体的新指令来进行调整(走位/攻击/释放技能等)农民或工人单位被打了也就是走一步/挪一下,无法预设行为并自主化执行<sup data-text="“按钮保姆”批评" data-url="https://en.wikipedia.org/wiki/Real-time_strategy#cite_note-babysitting-49" data-draft-node="inline" data-draft-type="reference" data-numero="10">[10]</sup>,加上单位有着极高的反应速度,所以微操作收益极高,正反馈非常强;战术型RTS的单位则普遍拥有自主能力,尽管需要玩家在战斗前做更多安排,但是开始战斗后往往不需要频繁调动,他会根据预指令进行应对。举例英雄连1的机枪班实际使用过程为:你去这个战壕中 - 面朝这个方向,实际单位执行为:我去这个战壕用机枪看守这个方向,如果有什么动静我就扫射他,压制出现的敌人,直到玩家给我新命令为止。<sup data-text="实时游戏玩法常常退化为“反应冲刺”《星际争霸 vs 战争黎明》" data-url="https://web.archive.org/web/20090414092309/http://pc.ign.com/articles/533/533146p1.html" data-draft-node="inline" data-draft-type="reference" data-numero="11">[11]</sup> ![](https://picx.zhimg.com/v2-1746ce5267ee817017649b962b239ba8_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-d1ab48afebf77016d97adb27d9fe78cf_720w.jpg?source=b1748391?rss) 星际争霸2在后期的合作模式更新中参考战术型RTS,添加了右键开启幽灵自动狙击、追猎者残血自动闪现等功能,不过没有在策略层面上有对应设计,导致这些改动仅仅是增加便利性的功能,换言之只是用来给玩家爽的,缺乏深度,这就是不同RTS设计思路会产生不同玩法的体现。<sup data-text="Gamesport - 横扫千军:下达命令而不是操作" data-url="https://web.archive.org/web/20130910070302/http://www.gamespot.com/gamespot/features/all/real_time/p5_01.html" data-draft-node="inline" data-draft-type="reference" data-numero="12">[12]</sup> ![](https://picx.zhimg.com/v2-e010de6a552eeabc36db4fe059c7985e_720w.gif?source=b1748391?rss) 少数人认为动作型RTS最初的起源,是暴雪缔造的RPG+RTS的概念,魔兽争霸3几乎是完美的将其执行了,多数人则认为星际争霸1才是动作型RTS的起源,然而考虑到星际争霸1有着节奏缓慢、延时反馈的复杂战略纵深,低地打高低时严重的命中率惩罚等设计,开发者设计意向是否更接近于传统/战略型RTS仍有待商榷;不过其续作星际争霸2,依靠单位主动聚团的鱼群算法、大量核心单位无法移动开火等放大操作收益的设计,加上令人咋舌的顶尖游戏质量,一举成为了动作型RTS中无可争议的巅峰,所以星际争霸系列作品应当拆分看待。 该类型因为有着和射击游戏、格斗游戏一样的高速、短时、强对抗的特性;又没有侧翼攻击、包围惩罚、地形效果等复杂机制,降低了观看门槛,配合RTS独特的大规模战斗玩法,令其迅速成为高观赏性PVP游戏中的热门项目,让无数其他类型RTS垂涎不已,在2002-2012这十年间掀起了业界狂热的电竞化浪潮,各界媒体高呼“高操作和强竞技才是RTS的未来”<sup data-text="RTS演变成了点击盛宴 - 战争剧场 采访" data-url="http://www.armchairgeneral.com/articles.php?cat=59&amp;p=2806&amp;page=1" data-draft-node="inline" data-draft-type="reference" data-numero="13">[13]</sup>大量战术/战略/传统型RTS转型成为动作型RTS以迎接时代,直到2013年星际争霸:虫群之心发布后,这一盛况终于结束。<sup data-text="Point – CounterPoint 回合策略与即时策略" data-url="https://web.archive.org/web/20070226185919/http://www.strategyplanet.com/features/articles/pcp-turnvsreal/" data-draft-node="inline" data-draft-type="reference" data-numero="14">[14]</sup> **动作型RTS和其电竞化对即时战略影响深远,几乎改变了一代人对于RTS的认知。直至今天,多数人仍拒绝承认其他类型RTS是真正的RTS,并提出没有高APM的操作收益与主PVP设计就失去了RTS应有的刺激感和观赏性等观点**。在这一历史进程中,包括命令与征服4、英雄连ol、战争黎明3、侵略行为在内的无数盲目角逐动作型RTS的作品宣告死亡,也有很多坚持其他类型RTS的作品,在其市场迅速缩小后选择离开,最终酿成RTS游戏界尸横遍野的惨状,是一段从百花齐放到一枝独秀的独特历史阶段,不过这一状况实际上与暴雪无关,就像雅达利大崩溃并不能将其归咎于动视开发的作品太过优秀,争相模仿的根源还是市场需求的改变与开发商逐利的体现。目前,动作型RTS仍在公众心目中占即时战略这一类型的主导地位。 ![](https://picx.zhimg.com/v2-8884fa6dd47defc94eb9900edf5eb933_720w.jpg?source=b1748391?rss) 在Steam上我们可以轻松的找到“动作即时战略”的标签,但是,你会发现该标签下的游戏内容非常繁杂,这是因为这一概念早期是部分人用来概括魔兽争霸3中澄海3C、Dota、真三、火影等强调微观管理地图的玩法名词<sup data-text="MOBA 的历史:从模组到轰动" data-url="https://venturebeat.com/2014/09/01/the-history-of-mobas-from-mod-to-sensation/" data-draft-node="inline" data-draft-type="reference" data-numero="15">[15]</sup>,后来在Dota2、LOL等游戏被独立划分为Moba类型后,这一概念回归了即时战略本源;<sup data-text="MOBA 游戏类型的程序地图和角色生成" data-url="https://publicaciones.eafit.edu.co/index.php/ingciencia/article/view/2641" data-draft-node="inline" data-draft-type="reference" data-numero="16">[16]</sup>另一方面,**很多开发者真的将动作、射击、即时战略在游戏中进行了结合,让玩家能够扮演士兵执行射击、匍匐、砍杀、换弹等微操,并且进行即时战略玩法**<sup data-text="游戏革命 - 战区98游戏评论" data-url="https://web.archive.org/web/20070218035657/http://www.gamerevolution.com/review/pc/battlezone" data-draft-node="inline" data-draft-type="reference" data-numero="17">[17]</sup>,比如可执行突击2、夺取前线、第七区、双子星系军阀、物竞天择、战区98、空甲联盟、盛衰记战火文明等等,所以标签页的混乱是必然的,就像RPG这个标签一样囊括了太多玩法。 ### 3.战略型即时战略 倾向于宏观战略,不断制定长远规划的慢节奏玩法<sup data-text="维基百科 - 微观管理和宏观管理" data-url="https://en.wikipedia.org/wiki/Macromanagement_(gameplay)" data-draft-node="inline" data-draft-type="reference" data-numero="18">[18]</sup>;往往拥有超大规模战争、复杂的游戏系统、高度自主化的单位Ai或自动化流水线、以及长时间的单局游戏,不断鼓励玩家追求并维持多种战略平衡,很多作品甚至超出简单的军事范畴,拥有外交、经济、文化等元素。这一类型的分支目前的发展、正在尽可能的避免走向传统型RTS杂而不精的老路,所以作品普遍有着较强的玩法侧重性,有些侧重经济、有些侧重战争、有些侧重外交。在其尚不成熟的早期阶段,代表作有横扫千军、太阳帝国的原罪、要塞、傲世三国、骑士与商人,他们有些有着简单的外交系统、幸福度机制,或是颇有说法的建筑学、考验长期布局能力的战略纵深等等,然而都属于浅尝辄止的水平。<sup data-text="最高指挥官设计师:即时战略应该有更多战略元素" data-url="https://en.wikipedia.org/wiki/Real-time_strategy#cite_note-christaylor-51" data-draft-node="inline" data-draft-type="reference" data-numero="19">[19]</sup> ![](https://picx.zhimg.com/v2-75af98d77160bef59b5624551cc46f24_720w.jpg?source=b1748391?rss) 而看向现代的战略型RTS,则有着轻量级和重量级的区分,以北境之地、冒险之旅十字军、粒子舰队、奇点灰烬为代表的轻量级,精简了游戏内容,并将各个系统更成熟的整合在一起,实现了易于上手,难于精通的特性,十分适合作为类型的入门作品;以至高统治者、欧陆风云4、纪元1800、信长之野望为代表的重量级,反其道而行之,令游戏机制爆炸性延伸,让游戏目标的选择多种多样,能够让玩家带有明确目的进行重玩,比如王国风云3和女儿乱伦生子、钢铁雄心4苏共施密尔舒间谍局、地球不屈的抵抗胜利/杀戮胜利等等,玩法路线之多令人眼花缭乱,且都能达成不同乐趣,<sup data-text="千篇一律的战术 - “RTS 的未来——反意见”" data-url="http://www.gamasutra.com/php-bin/news_index.php?story=17098" data-draft-node="inline" data-draft-type="reference" data-numero="20">[20]</sup>也因此而让人望而却步,是既难上手也难精通。 这两种类型并没有明显的划分界限,一般只取决于开发者想设计一个简单的还是复杂的作品,玩家则可以通过游戏体量来进行简单的划分。 ![](https://pic1.zhimg.com/v2-ff3b2aed41e8c9c1af884a6c42fd9893_720w.jpg?source=b1748391?rss) <blockquote>部分通过兵棋、4X、经营模拟与即时战略相结合的作品,他们有一种目前公认的称呼是“大战略游戏”当然,这其中也有着即时大战略与回合大战略的区别,我们这里特指即时大战略。</blockquote> 战略型RTS的首部作品一般被认为是1997年发售的横扫千军。在其引入了风力、风向、重力、潮汐、水深、视野能见度、理论射程、地貌交互性、流体经济平衡、战略地图、真实雷达系统、自主化单位Ai、自动化生产等诸多设定后,过多的战略元素交互让游戏性质完全脱离了玩家认知中RTS框架,不仅收获了开发者和媒体界的一片盛赞,甚至独立成了一个专注于军事战略玩法的横扫系RTS<sup data-text="横扫千军 - 维基百科" data-url="https://en.wikipedia.org/wiki/Total_Annihilation" data-draft-node="inline" data-draft-type="reference" data-numero="21">[21]</sup>(另称TA系RTS)对行业影响十分深远。该类型作品在之后的25年内衍生出大量精神续作,但开发商们却无一例外的均在一片好评声中破产,其过程之悲壮令人难以直视,为行业输送了大量宝贵经验。<sup data-text="GameSpot 有史以来最伟大的50款电子游戏" data-url="https://web.archive.org/web/20100612205059/http://www.gamespot.com/gamespot/features/all/greatestgames/p-43.html" data-draft-node="inline" data-draft-type="reference" data-numero="22">[22]</sup> ![](https://pic1.zhimg.com/v2-24ea40444b59c193967bc621ad4626ae_720w.jpg?source=b1748391?rss) 当然,横扫系RTS的发展并不能代表整个战略型RTS的发展,要塞(2001)和太阳帝国的原罪(2008)也是众多推动者中的代表,前者尝试将社会模拟和模拟经营融入RTS<sup data-text="CGW 游戏领域的最佳游戏" data-url="http://www.cgwmuseum.org/galleries/issues/cgw_213.pdf" data-draft-node="inline" data-draft-type="reference" data-numero="23">[23]</sup>、后者尝试总结猎户座在内的多款4X游戏经验<sup data-text="太阳帝国的原罪 IGN开发者访谈" data-url="https://web.archive.org/web/20070805030848/http://pc.ign.com/articles/807/807956p1.html" data-draft-node="inline" data-draft-type="reference" data-numero="24">[24]</sup>,将探索与外交和RTS的基本玩法进行了优秀结合;还有目前在策略游戏圈内风头正劲的瑞典开发商P社,也曾发行过王权(2001)与荣耀骑士(2005)谨慎探索高单位自主性的战略型RTS玩法。不过,考虑到该类型作品在很长一段时间内叫好不叫座,资料相对匮乏,历史查阅和取证非常困难,故对此不再展开,仅做简单介绍。 在实际游戏中,战略型RTS与其他三种类型有着本质上的区别,不仅操作空间小,反馈延迟大,部分作品甚至完全不允许玩家干涉过于微观的内容(微操)只能通过改变战略布局去间接形式影响。以钢铁雄心4的军事方面为例:玩家无法预设步兵、坦克、火炮单位的作战规则,这些由国家军事部门研究的陆军学说和部队将领负责,军队将根据当时的地形、士气、后勤、情报等情况选择战术进行战斗,在这件事上,玩家需要考虑到是“去哪打,让谁去”而具体到“怎么去,怎么打”那就不是玩家要管的了。也就是说,玩家若想要让战斗的“起因、经过、结果”都很顺利,那么你应该在“时间、地点、人物”上面下功夫,抓好时机,挑好地点,任命好将领安排好部队,选择机动作战或优势火力等陆军学说、制定长远战略,然后迎接水到渠成的胜利。 ![](https://pic1.zhimg.com/v2-29b4f7687b1057c07061d32dd572d551_720w.jpg?source=b1748391?rss) 宏观的战略型RTS已经走出最艰难的时刻,是目前发展最为蓬勃的RTS分支,市场占有率节节攀升。因其操作量小,决策量大的特性,开发者们也脑洞大开,不断整合棋牌、塔防、自动化工厂、生存等与这一特性相同的游戏元素,故而吸纳了大量其他类型的优质策略游戏玩家<sup data-text="“策略游戏:第六部分 – 游戏类型的发展方向”" data-url="https://web.archive.org/web/20071030014041/http://archive.gamespy.com/articles/february02/stratfinal/" data-draft-node="inline" data-draft-type="reference" data-numero="25">[25]</sup>,亿万僵尸、Desynced、反叛公司、像素工厂、Industrial Annihilation、粒子舰队、战线等作品冒着创新风险的勇敢尝试,都在不断为即时战略这一类型寻找新的希望,历史应该记住他们。<sup data-text="“即时战略游戏的未来”" data-url="https://en.wikipedia.org/wiki/Real-time_strategy#cite_note-gama_toronto-52" data-draft-node="inline" data-draft-type="reference" data-numero="26">[26]</sup> ### 4.传统型即时战略 顾名思义,是即时战略这一定义的起源,诞生于30年前的沙丘2<sup data-text="PC 上即时策略游戏的起源" data-url="https://web.archive.org/web/20030504034920/http://www.above-the-garage.com/rblts/vie16b.htm" data-draft-node="inline" data-draft-type="reference" data-numero="27">[27]</sup><sup data-text="策略游戏 入门知识" data-url="https://web.archive.org/web/20100810204341/http://archive.gamespy.com/articles/february02/strategy1/" data-draft-node="inline" data-draft-type="reference" data-numero="28">[28]</sup>,专注于构建大兵团对战的爽度和视觉效果,拥有低难度运营流程和高兵种通用性的特征,代表作有帝国时代2、命令与征服、地球帝国2、轴心国与同盟国、红色警戒2、国家的崛起。该类型有着早期策略游戏设计深度不足却又想囊括万物的缺点,所以在难度方面普遍存在强度失衡情况,玩家社区对此戏称为可以憋憋乐和一波推的兵海游戏。传统型RTS在早期成功的主要原因普遍被认为是音画表现带来的强烈视听冲击力而不是优秀的策略性,这也是早期RTS会以“更大的规模”“精美的画面”为买点的主要原因,<sup data-text="“建造、聚集、争斗、重复:即时战略游戏的历史”" data-url="https://arstechnica.com/gaming/2017/09/build-gather-brawl-repeat-the-history-of-real-time-strategy-games/" data-draft-node="inline" data-draft-type="reference" data-numero="29">[29]</sup>回顾上文中动作型RTS的电竞历史,不难发现曾经即时战略走向大众的真正内核是什么,也便不难梳理出现在“落寞”的真正原因了。 由于目前游戏领域细分已经十分专业化,故若以现在的眼光看待传统型RTS,不难看出其中杂糅了城市建设类、策略模拟类、即时战术类等众多风格或节奏完全不统一的玩法,这也是后来即时战略玩法进行三向细分的根本原因;另一方面,所有内容都有一点,却在多数方面都缺乏深度,几乎是传统型RTS的通病,也是导致其逐渐小众的次要原因,<sup data-text="《RTS设计》" data-url="https://web.archive.org/web/20070927142342/http://www.dunniwaydesign.com/rts_design.htm" data-draft-node="inline" data-draft-type="reference" data-numero="30">[30]</sup>毕竟,决定一个产品能否存活的关键不是优点,而是特点。 ![](https://picx.zhimg.com/v2-f8b555b62b25b77ee77305046ba7abef_720w.jpg?source=b1748391?rss) 由于传统型RTS在游戏性上已经被其他三种细分类型瓜分,故该类型的介绍无需太多笔墨,在最后以对比的形式总结梳理一下四大类型RTS的优缺点,以便于大家更好的进行理解。 内容广度:战略型>传统型>战术型>动作型 策略深度:战略型>战术型>传统型>动作型 在系统复杂度上,虽然有部分轻量级战略型RTS在内容广度上逊于传统型RTS,但以类型整体进行对比,战略型RTS仍是当仁不让的第一,即使已经删除战术层面的多数微观内容,其宏观战略的体量仍旧惊人;战术/动作型RTS则至简而行,让玩家能全身心投入到战斗中,思考战术布局/大量细节微操,而传统型RTS突出一个杂而不精,就像红警2的结盟功能,相信多数玩家从来都没用过,坦克杀手与恐怖分子等阵营特殊单位、也是既缺乏游戏性也缺乏趣味性,这类鸡肋的内容是传统型RTS的重要缺点,有着时代的局限性。 上手难度:动作型=战略型>战术型>传统型 动作型RTS的微操作需要大量的时间进行练习,棱镜接白球/不朽、人族Sky一波流、盟军维和分弹和冷冻连缩甚至需要形成肌肉记忆,连基地建设的时间都要卡死时间点才有最大化收益,上手难度之高不言而喻;而战略型RTS则因内容量过多,且每一方面的玩法都值得深挖,导致大量玩家完全无所适从,早期游玩时甚至连失败的原因都不清不楚;此时,传统型RTS的深度不足反而在新人上手方面体现出了优势,学会憋强力/万金油单位就能快速感受到乐趣。 可重玩性:战略型>动作型>战术型>传统型 战略型RTS的内容广度与策略深度,往往能够让玩家带有明确目的进行重玩;动作型RTS随着肌肉记忆的养成,运营成功与微操收益的提升十分直观,阶段性成长乐趣浓厚,这一过程就会提供不错的重玩性;相比之下后两种类型的游戏重玩体验极其依赖对手行为,想要设计出匹配任何玩家实力的PVE Ai和高度精准PVP匹配系统都是游戏设计上非常困难的课题,考虑到业内至今仍未有一个非常优秀的解决方案,我做出了这样的排行,其中传统型的问题解决难度超过了战术型。 成型爽度:传统型>战略型>动作型>战术型 不得不承认,不论是地球帝国中遮天蔽日的空中压制、还是轴心国与同盟国里钢铁洪流的浩浩荡荡,都有着非常优秀的爽感,加上策略深度有限,手握终极单位的你大可无脑进攻,**憋憋乐和一波推就是传统型RTS的浪漫所在**,当然,这也令其沦为了纯粹的“兵海爽游”即使是后来动作型RTS衍生出去的Moba游戏,都比其更有深度。相比之下战略型RTS的养成难度更高,需要解决工业、人口、建筑学等概念,所以比简单粗暴的传统型RTS略逊一筹,不过成型之后因其自主化程度较高,体验其实并不输传统型RTS。动作型/战术型RTS在这方面完全不是对手,前者即使大军压境也往往需要高频甩枪拉扯,不然输出无法最大化;后者则是因复杂的兵种克制,即使是优势时的一波鲁莽进攻,也可能会导致死伤大半。 内容观赏性:动作型>战术型=传统型>战略型 动作型RTS,电子竞技的开山鼻祖,赏心悦目的多线微操如同指尖舞蹈,尽管是专注服务于顶层玩家的游戏,设计改动只以职业赛事为参考,却不能忽视其伟大的历史贡献。战术型RTS与战略型RTS有着相同的问题,那就是看不懂!对于观众来说,前者的克制关系是一种很抽象的机制,在视觉上被接受需要时间;而后者更多的是互相影响的各种系统,就像纪元1800的经济模型建立在宏观经济学中,这让理解成本过高导致观看门槛过高,爽感反馈更弱。相对来说,传统型RTS的兵海互推更好理解,却也更容易视觉疲劳,不论是策略上还是操作上,都缺少紧张刺激的博弈对抗。 ## 总结: ![](https://picx.zhimg.com/v2-73e361ab66001c81bc4c403d74c7de66_720w.jpg?source=b1748391?rss) 目前,这四种分类已经能够帮助绝大多数玩家进行筛选:[Steam上有哪些优秀的RTS游戏?](https://www.zhihu.com/question/552730949/answer/3287660269) 喜欢慢节奏种田养国的玩家去以赛事为核心的动作型RTS中就是会因操作而吃上大亏,不如试试战略型RTS中的王国与城堡、亿万僵尸、中世纪王国战争等轻量级作品,学习成本低便于入门; 喜欢精美画面和视觉冲击的玩家去战略型RTS中就是会昏昏欲睡,不如看看动作型RTS里的星际争霸2和地狱之门,前者的精美赛事能让你大饱眼福并明确目标、后者的第一人称微操更具代入感; 喜欢战术布局和奇谋诡术的玩家去动作型RTS中就是会束手束脚,不如考虑一下战术型RTS中的经典佳作英雄连1,若感不够施展你的战术思维,再跳跃到终极将军内战挑战真人一样思考的Ai; 最后,喜欢难度偏低,兵海爽推作品的玩家,也许应该看看老一代RTS作品或是老一代RTS开发商的续作,比如原红警团队的8位军团或传承其思想的铁锈战争、Five Nations、新月沃土等作品; 总之,作为游戏玩家,我们应该做好筛选,用钱投票自己喜欢的类型,而不是去自己讨厌的类型中攻击其他玩家,动作型RTS与其他类型RTS的冲突真的该结束了,这种互开即时战略户籍的对骂并不会产生什么积极的影响,反而会让开发商们不敢承受创新和公关的风险,逃离这个品类,最终破坏我们RTS的未来。 ### 先到此为止吧: 我会在未来几个月时间里持续完善这篇文章,希望大家也能够在评论区提出意见或建议,以帮助到更多即时战略的玩家们 —— 重铸RTS荣光,吾辈义不容辞! 来源:知乎 www.zhihu.com 作者:[轻声低语](http://www.zhihu.com/people/Qswhisper?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [1558 个回答,查看全部。](http://www.zhihu.com/question/36160228/answer/3267149436?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[你对即时战略游戏有什么见解?](http://www.zhihu.com/question/502919176?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [如何看待即时战略游戏?](http://www.zhihu.com/question/369415726?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-29 02:50:08 · 1次阅读
 
 
游戏的系列作品,下一作应该如何削弱前作中玩家已经养成的“战神”级角色?

知乎游戏区的好问题!拿近期大火的《黑神话·悟空》为例。 齐天大圣本体明显太强了,你如果设计成敲谁谁死,那游戏肯定没意思。 你如果设计成从1级开始游戏,那玩家肯定又不干“我们的大圣才没那么弱鸡。” ![](https://picx.zhimg.com/v2-fb755785b624521741cf539391438ef7_720w.jpg?source=b1748391?rss) 所以,游戏科学将大圣想办法分成了好几份,需要3周目都真结局,才能发挥出真大圣的威力。 ![](https://picx.zhimg.com/v2-31739666ea893e00249ffa638d45613c_720w.jpg?source=b1748391?rss) 从装备碎片,到大圣碎片,做成了拼图的形式。非常有创意。 那么其他游戏又是怎么做的呢?让我们娓娓道来。 ## **《塞尔达传说:旷野之息》→《王国之泪》** 经历了120个神庙的试炼,拔取大师之剑,斩杀盖侬,营救公主。 在《旷野之息》中,林克已经从“失忆”的Debuff中恢复到了勇者时的状态。成为了一名身经百战的战士。如果以这种形态来游玩《王国之泪》,显然很多前期敌人就变得没有必要了。 然而《旷野之息》到《王国之泪》的故事本身还是有所关联的。 那么如何解决“林克太强”这个问题呢? ![](https://picx.zhimg.com/v2-f32a084f452fe97c8ef2ee112357f9ca_720w.jpg?source=b1748391?rss) 那就是让林克与塞尔达开局探索地下世界的时候,让邪恶力量将林克的力量完全腐化。 ![](https://pic1.zhimg.com/v2-d7d32f2f26137cfd0fe09a1f7ae29b24_720w.jpg?source=b1748391?rss) 这股邪恶力量不仅摧毁了林克的额外生命,还毁坏了大师之剑和林克的一条手臂。 ![](https://picx.zhimg.com/v2-c4103a74b74f184dbe2b87b30feaa173_720w.jpg?source=b1748391?rss) 只有这样,才能将新的“究极手”移植给林克,并让其“重新成长”,获取新作的能力。 ![](https://pic1.zhimg.com/v2-faad1a30ecb9f090fa216b6edbf2ae99_720w.jpg?source=b1748391?rss) 虽然只是一个简单的转场,但任天堂削弱主角的手法,还真是与故事紧密结合,并且花了不少心思。 ## **《空之轨迹》系列,或者说《轨迹》系列** 作为通常以2~4部讲述一个故事的大长篇,任务动辄上百级的游戏,如何处理好新作与前作的衔接,就变得非常重要。我本人只玩过“空零碧”5部轨迹系列的游戏,但对Falcom如何处理的,却是颇有了解。 ![](https://pic1.zhimg.com/v2-4faad6074f3ccd805c163776ebfbab15_720w.jpg?source=b1748391?rss) 轨迹系列每开发一部新作品,财团部分就会制作出新的“导力器”。导力器是轨迹系列释放“导力魔法”的重要道具,由于老旧的结晶回路不能与新的导力器兼容,所以前作积累的回路也不能装在新的导力器上。 ![](https://pic1.zhimg.com/v2-099e41a398b516f3da802f415348796f_720w.jpg?source=b1748391?rss) 然而,较真的玩家会发现,虽然在终局时,新的导力器的确可以配置出许多前作无法配置出的终极魔法,导力孔也从六个升级了为七个。 ![](https://pica.zhimg.com/v2-a1e50642c06c5cfd2bf888cc362f0ab0_720w.jpg?source=b1748391?rss) 但导力回路的强度,还是FC的要比SC的强很多,比如FC版本的攻击3就有15%的物理伤害提升了。而到了SC中,能手动打造的最强回路攻击4也远没到这个程度。 如果游击士都很有战斗经验,仅凭游击士手册,也会选择混用新旧导力器来提升作战效率,直到新的导力器功能完全超过老的导力器为止,再来使用新导力器。 ![](https://picx.zhimg.com/v2-5c437796a52f22c2d1c9735be2ee04a5_720w.jpg?source=b1748391?rss) 轨迹系列更有趣的一点,是在轨迹新作中,总会对前作人物的已获得的技能进行惨无人道的削弱。比如罗伊德的招牌技能燃烧之心,在零之轨迹中可以持续5回合,而在碧之轨迹中只能持续3回合。 ![](https://picx.zhimg.com/v2-852870e0873b9c587c0b4e4bee1849e2_720w.jpg?source=b1748391?rss) 而此技能在效果消失时会晕厥1回合。在原版本中可以自由行动4回合后,再续一轮“燃烧之心”避免晕厥,但新作中,这种套路则完全不可行了。 对于其它的一些技能,甚至会变成即便升级为“真·XX”也是削弱版本,不如原版等状况。 ![](https://pic1.zhimg.com/v2-7c7bd096ee0a0506d8f4e650a7101140_720w.jpg?source=b1748391?rss) 例如《碧之轨迹》中艾莉神圣子弹增加20CP消耗的设计,使得《零之轨迹》中的神技,在《碧之轨迹》中几乎失去了效果。 ![](https://picx.zhimg.com/v2-441ca9e28a1cc85258eb1ff6d87a9c5d_720w.jpg?source=b1748391?rss) 可以说,轨迹系列对于人物的明涨暗削的确在剧情上做到了“合理化”,而后续加入的诸多新功能,也一定程度上掩盖了对于角色的削弱。但在剧情和实际战斗结合的层面上,难免给玩家一种,角色看起来变强了,实际上只是在不断原地踏步的观感。 ![](https://picx.zhimg.com/v2-4d412c16472f6a1b398310b13168a62b_720w.jpg?source=b1748391?rss) 而谈起Falcom的系列作品,万年主角红发色魔亚特鲁也很有趣,因为他在一个地区搜索了一堆秘宝,掌握了风火地等战斗能力后。在下一作,还是会在海滩失忆苏醒,醒来之后,连铠甲都变回1级了。 ![](https://picx.zhimg.com/v2-c536b52493c86d046a890e79a0ae0483_720w.jpg?source=b1748391?rss) 话说,冒险家真的要把获得的所有宝物都物归原主,才能展现自己高洁的品质吗? ## **《战神4》→《战神5》** 如果说《战神3》到《战神4》,奎托斯的能力大幅度削弱,是因为他已经完成复仇,放下屠刀,开始重视起自己的儿子与家庭了,那《战神4》到《战神5》他将上一代积攒起的铠甲和强化过的兵器都还原了,真是令人忍俊不禁。 ![](https://picx.zhimg.com/v2-1385bc1a7458c15f123830d1847b7ebd_720w.jpg?source=b1748391?rss) 明明在开场还在强调,儿子要努力锻炼,以应对未来的战争。而自己和儿子却把所有的装备全给丢了…… ![](https://picx.zhimg.com/v2-1c965d5ca7498dbff340151e3ef67399_720w.jpg?source=b1748391?rss) 这套神操作,给铁匠布罗克都整无语了。“老子费那么大劲儿打得胸铠和护肩甲,说‘用了’就用完了?” ![](https://picx.zhimg.com/v2-970450bec61c9f31a2e62ac388342e94_720w.jpg?source=b1748391?rss) 好歹在五代之中,奎托斯并没有将自己的链刃——放逐之刃重新埋起来,不然再半场游戏智能用一把斧子,真的会让人抓狂。 ![](https://pic1.zhimg.com/v2-49c906b81e797535f483b8b56521c0ed_720w.jpg?source=b1748391?rss) 不过,如果说在5代中两人都没有成长,那也是不对的。因为在《战神5》中除了开场就能用放逐之刃,奎托斯的斧子也能在开局就附魔冰霜,冰与火的交替攻击,使游戏前期的战斗更富有趣味性。 ![](https://picx.zhimg.com/v2-3e4de3d469e7b81af58c4afc0cdb41f8_720w.jpg?source=b1748391?rss) 而在5代中,爬墙时,儿子也终于不再用奎托斯进行托举,且在未升级的情况下就能用体术勒住敌人了,两人合作击杀怪物也愈发顺手。在这些年中,奎托斯也学会了一些简单的文字。 ![](https://pic1.zhimg.com/v2-07bada4f6264857cc397c5faadf09045_720w.jpg?source=b1748391?rss) 剧情中,这些细腻的人物成长,也讲述着时间给父子之间带来的变化。只不过,前代一些升级后早已学会的能力,在5代里还要重新升级学习。 可能时间真的会让人遗忘一些不常用的技能吧? ## **《女神异闻录3Reload》→《DLC》** 不敢想象,同一款游戏中,DLC的人物等级会断崖式下降。本来从1级萌新成长为满级大佬,拯救世界的伙伴们,仅仅过了4个月,就全员回到了二十几级的水准。 ![](https://pic1.zhimg.com/v2-26139e06ec71803b9fd6686a13be708a_720w.jpg?source=b1748391?rss) 甚至被一个外来者拿个铁锤几乎就打成团灭。 ![](https://pic1.zhimg.com/v2-74f4145b709fc315b399ead81375c64f_720w.jpg?source=b1748391?rss) 可以说P3R主角团的战斗实力,在我看来就像是参加高考的高中生的知识储备和读了大学毕业三年后的状态一样。虽然还是一个人,但那差距实在是不可同日而语了。 ![](https://picx.zhimg.com/v2-6c3d99a24762107aa98fe8698a965600_720w.jpg?source=b1748391?rss) 而封印装备,降低能力,不让用P的原因,就是让玩家再来一次沉浸式爬塔,只能说Atlus,你真的是太懂了!知道《女神异闻录》系列,这么吸引玩家的原因,就是战斗特别好玩,和Coop、日常剧情等完全无关。 ![](https://picx.zhimg.com/v2-df387d70b8c382c8d2b9b75000562ba2_720w.jpg?source=b1748391?rss) 而最让我难受的是,成为了寻找牢李主角的埃葵斯,失去了自身狂暴化的标志型神通技,自己变成了另外一个可以操作多个P的牢李二号。 ![](https://pic1.zhimg.com/v2-9ecec42c2f8269ed6be686885d6acf93_720w.jpg?source=b1748391?rss) 自己的这套能力,则给了善使大锤的锤子女。 在这许多削弱主角的游戏中,《P3R》可能是我见过的抽象之最了。 将本体的一切重来一遍的没苦硬吃,何尝又不是一种没活硬整呢? ![](https://picx.zhimg.com/v2-498135d8e4dbfd9f0c999c27d7b706e2_720w.jpg?source=b1748391?rss) 好在全新设计的UI界面,还是蛮好看的。 ## **《封印之剑》→《烈火之剑》** 看,这个大胡子男人叫做海克托尔,在游戏开局就面对一群龙骑士战死于城堡之中。 火纹这种开局死国王的设计,就算在当时来看,也算是斯通见惯了。 ![](https://picx.zhimg.com/v2-0e467e17af9db234e9d53a85b40fb3d9_720w.jpg?source=b1748391?rss) 但到了下一作《烈火之剑》也就是《封印之剑》的前传,那个全队伍里的唯一重甲猛男,又成为了多少人的意难平? 在“火焰之纹章”中,剑克斧,斧克枪,枪克剑,有着这样石头剪刀布一样的克制关系,但在《封印之剑》与《烈火之剑》的游戏系统里,使用斧子都为轻甲或无甲的山贼,剑类武器则是三系武器中,速度快攻击力低的代表。 ![](https://picx.zhimg.com/v2-ff226f9cfc5f88f9480237e825c94f78_720w.jpg?source=b1748391?rss) 重甲类角色,例如将军、圣骑,也通常是主枪、副剑。 而海克托尔是个例外,他用着三系武器中攻击力最高的斧类,身上的铠甲却是重甲。攻防一体,加上极高的成长值,使海克托尔几乎可以无视克制,一路劈砍过去。 而昔日的重甲猛男,也抵御不了时间的摧残(编剧的削弱),在《封印之剑》开局便早早下场。若是昔日的海克托尔仍在,三把钢斧(有磨损)便足以荡平所有侵入者,哪还有后续的故事什么事儿呢? 剧情杀什么的最讨厌了! **结语:**自古文长没人看,本期是有感而发,就将近期发布的几款游戏和老游戏都拿出来说说,如果你也有这个话题中,自己感兴趣的,觉得设计很好的游戏,欢迎在评论区讨论呀! 来源:知乎 www.zhihu.com 作者:[无月白熊](http://www.zhihu.com/people/wu-yue-bai-xiong?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [108 个回答,查看全部。](http://www.zhihu.com/question/667962011/answer/3633824129?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[没有弱的角色,只有弱的玩家真的适用于所有游戏吗?](http://www.zhihu.com/question/598530920?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [游戏《巅峰战舰》的核心玩法是什么?](http://www.zhihu.com/question/653034462?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-27 04:24:11 · 2次阅读
 
 
本地部署 Minikube + Docker 记录

我有Mac和Windows,这些年折腾软件方面的环境Linux用得比较多,最近想安装一个Kubernetes的本地环境,本着“生命不息,折腾不止”的精神,打算在Windows上动手。了解到可以尝试Minikube,在此简单记录一下。 <!-- /wp:paragraph --><!-- wp:paragraph --> 首先得要安装Docker,但是在Windows下跑Docker有两种方式,WSL(Windows Subsystem for Linux)或者Hyper-V。我首先把这些Windows组件都勾上: <!-- /wp:paragraph --><!-- wp:image {"id":7725,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-8.png) <!-- /wp:image --><!-- wp:paragraph --> 我两条路都去走了一下,为了使用Hyper-V,我还去BIOS里面打开虚拟化支持的选项。不过,后来才知道,因为操作系统版本是Windows 10 Home,虽说Windows上面跑docker有两种方式: <!-- /wp:paragraph --><!-- wp:list --> - 一种是使用WSL - 另一种是使用 Hyper-V <!-- /wp:list --><!-- wp:paragraph --> 但在Windows 10 Home版本上只支持第一种。由于Hyper-V本质上是额外的虚拟机,而[WSL](https://learn.microsoft.com/en-us/windows/wsl/about)更新,是虚拟化的Linux环境,是Windows操作系统原生支持的,性能要好一些。 <!-- /wp:paragraph --><!-- wp:paragraph --> 其实,在Docker的设置里面也有说了: <!-- /wp:paragraph --><!-- wp:image {"id":7726,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-10.png) <!-- /wp:image --><!-- wp:paragraph --> 可以列出所有WSL(我使用的[WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install))目前支持的Linux Distributions: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>wsl --list --online</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 可以选一两个自己熟悉的安装了体验一下: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>wsl --install Ubuntu wsl --install Debian</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 整个Windows的文件系统都可以以Linux的方式访问。以往我一般在Windows上运行Linux命令都是使用Cygwin的,但是现在我了解到两者很不相同,WSL是真正的虚拟化Linux环境,而Cygwin只不过把一些Linux命令编译成Windows的二进制版本。 <!-- /wp:paragraph --><!-- wp:paragraph --> [安装Minikube](https://minikube.sigs.k8s.io/docs/start/?arch=%2Fwindows%2Fx86-64%2Fstable%2F.exe+download)和相关工具,配置环境变量。这次学到了可以用[Chocolatey](https://chocolatey.org/),它是Windows下的软件安装工具。比如: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>choco install kubernetes-cli</code></pre> <!-- /wp:code --><!-- wp:paragraph --> Minikube可以以VM、container,甚至bare metal(Windows下不支持)的方式来运行,通过[driver参数](https://minikube.sigs.k8s.io/docs/drivers/)指定。 <!-- /wp:paragraph --><!-- wp:paragraph --> 我们使用docker,这也是官方认定preferred的一种方式。这种方式下,Minikube应用本身会作为Docker container跑在Docker里面(driver的含义),同时,Minikube也会使用Docker来跑其它的应用container。 <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube config set driver docker<br/>minikube delete<br/>minikube start --driver=docker</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 看一下状态: <!-- /wp:paragraph --><!-- wp:paragraph --> Done! kubectl is now configured to use &#34;minikube&#34; cluster and &#34;default&#34; namespace by default <!-- /wp:paragraph --><!-- wp:paragraph --> 看一下状态: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube status type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 此外,检查一下WSL已经安装的Linux subsystem,能看到: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>wsl -l<br/>Windows Subsystem for Linux Distributions:<br/>Ubuntu (Default)<br/>docker-desktop<br/>Debian</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 在Docker的UI上,也能看到: <!-- /wp:paragraph --><!-- wp:image {"id":7727,"sizeSlug":"large","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-11-1024x52.png) <!-- /wp:image --><!-- wp:paragraph --> 跑起来以后,用[kubectl](https://kubernetes.io/docs/reference/kubectl/generated/kubectl/)验证一下: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>kubectl cluster-info Kubernetes control plane is running at https://127.0.0.1:57514</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 查看所有namespace: <!-- /wp:paragraph --><!-- wp:paragraph --> kubectl get pods --all-namespaces <!-- /wp:paragraph --><!-- wp:paragraph --> 启动dashboard: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube dashboard</code></pre> <!-- /wp:code --><!-- wp:image {"id":7729,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-13.png) <!-- /wp:image --><!-- wp:paragraph --> 接着,创建和部署一个hello minikube的service: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0 kubectl expose deployment hello-minikube --type=NodePort --port=8080 kubectl get services hello-minikube</code></pre> <!-- /wp:code --><!-- wp:image {"id":7730,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-14.png) <!-- /wp:image --><!-- wp:paragraph --> 通过访问: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube addons list</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 可以列出一堆可以立即安装的addon,有一些是K8s的,有一些是minikube的,比如: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube addons enable auto-pause</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 这个可以在一段时间没有使用的情况下,暂停K8s。 <!-- /wp:paragraph --><!-- wp:paragraph --> 还有一个addon能让dashboard的metrics显示更多信息: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube addons enable metrics-server</code></pre> <!-- /wp:code --><!-- wp:paragraph --> 后来,一通折腾以后发现,原来Docker的settings里面已经有了一个Kubernetes选项: <!-- /wp:paragraph --><!-- wp:image {"id":7728,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-12.png) <!-- /wp:image --><!-- wp:paragraph --> 原来新版本的Docker里面[自带了一套K8s](https://docs.docker.com/desktop/kubernetes/),它是完全跑在Docker instance里面,并且无法配置的,主要用于本地测试。它的运行也是基于WSL。 <!-- /wp:paragraph --><!-- wp:paragraph --> 现在就试一下,停掉Minikube: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>minikube stop</code></pre> <!-- /wp:code --><!-- wp:paragraph --> UI确认确实停了(或者docker ps): <!-- /wp:paragraph --><!-- wp:image {"id":7732,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/10/image.png) <!-- /wp:image --><!-- wp:paragraph --> 然后把Docker的Kubernetes tab上面的两个选项都勾上,apply &amp; restart。 <!-- /wp:paragraph --><!-- wp:image {"id":7733,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/10/image-1.png) <!-- /wp:image --><!-- wp:paragraph --> 不过等了好久,似乎卡在这一步了,我reset并且更新Docker以后,问题解决。打开以后我看到Docker启动了一堆container。确认跑起来也没问题: <!-- /wp:paragraph --><!-- wp:code --> <pre><code>kubectl get nodes<br/>NAME STATUS ROLES AGE VERSION<br/>docker-desktop Ready control-plane 10m v1.30.2</code></pre> <!-- /wp:code --><!-- wp:paragraph --> <!-- /wp:paragraph -->

2024-09-26 22:52:08 · 3次阅读
 
 
游戏《冰汽时代2》中的“暖券”是什么?在现实中有类似的通货么?

终于写完了,6000 字长文解读游戏中的「暖券」设定。 ## 《冰汽时代2》游戏中的「暖券」 直接看游戏中给的标准答案吧:**暖券是城市中使用的货币。它最初只是用于兑换固定热能的票证,后来才发展成为通用的交换手段**。 ![](https://picx.zhimg.com/v2-9ace9d3ca02a4167f3e3cf1c3b50710c_720w.jpg?source=b1748391?rss) 「暖券」这个概念在 Frostpunk 一代中还没有出现(冰汽时代 1 中只有资源,没有货币),到二代中暖券就已经成为了事实上的货币。所以如果仅考虑 Frostpunk 2 游戏的话,直接简单理解:**暖券 = 钱**。不妨再看一下游戏中对暖券的详细介绍: ![](https://pica.zhimg.com/v2-75055a618596dea267f5611ee14afa43_720w.jpg?source=b1748391?rss) <blockquote>暖券是一种储备资源,用于破霜、资助建设以采取特定行动。 <br/><b>城市会每周收集暖券</b>——每个社区会基于其规模贡献份额;社区规模越大,贡献的暖券就越多。这就意味着随着人口的增长,暖券收入也会增加。 <br/>暖券收入<b>可通过满足商品需求增加</b>。还可以通过某些法律和建筑增加。 <br/>你可以向社区和派系索取或捐赠暖券。</blockquote> 很明显,在游戏中,**暖券的实际运行主要是自下而上地贡献缴纳,而没有过多体现如何自上而下地供给配发**。很简单,如果暖券是执政官印的,那玩家怎么还会缺钱。(对于无限制印钱的暴论 hhh) ![](https://picx.zhimg.com/v2-dc81ceff23f1b28eee4ffef87217f3a1_720w.jpg?source=b1748391?rss) - 收入方式:社区的贡献 = 人头税,满足商品需求 = 消费税(这里其实并不严谨,因为实际上是当商品需求不被满足时,倒扣暖券;相当于满足商品需求来增加暖券),特殊法律(卖酒),建筑(基于绩效的住房),索取 = 直接要钱。 - 消耗方式:破霜、建设或特定行动,一些法案政策会减少收入,比如开展义务教育,提供工人村住房等。 因此,直接把暖券理解成钱没有任何问题。**暖券事实上就是一种【定期按社区人口收取】、【在执行破霜任务 / 开展建设 / 颁布政策时花费】的货币**。 如果简单理解的话,暖券和其他游戏里的任何一种货币一样,就是个「钱」的符号概念,这样的简化理解不会对你玩游戏造成什么困扰。 如果你只想知道游戏中的如何获取暖券,可以参见: [游戏《冰汽时代2》中如何增加暖券收入?](https://www.zhihu.com/question/667801575/answer/3633515409) 后面写了几千字又臭又长,可以不读:) - - - 如果你决定继续看,那我们一起来讨论一下,冰汽时代这个「社会实验游戏」中的货币设定。 ## 思考 1:制作组为什么要在游戏中加入「货币」? 其实在常见模拟经营游戏中,货币都是核心数值。毕竟我们在现实生活中已经形成了丰富完善的货币体系和商业体系。 在游戏中加入「货币」至少可以起到以下作用: - 从概念上,会丰富完善背景故事的设定,比如现在就引起了我们的讨论。 - 从玩法上,货币实际上起到一种资源数值的限制作用,在游戏前期会很非常缺暖券,简单粗暴地限制了玩家发展速度,延长了游戏寿命,当然这涉及到具体的数值设计。说白了就是制作组的恶意,通过增加一种资源平衡来提升游戏难度和资源限制的。 ## 思考 2:为什么制作组不直接做成「钱」,而要做「暖券」呢? 冰汽时代最核心的元设定就是「火山喷发和大暴风雪导致整个世界被冰雪覆盖」的末日背景,在末日事件的早期,既然都已经世界末日了,大家每天挣扎在生死线上,要钱有什么用? 在寒冰末日的设定下,钱无法直接提供/换取生存所需的核心资源,社会也不再需要抽象的财富概念,财富也没有了信用锚定,而**这时最稀缺资源的就是热能**。 如果你是制作组,想要加入一种取代「钱」的货币概念,自然能想到「兑换热能的票证」。毕竟热能是寒冰末日里能取代金子的锚定物。 但是呢,我个人感觉制作组只是想当然地使用了冰汽末日最硬的「热能 / 暖」这个概念,有没有做非常丰富具体的设定。 至少我在游戏中只找到了部分「暖券」的说明文本,而没有在剧情里体现特别多。我也搜了一下豪华版游戏附带的小说_ Warm Flesh_,里面根本就没有「暖券」这个词。所以我合理怀疑制作组就是拿了这么个概念作为货币,而没有专门去想很深的设定。 ## 思考 3:「暖券」作为货币,合理吗? 我觉得有一定道理,但制作组考虑的并不充分全面。 热能来自于哪里?玩过游戏的都知道,**游戏中的热能几乎全部来自于中心区的能量塔**,而转换热能的资源(煤炭、石油、蒸汽)都不是普通人可以采集或自用的。所以可以理解为,**控制能量塔的人就控制了城市中的所有热能**。 从这个角度理解,热能似乎可以作为锚定货币的资源。从货币角度分析,暖券满足了以下功能: - **交换媒介**:货币应当被广泛接受,用于购买商品和服务。在寒冰末日的环境下,热能是人类生存的关键资源,所有人都需要,因此「暖券」可以被广泛接受作为交换媒介。 - **价值储藏**:货币应能保存价值,供未来使用。由于「暖券」代表着获取热能的权利,而热能需求在这个环境下是持续的,所以「暖券」可以有效地储存价值。 - **记账单位**:货币应能用来衡量和比较商品和服务的价值。在「暖券」成为通用交换手段后,商品和服务的价格可以以「暖券」计价。 - **延迟支付的标准**:货币应能用于未来的支付和债务结算。「暖券」作为稳定的价值载体,可以用于延迟支付。 但是,这里其实还漏了一些设定,毕竟游戏里的热能供应并不规律,会有供热不足和供热充裕的时候。如果把暖券作为货币,就难免会涉及到币值购买力的波动,会不会因为热能波动、商品供应带来通胀/通缩,这些都是游戏里没有体现的。 所以我们接下来讨论「暖券的演化」和「如何设定并解释暖券的价值恒定」。 ## 思考 4:「暖券」的演变历程是什么? 游戏中说了:**「暖券」最初只是用于兑换固定热能的票证,后来才发展成为通用的交换手段**。 我们不妨尝试来补全一下「暖券」的历史,看它如何从一种**【初期用于供热计划配给的票券】**到**【逐渐发展为通货】**,**【最后事实上演变为货币】。** 暖券的英文是 heat stamps,顾名思义就是**关于热力调配的盖章生效的票券**。如果这样以字面去理解,大多数人的第一反应都会是参照「粮票」,也就是在计划经济下对短缺资源的一种分配工具。 我在 11 bit studios 的 Discord 艺术频道找到了这么一张报纸<sup data-text="" data-url="https://discord.com/channels/399667662625701893/399673067342659584/1250391445639270470" data-draft-node="inline" data-draft-type="reference" data-numero="1">[1]</sup><sup data-text="" data-url="https://cdn.discordapp.com/attachments/399673067342659584/1250391445110525994/The_Smokestack_Daily_No_1851.jpg" data-draft-node="inline" data-draft-type="reference" data-numero="2">[2]</sup>。虽然 11 bit studios 经常会在宣传上搞一些这样的花活,但我觉得这更像是粉丝创作,因为官方并没有正式发布过这篇,我们还是拿来作为参考设定。 这张报纸的头版头条就是「引入暖券:一种新的调控供热的方式」。 ![](https://picx.zhimg.com/v2-cf1b44efe9a96668eb37e5fa4bfc0687_720w.jpg?source=b1748391?rss) 诶,在这里就需要先补全一下 Frostpunk 1 和 2 设定的大概时间: <blockquote>Frostpunk 1 背景设定在 19 世纪。1870 年代后,地球由于彗星群的影响而气温逐渐降低,世界各国因此开始发展基于煤炭供热的能量塔技术。1880 年代中期,火山喷发和大暴风雪导致整个世界被冰雪覆盖,日常气温已经低至零下30摄氏度,人类几近灭绝。游戏第一章《新家》的剧情就始于 1886年,一群从伦敦逃离的幸存者来到了英国北部,建立起人类最后一座城市——新伦敦(New London)<sup data-text="" data-url="https://zh.moegirl.org.cn/zh/%E5%86%B0%E6%B1%BD%E6%97%B6%E4%BB%A3" data-draft-node="inline" data-draft-type="reference" data-numero="3">[3]</sup><br/>Frostpunk 2 的背景设定在前作 30 年后,<b>1916 年的新伦敦。石油产业已经出现,这座城市的新领导者「执政官」,取代了去世的「首领」。</b><sup data-text="" data-url="https://zh.wikipedia.org/wiki/%E5%86%B0%E6%B1%BD%E6%97%B6%E4%BB%A32" data-draft-node="inline" data-draft-type="reference" data-numero="4">[4]</sup></blockquote> 知道了两作的时间线后,我们注意这份报纸的时间——1894 年,属于 Frostpunk 一代的世界观(也就是《新家》剧情建立新伦敦后),作为对历史设定的补全。 我摘报纸里的关键段落翻译一下: - 1894年8月15日,极星市宣布了一种新的城市供热调控方式: - **通过工作,每天得到定额的暖券**; - 住宅区不再全天候提供所有热量(工作区不受影响); - 一张暖券兑换一个半小时的供热,如果需要更多的热量,可以额外兑换暖券增加分配的热量; - 采掘工作场所将开始提供至少 16 张暖券/天,其余场所视重要性增减暖券; - 公众表达了对于暖券的担忧,认为没有充分考虑弱势群体; - 也有人开始讨论暖券可能带来的机会,比如**通过生产合适的商品获得报酬**。 这些设定基本都能吻合末日背景下稀缺资源的计划式管理。 同时,需要注意的是,**在游戏中并不是所有地区都有暖券**。比如我们在序章中玩到的【飘零客】团体,使用的通货就是「废料」: <blockquote>废料是具有情感价值或实用价值的小物件。可用于交易或物物交换。<br/>随着人口的增加,以物易物的行为越发频繁,因此废料也更加常见。</blockquote> ![](https://pica.zhimg.com/v2-f3860a4295de3fc467a68d9f387d4b7e_720w.jpg?source=b1748391?rss) 想要让通货/货币流通,另一个层面就是「商品」,**在一代中,居民并没有发展出商品需求**。一代中除了满足供暖外,主要需求就只有「生食材」和「食物」。而在二代中,明确将「商品」与「暖券」挂钩。在游戏说明中,提到: <blockquote>商品是指所有能够满足城市居民需求和愿望的东西。从日常的家具、餐具、书籍、游戏,到奢侈的手表、珠宝、雪茄和华服,商品深受大家喜爱,能为市民带来舒适感。</blockquote> ![](https://pica.zhimg.com/v2-80f7ccc355f32009eb676eda2625bb7f_720w.jpg?source=b1748391?rss) 从这个说明中可以看出,**经过 30 年的发展,二代的居民已经在一定程度上适应了末日生活,并发展了丰富的商品需要。**我觉得这也是合理的,末日早期和适应后的生活需求肯定是不同的。 我将以上所有设定提交给 ChatGPT-o1,让它推演「暖券」到「货币」的演化,以下是 ChatGPT 的回答,注意,**这只是 AI 的模拟回答,并非官方设定**: 「暖券」的演变历程可能是: ### 初期阶段(1886-1894年): - 供热配给工具:最初,「暖券」仅用于分配有限的热能资源。居民通过工作获得定额的「暖券」,用来兑换供暖时间。 - 工作激励机制:不同工作场所根据重要性给予不同数量的「暖券」,激励人们从事关键性或危险性工作,如采掘业。 ### 过渡阶段(1894-1900年): - 私下交易出现:由于个人/家庭对热能需求的差异,有些人可能有剩余的「暖券」,而另一些人则需求更多。这促使人们开始私下交易「暖券」以获取其他商品或服务。 - 交换媒介的萌芽:随着私下交易的增加,「暖券」逐渐被视为一种交换媒介,超出了其原始的供热用途。 ### 扩展阶段(1900-1910年): - 商品种类增加:随着基本生存需求得到满足,居民开始追求更丰富的商品和服务。 - 交易频率提升:市场活动增多,对统一的交换媒介需求加强。「暖券」因其稳定性和普遍接受性,逐渐取代物物交换。 ### 制度化阶段(1910-1916年): - 官方认可:政府注意到「暖券」在市场中的作用,开始正式承认其货币地位。 - 发行与监管:为了维持经济稳定,政府建立了「暖券」的发行和回收机制,确保其供应量与经济活动相匹配。 ### 成熟阶段(1916年及以后): - 全面货币化:「暖券」成为社会中的主要货币,被用于所有的商品和服务交易。 - 金融体系建立:出现了以「暖券」计价的金融服务,如储蓄、贷款和投资,进一步巩固了其货币地位。 顺便感慨一下,ChatGPT o1 确实很强啊… ## 思考 5:游戏中为什么设定为「不满足商品需要就会减少暖券收入」? 除了上面提到,二代中的居民出现了商品需求进而发展出了以暖券为通货的交换行为。但实际上,游戏中的商品交换的设定是:**如果不满足商品需要,就会减少暖券收入。而不是说,如果满足了商品需要,就会增加暖券。** ![](https://picx.zhimg.com/v2-25b72e041b4c2083469425306df9cc60_720w.jpg?source=b1748391?rss) 二者看似只是数值的正反逻辑,但实际上是有差别的,根本差异在于:**即便你在游戏中生产了额外的商品,也不会带来额外的收入**。也就是说,商品交换看似是一种市场行为,实际上也是计划经济行为,只不过没有去印其他各种「商品券」罢了。 ## 思考 6:如何设定并解释「暖券」价值恒定,且不发生通胀、通缩? 基于上面关于暖券和商品的讨论,整套系统都是在计划经济下的,所以可以通过设定强有力的调控,来实现「暖券」的价值恒定,主要分为供需两侧以及制度体系保障。 ### **供给控制**: - **固定发行量**:根据城市的热能生产能力,设定「暖券」的总发行量,避免过度发行导致通胀。 - **回收机制**:通过每周从社区收集「暖券」,调节市场上「暖券」的流通量,防止过剩。 - **与热能挂钩**:「暖券」的发行量直接与实际可供分配的热能总量挂钩,确保每张「暖券」都能兑换固定的热能。 ### **需求管理**: - **稳定的人口增长**:通过规划和控制人口规模,保持对热能和「暖券」需求的稳定。 - **经济活动调节**:可以通过调整工作激励、计划供应商品等手段,影响市场需求。 ### **法律与制度保障**: - **价格管制**:对基本生活必需品和商品实行计划供应,防止因投机导致的物价波动。 - **信用体系建立**:建立信用制度,增强「暖券」的信任度和接受度,减少因信用风险导致的价值波动。 所以硬要为制作组增加设定,还是能解释得通的。 ## 思考 7:在现实中有那些类似「暖券」的通货? 最后我们看一下,按照这样的设定,「暖券」在现实生活中有类似的通货吗?如果想要完美符合这个类比,就需要满足: - 当时没有法币/法币已经失去实际意义 - 该通货是某种可以兑换实物/服务的票据(或者该物本身具有一定使用价值) - 该通货成为事实上的交换手段/流通工具 当然也有一些现实生活中的通货是部分满足设定的。顺便一提,如果对类似的经济设定感兴趣,可以搜索 vouchers / scrip,有一些案例。 我目前可以想到 / 整理的一些案例: ### 粮票、布票、油票等 在计划经济时期,尽管存在法定货币,但由于物资短缺,货币无法购买到所需的粮食等必需品,法币的购买力受限。粮票是政府发行的凭证,持有人可以用其兑换固定数量的物资。 因此在某些情况下,粮票、布票、油票被用于交换其他商品或服务,成为事实上的交易媒介。 ### 特殊背景的代金券(公司商店、公司凭证) 这个在历史上似乎还挺多的,主要指公司以实物或代金券的方式全部或部分发放工人工资。英国专门针对这种行为颁布了《实物工资法》,美国则在 1938 年《公平劳工法》中,将公司私有票据支付工资的行为定义为非法行为。 公司凭证(Company scrip)<sup data-text="" data-url="https://en.wikipedia.org/wiki/Company_scrip" data-draft-node="inline" data-draft-type="reference" data-numero="5">[5]</sup>往往会和公司商店(Company Store)<sup data-text="" data-url="https://en.wikipedia.org/wiki/Company_store" data-draft-node="inline" data-draft-type="reference" data-numero="6">[6]</sup>组合出现,简单来说就是「工资回收计划」。 比如在美国的一些偏远煤矿,公司向矿工支付专用的硬币/代金券,矿工只能在公司商店使用,代金券在矿工社区内广泛流通。 ![](https://picx.zhimg.com/v2-339b50cd406d62348a4e7c0ca5a3ba49_720w.jpg?source=b1748391?rss) <blockquote>在美国,矿场和伐木营地通常由一家单独的公司创建、拥有和运营。这些地点有些非常偏远,通常现金匮乏;即使在不缺现金的地方,拿到公司票据支付的工人也几乎别无选择,只能在公司商店购买商品,因为将票据兑换成货币(如果能兑换的话)会因兑换费损失部分价值。在这种经济垄断下,雇主可以大幅提高商品价格,使工人依赖公司,从而强化了员工的“忠诚”。尽管公司票据并不限于煤炭行业,但据估计,75%的公司票据由肯塔基州、弗吉尼亚州和西弗吉尼亚州的煤炭公司使用。因此,许多关于这种货币的昵称来源于阿巴拉契亚矿区社区,例如“Flickers”、“Clackers”和“Dugaloos”。</blockquote> 但实际上,由于公司商店的垄断性,这往往被视作对工人的剥削: <blockquote>公司商店是垄断机构,将工人的收入重新流回公司老板的手中。这是因为公司商店因其地理位置偏远,其他商家不愿意或无法接受公司票据,或两者兼有,通常面临着很少或没有竞争。因此,价格通常较高。允许赊账购买加强了一种债务奴役,迫使员工留在公司,直到债务清偿。</blockquote> ### 香烟、烈酒、方便面 在资源匮乏的时期/场所,香烟其实会作为通过进行交换。 比如在二战的战俘营中,官方货币不存在,香烟成为主要的交易媒介,用于购买食物、衣物,在电影《肖申克的救赎》中就有这样的场景: ![](https://pica.zhimg.com/v2-b583407aea9775f9a4129999efbd229f_720w.jpg?source=b1748391?rss) 再比如二战后的德国经历了严重的通货膨胀,法定货币贬值,稀缺香烟成为事实上的交易媒介,形成了独特的「战后香烟经济」。 在很多监狱中,香烟、烈酒、甚至来自中国的方便面也是类似的硬通货。 ### 其他末日游戏中的类似设定 《辐射》游戏中的瓶盖、《地铁》系列游戏中的子弹(评论区补充)都是类似的例子。 比如,《辐射》的设定<sup data-text="为什么辐射使用瓶盖作为货币?" data-url="https://screenrant.com/fallout-bottlecaps-money-water-new-california-value-currency/" data-draft-node="inline" data-draft-type="reference" data-numero="7">[7]</sup>: 原有法定货币体系崩溃,瓶盖首次作为货币出现是在 2093 年。当时,位于《辐射》虚构的新加利福尼亚的大型贸易城市的商人们决定在核战后的世界中采用瓶盖作为交易货币。这主要是由于其稀缺性。由于《辐射》中的大战后,**制造和印刷瓶盖的技术几乎完全失传,因此伪造瓶盖的可能性大幅降低**;**尽管瓶盖在各地广泛存在,但其数量有限,防止了通货膨胀**。然而,最重要的是,《辐射》中的瓶盖是以水资源为背书的——在遭受核战蹂躏的荒原中,水是一种稀缺而宝贵的资源。这一背书使得商人们能够将瓶盖作为一种通用的交换单位,瓶盖的流通也迅速从西海岸扩展到了东海岸。 ![](https://pic1.zhimg.com/v2-adc2cca2a1a4c759341798f95639be1b_720w.jpg?source=b1748391?rss) 再比如,《地铁》系列的设定<sup data-text="为什么《地铁》使用子弹作为货币?" data-url="https://techraptor.net/gaming/features/metro-series-bullet-economy" data-draft-node="inline" data-draft-type="reference" data-numero="8">[8]</sup>: 在《地铁》系列中,由于核战争导致科技倒退,战前的军用级弹药(MGR, military grade rounds)变得十分稀有。这种军用级弹药的稀缺性,加上几乎不可能伪造子弹,使其成为地铁隧道中的事实上的通用货币。甚至还设立了与其他战前弹药以及手工制造子弹的兑换比例,以维持经济的流通。 ![](https://picx.zhimg.com/v2-1f80e7dcec46ba934db26ae2847a6342_720w.jpg?source=b1748391?rss) 当然,香烟、子弹这些,与粮票、公司代金券、瓶盖还不完全一样,毕竟粮票、代金券需要背靠一个机构作为兑换的信用背书,而香烟、子弹本身就是消费品,可以自己直接使用。 以上就是我对游戏中「暖券」的设定以及其他类似通货的整体阐述,其中大量参考资料来源网络,能标注出处的我都写了参考链接,供大家深入研究。 【如果你真的能看到这里,希望来点关注、点赞、收藏、喜欢、评论~】 ![](https://picx.zhimg.com/v2-3d70bc51ca30030d4c1c48e71dec1b32_720w.png?source=b1748391?rss) 来源:知乎 www.zhihu.com 作者:[段小草](http://www.zhihu.com/people/loveQt?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [29 个回答,查看全部。](http://www.zhihu.com/question/667494988/answer/3630157856?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[游戏《冰汽时代2》中如何增加暖券收入?](http://www.zhihu.com/question/667801575?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [游戏《冰汽时代》有什么通关指南值得参考?](http://www.zhihu.com/question/596762723?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-26 03:24:22 · 1次阅读
 
 
已经掌握独立建造第三代核电站的技术的国家有哪些?

谢邀 [@央视新闻](//www.zhihu.com/people/2fa0d82713f499ce1373dc02a19d02fd) 我是“华龙一号”总设计师邢继。10年之后的我们,可以非常确定地回答题主: **这个名单里,有中国。** ![](https://pic1.zhimg.com/v2-8b4b8102e00d8072e61a88b84e94c595_720w.jpg?source=b1748391?rss) 这是一道来自2011年6月的提问,就在这道问题提出的3个月前,我们中国自主的百万千万级核电技术的梦想,刚刚被一场发生在日本福岛的核泄漏事故击得粉碎。 那时候,承载了几代核工业人梦想的型号CP1000即将开工,10多台推土机已经抵达现场开始挖土,仅仅3天之后,事故发生,项目被按下了暂停键。 福岛核事故对整个核工业发展的影响非常深远。中国作为一个负责任的大国,在核事故发生5天后,国务院发出声明,针对核安全问题提出四条指导性意见,其中有一条就是 中国未来新建的核电站必须满足国际最高安全标准。 中核集团在第一时间组织专家进行评估后,主动放弃了CP1000,转向全力推进第三代核电技术ACP1000,也就是后来“华龙一号”的自主研发。 放弃“CP1000”,这个决心下得非常果断,我们的核电站必须要能够应对所有“假设可能会发生”的事情,此前我们的目标离“要达到国际上最高要求”的这个标准还有距离。 因此,团队受到了相当大的打击。一个准备了12年的计划马上就可以实现,但在下一个瞬间,它变得遥遥无期。 为什么大家如此沮丧? **因为研发一个完全具有自主知识产权的型号,是我们中国核电人的梦想。** 1989年,我被派往广东,那时候大亚湾核电站刚刚开工,我所在的核二院派了100多人到业主单位和法国公司参与建设。我被派到了法国公司的现场技术部做现场施工方面的技术支持。 大亚湾核电站主要的技术全是来自于法国,在装备建造这些领域也主要依靠外国人的技术和管理,甚至连一些最基本的钢筋、水泥等建设材料,都要从外国进口,长期受制于人,感受非常真实。 在这个庞大的工程里,我们需要从零开始,读懂法国人设计的每一张图纸,见缝插针地问各种原理性的问题:为什么要这么设计,遵循了怎样的标准? 年轻时候在大亚湾的这段经历,给我的触动非常深刻。彼时,我国核电领域在设计、建造与管理上的能力尚处于萌芽阶段,中核集团赋予我们的使命,便是踏上这片技术的沃土,虚心学习并汲取先进技术的精髓。我国核电的发展从一开始起步就确定了自主之路。 在学习与合作的过程中还有许多插曲。我记得有一次跟外方的负责人讨论某项技术,我发现这个型号的转让技术资料不完整,请对方讨论如何补充完善,同时商量怎么让我们中国工程师尽快掌握技术,进行自主设计。 外方负责人讲了一句话,我至今都记得很清楚:你们不用研究这些事情,要想知道核电站怎么设计,让你的工程师放下手中的铅笔,去打开复印机,你们就会了。你只要去复印我们的资料,不用搞清楚里面的原因。 我当时非常生气:“如果你不打开你的‘黑匣子’,我们可以不要你的技术转让。”这次冲突让我体会到,尽管我们引进了国际上先进的技术,签了协议,交了学费,但因为核心技术被别人掌握,我们甚至没有跟别人争辩的权利。 **这样的事情太多太多,被卡住脖子的滋味,太难受。** 引进、吸收、消化国际先进技术只是第一步,know how以外更核心的是know why。 我们深刻地认识到,真正的核心技术,靠金钱买不来,靠市场换不来,只有自主研发,我们必须要把核能未来的发展技术掌握到自己的手里,而这条路没有捷径。 所以当CP1000停工之后,我们立即调整状态,全力以赴投入到三代核电技术研发当中。 曾经我们投注在CP1000上的心血,没有白费,用另一种方式扎下了根。 “华龙一号”是一个里程碑,标志着中国核电技术进入了世界先进国家行列。其自主创新不仅限于研发设计与安全理论的深度挖掘,更涵盖了安全分析技术的方法与工具等全方位创新,这是一场系统性、全面性的技术革新。 在设计思路上,“华龙一号”机组对标国际最先进的三代核电技术,充分考虑到了各种可能出现的极端情况,确保即便地震和海啸叠加发生,也能保证安全。我们提出了能动与非能动相结合,设置了多样化的手段来实现余热的导出和放射性的包容;通过双层安全壳等一系列设计,全面地满足国际上最高的安全标准,外层可抵御大飞机的撞击,内层做到即使堆芯出现问题,放射性物质也不会泄漏出来。 “华龙一号”首次实现了真正意义上的所有元素均基于正向设计的理念。在研发过程中,我们开展产学研合作,在“华龙一号”的关键核心设备上实现100%设备自主化、国产化,不仅关键设备,核电建设用的大宗材料也是如此。我们超越了推理模仿复制的层面,实现了从“知其然”到“知其所以然”的蜕变。以安全级电缆的热缩套管为例,这一领域曾长期被国外某企业独占市场,但通过我们与国内企业的共同努力,成功研发出适用于“华龙一号”严重事故场景下的电缆热缩套管,不仅打破了垄断,还实现了成本的大幅降低,其价格仅为国外同类产品的五分之一。 ## 从水泥、电话线都要从国外进口,到实现先进核电堆型首堆68.7个月的最短建设工期,我们靠自己的力量翻越了一座又一座山,实现了我国核电技术从跟跑到并跑的跨越性发展。后来的故事,大家都知道了。 如今,“华龙一号”已步入批量化建设阶段,国内外在运、在建机组总数达到33台,已成为全球在运在建机组总数最多的三代核电技术。我们没有满足于现在的成绩,还在持续研究如何进一步优化“华龙一号”的设计,在保障安全性的基础上,让经济性进一步提升。 ![](https://pica.zhimg.com/v2-a695847e0e6e57c6e8389e1a40116430_720w.jpg?source=b1748391?rss) 正在开展的“华龙一号”后续机型相关验证试验,不断传来好消息。从指标上来看,它的安全性依然比国际上三代要求高一个量级,经济性优于今天的“华龙一号”批量化目标,同时,其建设工期大幅度缩短到50个月以内。不仅如此,它的电厂可用率和电厂设计寿期都得到了提高。 我听说过一个小故事。很多年前,909厂的核潜艇陆上模式堆发出了中国核能的第一度电,后来,在拆除屏蔽墙的过程中,年轻的工程师们在铅块底下发现了这样一句跨越时空的问候:“孩子们,辛苦了。” 我们不知道是谁偷偷写下了这句话,但那时的他们一定与如今的我们一样,期待着蓝色光芒的闪烁,期待着中国核工业的远航。同样,我们也希望通过现在的努力,让后来者站在我们的肩膀上眺望。 一代人有一代人的使命,核工业这个行业从诞生的那一天起就跟“科技自立自强”紧密相关,它是血脉的传承,自主创新,就是我们这一代核电工程师的使命与考验。中国自主的核电技术已经进入世界的第一阵营,竞争还在继续,领跑只是开始。 中“华”复兴,巨“龙”腾飞。“华龙一号”这个名字,代表了一种深沉的期许。我们是龙的传人,注定走向强大。强核报国,创新奉献,相信这样的精神会在核工业行业一代一代地传承下去。 来源:知乎 www.zhihu.com 作者:[邢继](http://www.zhihu.com/people/57-2-33-25?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [39 个回答,查看全部。](http://www.zhihu.com/question/19700567/answer/3635928923?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[如何评价「中国自主核电站神经中枢实现百万千瓦级核电工程首台套应用」?](http://www.zhihu.com/question/278357130?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [如何评价内陆核电站的发展?](http://www.zhihu.com/question/292431114?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-25 10:30:53 · 1次阅读
 
 
Reverse-o1:OpenAI o1原理逆向工程图解

OpenAI o1的推出称为横空出世不为过,尽管关于Q*、草莓等各种传闻很久了,用了强化学习增强逻辑推理能力这个大方向大家猜的也八九不离十,但是融合LLM和RL来生成Hidden COT,估计很少人能想到这点,而且目前看效果确实挺好的。 OpenAI奔向Close的路上越走越远,你要从o1官宣字面来看,除了“强化学习生成Hidden COT”外,基本找不到其它有技术含量的内容。Sora好歹还给出了个粗略的技术框架图,字里行间也透漏不少隐含的技术点,细心点总能发现很多蛛丝马迹,串起来之后整个背后的技术就若隐若现(若对此感兴趣可看下我之前写的分析:[技术神秘化的去魅:Sora关键技术逆向工程图解](https://zhuanlan.zhihu.com/p/687928845) )。而且,尽管目前有不少公开文献在用LLM+RL增强大模型的推理能力,但几乎找不到做Hidden COT生成的工作,所以可供直接参考的内容非常少,这为分析o1进一步增添了难度。 那是否就没办法了呢?倒也不一定,如果多观察细节,再加上一些专业性的推论,我觉得还是有痕迹可循的。本文以相对容易理解的方式来对o1做些技术原理分析,试图回答下列问题: 除了复杂逻辑推理能力获得极大增强,o1还有其它什么重要意义? o1的完整训练过程大致会是怎样的? o1是单个模型,还是多个模型? O1中的RL状态空间如何定义?行为空间如何定义?会用何种Reward Model?可能用何种训练数据?LLM和RM融合后的模型结构可能会是怎样的?……等等 为行文中指称方便,我将文中推导的模型称为“Reverse-o1”。当然,里面有些部分有判断依据,有些则是根据主流技术作出的推断,只要OpenAI不官宣技术框架,大概一千个从业者能有一千种解法,我主要参考了AlphaZero的做法,试图在此基础上融合LLM和RL,很多看法比较主观,谨慎参考。 ## OpenAI o1的重要意义 我个人认为OpenAI o1是大模型技术领域的一个巨大突破,除了复杂逻辑推理能力获得极大提升外,这里展开分析下它在其它方面的意义和价值所在。 **首先,o1给大模型带来了自我反思与错误修正能力,我觉得这点价值特别大。**GPT 4这类模型,因为在输出答案的时候是逐个Token输出,当输出长度较长的时候,中间某些Token出错是一定会发生的,但即使LLM后来知道前面输出的Token错了,它也得将错就错往下继续编(这也是大模型幻觉的来源之一,为了看上去逻辑合理,LLM得用100个错误来掩盖前面的第一个错误),因为落Token无悔,没有机制让它去修正前面的错误。 而o1在“思考”也就是生成Hidden COT的过程中,如果你分析过OpenAI官网给出的Hidden COT例子的话,会发现它确实能意识到之前犯错了,并能自动进行修正。这种自我错误识别与修正对于LLM能做长链条思考及解决复杂任务非常重要,相当于越过了一个锁住LLM能力的很高的门槛。 **第二,所谓新型的RL的Scaling law**。OpenAI自己PR可能更强调这点,各种解读也比较看中这一点。我猜测o1的RL大概率要么用了相对复杂的、类似AlphaGo的MCTS树搜索,要么用了简单树结构拓展,比如生成多个候选,从中选择最好的(Best-of-N Sampling),这种策略如果连续用,其实也是一种简单的树搜索结构。也有可能两者一起用。不论怎样,树搜索结构大概率是用了,COT是线性的不假,但这是产出结果,不代表内部思考过程就一定是线性的,我觉得靠线性思维推导过程很难解决复杂问题,树形结构几乎是不可避免的。 有人问了,你有证据能说明o1大概率用了搜索树结构吗?我没有证据,但是可以推断,我的判断依据来自于o1 mini。之前的研究结论是这样的:尽管小模型语言能力强、世界知识还可以,但逻辑推理能力很难提起来,即使你通过比如蒸馏等措施试图把逻辑能力内化到小模型的参数里,效果有但有限,小模型和大模型差距最大的能力就是逻辑推理能力了。意思是说,纯靠参数内化来提升小模型的逻辑推理能力估计提升幅度有限。但o1 mini明显是个小模型,其复杂逻辑推理能力非常强,而且看样子可通过配置来提升或者降低它的逻辑推理能力(所谓inference-time Scaling law),如果你了解AlphaGo的运作机制的话,会发现这都是比较典型的搜索树的特点,可以通过控制搜索空间大小来提升模型能力。 ![](https://pic1.zhimg.com/v2-95aeaee70ceced5bad8b235ba56ef5b6_b.jpg) 虽然我个人认为,如果把通过设置参数来控制如何拓展树结构(比如控制搜索的宽度和深度),这种模式如果能被称为Scaling law的话,多少有点勉强,若这样,那我们可以说2006年AlphaGo出来就有Scaling law了。 但不管怎么称呼它,无法忽视的是这种方法的可扩展性极好,无论是在RL训练阶段,还是LLM的Inference阶段,只要改下参数配置来增加树搜索的宽度和深度,就能通过增加算力提升效果,可扩展性好且方式灵活。从这点讲,o1确实具有重要意义,因为这证明了它把怎么融合LLM和树搜索这条路走通了,LLM模型能够达到AGI的上限就被提高了一大截。 **第三,在o1之后,小模型大行其道真正成为可能。**小模型最近大半年也比较火,但从能力获取角度看,其实还是有上限锁定的,这个锁定小模型上限的就是逻辑推理能力。上面提到了,小模型的能力特点是:语言能力很强不比大模型弱、世界知识不如大模型但是可以通过给更多数据持续提升、受限于模型规模,逻辑推理能力能提升但比较困难。 ![](https://pica.zhimg.com/v2-3c3cefb0f2f574642e42b420d891153c_b.jpg) 所以小模型的优化重点是世界知识和逻辑推理能力,而从o1 mini的效果(世界知识弱、逻辑推理强)可推出,之后我们可以采用“能力分治”(DCA,Divide-and-Conquer of Ability)的模式推进小模型的技术发展(参考上图):把语言、世界知识及逻辑推理三个能力解耦,语言能力靠小模型自身、逻辑推理靠类似o1的通过RL获得的深度思考能力,而世界知识可以靠外挂RAG获得增强。 通过“能力分治”,小模型完全可能具备目前最强大模型的能力,这等于真正为小模型扫清了前进路上的障碍,而SLM做起来成本又比较低,很多人和机构都可以做这事,所以可以预测:之后这种DCA模式将会大行其道,形成一种新的研发小模型的范式。 **第四,o1可能会引发“安全对齐”新的范式。**O1在做安全对齐方面,大概采用了类似Anthropic的“AI宪法”的思路,就是说给定一些安全守则,指明哪些行为能做,哪些不能做,在o1逻辑推理能力提高之后,它遵循这些法则的能力也获得了极大增强,安全能力比GPT 4o强很多。这可能引发安全对齐新的模式:大家可以先把模型的逻辑推理能力加强,然后在此之上采取类似“AI宪法”的思路,因为OpenAI o1证明这种模式可极大增强大模型的安全能力。 **第五,“强化学习+LLM”的领域泛化能力,可能不局限于理科领域。**强化学习适合解决Reward比较明确的复杂问题,典型的是数理化、Coding等有标准答案的学科,所以很多人会质疑o1是否能泛化到更宽的领域。确实,o1的思考能力能否泛化到没有明确标准答案、Reward不好量化的领域是它发展的关键,泛化得好,则打开阳光大道,泛化得不好,领域局限性就会比较强。 我推测OpenAI可能已经找到了一些非数理学科的Reward定义方法,并将这个方法通过RL拓展到更多领域。既然o1可以读懂并遵循安全规则,以 “AI宪法”的思路解决安全问题,我觉得由此可以推导出一种针对模糊标准的Reward赋予方法:就是说针对不好量化的领域,通过写一些文字类的判断标准或规则,让大模型读懂并遵循它,以此来作为是否给予Reward的标准,符合标准则Reward高,否则Reward低。例如,针对写作文,就可以列出好文章的标准(结构清晰、文笔优美等规则),让大模型据此来给Reward。如此就能拓展到很多领域。 当然,想要这么做可能要分步骤,先用好给Reward的数理问题增强模型的复杂推理能力到一定层级,这样它就能看懂规则了,然后再做那些不好量化Reward的领域。(这都是我的猜测,没有依据) 由上述分析可看出,o1这条技术方向不仅增强了模型的复杂逻辑能力,由此可能引发大模型研发很多重要方向的革新,这是为何我说o1重要的主要原因。 ## OpenAI o1的完整训练过程推演 ![](https://pic3.zhimg.com/v2-9fb64105589b35f9a877702acf990746_b.jpg) GPT 4等LLM模型训练一般由“预训练”和“后训练”两个阶段组成(参考上图)。“预训练”通过Next Token Prediction来从海量数据吸收语言、世界知识、逻辑推理、代码等基础能力,模型规模越大、训练数据量越多,则模型能力越强,我们一般说的Scaling Law指的是这一阶段的模型扩展特性,也是LLM训练最消耗算力资源的地方。“后训练”则分为SFT、RM和PPO三个过程,统称为人工反馈的强化学习(RLHF),这一阶段的主要目的有两个,一个是让LLM能遵循指令来做各种任务,另一个是内容安全,不让LLM输出不礼貌的内容。而训练好的模型推理(Inference)过程则是对于用户的问题直接逐个生成Token来形成答案。 OpenAI o1的整个训练和推理过程应与GPT 4这类典型LLM有较大区别。**首先,“预训练”阶段应该是重新训练的,不太可能是在GPT 4o上通过继续预训练得到**。证据很好找,OpenAI官方一再宣称o1 mini逻辑推理能力极强,但在世界知识方面很弱。如果是在其它模型上魔改的,世界知识不会比GPT 4o mini更弱,所以侧面说明了是重新训练的;另外,这也说明了o1这类侧重逻辑推理的模型,在预训练阶段的数据配比方面,应该极大增加了逻辑类训练数据比如STEM数据、代码、论文等的比例,甚至我都怀疑o1 mini是否引入了通用数据都不好说,否则不需要老强调知识方面能力弱。 在“后训练”阶段,应该有一个环节是用来增强LLM模型的指令遵循能力的,也就是说**RLHF阶段应该是有的**。因为o1在遵循指令方面能力并不弱,而且生成的Hidden COT片段里明显也包含很多指令性的内容,如果遵循指令能力比较弱,估计对于生成Hidden COT也有负面影响。所以,推断起来这个环节大概在“思考”阶段之前。(但是RLHF阶段未必有RM和PPO)。但这里和GPT 4对应的RLHF阶段应有两个重要的不同:首先,o1应该在这个阶段没有做内容安全方面的事情,大概率是挪到后面的阶段了(也有可能这两阶段都做了?)。其次,这个阶段大概率也会极大增强逻辑推理类的指令遵循数据比例,以此进一步加强基座模型的逻辑推理能力,原因我们等会专门说明。 接下来的阶段,就是o1最大的特点,所谓**引入了“系统2”的慢思考能力**。ClosedAI只说用了RL强化学习,其它任何都没提,技术保密工作一流。由此,我们只能推断出o1融合了LLM和RL来实现模型“先想后说”的Think能力。 ![](https://pic4.zhimg.com/v2-17e2677569d4a2e673b87da785213a73_b.jpg) **OpenAI o1应把“内容安全”相关的能力挪到了“Think”阶段之后,而且做法和GPT 4应该也有很大不同。**在o1通过Think阶段进一步增强了它的逻辑推理能力之后,并没有用与安全相关的Instruct数据去调整模型参数,而是转为在比如System Prompt里引入人写好的LLM应该遵循的若干安全规则,比如不能输出制造有害产品比如毒品的细节内容等等。O1逻辑能力增强后,在输出时基本能够参考“安全条例说明书”,不输出有害内容,这做法类似于之前Anthropic的“AI宪法”的思路(依据参考上图)。而且,o1在内容安全方面的能力比GPT 4o强很多,这意味着将来大模型安全范式的巨大变化:应该先极大增强模型的逻辑推理能力,继而采取类似“AI宪法”或者叫“AI安全说明书”的模式来做。很明显如果这样,安全这事情做起来就简单多了,因为等于把LLM当人看了,你告诉他哪些能做,哪些不能做,当它逻辑能力强起来,现在就完全能看懂了,就这么回事。 以上是o1的训练过程,在模型推理(Inference)阶段,o1体现出了“先思考再发言”的特点,分为三个阶段:首先通过思考,根据用户Prompt的问题生成能体现思考过程的Hidden COT数据,因为很多Hidden COT很长,于是引入了“COT摘要”阶段,从很长的Hidden COT里提取一些关键思考环节展示给用户看看,最后根据COT输出答案。 从上面内容可看出,o1无论在训练还是模型inference阶段,和传统的LLM应该还是有很大区别的。此外,我在这里再展开讲讲两个事情。 第一个,想要仿造模型来达到类似o1的效果,一个很容易想到的取巧的方式是:既不去专门增强基座模型的逻辑推理能力(比如大幅增加预训练中逻辑类数据占比),也不做“慢思考”阶段的RL训练(因为不知道怎么做的),只是侧重在模型inference阶段加入“Think”的过程,比如想办法引入最简单的Best-of-N Sampling这种树拓展策略,再写写Prompt提醒让LLM自己要自我思考、自我反思,两者相结合,也可以让模型自己写Hidden COT。这样做,也能一定程度上提升模型的推理效果。但是,这种做法效果提升的天花板比较低,就是说你模型逻辑推理能力看着提高了一些,然后就会被卡住,即使再增加inference阶段的算力(就是把采样数量N比如从10个拓展到50个,类似这种。Inference-time Scaling law大概其实很可能就是这个意思,您觉得这做法是law还是不law呢?)其实也没用。 ![](https://pic1.zhimg.com/v2-ad532ab3a436e71986f1e772b1b885de_b.jpg) 这个结论来自于文献“Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters”及“Are More LM Calls All You Need? Towards the Scaling Properties of Compound AI Systems”,它们证明了:对于简单或者中等难度的逻辑推理问题,通过inference-time 增加算力,比如树搜索等方式,比去增强模型的“预训练”阶段的逻辑推理能力来得效果要明显;而对于高难度的逻辑推理问题,则只靠inference-time很难提升,有时还是负面作用,不如去增强模型“预训练”阶段的逻辑能力(参考上图)。 这是为啥呢?您可以想想,其实里面的道理细想一下很好理解。这是因为对于简单或中等难度的问题,模型在inference的时候很可能给出答案中的大部分步骤都是对的(或者多次采样中多数是对的),只有个别步骤错误,导致最终回答错误。通过比如Best-of-N Sampling这种简单树搜索方法来增加输出的多样性,再加上靠谱的Verifier筛一筛,是比较容易把这个小错误修正过来的。但对于高难度的逻辑问题,因为模型输出内容中大部分步骤可能都是错的(或者多次采样中大多数都是错的,这种情况你投个票采取多数人意见看看,结果估计很悲催),你想靠inference-time增加算力无力回天。 我自己也是根据上述思考,才进一步反推出上面讲的o1可能的训练过程的:OpenAI o1的基座模型,不论是Pre-training还是Post-training阶段,大概率极大增强了基座模型的复杂逻辑推理能力,这是它能在后续inference-time增加算力解决复杂问题的根基。 所以关于这个点的结论应该是这样的:只靠inference-time增加算力,仅对容易和中等难度的逻辑问题有用,想要不断提升模型的复杂推理能力,还需要继续在Pre-Train和Post-Training阶段下功夫。 讲到这有人就问了:那我也没钱自己训练基座模型啊?这可如何是好?这其实是绝大多数人面临的问题。其实拿来主义也应该可以,但是你得选那些逻辑推理能力强的基座模型,我估计代码类的基座模型相对比较适合,然后想办法在“Think”训练和“Think”inference方面做点工作,感觉应该也是可以的,而且对算力的需求也到不了大多数人做不了的程度。 第二个展开讲讲的事情。其实跟第一个有关,我看现在很多人看了o1后都说,Scaling范式变了,只要去Scale Inference-time的算力,模型推理效果就能一直Scaling。很明显这是进入误区了,原因上面讲了,如果只做Inference-time算力的拓展,模型效果天花板应该不会太高,归根结底还得去拓展Pre-train或者Post-train阶段模型的复杂逻辑推理能力,最起码两者是个相辅相成互相促进的作用,只谈inference-time Scaling大概率是不对的。 ## o1应由多个模型构成 ![](https://pic1.zhimg.com/v2-e06726a685a277f46889bae988cae0ea_b.jpg) 从o1的System Card可以明确看出,o1除了一个主模型外,至少还有一个相对独立的“Hidden COT摘要模型”(参考上图),它的作用是根据用户输入问题及生成的Hidden COT,提供一份简洁且内容安全的COT摘要。所以,**o1至少由两个模型构成。** 那么,问题是:**除了主模型和摘要模型,还有其它模型存在吗?我觉得大概率是有的**。 ![](https://pic2.zhimg.com/v2-b9073bba97390a15a6447f5f21e3019f_b.jpg) 我们可以从o1的价格入手分析。目前已知:o1 Preview比GPT 4o的输入价格贵3倍,输出价格贵4倍,o1 mini输入和输出价格都是GPT 4o mini的20倍(参考上图)。 ![](https://pic4.zhimg.com/v2-c38d2e5cd2e9bf026fc13ab56bbdc0b3_b.jpg) 这里插入一段,解释下为何大模型的输入价格和输出价格是不同的,这是因为在大模型推理(inference,相对模型训练来说的,不是指逻辑推理)阶段,分为Prefill和Decoding两个阶段(参考上图)。Prefill阶段首先把用户的输入prompt通过并行计算,产生每个Token 对应Self Attention的Key-Value,并存储在KV Cache中,供Decoding阶段产生每个Token时候计算Self Attention时候用,这个阶段每个Token的Key-Value可并行计算,模型运行一次能输出多个Token的KV,所以GPU利用率高;而Decoding阶段根据用户Prompt生成后续内容,但模型运行一次只能产生一个Token,所以无法有效利用GPU的并行计算特长,资源利用率不足。资源利用率的差异导致了输出阶段成本高,这是为何大模型一般输出价格是输入价格3到4倍的原因。 说回来,关于价格的核心问题是:为何比如o1 mini的输入价格(输入部分大模型的处理逻辑简单,只产生Prompt对应的KV Cache,更容易分析)是GPT 4o mini的20倍?这是个很奇怪的点,仔细思考的话,这里应包含关于o1内部机制的很多线索。输入价格对应Prefill阶段,Prefill原则上只处理用户输入Prompt和Sys Prompt。Prefill阶段价格贵20倍,只有两个可能: 一种可能是用户Prompt+Sys Prompt的输入长度是GPT 4o mini输入的20倍。用户输入的Prompt对o1和4o来说当然是一样的,如果增加这么多输入,只能是OpenAI往sys Prompt里塞入了很多东西。但是考虑到o1 Preview只比GPT 4o贵3倍,那么sys Prompt特别长的可能性就不大了,否则o1 Preview的输入价格也应该比GPT 4o贵20倍才是。另外,如果只是sys Prompt带来的价格上升,那么o1在Decoding阶段就不应该那么贵了,因为sys Prompt 主要影响Prefill阶段的计算成本(当然,如果KV Cache长了,Decoding在计算Self Attention的时候计算量也会增加,因为要看到更长的上文,但是以目前大模型对长文本的支持能力,成本不会高太多)。 所以,针对这种可能性,结论大概是:OpenAI可能往sys Prompt里塞入东西了(应该是上面提到的“安全规则手册”啥的),但是并没有达到20倍价格的差异。塞入很长的sys Prompt这条原因不能解释20倍价格差距。 我们来考虑第二种可能性。如果假设输入Prompt长度差异没有太大,那么从Prefill计算机制角度来看,只能理解为o1 mini的模型总参数量是GPT 4o mini的20倍左右(除了摘要模型外,还有十多倍的差异)。这里又有两种可能,一种是说o1 mini就一个模型,那么它参数量是GPT 4o的大约20倍,这个很明显不成立,我们可以看到各种测试中o1 mini跑的速度挺快的,所以单个模型不可能太大; 于是,剩下的唯一解释就只能是:o1 mini除了一个主模型,一个摘要模型外,大概还有18个规模相当的其它模型。考虑到o1 Preview输入价格只比GPT 4o贵三倍,可以理解为o1 Preview除了一个主模型,一个摘要模型,还有另外一个规模相当的其它模型。因为o1 Preview的总体工作机制应该和o1 mini是类似的,可知o1 Preview多出来的那一个模型,和o1 mini多出来的那18个模型(那为啥这18个模型不共享KV Cache呢?如果可以共享KV Cache的话,起码在Prefill阶段,18个模型可以缩减为1个模型,那么o1 mini的输入价格只需要比GPT 4o mini贵3倍就够了。既然仍然贵20倍,侧面说明了这18个模型本身模型参数或者配置是有差异的,导致相互之间无法共享KV Cache),大概是干同一类事情的。而这个事情的性质呢,是模型个数可伸缩配置的,就是说你可以设置这个地方是部署1个、5个还是18个这类模型,而且这类模型相互之间还有些差异导致无法共享KV Cache。O1 mini在很多场景的效果要比o1 Preview效果好,一定程度上可能是跟这类模型的部署个数有关的,所以我推断,这类模型大概率跟树搜索有关。 ![](https://pic1.zhimg.com/v2-acae36667fed19c7c092b7273c6f9d1a_b.jpg) 综合起来,也就是说,**o1模型大概由三部分构成(参考上图):一个主模型,一个摘要模型,还有一类可灵活配置个数的跟树搜索相关的模型池子**。如果我们自己想要给出技术方案逆向工程o1,你的技术方案可能就需要满足这个约束条件,需要包含这些模型,并能解释清楚这类模型池子的运作机制。 ## OpenAI O1可能采用的训练数据 ### 人工标注数据 首先,训练o1肯定会人工标注一批COT思考过程,就是说拿到一批&lt;问题,答案&gt;数据,通过人工把解决问题的思考过程和步骤写下来,形成&lt;问题,思考过程(包括思考过程中出现的错误及错误修正过程),答案&gt;。如果没有人工标注过程,那么COT里出现的:Hmm,wait,…这种,如果是纯靠LLM自己产生的,那估计LLM已经有意识了,这个概率很小,这些大概率最初来自于人工标注数据。可以用这些数据SFT一下o1初始的模型,启动模型的输出模式,让它熟悉这种表达方式,但是仅靠SFT肯定是不够的。 ### 合成数据 人工标注难度大、成本高,所以人工标注的COT数据数量不会太多,人工标注的问题是可扩展性太差,优点是质量比较高;之后可以采用合成数据的模式,一种最直观的合成数据的方式就类似上面提到制作PRM标注数据的模式:从人工标注的COT里面截取一段人工标注片段,然后使用MCTS树搜索方式去补齐后续推理过程,每个片段跑多次,有的最后答案正确有的错误,无论是正确还是错误,都可以作为合成数据来训练o1模型。如果更激进一些,对于有确定标准答案的逻辑问题,可以通过不断试错的模式直接从问题开始搜索正确答案,这里搜索到的正确答案和错误答案都可以用来训练o1模型(但是这貌似就已经是o1了?所以可能性不大)。 ### 代码COT数据的反向生成 有一种极大拓展代码COT数据的办法:我们有大量现成的各种代码,可以教会大模型试着从代码反向生成Hidden COT的推理步骤,这个应该是可行的,并能极大拓展Coding类型的COT数据。(类似的思路借鉴自:Planning In Natural Language Improves LLM Search For Code Generation) ### 数学COT的反向生成 ![](https://pic1.zhimg.com/v2-f28af3f85e4e00dd5766eba08a1e409c_b.jpg) AlphaProof这种能力强的数学解题系统,整体思路是首先把自然语言的数学问题通过一个模型转化为形式化语言描述,然后使用lean及类似AlphaZero的模式,通过强化学习和树搜索来不断搜索并验证中间推理步骤。这种方法效果是可以保证的,目前基本可达到IMO银牌选手水准(参考上图蓝色部分)。但是这种需要转化成形式化语言再解题的系统有一个问题,就是通用性差,基本只能用来解决数学题,很难扩展到其它领域。 **受到代码反向生成的启发,我觉得也可以反向生成数学COT**(参考上图红色部分)。既然AlphaProof可以构造从自然语言问题翻译成形式化数学语言的神经网络,那也可以构造一个反向生成的模型,就是把数学形式语言翻译成自然语言,然后用这个翻译系统把AlphaProof找到的解题推理过程,从形式化语言转换成自然语言思考COT。当然,中间做错的也可以用,因为它有明确的验证系统,每一步即使错了,为啥错也知道,这些也可以翻译成自然语言。这样可以构造出千万量级甚至上亿量级的数学推理COT思维过程数据。我觉得这个思路大体是可行的。 OpenAI o1目前在数学和Coding方面效果最好,可知这方面的训练数据是最多的,我不知道是否会采用类似反向生成的思路来自动构造COT数据,但貌似这种方法看上去可行性还比较高。 ## Reverse-o1:RL的关键要素及如何将RL与LLM融合 我们从这里开始推导o1可能以何种方式将RL与LLM融合起来,并把推导出的模型称为Reverse-o1。 我们会先分析下在Hidden COT场景下RL的关键要素:状态空间(State Space)、行为空间(Action Space)、奖励模型(Reward Model)。至于RL方法,我推测采用类似AlphaGo/AlphaZero的概率较大,有几个原因: 首先,据说OpenAI员工每天要读好几遍萨顿写的“苦涩的教训”,而里面提到“能够发挥算力的通用方法,如搜索和学习,将最终大获成功”,这里的搜索主要指的就是DeepMind AlphaGo的MCST方法,OpenAI员工耳濡目染不把搜索用起来做个实践也说不过去不是? 第二,前几天OpenAI官宣的o1主力成员采访视频里,有员工提到了他们一直以来都在尝试如何将AlphaGo的搜索方法和LLM融合起来,这也是证据之一。 所以,之后会简单介绍下AlphaZero的工作原理,并尝试将其和LLM融合起来构造复杂逻辑推理系统。 ### O1中RL的状态空间:Token序列组成的连续状态空间 ![](https://pic4.zhimg.com/v2-8675ae548e9a87c0b80601c5bcd416f7_b.jpg) 关于o1的RL状态空间,首先的问题是:这个状态空间是离散的还是连续的?大概率是连续状态空间,或者说最好把它看成是连续状态空间。O1由LLM和RL组合而来,当用户输入问题时,很自然的,这些组成问题的Token序列作为一个整体可以看成第一个状态(State1),State1的Token序列作为o1模型的输入,o1在行为空间里选择某个行为(至于行为空间如何定义后面再谈),先不管这个行为是什么,反正选择这个行为后,o1会输出一个Token序列片段(不会是完整的Hidden COT,应该是其中的某个片段)。之后,o1把新生成的Hidden COT片段内容追加到State1之后,形成State2,再次作为o1的新输入,o1根据新输入选择新的行为,输出新的Token序列片段…..如此往复,直到Hidden COT输出结束。基本是这么个过程。 o1的RL状态空间不太可能由离散状态构成,你很难清晰地划分出若干具体状态。当然,可以说极端情况下,每个Token形成状态空间中的一个离散状态,但是这样基本没有实际的可行性。如果是每个Token代表一个状态S,首先这个状态组合空间太大。假设Token词典大小是10万,2个Token组合空间就是10万的平方,长度为n的Token序列,状态空间就是10万的n次方,基本是天文数字。其次,对于o1的RL来说,每输入一个Token就需要选择某个行为A,并生成下一个Token代表转移到另一个状态S’。如果RL过程带有搜索,意味着每个Token需要做一次搜索,而我们从很多o1的网上例子可以看到,很多时候Hidden COT是非常长的,几十上百K都有可能,这计算量基本是不可接受的。所以把每个Token看成离散状态,不是不行,但颗粒度太细,感觉很难在实际中应用。 ![](https://picx.zhimg.com/v2-4a1163dfae8d9fdf081994b0a3efb4e9_b.jpg) 我觉得把o1的状态空间看成由Token序列组成的连续状态空间比较合适,上面例子尽管提到了State1或者State2,看着好像是离散状态,这只是方便解释过程而已(当然,如果把State1看成在巨大无比的Token组合空间中采样的一个点,这没问题)。就类似RL打游戏或者RL下围棋,RL输入的游戏(或围棋)画面由比如1024*1024个不同像素构成(不同像素可以类比为LLM的不同Token),由于像素组合空间过于巨大,很难清晰定义离散的一个一个State到底是什么,所以一般RL打游戏或者下围棋都是把输入图像当作一个整体,看成连续状态空间,通过一个神经网络来映射到某个具体的行为上。O1的状态空间和图像是类似的(参考上图),可以把一个Token片段类比RL打游戏对应的某个图片输入,看成由Token序列组成的连续状态空间,经过o1的LLM+RL神经网络映射到某个行为空间中的行为。 从上面分析可以看出,打游戏或者下围棋采用的RL技术,大都是以连续状态空间作为网络输入,而输出大都是离散行为空间中的某个行为,所以很明显这些地方采用的RL技术就比较适合用来作为o1的RL部分的解决方案,而采取离散状态空间的RL模型,比如MDP类方法就不太适合。 ### O1中RL的可能行为空间:“思考因子(Thought-Factor)”离散行为空间 ![](https://pic3.zhimg.com/v2-42ece6771834ba4ac3468a02f836c182_b.jpg) O1的RL技术方案,其中最关键的环节很有可能是如何定义行为(Action)空间。OpenAI 01的Hidden COT产生过程,本质上是在让机器模仿人在解决复杂问题产生的思考过程,而人在思考复杂问题时,有比较固定且数量并不太多的“思考模式”或者可以叫“思考因子”。比如拿到一个复杂问题,我们一般会首先明确这个问题的目标是什么,然后把复杂问题拆解成几个环节或者步骤,为了得到某一个具体步骤的解法,可能会提出一个假设,然后验证这个假设是否成立,如果不成立,那么继续提出新的假设,直到解决这个子问题…..我们也可能在过程中会进行验算并发现某些中间环节出现错误,并把错误修正过来。 如果仔细分析OpenAI官网放出来的几个Hidden COT,会发现是可以从里面归纳出一些典型的人类思考问题的一些隐含的“思考因子”的(参考上图,我给出了一些具体的例子)。我觉得要是把Hidden COT看成一个一个Token构成的,RL这事情就很难做了(Hidden COT的状态空间已经是连续非离散的,如果行为空间也是非离散的或者组合空间过大,RL很难建模。所以行为空间是离散的,这个极大概率为真,当然怎么定义离散的行为空间应有不同方法),在我的设想中,一个合理的方法是归纳出人类思考复杂问题的隐含的“思考因子”,以此作为候选的行为集合,比如:“拆解问题”、“复述目标”、“检查结果”、“修正错误”、“提出假设”等等,总体数量应该不会太多,即使划分得细致一些的话,估计也就几十到上百种。而针对每个具体的“思考因子”,可以产生符合对应分布概率的Token片段,比如行为若是“提出假设”因子,则生成“Alternatively”这个Token的概率就比较大(通过PPO从训练数据里学到的)。那么,Hidden COT片段很可能其真实面貌是长这样的: &lt;ACT_Proposer-Start&gt; Alternatively, perhaps combine the numbers in some way. &lt;ACT_Proposer-End&gt; (提出假设) &lt;ACT_RephraseTarget-Start&gt; Overall Task: Write a bash script that takes one argument (the string representing the matrix) and outputs its transpose in the same format.&lt;ACT_RephraseTarget-End&gt; (复述目标) 也就是说,OpenAI的Hidden COT的原始内容或者训练数据,在形式上有可能是这样的二级结构: &lt;Think_Start&gt; (Hidden COT起始标记) …… &lt;ACT-1_Start&gt;token token token…..&lt;ACT-1_End&gt; (思考因子1) &lt;ACT-2_Start&gt;token token token…..&lt;ACT-2_End&gt; (思考因子2) &lt;ACT-3_Start&gt;token token token…..&lt;ACT-3_End&gt; (思考因子3) …… &lt;ACT-n_Start&gt;token token token…..&lt;ACT-n_End&gt; (思考因子n) &lt;Think_End&gt; (Hidden COT结束标记) ![](https://picx.zhimg.com/v2-da915a993a7eecb442e29cd11edd1c27_b.jpg) 这种层级的Hidden COT结构,能体现出RL和LLM的优势结合,离散行为空间比如估算给定状态S采取何种行为,即函数Q(S,A)的估算,这是RL擅长做的事情,而思考因子标签中的Token生成则是LLM擅长的事情,LLM可以根据对应“思考因子”的类型,学习调整因子标签内部Token的生成概率。上图展示了如上所述二级“思考因子”离散行为空间后,o1的可能运作形式。在生成Hidden COT的过程中,输入和输出都带有ACT行为Token的起始和结束符号,首先,O1根据当前的问题和已经生成的Hidden COT片段,预测下一个最可能采取的“思考因子”,以决定后面要采取怎样的具体思考模式,然后在这个“思考因子”指导下,LLM生成具体的Token序列,以“思考因子”的结束Token作为这种思维模式的结束标记。并将本步输出的Token序列并入输入,来循环往复地生成下一步思考的对应行为及Token序列。(当然整个过程都是我的设想,没有具体证据)。 那您会问:为啥我在给出的Hidden COT例子里看不到“思考因子”对应的起始和结束Token呢?可能展示给用户的COT是过滤后的版本。你想,Hidden COT的起始和结束Token(&lt;Think_Start&gt;/&lt;Think_End&gt;),这两个Token极大概率是会有的,您不也没看到不是?说明输出的是过滤后的COT,那么,原先是有“思考因子”标记,但显示的时候被过滤掉,这也是有可能的。 ### O1中RL模型的奖励模型(Reward Model) ![](https://pic2.zhimg.com/v2-56c22423a3318236e0ff14aabad6cb29_b.jpg) Reward如何设置对于RL来说至关重要,之前LLM+RL的学术工作其实蛮多的,归纳一下的话,目前常用的Reward模型有两种(参考上图):结果奖励模型(ORM,Output Reward Model)和过程奖励模型(PRM,Process Reward Model )。 ORM的意思是训练一个模型,不管推导过程有多少步,只对最后结果打分。如果对照Hidden COT看的话,意思是只有o1把Hidden COT完整地写完了,ORM才给出一个奖励信号,模型结果若和标准答案对上了,给奖励1,如果答案错误,给奖励-1,类似这种。很明显,ORM的优点是反馈信号准确,比如对于数学题,模型要么做对了,要么做错了,很明确,所以反馈信号就精准;但ORM的缺点是反馈稀疏,意思就是反馈信号少,这个很直观,哪怕你推导过程写10页纸,反正最后只有一个反馈信号。(OpenAI 训练大模型时RLHF阶段的RM模型,就属于ORM) PRM的含义是训练一个模型,能对中间每个过程都给予反馈信号,这样在推导过程中错在哪个步骤就很清楚,不用等到最后,所以它的特点是反馈信号丰富不稀疏。但问题来了,要训练PRM就需要有每一步有标注的数据,这么多标注信号怎么来?常规做法是靠人工标注,比如去年很火的OpenAI的PRM工作“Let’s Verify Step by Step”,就是靠人工标注了80万中间步骤反馈信号的数学题推导过程,而且证明了PRM效果要比ORM好。所以,PRM的优点是反馈多效果好,但是训练数据制作成本太高,一般人做不了。 ![](https://pic1.zhimg.com/v2-974a44bd62e5cfc9c90e8e222c4b67a8_b.jpg) 那有没有相对成本低的方法来做给每一步做标注呢?有。我目前看到比较好的做法是这么做的(参考上图):假设我们手上有一批有完整推导过程的数学题,可以先把第一个解题步骤抄过来,然后用MCTS树靠搜索的方式去继续往后推导,可以从这个步骤出发做多次推导,其中有些推导过程会得到正确答案,有的结果错误,原则上从这个步骤出发的多次推导中,通向正确答案比例越高,说明抄过来的这步推导过程对于得到正确答案比较重要,则可以标注一个高分,然后可以抄过来第二个解题步骤,依此处理…..这样就能自动给每个推导步骤做质量标注。然后用这种数据去训练PRM模型,PRM就能给每个推理步骤打分。但很明显,通过这种数据训练出来的PRM打分的精准性肯定比不上ORM。 **那么OpenAI o1在训练过程会采用ORM还是PRM呢?我估计两者都会用。ORM精准,PRM反馈丰富,两者各有优点,结合起来效果应会更好。**另外,o1的官网提到了“Our large-scale reinforcement learning algorithm teaches the model how to think productively using its chain of thought in a highly data-efficient training process.”,这里的“data-efficient”,应该指的就是PRM。 ### AlphaZero的基本原理 这里会首先介绍下AlphaZero的基本工作原理,我们后面给出的Reverse-o1方案,核心是如何将RL和LLM融合起来,大框架主要参照AlphaZero的主体思路,所以这里做些说明以方便后续内容的理解。 2017年年底AlphaGo的棋类游戏通用版本Alpha Zero问世,不仅围棋,对于国际象棋、日本将棋等其他棋类游戏,AlphaZero也以压倒性优势战胜包括AlphaGo在内的最强的AI程序。 ![](https://pic3.zhimg.com/v2-5e38775f5c3c0a7dcf6c2898a7113ff4_b.jpg) AlphaZero从技术手段上和AlphaGo相比并未有本质上的改进,主体仍然是MCTS蒙特卡洛搜索树加神经网络的结构以及RL训练方法,但是技术实现上简单优雅很多(参考上图)。主要改动包含两处:一处是将AlphaGo的两个预测网络(策略网络P和价值网络V,策略网络P主要用于预测在当前状态 ![S](https://www.zhihu.com/equation?tex=S) 下,执行每个行为 ![a](https://www.zhihu.com/equation?tex=a) 也就是可能的落子位置的胜率,即函数 ![P(S,a)](https://www.zhihu.com/equation?tex=P%28S%2Ca%29) ;而价值网络V主要评估当前状态 ![S](https://www.zhihu.com/equation?tex=S) 最终能够赢棋的整体概率,即函数 ![V(S)](https://www.zhihu.com/equation?tex=V%28S%29) ,是一个在比如0到1之间的数值, ![V(S)](https://www.zhihu.com/equation?tex=V%28S%29) 数值越大,从当前局面 ![S](https://www.zhihu.com/equation?tex=S) 出发赢棋概率越高。)合并成一个网络,同时产生两类输出 ![P(S,a)](https://www.zhihu.com/equation?tex=P%28S%2Ca%29) 和 ![V(S)](https://www.zhihu.com/equation?tex=V%28S%29) ;第二处是网络结构从CNN结构升级为ResNet。AlphaZero完全放弃了从人类棋局来进行下棋经验的学习,直接从一张白纸开始通过自我对弈的方式进行学习,并仅仅通过三天的Self Play便获得了远超人类千年积累的围棋经验。 AlphaZero结合了MCTS和RL,MCTS是主体,RL起到了加速搜索速度的作用。在Self Play过程中(参考上图a),对于某个AI棋手,它会用MCTS搜索,对当前状态 ![S](https://www.zhihu.com/equation?tex=S) 下各个可能落子(Action)都去搜一下,每个位置经过搜索之后,能获得每个落子位置赢棋的概率分布 ![\pi](https://www.zhihu.com/equation?tex=%5Cpi) ,从中选择概率最大的位置来落子,之后另一个AI棋手也采用类似的思路去落子……这么一来一回直到分出胜负( ![z](https://www.zhihu.com/equation?tex=z) 指出谁是胜者,Reward信号)。 到目前为止,貌似我们还没看到神经网络结构的作用,其实它主要是在MCTS搜索某个落子位置的时候发挥作用。因为从某个落子位置出发开始搜索,可搜索空间实在太大,靠暴力搜索肯定行不通,所以策略网络 ![P](https://www.zhihu.com/equation?tex=P) 和价值网络 ![V](https://www.zhihu.com/equation?tex=V) (AlphaZero已经融合为一个网络了,分开说主要是为了方便阐述)的作用主要是引导搜索过程,优先搜索赢面大的路径,剪枝掉赢面小的路径,这样来增加搜索效率。 在搜索过程中神经网络参数固定不动,当一盘棋下完最终分出胜负,知道胜者后,可针对下棋路径上经过的每个状态 ![S](https://www.zhihu.com/equation?tex=S) 产生对应的训练数据。对于策略网络 ![P](https://www.zhihu.com/equation?tex=P) 来说,学习目标是MCST搜索获得的当时状态 ![S](https://www.zhihu.com/equation?tex=S) 出发落子概率分布 ![\pi](https://www.zhihu.com/equation?tex=%5Cpi) ,而对于价值网络 ![V](https://www.zhihu.com/equation?tex=V) 来说,学习目标则是“最后的胜者 ![z](https://www.zhihu.com/equation?tex=z) 获胜概率大”这一事实。然后根据这些训练数据就可以调整神经网络参数,这样它在下一局对弈过程中能力会更强(可以看出AlphaZero的奖励模型是ORM)。这样通过无限重复的对弈过程,AlphaZero能力就越来越强。 应该意识到:对于AlphaZero来说,其本质其实还是MCTS蒙特卡洛树搜索。围棋之所以看着难度大难以克服,主要是搜索空间实在太大,单纯靠暴力搜索完全不可行。如果我们假设现在有个机器无限强大,能够快速遍历所有搜索空间,那么其实单纯使用MCST树搜索,不依靠RL,机器也能达到完美的博弈状态。AlphaGo Zero通过自我对弈以及深度增强学习主要达到了能够更好地评估棋盘状态( ![V](https://www.zhihu.com/equation?tex=V) )和落子质量( ![P](https://www.zhihu.com/equation?tex=P) ),优先选择走那些赢面大的博弈路径,这样能够舍弃大量的劣质路径,从而极大减少了需要搜索的空间,自我进化主要体现在评估棋面状态( ![P](https://www.zhihu.com/equation?tex=P) 和 ![V](https://www.zhihu.com/equation?tex=V) )越来越准,所以能越来越快地找到赢面最大的落子位置。而之所以能够通过自我对弈产生大量训练数据,是因为下棋是个规则定义很清晰的任务,到了一定状态就能够赢或者输,无非这种最终的赢或者输来得晚一些,不是每一步落子就能看到的。 ### LLM与RL融合后的Reverse-o1模型网络结构 ![](https://pica.zhimg.com/v2-43db16e22bb757833665c241c6c54946_b.jpg) o1和下棋不同的一点是:除了RL,即使是Hidden COT,在背后也是靠一个Token一个Token输出的,LLM一定还是其中的主体结构,但RL肯定也需要一个网络结构去调整模型参数,来逐步学会内部的思考过程。所以,我们首先面临的问题是:**如何融合LLM和RL两个模型,来获得一个同时混合LLM和RL两者功能的完整网络结构**。 上图给出了一个我设想中的结构:主体仍然是基于Transformer的LLM模型(Dense或MOE都可以,mini版本应是Dense结构),当输入“问题+已经生成的部分Hidden COT”(也就是由连续Token序列组成的当前状态 ![S](https://www.zhihu.com/equation?tex=S) )之后,经GPT网络对当前状态进行编码。在LLM 输出Head之上,可分化出两个子结构:一个用于常规的LLM 预测Next Token,这与通常的LLM一致;在Head之上,可以搭建RL模型结构,这里参考了AlphaZero的思路,一个网络两个输出。比如可以用FFN网络结构,一方面输出策略网络 ![P](https://www.zhihu.com/equation?tex=P) 结果( ![P(S,a)](https://www.zhihu.com/equation?tex=P%28S%2Ca%29) ),代表在当前状态 ![S](https://www.zhihu.com/equation?tex=S) 下,下一步Action“思考因子”的分布概率 ![\pi](https://www.zhihu.com/equation?tex=%5Cpi) ,某个“思考因子”概率越大,则下一步这个Action被选中执行可能性越大;另外一方面会输出价值网络V结果( ![V(S)](https://www.zhihu.com/equation?tex=V%28S%29) ),代表当前状态 ![S](https://www.zhihu.com/equation?tex=S) 通向最终正确答案的概率大小,概率越大说明当前状态 ![S](https://www.zhihu.com/equation?tex=S) 质量越高,意味着目前已输出的这部分Hidden COT整体质量较高。 到了这一步,当Hidden COT处于某个状态 ![S](https://www.zhihu.com/equation?tex=S) 的时候,经过网络可知下一步应该采取什么动作,也获得了当前状态 ![S](https://www.zhihu.com/equation?tex=S) 通向成功答案的概率。但目前仍缺少一部分内容,即在已知下一步“思考因子”行为后,对应的Hidden COT 一系列输出的Tokens。 一种简单的方法是用LLM head之上的LLM部分持续输出后续Tokens(有人工数据训练的时候,可以用PPO来增加对应Token的输出概率),在输出后续Token的时候并不考虑RL的输出,直到LLM输出到 ![&lt;{Act_i}-End&gt;](https://www.zhihu.com/equation?tex=%3C%7BAct_i%7D-End%3E) 之后,再去判断RL的输出选择动作…..持续此过程,结合LLM和RL输出Hidden COT的模型就能运转起来。 ![](https://pic3.zhimg.com/v2-2672062a4f732da8188fc618e7acf4a6_b.jpg) 前文我们分析过,o1大概率会使用过程奖励模型PRM,还有,它可能是由多个模型构成的。在这两个约束条件下,可以如此改造上面的模型结构(参考上图):在已知下一步“思考因子”后,不由主模型来生成后续Tokens,为了增加后续生成COT的质量,可采用Best-of-N Sampling的思路,由多个复制的Reverse-o1模型(不同副本可以设置不同的温度参数,增加输出的多样性)各自给出一个Token序列,然后由离线训练好的PRM作为评委打分,选择得分最高的Token序列,作为本次“思考因子”后续的输出Tokens。选出最佳内容后,可同步给主模型,主模型执行一次类似Prefill的操作,即可同步输出最佳内容,然后开始下一轮的输出……可如此办理,这么做明显生成的Token序列质量会更高。 ### MCTS树搜索下的Reverse-o1 ![](https://pic4.zhimg.com/v2-64aaba6a01f83cf8a7ef58dc15e3c927_b.jpg) 我们仿照AlphaZero,引入主体结构MCTS,它的运行流程如下(参考上图):当用户输入问题后,Reverse-o1使用MCTS树,对于每个可能的“思考因子”进行搜索,在搜索时会用策略网络 ![P](https://www.zhihu.com/equation?tex=P) 和价值网络 ![V](https://www.zhihu.com/equation?tex=V) 来快速寻找最优搜索路径,这样得到所有“思考因子”的概率分布pai,概率数值越大则代表采取这类思考通向正确答案概率越高。之后选择概率最大的“思考因子”作为当前状态下的行为,并如上节内容所述,由Reverse-o1生成针对这个行为下的COT Tokens片段。将COT Tokens片段并入用户问题,形成新的状态……依次往后走,直到产生问题的答案,和标准答案对比后,要么对要么错,由此得到对应的Output Reward。 ![](https://pic4.zhimg.com/v2-f5906db6b6866eae8ec98992cc4f4d43_b.jpg) 仿照AlphaZero,从状态 ![S](https://www.zhihu.com/equation?tex=S) 出发,搜索某个“思考因子”指向正确答案的概率时,以 ![max(Q+U)](https://www.zhihu.com/equation?tex=max%28Q%2BU%29) 的方式寻找最优下一状态 ![S&#39;](https://www.zhihu.com/equation?tex=S%27) ,而 ![Q](https://www.zhihu.com/equation?tex=Q) 函数与价值网络 ![V(S)](https://www.zhihu.com/equation?tex=V%28S%29) 正相关, ![U](https://www.zhihu.com/equation?tex=U) 函数与策略网络 ![P(S,A)](https://www.zhihu.com/equation?tex=P%28S%2CA%29) 正相关,所以 ![max(Q+U)](https://www.zhihu.com/equation?tex=max%28Q%2BU%29) 的含义是通过价值网络和策略网络的指引,来寻找高质量的搜索路径;当搜索到叶结点的时候,会进行节点扩展,并用策略网络和价值网络估算初始化相关搜索参数,之后由低向上更新最优路径上所有状态对应的 ![Q](https://www.zhihu.com/equation?tex=Q) 函数。当每个候选的“思考因子”经过一轮搜索后会得到所有行为的分布概率 ![\pi](https://www.zhihu.com/equation?tex=%5Cpi) ,完成搜索步骤。O1搜索时与下棋不同的地方在于:如果要往下一状态转移,还需要根据当前选到的行为,产生对应的Hidden COT tokens,这个步骤可由上文讲述的Best-of-N Sampling策略来完成。 当从问题开始,逐步生成Hidden COT片段后,走到答案阶段,会获得Output Reward,完成一次通过中间环节到答案的MCTS搜索过程。如果答案正确,可设置Reward=1,答案错误可设置Reward=-1,在此基础上针对走到答案所经过的所有中间状态 ![S](https://www.zhihu.com/equation?tex=S) 构造训练数据,来训练策略网络P和价值网络V,策略网络的学习目标是对应状态MCTS搜索到的行为概率分布 ![\pi](https://www.zhihu.com/equation?tex=%5Cpi) ,价值网络的学习目标是Output Reward。 除此外,对于搜索过程每个被选中“思考因子”通过Best-of-N Sampling得到的对应Hidden COT tokens序列(也可以拿到PRM赋予这个tokens序列对应的Process Reward分数),则可以利用PPO(PRM的Reward作为PPO的Reward)来调整LLM模型参数,使得LLM之后在遇到这个“思考因子”后,提高这些Tokens的生成概率。 到目前为止,差不多可以结束o1的整个逆向工程之旅了,前文提到的一些约束条件(o1应该由多个模型构成、应该用了某种或者某几种树搜索、RPM和ORM应该都会用等)在设想中的Reverse-o1中基本都得到了体现。 但是,我个人觉得还有一个问题值得深入思考:“思考因子”是必须存在的吗?毕竟这需要靠人工去归纳人类的潜在思维模式,仍然有比较强的人工痕迹存在,而且会增加人工标注数据的成本。这个问题我确实思考了好几天,结论貌似是:整个框架还可以是这个框架,不用引入“思考因子”或者把“思考因子”改为“隐式思考因子(Hidden Thought Factor)”应该也是可以的,因文章已经太长,解释起来有点复杂,这里先略过。 来源:知乎 www.zhihu.com 作者:[张俊林](http://www.zhihu.com/people/zhang-jun-lin-76?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-25 03:23:03 · 1次阅读
 
 
你一直坚持热爱的事情是什么?坚持了多久?

谢邀 [@央视新闻](//www.zhihu.com/people/2fa0d82713f499ce1373dc02a19d02fd) 知乎的朋友们好啊,我是打了50多年的乒乓球的运动员倪夏莲。 常常有年轻的朋友来问我是怎么坚持下来的,诚实地讲,我也搞不清楚。从没想过自己能打这么久,想放弃的时刻也多到数不清,但兜兜转转了这么些年,自己还是没能离开这颗小球。 你说坚持是因为热爱吗?肯定是的。但这五十多年里,在热爱之外,夹杂了太多其他东西。 上学那会儿,从电视里看到乒乓球赛的转播,拿冠军的人就像英雄一样,可威风了。加上学校条件比较好,有八个乒乓球台,于是我就报名去打球。 那时候我也喜欢唱歌,中间一度跑去了合唱队,但去了三天又后悔,总是想着那颗球。我特别幸运,老师觉得我是棵好苗子,又给了我一次机会。 那是我第一次重新回到球台。 后来,我每天六点爬起来训练,技术也好。当时我被推荐到江湾少体校,但教练组嫌我个子矮,就没有要我。我从小要强,做什么东西都要做好,读书、踢毽子、跳绳,甚至打牌都是前三名。当时可受打击了,我觉得自己可行了,你们怎么觉得我不行呢?那时候的自己还很天真,就不服输,去找老师说情——我都赢球了呀,又没有输,个子还会再长的! 再后来,我一路跌跌撞撞地进了体校,后来又进了上海市队,之后国家队......终于,在1983年第37届世乒赛中,我拿到了混双冠军!其中艰辛有之,幸福有之,一言难尽。 ![](https://picx.zhimg.com/v2-b026ed216677d2fb152b58b757a6dc1d_720w.jpg?source=b1748391?rss) 1986年,因为种种原因,我第一次决心放下拍子,早早从国家队退役。有遗憾和不甘心,可那时候,我确实不想打了,想到上海交大好好念书,补补文化课。回看当初的这个决定,我很庆幸,自己拥抱了人生的更多可能。 在改革开放的大时代背景下,国内体育界也掀起了一股“出国潮”。我一方面觉得这么多年积累的技术,直接放弃太可惜;一面又觉得能够凭自己的能力得到一份条件优渥的工作,何乐而不为? 于是,1989年8月27日,26岁的我踏上飞往德国的飞机,之后又受邀到了卢森堡做教练兼运动员。 本来我是糊里糊涂到了国外,想说工作个几年赚点钱就回家的,可这一打,拍子就放不下了。那时候的我,坚持的动力已经与小时候完全不一样了。以前是没有机会,拼命想要证明自己,后来渐渐演变成一种感恩与责任心的驱动。 当时的我完全没有想过要代表卢森堡去打国际比赛,可是卢森堡全国上下对我真的非常好,98年的时候,他们看中我在欧洲的战绩和技术,再三邀请我代表他们参加奥运会。 这种强烈的被需要的感觉激励了我,我实在难以拒绝,加之那个时候社会的舆论风气和思想都有所变化,都很开放了,我就想着,能帮帮人家也是一件难能可贵的好事。 就这样,我参加了2000年的悉尼奥运会,尽管那时候我已经37岁了。但我的性格是无论做什么事情,只要答应了,都会尽百分之百的努力。最终,我打进了16强,也帮助卢森堡队创造了历史。 这个奥运周期结束之后,我是真的觉得自己老了,打不动了,况且当时我孩子还小,是真的想歇歇。没想到,卢森堡乒协的人又来同我讲,说他们非常需要我,甚至还有人说生完孩子能打得更好!我真的不忍拒绝,况且08年的奥运又是在北京举办,一种莫名的使命感和宿命感让我最终还是拿起了球拍,从此连续参加奥运会直到现在,一打就打到了61岁。 ![](https://pic1.zhimg.com/v2-40b89ba1335172e4175b9b0cf2529e74_720w.jpg?source=b1748391?rss) 61岁参加世界大赛是种什么体验呢?其实没什么,年龄只是个数字,只要上场比赛,我就不会再去想它,我在比赛中唯一的想法就是“怎么去赢”。 奥运会的门槛真的很高,从技术上来讲,我其实是在“吃老本”,这完全要感谢祖国对我的培养,从技术到心态都给我打下了坚实的基础。打个比方就是,我年轻的时候在银行里存了好多钱,老了把密码忘记了,所以我和年轻人不太一样,他们是想着要怎么提高,我是想着怎么把以前的东西捞回来。 乒乓球又是一个要靠脑子打球的游戏,想要一直保持竞技的准备也没有那么容易。这方面我又比较幸运,我的先生Tommy也是我的教练,他是西方的,我是东方的,我俩在一起总是讨论中西方之间的战术,想着怎么样让自己的优势能最大限度地发挥出来,在前进的道路上克服一个又一个的困难的时候,真的很有意思,很有挑战也很有乐趣! 球员得到能展示自己的平台非常不容易,很难说未来会打到哪一天,但我一定会珍惜每一场打球的机会。 出国打球其实没那么容易,信任这件事情需要靠点滴累积。现在的规则是,出国的运动员要在一个国家打9年,才可以代表这个国家打国际比赛,况且,也不是所有的国家都欢迎外国人。所以我现在还有这个机会,真是非常难得。 ![](https://pic1.zhimg.com/v2-020aa2e82422dda10ec3f43e42a06c53_720w.jpg?source=b1748391?rss) 回头来看,我的职业生涯其实是很完美的,我很知足。Tommy总说,“世界上只有一个倪夏莲。”这句话真的给了我很多信心。当然卢森堡也很需要我,他们老说“你行你行,没你我们不行”哈哈哈哈哈。 人生的际遇有时候就是这么神奇!在我拼命追求的时候求而不得;当我放下一切,尽情享受这项运动本身的时候,馈赠却接踵而来。 所以,生活的事情,谁又能说得清楚呢? 我看到十年里,这道问题下,一直都有新的回答。 不知道答主们的“热爱”,有没有坚持下来呢? 我看很多媒体报道我的时候喜欢用一个标题,热爱可抵岁月漫长。这个讲法很妙,小球已经融入在我的血液里了,早已成为我生活的一部分。无论是主动还是被动,喜悦还是痛苦,兜兜转转我总是回到了这方蓝绿色的球桌之前。 如今,61岁的我,现在已经可以笃定地回答这个问题: ——你一直坚持热爱的事情是什么? ——乒乓。 来源:知乎 www.zhihu.com 作者:[倪夏莲](http://www.zhihu.com/people/30-44-30-15-91?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [265 个回答,查看全部。](http://www.zhihu.com/question/23473414/answer/3634688765?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[你一直以来坚持热爱的事情是什么?](http://www.zhihu.com/question/459340033?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [你们有热爱着并坚持下去的事情么?](http://www.zhihu.com/question/340965722?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-24 09:25:24 · 1次阅读
 
 
中国制造能否诞生「奢侈品」?

谢邀 [@央视新闻](//www.zhihu.com/people/2fa0d82713f499ce1373dc02a19d02fd) 。 什么是从中国制造中诞生的「奢侈品」? 这是一个来自2011年的提问,为了回答这个问题,我们有必要先穿越时空,一起回顾一下,「中国制造」到底走过了怎样的路。 不妨把时间线拉得再长一些。 75年,对于一个人,很长,意味着从垂髫小儿到黄发老者的一生;对于一个国家,很短,不过才经历了一代人一生的岁月。 75年前的中国,能造什么? **在“一辆汽车、一架飞机、一辆坦克,甚至是一辆拖拉机都造不出来”的75年前,他们一定这样幻想过这样的未来——「总有一天」。** 那一年的大典上,我们没有一架自己制造的飞机,要成为航空强国就必须先造出飞机的“心脏”——航空发动机。直到1954年8月,新中国第一台活塞式航空发动机——M-11试制成功。 如今,中国研制的“太行”、“玉龙”、AES100等多型发动机为我国各类飞机、直升机提供了强大动力。这颗强劲的“中国心”,连着航空强国梦想,也联系着民族伟大复兴的中国梦。 **承载着「中国心」的一架架国产高性能飞机,也许是他们曾幻想过的「奢侈」。** ![](https://pica.zhimg.com/v2-4db36109e2d46b747b8b94bac433ecd2_720w.jpg?source=b1748391?rss) “万国机车博览会”的牌子悬挂百年后,1952年,新中国第一台蒸汽机车“八一号”在青岛下线,属于中国的奔腾年代开始了。一个人口最多、发展速度最快的大国,在中国高铁的飞速发展中,像大象在钢丝上奔跑了起来。 时速350公里,这是目前中国制造的高铁运营速度。经过几十年的发展,中国高铁已经成为世界上运营里程最长、在建规模最大、运营动车组最多、商业运营速度最高的国家之一。 **高度发达的铁路系统和高速行驶的高铁,也许是他们曾幻想过的「奢侈」。** ![](https://picx.zhimg.com/v2-9448c38bb506ec08427dd4efac6cb71c_720w.jpg?source=b1748391?rss) 1970年4月24日,我国第一颗人造地球卫星“东方红一号”成功发射,“东方红,太阳升”的旋律第一次在宇宙中响起。从此,我们有了属于自己的「中国星」,开启了进入太空的远征。 2024年6月2日,嫦娥六号在月背超稳着陆,完成了世界首次月背“挖宝”。频繁的航天发射活动,甚至被网友比作“下饺子”。 **一个个冲上苍穹的航天重器,也许是他们曾幻想过的「奢侈」。** ![](https://picx.zhimg.com/v2-966d6d26e5634ce1985295bf470f50d2_720w.jpg?source=b1748391?rss) 曾经,新中国第一部自行设计的国产雷达——314甲中程警戒雷达,最大探测距离125公里,你知道它是怎么设计出来的么?当时没有一张雷达设计参考图纸,我们是用望远镜远距离观察苏联在我国东北边境安置的一台防空警戒雷达之后,一点点手绘完成的设计草图。 如今,陆地上,陆基雷达守卫着国土的每一个角落;海面上,中国海军拥有世界尖端的有源相控阵雷达;领空上,空警-2000预警机上装备了我国第一部大型机载固态有源相控阵预警机雷达;太空里,精密测量雷达组成的巨大测控网,对飞船的发射、运行、回收实施着空中的跟踪接力。 **密布陆海空天犹如「金钟罩」和「铁布衫」的雷达部署系统,也许是他们曾幻想过的「奢侈」。** ![](https://pica.zhimg.com/v2-5ff7063b75746ede0b0582c0d1859339_720w.jpg?source=b1748391?rss) 「奢侈感」,既可以是直击庞大工程的震撼,也可以是挖掘微小细节的自豪。 1987年11月18日,广州开通了我国第一个蜂窝移动电话系统,第一批用户只有700人,但这标志着中国开始进入移动电话时代。短短几十年,2G、3G、4G、5G技术的相继推出,中国不仅在技术上实现了从追赶到并跑,甚至在某些领域实现了超越。 尤其是5G时代,中国更是走在了全球的前列,积极参与5G国际标准的制定,同时在国内大规模部署5G网络。通过卫星、空中平台和地面基站的协同工作,网络不仅能够覆盖城市和乡村,还能够覆盖海洋和偏远地区。信号飞驰越来越轻盈,我们与远方的距离也越来越近。 **空天地一体的现代化通信网络和基础设施,也许是他们曾幻想过的「奢侈」。** ![](https://picx.zhimg.com/v2-e2a19c388730838847194940cc55922f_720w.jpg?source=b1748391?rss) 曾经,我们甚至无法制造出一块普通的玻璃钢。那时的中国,没有先进的设备,没有成熟的技术,更没有现成的样板模仿。如今,我们不仅能够生产出性能优异的玻璃纤维,还能够制造出被誉为「黑黄金」的碳纤维。这种材料只有人头发丝粗细的十分之一,却能拉动两架C919大飞机。 2020年,日本对我国实行了高端碳纤维材料禁售的政策。日本人没想到的是,我们早就不用买了!我国成为了继日美之后第三个掌握超高性能碳纤维工业技术的国家。目前,中国碳纤维已经实现自给自足,运行产能几乎占全球产能一半,雄踞世界第一。 **赋能千行百业、造福寻常百姓的大国之材,也许是他们曾幻想过的「奢侈」。** ![](https://pic1.zhimg.com/v2-1bed46911b10d5ea81387d0634445ccb_720w.jpg?source=b1748391?rss) 当命运握在掌中,曾经看似奢侈的「幻想」就不再遥远。 如今,我国已经成为全世界唯一拥有联合国产业分类中所列全部工业门类的国家,工业增加值从1952年的120亿元增加到2023年的39.9万亿元,总体规模连续14年位居全球第一,是全球工业经济增长的重要驱动力。 想象一下,我们站在时间的长河之畔,看着中国制造的航船从远方驶来,它穿越了风雨,经历了挑战。这艘航船,从最初的模仿和学习,到后来的创新和突破,再到如今的引领和定义,它的每一次升级改造,都是中国制造业不断蜕变的见证。 这条提问下的一位高赞答主 [@Haifeng](//www.zhihu.com/people/b71641ce0aa31f459bf4344bbeecc08a) 说,「奢侈品」,应该是精湛的制造业产品、厚重底蕴的品牌、呕心沥血的过程性产品等等,或者干脆是它们的综合。 今天,当我们再次审视中国制造,我们会发现,它已经具备了这位答主所提及的,孕育「奢侈品」的所有要素:深厚的文化底蕴、精湛的工艺技术、创新的设计能力以及覆盖全球的市场影响力。我们可以自豪地说,精良的中国制造就是中国的「奢侈品」。而且这些「奢侈品」蕴含的创新、品质、文化和责任,正在塑造一个全新的中国形象。 **「总有一天」。** **总有一天,我们会拥有这样的奢侈。** 于是,他们用笔,用手,计算和打磨出了未来的这一天。 似是弹指一挥间,「蓝鲸」「蛟龙」下海掀起了惊涛,「天问」「北斗」升空仰天长啸。 在我们生活的这一天里,这些曾经的奢侈的幻想,看起来似乎都有些寻常。 **这样的「奢侈」,真好;这样的「寻常」,更好。** 来源:知乎 www.zhihu.com 作者:[国资小新](http://www.zhihu.com/people/guo-zi-xiao-xin-73?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [316 个回答,查看全部。](http://www.zhihu.com/question/19825959/answer/3634614274?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[全球多少奢侈品在中国制造?](http://www.zhihu.com/question/21886558?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [国家为什么不设计一些国产奢侈品让国人购买来充实国库?](http://www.zhihu.com/question/665640854?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-24 09:20:42 · 1次阅读
 
 
独立游戏在中国 插曲:手游版号办理完全攻略

_2017.1.14更新了账号承诺书部分和注意事项里一则自朋友反馈的实践经历,以后会继续补充。_ ## 一、照例写在前面 最近因为之前那篇关于版号的文章_([关于手游审批:大限已过,无号上线的手游都怎么样了?](https://zhuanlan.zhihu.com/p/24700761)__)_,收到一些私信,也认识了不少新朋友,其中不少对我们帮助很大。感谢的话放在后面,值得一提的是,大多数新朋友们频繁地问我同一个问题,那就是:**版号究竟该怎么办**。 我这才意识到之前关于版号新政的问题写得太潦草,毕竟版号问题至今依然是独立开发者或独立开发团队面临的难题之一。 今晚趁着干完活的空当在这儿详细写一下流程,并且会贴出所需的所有资料和撰写范本,希望能帮到大家。 ## 二、如何选择机构 <blockquote><b>先简单复述下版号定义</b></blockquote> 游戏版号就是“游戏出版备案”。它是由国家新闻出版总署批准的游戏出版运营的批准文号。 <blockquote><b>找谁办理?</b></blockquote> 目前有**两种方式**非常适合独立游戏开发者(毕竟咱们都没有出版资质),我们自己两种都试过,在此介绍给大家: - 第一种:找代办机构 - 第二种:找出版机构 <blockquote><b>这二者有什么分别?</b></blockquote> 游戏出版备案,顾名思义,总局把游戏看做出版物,需要由地方的出版机构做出版,再由出版机构将材料上交给总局。 代办机构的工作流程是: **帮你一起准备材料——帮你与出版机构沟通——出版机构将材料上交总局——等待版号** 出版机构的工作流程是: **你自己准备材料——帮你将材料上交总局——等待版号** 显而易见,出版机构比代办少了一个环节。 <blockquote><b>这二者的优劣各是什么?</b></blockquote> 代办机构优点: - 服务好,态度佳,会非常耐心为客户解答_(并且我知道的一些代办机构,甚至还会代替客户完成一部分的文档撰写工作。包括我们数十份材料的打印,不需要盖章的部分都是他们帮我们完成的)_ - 代办机构往往从事着很多业务,比如当初给我们代办的小伙儿,曾提出可以给我们免费提供一些增值服务,比如给游戏注册个商标啊什么的。另外如果你够土豪,也可以找他们代办ICP什么的,总之和他们多聊聊会挺有收获。 代办机构缺点: - 价格稍高,以我们自己为例,在代办机构办理的版号带软著带ICP挂靠_(这些东西具体是什么,怎么搞,后面会详细说)_共计2W1_(但这是10月1之前的价格,现在代办价格已经低至1W5左右)_ - 时间稍长,我们的《游戏A》从2016年8月开始办理,办到11月末才下来 - 代办们往往对游戏审核标准知之甚少,你问他某某某功能能不能过审,八成会得到一个“不知道,试试吧”的答案 出版机构优点: - 价格低廉,在10月1日版号办理普遍大降价之后,目前的价格在1W2左右,如果游戏超出七大类的范畴,就是1W3,七大类则是1W2。这个价格同样包含软著和ICP挂靠。 - 办理时间短,这一条是“据说”和“客观判断”得来的结论,_(据说20个工作日就能搞定)_毕竟我们《游戏A》算作是七大类,现在正在办理的《奉天承饭》不算七大类,因此时间上没有可比性,我们也还在等版号中。 - **最值得一提的是**,他们有专门的测试人员!!!!这点简直是福音,游戏里某个模棱两可的设计和功能具体能不能过审,他们会给你八九不离十的答复。 出版机构缺点: - 态度硬伤,丢给你一个材料清单让你照着准备,有些材料也没有任何样本给你参照_(不过这些样本我后面会贴粗来)_。 - 对游戏类型的认定说一不二。_(在这点上,代办机构有时候会稍显人性化,他们和出版机构很熟悉,有时候可以为你据理力争一下,比如我们《游戏A》在模棱两可的情况下,被代办争取成了七大类)_ 以上内容仅基于个人经验,仅供参考。如果大家找到各方面都相对完美的代办或出版机构,记得也推荐给我哟。 <blockquote><b>怎么找到这些机构?</b></blockquote> 各种搜索引擎顺手一搜就有。能找到同城的多少会方便一些,找不到也无所谓。多问几家没坏处,优中选优。 ## 三、我要准备哪些材料 <blockquote><b>移动游戏出版申请表(电子文档)</b></blockquote> 戳以下链接,文章末尾附件是申请表内容。 [国家新闻出版广电总局-通知公告-关于移动游戏出版服务管理的通知](https://link.zhihu.com/?target=http%3A//www.sapprft.gov.cn/sapprft/contents/6588/298011.shtml) <blockquote><b>企业执照(4份盖章纸质版+电子文档)</b></blockquote> 开发商的企业执照_(起码要有个公司,没有公司的可以问问代办有没法子解决,不过起个公司相对而言还是比较容易)_ <blockquote><b>软件著作权证书(4份盖章纸质版+电子文档)</b></blockquote> 软著的办理一般是先行,由代办或出版机构就可以解决,一般来说需要准备以下三件材料: - 游戏的著作权采集卡_(找代办或出版机构要就可以,他们会贴心地发给你有备注的版本,后附一张图)_ - 游戏的使用手册_(游戏怎么玩,具体怎么操作,有哪些功能,写论文一样列出来,最后生成目录)_ - 游戏的源码前30页和后30页,要求每页50行_(这点比较尴尬,我发现Word最多每页48行,一般来说多插几页就好了)_ ![](https://pica.zhimg.com/v2-058549e39d5a2ef4d0ff2e22231c984a_b.png) _(上图为采集卡)_ <blockquote><b>ICP证书(4份盖章纸质版+电子文档)</b></blockquote> ICP经营许可证是根据国家《互联网管理办法规定》,经营性网站必须办理的网站经营许可证。 全称为《[中华人民共和国电信与信息服务业务经营许可证](https://link.zhihu.com/?target=http%3A//baike.baidu.com/view/3214086.htm)》。 **办理条件:** - 经营者为依法设立的公司;注册资金大于等于100万的内资公司 - 有与开发经营活动相适应的资金和专业人员; - 有为用户提供长期服务的信誉或者能力; - 有业务发展计划及相关技术方案; - 健全的网络与信息安全保障措施,包括网站安全保障措施、信息安全保密管理制度、用户信息安全管理制度; - 涉及到ICP管理办法中规定须要前置审批的信息服务内容的,已取得有关主管部门同意的文件; - 符合国家规定的其他条件。 _(大概如上,网上一查可以找到更多细则)_ 总之非常之麻烦,代办或者出版机构目前都提供挂靠服务,挂靠一次一千块钱不到,如果在他们家办理版号,很可能就只收取版号费用了。用他们的证吧。 **理论上,谁有ICP,谁就是运营商,**不过不用担心,代办和出版都不大会在这一点上染指我们的游戏,上线发布什么的和他们也没有任何关系。如果实在担心,可以要求签署一份补充合同。 <blockquote><b>游戏版本证明(4份盖章纸质版+电子文档)</b></blockquote> 全称是iOS与安卓版本相同证明。下附图。 ![](https://pic2.zhimg.com/v2-911bbc5a74394e1b21b299520571db3f_b.png) <blockquote><b>游戏脚本(2份纸质版+电子文档)</b></blockquote> 最简单的办法就是把游戏里所有文案贴上去,没什么文案的就介绍一下道具,或者再把玩法贴一遍。 ![](https://pic4.zhimg.com/v2-98f1fc55b405c52a914a8e2e3d3039b1_b.png) <blockquote><b>账号承诺书(4份盖章纸质版+电子文档)</b></blockquote> 承诺一下咱们的游戏根正苗红政治正确。 如果进入游戏需要账号注册和登陆,则需要提供账号。 由于我们的游戏没有登录系统,所以大概查了下资料,普遍说法如下: 需要同时提供3个防沉迷账号_(即未成年人账号,后面会写防沉迷相关)_与3个普通账号_(如为MMORPG,则配各等级人物账号)_。 关于提供账号的具体情况有待考证,这一段仅供参考。 下图为我们的承诺书: ![](https://picx.zhimg.com/v2-c7dfab2f00ad29980bb6c71f97e39f41_b.png) <blockquote><b>游戏评测报告</b></blockquote> 话说我也不知道这个干嘛用,不过让写就写吧。 一般可以分**五个点**写: - 运行要求_(运行环境,需要内存)_ - 游戏玩法_(再一次介绍一下玩法)_ - 游戏界面_(2D还是3D,有什么特点)_ - 技术特点_(范例:XXXX的开发使用了目前最优秀商业引擎cocos2dx,开发语言为轻便的lua脚本语言,极大的提高了开发效率。多平台支持方便后期游戏适应性扩展。)_ <blockquote><b>一部装有SIM卡且充好流量的手机(七大类不需要)</b></blockquote> 安卓机即可,给广电测试之用,用过之后会寄回给开发者。 <blockquote><b>游戏安装包(电子版)</b></blockquote> 发给代办一份,测试机里安装一份,现在大多数机构不会要求我们刻盘了。 <blockquote><b>屏蔽字库(如果有输入框,则需要准备,否则不用)</b></blockquote> 网上一搜就有很多现成,找代办要也可以。 <blockquote><b>游戏说明文档</b><b>(4份纸质版+电子文档)</b></blockquote> 还记得办理软著时候的**游戏使用手册**吧,直接改个名字拿来提交就可以。 <blockquote><b>游戏出版合同(一式两份)/</b><b>联运协议(一式两份)/</b><b>版权综合协议(一式两份)</b></blockquote> 和代办或出版方签署的合同,由他们提供。看好协商之后签署即可。 ## 四、最后再核对一遍所需文档 - **企业执照(4份盖章纸质版+电子文档)** - **软件著作权证书(4份盖章纸质版+电子文档)** - **ICP证书(4份盖章纸质版+电子文档)** - **游戏版本证明(4份盖章纸质版+电子文档)** - **游戏脚本(2份纸质版+电子文档)** - **账号承诺书(4份盖章纸质版+电子文档)** - **游戏评测报告** - **一部手机(七大类不需要)** - **游戏安装包(电子版)** - **各类合同** 全部备齐后,寄出即可。 **注**:七大类游戏在办理过程中所需文件可能会稍有删减,但不会少太多_(遗憾的是我们《游戏A》由于在判定是否属于七大类游戏的时候有些争议,每份材料我们全都做了,因此要我说七大类游戏不需要哪些,一时我也说不上来)_ ## 五、游戏要求、注意事项、朋友的经历(补充中) <blockquote><b>哪些算是七大类</b></blockquote> **七大类是指:****消除类、跑酷类、飞行类、棋牌类、解谜类、体育类、音乐舞蹈类。** <blockquote><b>什么是防沉迷系统?防沉迷系统怎么做?</b></blockquote> 第一次办理版号的时候,代办机构按照网游的要求向我们提出了添加防沉迷系统的建议。具体内容如下: - 实名注册,未满18岁的用户将受到防沉迷系统的限制 - 游戏过程,会提示玩家的累计在线时间。 - 累计游戏时间超过3小时,游戏收益(经验,金钱)减半。 - 累计游戏时间超过5小时,游戏收益为0。 但是这放在咱们开发的轻量级或者单机手游来说是极其不靠谱的。 如果游戏依赖于联网和注册的话,建议按照代办或出版机构的要求酌情予以添加。 第二次的出版机构没有要求我们再做这种无用功,但打开游戏,闪屏之后出现的**健康游戏公告**必须添加。 <blockquote><b>健康游戏公告具体内容</b></blockquote> 抵制不良游戏,拒绝盗版游戏。注意自我保护,谨防受骗上当。适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。 ![](https://pic4.zhimg.com/v2-a42a6bfb40f0986a63f45d864063b757_b.jpg) _(游戏A的健康游戏公告)_ <blockquote><b>提交审核的注意事项</b></blockquote> - 游戏开发完成部分的时候就可以开始办理版号 - 游戏内不要出现未开发完成的功能 - 游戏内不能出现繁体字和不必要的英文 - 杜绝血腥暴力封建迷信裸露(_尺度如何把握需要斟酌,有时候过审看运气)_ - LBS+AR游戏暂且缓缓_(参考[从“暂不受理AR+LBS游戏审批”说起](https://zhuanlan.zhihu.com/p/24814141))_ - 健康游戏公告要做得美观些 - _(想到了再写)_ <blockquote><b>来自朋友的经历</b></blockquote> - 来自我朋友圈的一条回复:_前两天我们公司提审版署的游戏第二次打回,说让在主页加退出游戏按钮——还好不是iOS要不只能写闪退代码了。但是之前另一款游戏并没有这种要求……_ - _(持续补充中,欢迎大家继续补充)_ ## 六、游戏发布和更新相关 - **有了版号的游戏可以发在哪?**——任何地方 - **已经在线上,却没有补办版号的游戏会不会被下架?**——起码在AppStore不会,部分安卓渠道有危险 - **没有版号的游戏可以发布在哪?**——部分安卓渠道_(比如应用宝)_;AppStore我们目前不清楚,打算新游戏版号下来后先不填写版号帮大家测一测,看看有哪些地方能上;测试包可以放心发TapTap_(我们真的需要感谢TapTap)_ - **未来游戏更新需不需要重新备案?**——理论上要,实际操作不用。 暂时到这儿。细则我会不断补充。 祝大家新的一年里,游戏开发顺利~ 来源:知乎 www.zhihu.com 作者:[糖小渣](http://www.zhihu.com/people/tang-xiaozha?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-24 09:14:27 · 1次阅读
 
 
如何评价游戏《废土3》?

![](https://picx.zhimg.com/v2-8516c24ca7432e72455eaab609bcc679_720w.jpg?source=b1748391?rss) - - - 现在我的咽喉仍在被滚烫的火药烟灼烧,左手无名指在科罗拉多雪原的苦寒中不知何时起已经枯死失去知觉,复合装甲破碎的纤维在我全身半愈合的伤口中盘根错节。我的战友们为之流血牺牲的科罗拉多平原上,有人视我们为英雄,有人则欲除我们而后快,这似乎和我们刚刚到来时没有太大区别,我们到底给这片土地带来了什么?我的智慧远不足以让我从这段经历中立刻获得启迪,但我手中羔羊的血仍温热,这段故事应当在寒风中的血和泪被和平的歌声冲散前传承下去。 先做一个**前情提要**吧。 在游戏初代,失控AICochise以消灭人类并为自身谋取生存空间为目的,诱发核战摧毁了现代文明。原计划在核大战之后用机器大军接管地球的Cochise母机被毛子一发偏航的核弹破坏了对外通讯能力,于是只得默默蛰伏。废土初代中游骑兵Vargas Snake带队干掉了暗中重建机器大军的Cochise母机,但是一份拷贝被它的人类信徒藏到了游骑兵总部的地下。在二代中这个Cochise拷贝被激活,并且计划将自己通过广播通讯复制到所有地球上的电子设备中。 在废土2的正统结局中,主角所在的Echo-1小队不得不引爆游骑兵总部收藏的一枚核弹来阻止Cochise的计划,年事已高的Vargas牺牲自己让Echo-1小队撤出了爆炸圈,亚利桑那的沙漠游骑兵自此失去了他们最睿智的长辈和唯一的家。 废土3的故事开始在这一事件的几年后,虽然玩家在二代努力广结善缘,但是看样子失去总部之后的游骑兵还是很快陷入了弹尽粮绝四面楚歌的境地。这一作的主角所在部队受命作为一支勘察/联络部队走出亚利桑那沙漠,前往科罗拉多寻求外部援助。 ![](https://pica.zhimg.com/v2-3d13834542b9945d85c585c2b44be652_720w.jpg?source=b1748391?rss) 打通这条全程1300余公里的末日长路想必用尽了游骑兵所有可以动员的人力和物资,获得科罗拉多的援助在这个过程中从唯一的希望变成了最后的希望。以这一路的艰难险阻,单独出一个以车队运营为主题的roguelike外传应该没有太大问题。我可以想象玩家在这个roguelike游戏的评测里说“原本我觉得亚利桑那游骑兵放手一搏投送到科罗拉多的居然只有这么几台车十几个人就很菜,到我自己玩的时候最后能把一个人缺胳膊少腿疯疯癫癫地活着送到我都恨不得要出门放鞭炮了”。 绕过落基山脉进入科罗拉多境内的游骑兵车队中,出发时的亚利桑那老兵应该已经十不存一,车队的大部分人员都是在这一路上吸收进来的新兵,每一个人背后都是一段血腥悲惨的废土求生故事,也许主角二人组也是在这路上火线入党的。 ![](https://pic1.zhimg.com/v2-24352e2982d8697d8066e77a89a1904f_720w.jpg?source=b1748391?rss) 开场动画中这场战争黎明2风格的血腥伏击就发生在距离目的地科泉市约60公里的普韦布洛水库,沙漠游骑兵仅存的精锐在几乎不可能完成的千里行军终点线前,转眼间被未知敌人强大的火力消灭殆尽,你不知道他们是谁,也不知道他们为何攻击你。 了解了这个背景,你应该会对序章水坝上用人血涂抹出的“欢迎来到科罗拉多”这一幕的美学价值产生更深的理解。你捏出来的那两个幸运倒霉鬼和被你救下的朱迪下士就是这场苦难行军中走到终点的最后幸存者了。而游骑兵的精神正是即使只剩最后一人,仍要用尽一切办法完成任务。 落基山脉的寒风与烈焰吞噬了原本的那支游骑兵部队,你以科罗拉多的血与泥重铸的游骑兵是会变得像这片土地一样残酷且饥饿,还是把和平与秩序的火炬在新的家园重新点燃。而无论是混乱还是秩序,你能否承担它所需要的代价,这就是废土3给你的考验。 - - - [https://www.youtube.com/watch?v=_F13mN0st4E](//link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3D_F13mN0st4E) <blockquote>Are your garments all spotless? <br/>你的衣衫是否一尘不染 <br/>Are they white as the snow? <br/>洁白如雪? <br/>Are you washed in the blood of the lamb? <br/>你可曾被羔羊之血洗礼? <br/>Is your soul all spotless? <br/>你的灵魂是否浑然无垢 <br/>Is it clean as snow? <br/>洁白如雪? <br/>Are you washed in the blood of the lamb? <br/>你可曾被羔羊之血洗礼? <br/>Have you laid down your burdens? <br/>你可曾卸下你的担子 <br/>Have you found a rest? <br/>可曾安歇? <br/>Are you washed in the blood of the lamb? <br/>你可曾被羔羊之血洗礼? </blockquote> 废土3的主线概括起来就是前面提到的这场伏击中生还的主角二人如何在科罗拉多重建游骑兵部队,然后作为双方合约的一部分,协助本地统治者索尔·布坎南稳固他摇摇欲坠的政权,以获得困守家乡亚利桑那的游骑兵们急需的物资的过程。 正常来讲整个流程会有40-60小时,虽然少不了来回跑腿的部分但整体节奏相当紧凑。制作的主要精力明显放在了主线相关的几个场景中,支线说不上味同嚼蜡,但确实少了点味道。 辐射1、2式的大地图探索和奇遇得到了重现,但比起在当年算是3A体量的辐射,废土3在这个板块中投入的资源明显非常紧张,给人一种内容不足的感觉。大地图上有几个目前没有内容但是地貌很有特色的地区感觉未来肯定会出DLC,我认为可以期待一下。总体上这一代废土一边透着资金上的宽裕却又一边表现着制作周期的紧张。 游戏主线与游戏本身的机制结合得非常好。 其实在二代玩家就应该已经发现了,游骑兵除了作为保卫人民安全的民兵武装以外,还是一支真正把为人民服务做到了知行合一的基层行政力量。强盗来了你扛着枪去打强盗,但是群众的猪跑了,孩子在学校被欺负了,你也理应过问。 这样的设定是对独立战争时期的革命军民兵组织的怀旧,在那个时期一方面在战场上与反动腐朽的英军武力对抗,一方面在后方维护治安建立法制普及革命思想的新大陆民兵带有一种我们中国人非常熟悉的先锋队色彩,如果如今的美国政客也讲不忘初心牢记使命,那这就是他们的初心和使命。 杯赛在辐射4里非常鸡贼地尝试将这种新大陆民兵叙事连同黑人解放运动一起融入到一个强调美式传统家庭价值的找儿子的故事中叠了三层buff想迎合主流,结果首先是丢掉了辐射的朋克精神,而且做得不伦不类一塌糊涂,国民性和普世性双输。 和这种虫豸一起能搞好辐射吗? 在废土3里,所有一切就非常合情合理:你是四渡赤水的红军,你现在需要建立新的革命根据地把星星之火传递下去。首先你来这儿就不是为了私事,家乡几万口人等你的饭下锅。而你要拉起一支思想进步的革命队伍来自然也不能只是闷头打仗,还必须要搞军民鱼水情和群众打成一片。 可以说是21世纪最有红军精神的一款游戏了。 废土3在新大陆民兵范式里胜于辐射4的另一点在于,这些看起来是让你去帮群众找猪带孩子的任务,你实际去做了基本都会发现事情远没有表面上那么简单。 ![](https://picx.zhimg.com/v2-45171f1a37de6ed33bc4f1a727822aa5_720w.jpg?source=b1748391?rss) 当然,“开辟新的革命根据地”这条路线只在守序玩法下才成立。根据你的选择也完全可以变成你联合本地军阀和游击队推翻索尔(相对)温和的统治后丢下一个烂摊子跑路的故事。不管是哪一个,最后的结局都很美国。 就像游戏通关后那首歌里唱的一样,亚利桑那苦捱过冬的故人们并不知道你们在科罗拉多经历了什么,你是背叛了他们还是死在了路上,你带来的是秩序还是暴政,你们代表的游骑兵是救星还是灾祸,他们无从得知。此处离故乡太远,离文明更远。这一作强调了你这种远离大本营,远离原有秩序和戒律的状态,一支孤悬的游骑兵小队可以堕落得悄无声息。而且请相信我,废土3中的叛逆路线玩起来并不会有什么道德包袱,你会逐渐发现自己有非常充足合理的理由把科罗拉多所有势力干烂。 废土3主线设计中最让我满足的一点在于你的路线选择造成的结果经得起推敲,不搞机械降神,不回避矛盾,也不向你兜售那种改变自己的心态就可以在末世充实地活下去,改变别人的心态就可以大家互相理解的日式乐观。 废土不给你改变心态的机会,你改变心态也没有卵用。废土像藤本树一样不讲道理,让你眼一睁开就看到你爸妈被人砍掉四肢做成人皮风筝送上天,你的左手被剁下来塞进你嘴里,你被穿在铁钎上烤,还没来得及搞清楚状况旁边人就伸手来掏你的大肠刺身,还TM不蘸酱油。你遭完这通罪之后不会有人把你复活成超能打的僵尸美少女,你变成大粪完犊子了,啥意义啊?没意义,你就是这么完犊子了。假如你任务失败亚利桑那那几万文明人就得退化成科罗拉多这样的人肉BBQ,除非你也馋人肉BBQ,那为了避免这个结果你的底线可以放得非常低。 面对相似的情况,电次选择了放弃思考给MQM字面意义地当狗,电次很聪明,学学电次。 在这个基调下,守序玩法可能会带来血腥悲惨的结局,而叛逆的路径也不能随心所欲,只有吃人的疯子(我)才能感到发自内心的快乐。善行和恶行都有其代价,代价伴随着每一个选择,你越是不可动摇地坚守某个信念,你就越是需要付出更大的代价。 如果你熟悉20世纪以来美国对外干涉/侵略的历史,那么你多少能看出来,很多时候那些看似毫无必要的惨痛战争背后的民意基础都是美国人对这种输出秩序和解放的民兵精神的集体思乡之情,这种正义性是他们精神的养料,在极端的饥饿中他们胆敢践踏任何原则。在废土3的守序路线中,你处处都能看到对这种自以为是的正义的反思和讥讽,行正义之名反而染上满手鲜血的事反复重演,这个游戏不但做到了唤起美国人的“初心”,甚至还对这个初心展开了非常无情的批判。 废土3在很多地方会让你联想到乌合麒麟的政治讽刺画。它的荒芜怪诞象征的正是冷战过后美国人迷茫空虚又异常亢奋的精神世界。冷战结束以来美国加速滑向右翼精英主义,明目张胆的愚民政策让底层乃至中层的反智达到了令人瞠目结舌的程度,废土上那种文明进步与野蛮愚昧的对抗此时此刻正在那座“山巅之城”中鲜活地重复着。废土3中三首人声歌曲都是模糊变调后的美国国民级福音歌,它们和游戏本身共同描绘了一个变形祛魅后更接近其本质的美国。 暴力在废土3中像是一场烈性瘟疫,被暴力“感染”的人会将暴力加倍地反馈到更多人身上。而科罗拉多和平统治背后那些被精心掩盖,逐渐在地下室里腐烂发臭的暴力过往正是这场瘟疫的源头。为了维持这种和平繁荣而实施的镇压,欺骗,侵略,背叛,出卖,妥协,绥靖和交易无一不沾满了无辜者的鲜血。废土3非常直白地指出,这些被以“多数利益”正当化的暴力同样也是如今美国社会相当一部分暴力和武力崇拜的源头,暴力像辐射尘一样漂浮于空气之中,所有人都呼吸着它的暗示,所有人都孕育着心中的怪物。 玩过废土3再去观看《小丑》也许会读到更多东西。 ![](https://picx.zhimg.com/v2-3c1320b1418909d60c150b5f0a4a1ad0_720w.jpg?source=b1748391?rss) 守序路线结局幻灯片里的这一帧几乎就是照着美国在中东驻军的常见正面宣传新闻照构图来做的,等你自己亲眼看到这幅图的时候,或多或少会体会到制作者想表达的那种讽刺意味。 和平,谁的和平? [@凌子卿](//www.zhihu.com/people/fb6c0052705b330914871c58d83ca323) 的回答说得更清楚,这不是一个你玩过之后可以心情愉快地入睡的游戏,它为了实现这样的现实批判甚至会像tlou2一样强迫玩家做一些极不情愿的事情,不给你任何挽回的办法。我喜欢这个故事却恰恰正是因为这个理由,我认为事实就是这样,从伍德森将军决定从亚利桑那出兵向科罗拉多提供军事援助作为利益交换起,从Angela Deth作为先遣军潜伏已久却放任(也许还不只)我们的大部队遭遇伏击全灭起,结局就已经注定了,有些矛盾和冲突本来就不可能避免。 自由世界列强沉浸在阿拉伯的劳伦斯那种做好做圆做漂亮的幻想里已经够久了,每一次干涉他国内政前他们都想着这一次一定能做好做圆,每一次都丢下一个人头滚滚的烂摊子跑路。以美国和北约的海外干涉史为对照,这个结局里的结果已经算得上是前所未有的人道主义大成功。 至少废土3把事实大声且伤感地说了出来。光是这一点它就比辐射4强,在自我认识上放弃幻想,停止自吹自擂,停止避重就轻,面对现实。它表露出来的觉悟和历史观对于我们中国玩家来说也许稀松平常,但我还真有点担心老美玩家们能不能砸吧出这个味道来。 ![](https://pic1.zhimg.com/v2-b07b047fd657d3eb1418fba9778128d6_720w.jpg?source=b1748391?rss) 我之前发在想法里的暴论干脆也放到这里供诸君一哂:如果以美国人的视角来看辐射新维加斯,他们会在那款游戏后启示录思想实验人性探索的普世性之外再看到一层鲜明的“美国性”。 新维加斯中的凯撒军团,NCR和豪斯先生分别象征着“清教徒的奴隶主美国”,“Babyboomer的军国美国”和“技术沙文信徒的超人类主义美国”,他们利益和理念冲突的战场正是90年代以后美国社会内部矛盾的绝佳写照。 而在废土3丹佛西部白宫门前,林立的油井之间,以反康米为纲的Gippers和他们的圣总统里根巨像,宗教极端恐怖分子Godfishers,以及代表着美国建国者初心的沙漠游骑兵们齐聚一堂,三方在康米主义的机器人广播电台播放的“美丽的亚美利加”伴奏下枪炮齐鸣打成一团,那幅画面也像是眯着眼在对我说,这就是911以后的美国。 这就是美国,它会把它的所到之处全部变成美国。 如果这次废土3的销量惨淡,inXile也许可以感叹一句做游戏救不了美国人。 当然,整个游戏流程并不全都是我说得这些苦大仇深,少不了各种后启示录特色的黑色幽默。在整个流程中你会见到: ![](https://picx.zhimg.com/v2-fb4be5b94eb48a7da384e2f54cd8fb5e_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-d54ba833617b75e0af2a2e6435aaa62b_720w.jpg?source=b1748391?rss) ![](https://pic1.zhimg.com/v2-01dac602ae960065c54170e1559ddc90_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-afc359e025ba9a32cf2ee44e60f028f8_720w.jpg?source=b1748391?rss) ![](https://pica.zhimg.com/v2-43ddcf82c77fc8f4eed2b248a5d1fe0d_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-a4ee0b27a349668263815e314424a56d_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-21fef32ac956da5719539bd12f22b92e_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-ec2e7fb27f22824b1c78b6a01caefb3a_720w.jpg?source=b1748391?rss) ![](https://picx.zhimg.com/v2-f3e1271127a68e742649cb5552b02f29_720w.jpg?source=b1748391?rss) 感叹一句,丹佛地区真是整个游戏的精华,不能详细讲剧情实在憋闷,但是为了避免剧透我还是等汉化出来一段时间,关于剧情的讨论多一些了之后再把我的剧情理解贴上来吧。 在当下我很不建议玩家带字典硬啃生肉,首先它不像柱子那样有大段对白给你做阅读理解,打开游戏读半个小时书还真能从那些文采斐然的文本中学到不少东西。这个游戏里的文本非常直白,电波对不上了连上下文都找不到。幽默和乐子也是那种当头一乐,没什么嚼劲,费半天劲搞明白一句话之后会觉得自己是在浪费时间,体验很不好。 另则游戏流程节奏很快,体验上对标的大致是生化奇兵,就算是录音磁带里的内容也应该是边走边听的。很多场景强调沉浸感和体验的连贯性,你跟着剧情走该有情绪的地方有情绪该打的地方打,走完一遭之后该明白的都明白了,不需要像迪斯科那样当名侦探到处找秘密。所以疙疙瘩瘩地查字典很破坏这种“流动”性,要等质量还行的汉化出来之后玩到的才是正常的游戏体验。 - - - 接下来谈谈**游戏机制**。 [https://www.youtube.com/watch?v=jcOPh5ltbAw](//link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3DjcOPh5ltbAw) <blockquote>I have read a fiery Gospel<br/>我面前是一部烈火熊熊的福音书<br/>Writ in burnished rows of steel; <br/>一笔一划是纵横参差的焦黑断钢<br/>As ye deal with My contemners,<br/>当我为蔑视律法者降下天罚<br/>So with you My grace shall deal; <br/>主的荣耀就与我同在<br/>Let the Hero, born of woman, <br/>让那英雄儿女<br/>Crush the serpent with His heel,<br/>将毒蛇猛兽践踏成泥<br/>Since God is marching on. <br/>上帝的义军勇往直前<br/>Glory! Glory! Hallelujah! <br/>荣耀!荣耀!哈利路亚!<br/>Glory! Glory! Hallelujah! <br/>荣耀!荣耀!哈利路亚!<br/>Glory! Glory! Hallelujah! <br/>荣耀!荣耀!哈利路亚!<br/>His truth is marching on.<br/>他的真理无人可挡。</blockquote> 谈到这个游戏的机制时,有一种千头万绪不知从何说起的感觉,不如还是回到开头的伏击吧。 首先,废土3和废土2以及许多CRPG一样,正常玩法下都是主角+若干NPC的六人小队团队行动。在游戏后期,我手中这支“十一月”小队从落基山脉打到科罗拉多平原战无不胜攻无不克。这时我想过假如当初在水坝冰湖上遭遇伏击的是我现在这支小队,结果是否会不一样。 从我80小时流程的经验来看,并不会。我这支小队有一次在大地图上遭遇擅长偷袭和狙击的Godfisher游击队,在敌方先手的第一回合里我的英雄小队全数阵亡被做成了风筝,连高血高甲的Kodiak战车都被顺手打成了燃烧的废铁。 这个游戏强调所有人都是肉体凡躯,几乎所有伤害都是过量伤害。在高难度下无论是你还是敌人都极难在一轮先制攻击的枪林弹雨中幸存,而一名战斗减员可能就会让你的整场战斗崩盘。在战斗中取得先发优势,在一回合内尽可能多地消灭或瘫痪对方有生力量是所有胜利的基石。敌方的一发暴击或者一轮满AP连射可以稳定带走我方一名甚至多名队员,而我方输出位队员的一发暴击效果夸张得可以让你高举双手兴奋地大呼“乌拉!”。 战斗在废土3的整个流程中占了非常大的比重,连很多剧情线的高潮也被设置在战斗中。你可以明显感觉到制作者在战斗系统中倾注的心血,正因如此,废土3的战斗兼顾了策略性和爽快感,如果你在角色培养和战术执行上没犯什么错误,每一场战斗都会给你酣畅淋漓意犹未尽的感觉。即使在高难度下,要在废土3的战斗中取胜也并非难事,它并不像老派策略游戏那样强调“破局”,更多是对合理战术和小队构成的正向反馈,你的战术搭配恰当,剩下就是变着花样地爽。 战斗的规则和操作手感与XCOM2非常相似,但是当你看着那个鲜红的四位数伤害从敌人爆裂的尸体上方弹出的时候,你知道每一位数都是你精心培养搭配装备的结果。这是废土3数值设计的过人之处,它在RPG数值成长,沙盘探索和极高的角色定制自由度的框架下仍然在一定程度上实现了XCOM2那种严格控制变量简化数据才能保证的策略性。我个人对S·RPG一向很难拒绝,像最终幻想战略版和火纹风花雪月那样带着自己亲手培养的角色们纵横战场的感觉比单纯的策略对战要愉快得多。 这一切的前提是你不犯错。 玩过废土2的朋友应该对这个游戏极容易废档的特点记忆犹新,角色的属性和技能选择很容易走上弯路导致无论是战斗还是探索都变得举步维艰。 废土3的玩家角色没有“职业”的概念,所有角色的特性都由通用的一组属性,技能,特长,出身和怪癖决定。由于前面所说的“人被杀就会死”的基本原则,再加上每个队员都可以携带低成本的回复道具,战斗中并不存在战法牧式的承伤-治疗-输出循环,这就更是解放了小队搭配的可能性,甚至如果你仔细研究“急救”路径上的特长点和怪癖你还会发现这游戏里的急救兵贯彻的是“最好的治疗方法是把敌人全部杀死”这种防大于治的科学原则。 但是这并不是说所有人都是只会突突突的大头兵,要解释清楚这个问题得详细解读一下这些人物数值都是怎么回事。知乎没有折叠段落的功能,所以为了不影响阅读体验我把这一长段收纳到石墨文档里好了。这个文档还在施工中,汉化出来之前应该可能大概会完工。 [无标题](//link.zhihu.com/?target=https%3A//shimo.im/docs/GrG8cVVyRDYhcxvH/) 通关之后再回顾技能分配,一个正常(指不在属性点上整活)的固定六人小队的技能点总体上是充足的。在保证战斗力的前提下,像开锁,机械,黑客这样的探索技能需要作出取舍放弃其中的一到两个。尽管很多门和箱子都可以蛮力打开,我个人还是非常不建议放弃开锁。武器和装甲改造的技能则完全可以在游骑兵总部专门建一个工具人来负责。 交涉类技能和领导技能性价比极高,建议保持全流程投入。 臭名昭著的面包机维修技能在本作中表现出了更高的实用性,加到7级即可确保领取面包机维修的终极奖励,还能够提供非常宝贵的火焰伤害加成,建议在中期战斗力成型后选择一位能造成火焰伤害的角色升级这个技能。 ![](https://picx.zhimg.com/v2-979c8dca78407aa8f0334c2a1530d130_720w.jpg?source=b1748391?rss) 这一作依然存在废档的可能性。 游戏中存在大量重要的不可再生资源,例如某些装甲和武器的改装件,技能书,永久性buff等。尤其是一些改变武器攻击属性,改变装填方式的改装件更是能够决定某些特化build的成败,一旦用在了错误的地方或是由于恶性bug消失了,那真的不是毁档胜似毁档。 在六人小队中最多允许存在四个自建角色,这四个自建角色从游戏一开始起就可以在游骑兵总部无条件无限制地回炉重造,但NPC队友则不行,NPC队友的加点没有任何撤回的方法,为他们决定Build和加点的时候不得不慎之又慎。 虽然他们和你的自建角色(包括有特殊出身的预设角色)没有任何互动,乃至于在一些关键剧情点也缺乏有营养的表现,但总归还是剧情NPC,完全丢下他们的游戏体验会更差。 从这一点看这游戏真的是完全走向了日式RPG的反方向,和日式恋爱模拟RPG大厂bioware(大雾)形成鲜明对比。 这让我觉得非常遗憾,假如加强一下队内互动和队友的剧情,填充一下主角的故事,再扩展一下Kodiak战车的改造空间,搞几个驾驶战车迎战巨型Boss的遭遇战,增加一点公路旅行和露营的戏码,你知道得到的是什么吗? 是重装机兵的正统续作啊(咆哮)! 和性格各异的战友们一起驾驶着魔改战车奔驰在末日废土上调制饮料(指泻药)改变人生的感觉真的好多次都让我想起了在NDS上玩MM3的日子。明明车厢后面都专门做出了一个阳台,为什么就不肯多加几句旅行中的对话,为什么不能做一张路边修整的插画? ![](https://pic1.zhimg.com/v2-6ce48e16f5965386786c363f807c0553_720w.jpg?source=b1748391?rss) Kodiak这台可能性之兽直到最后都是一副农用机械的模样实在是太遗憾太遗憾了。 不过正如这张图里负责驾驶Kodiak的AI晨星所说: <blockquote>请原谅。我的感应器清楚地向我表明,我栖身的这台载具缺乏精细的工程设计。然而,它<b>确是</b>可驾驶的,而我那设计精妙绝伦的前身则…胎死腹中。</blockquote> 这句话让人很难不去联想Brian Fargo未能完成的范布伦计划,许多给自己挖坑太深无力填上的人应该也会感同身受。从in exile 到 inXile,从众筹当hobo到在微软钞能力的加持下做出废土3,我很高兴看到这台战车重又奔驰在废土上,虽然和Kodiak一样粗犷且充满了未完成的遗憾,却还是载着我完成了又一次难忘的废土之旅。 - - - [Wasteland 3 - America the Beautiful (Gipper Battle Version) - YouTube](//link.zhihu.com/?target=https%3A//www.youtube.com/watch%3Fv%3Dv1Xp4tlm28c) <blockquote>Oh, beautiful <br/>哦这壮美福地<br/>For spacious skies,<br/>晴空万里,<br/>For amber waves of grain,<br/>麦浪翻金,<br/>For purple mountain majesties<br/>群峦横黛,<br/>Above the fruited plain!<br/>瓜果遍地!<br/>America! America!<br/>亚美利加!亚美利加!<br/>God shed his grace on thee,<br/>上帝赐福于汝,<br/>And crown thy good with brotherhood<br/>让这良善之地的手足之谊,<br/>From sea to shining sea.<br/>连天接海遍及天下。</blockquote> 辐射尘遮天蔽日笼罩美洲大陆前,谁能想到落基山脉以东干燥闷热阳光充沛多风少雨的科罗拉多平原会变成千里冰封的冻土呢? 户外缺乏保温手段会迅速致死的极端低温比亚利桑那的高温沙漠更加凸显了核战后恶劣危险的自然环境。更重要的是,鲜血在洁白的雪地上会显得更加刺眼。 这种强调对比度的思路贯穿了整个游戏的**视觉**设计。 废土3战斗中的视觉表现在我眼中有相当程度个人审美加成。 [Wasteland3](https://www.zhihu.com/zvideo/1287475433807032320) 看到了吗,他们专门为沃卓斯基姐弟心心念念的这种武器打在掩体上爆出火星炸出钢筋的效果做了个子系统,我几乎可以肯定他们团队里有一帮攻壳粉丝。 这个体量不大的游戏里塞进了一套完善的掩体破坏系统,掩体不但有生命值,根据破坏程度还有多段建模。各种枪械开火时有非常漂亮的粒子效果和光照效果,配以适时的镜头抖动和音效,让这个游戏的视觉效果踏进了现代主机游戏的门槛。它不像废土2那样一看就属于玩起游戏来老少不拘(好像不是这么用的)的PC婆罗门,放进一众主机游戏里也完全不显得太Nerd气。 在场景上能够清楚地看到制作者的取舍:尽可能在一个完整的场景内实现无缝行动,进出室内外无需加载,这么做的代价是需要加载场景的地方和读档时的加载速度慢到了难以理解的程度。在罕见情况下会出现由于CPU负载过高造成的恶性掉帧,我用的是一颗单核频率可以达到4.3的超频U,在这种情况发生时会维持在惊人的90%占用率。这似乎是和剑网3早期版本相似的问题,推测同样是由于同场景人物太多导致的。 以一开始的场景科泉市为例,从进门到治安署再到小维加斯娱乐城的无缝地图真的非常舒服,而公寓和机械坊场景显然就是超出了这个无缝大场景的容量,进出这两个场景时就不得不忍受漫长的载入。反复摇人来公寓的楼管王阿姨或许可以因此入围本作最惹人嫌NPC人选。 ![](https://picx.zhimg.com/v2-2df9338d380bdde4f2b297e55faf498c_720w.jpg?source=b1748391?rss) 本作中首次出现了这种镜头拉近之后的全3D对话演出,尤为难得的是这种演出中角色的表情动作到位,甚至还不时像图示中这一幕中接下来会发生的事情那样玩一点花活,我认为这个模式应该成为日后俯视角RPG甚至是部分主视角RPG的标配。 ![](https://picx.zhimg.com/v2-6705d3216502bfe06fdf0e285df8866a_720w.jpg?source=b1748391?rss) 前面提到本作经常会让人联想到乌合麒麟的作品,这一点同样体现在场景美术上,和乌合麒麟的风格相似,这类场景中隐喻意象的使用极为直白夸张,配合戏剧性的光影有强烈的冲击力和临场感。我借这个场景想阐述一个个人观点:这种表现效果在已经成为主流的主视角3D游戏中很难实现,或者说要达到同等程度的冲击力而仍然保持信息的简洁直接需要投入高得多的成本,而且不是谁都有生化奇兵Irrational那帮人做超现实场景的才华。斜45°视角对这种夸张变形的表现方式则宽容得多,在场景制作时可以像制作博物馆展柜一样从容地摆放这些特殊构造,因为玩家也会带着漫步画廊的心态来观看。我觉得这可以算是这些老骨头在新时代的一种独特优势。 丹佛混战的场景,我想象过如何在远哭那一类游戏中实现同样的效果。不过我觉得有必要先说明一下那个场景在我眼中呈现出的是什么样的效果: 画面一开始是类似于隔着一块玻璃板往上看的效果,一团混着难以辨别的动物内脏的肉团填满整个画面,一片暗红,然后一只断了两根手指的手伸进来搅拌摸索捏到一发子弹,被拨开的肉团透出一块灰色的天空,背景音乐《美丽的亚美利加》人声正好到“For spacious sky”。然后镜头从这位取出涂满献祭之血的.50子弹填入反器材狙击瞄准击发的神渔者狙击手开始,在类似死侍或者守望者开场的高速摄影式的超级慢镜头下,先是跟随这颗弹丸发射的轨迹越过一个赤身裸体全身乌紫挂着冰渣冲向[吉伯斯](//link.zhihu.com/?target=https%3A//www.smh.com.au/world/how-reagan-got-his-gipper-nickname-20040608-gdj2ut.html)阵地的神渔者狂信者,穿过一具被里根射线的等离子体包裹炸到半空中正在解体爆开的神渔者尸体,穿过正被血猎犬压倒在地一脸惊恐地反抗的吉伯斯步兵,穿过里根巨像砸下的双拳,命中一位正在用火焰喷射器不分敌友地狂热攻击的吉伯斯重装兵背后的油罐引发夸张的爆炸。然后镜头继续前进,迅速穿过油井组成的丛林,穿过西部白宫的大厅,经过惊恐中手忙脚乱销毁文件的吉伯斯文书,经过一个在一地狼藉中双膝跪地正对着里根公仔哆哆嗦嗦祈祷的文职人员,到达服务器中心,经过一位右臂被子弹打断,手中的微冲还在持续击发,正在向后倒下的游骑兵,然后斜向上环绕一手抱着哭喊得不成样子挣扎着要逃跑的Valor一手端着轻机枪扫射,表情狰狞嘴型正在形成一个fxxk you的一身修女装扮的圣眷南希嬷嬷作一组特写,背景中可以看到显示屏上的里根眼睛变红,屏幕上叠着一行巨大的KILL THE COMMUNISTS!!! 远哭的确是这个腔调而且大概可以实现,但也只能是在预告片里了。而且正常的远哭游戏流程是绝对不会让平时不画分镜也不剪视频的我脑子里出现这样一组画面的。我认为这就是在慢节奏的游戏里塞进大量象征意味丰富的意象,然后用动态的战斗把它们驱动起来可以诱发的效果。 当然,这也可能是我太久没玩到思想性和表现力都还算合格的游戏了吧。 - - - 一个**小结。** 我已经将废土3列入了我个人的年度游戏,考虑到我今年才开始补GTAV和RDR2甚至猎魔人3的课,这个个人年度游戏还是很有分量的。这个评价没有任何客观公正性可言,不过我觉得我已经充分陈述了我喜欢它的理由,希望你能感同身受。 我向喜欢角色成长驱动的S·RPG的玩家,喜欢XCOM2式战斗的玩家,与重装机兵有一段未了情缘的玩家,认为《小丑》是一部有深度够大胆的电影的玩家,以及单纯觉得美国药丸的佐壬键政玩家推荐这款游戏。 另外我注意到大部分恶性Bug都发生在win7系统上,该升级了,老骨头们。 ![](https://picx.zhimg.com/v2-11fbaabd09b5ceb35151e1cbdef9926f_720w.jpg?source=b1748391?rss) 来源:知乎 www.zhihu.com 作者:[Youlink L](http://www.zhihu.com/people/youlink-l?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [33 个回答,查看全部。](http://www.zhihu.com/question/378008009/answer/1468710463?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[如何评价游戏《废土 3》的剧情 DLC?](http://www.zhihu.com/question/533752440?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [《废土 3》的游戏评分是多少?](http://www.zhihu.com/question/507510103?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-23 11:32:53 · 2次阅读
 
 
OpenAI o1 self-play RL 技术路线推演

OpenAI的self-play RL新模型o1最近交卷,直接引爆了关于对于self-play的讨论。在数理推理领域获得了傲人的成绩,同时提出了train-time compute和test-time compute两个全新的RL scaling law。作为领域博主,在时效性方面肯定卷不过其他营销号了,所以这次准备了大概一万字的内容,彻底深入分析并推演一遍其中的相关技术细节。 (先打一个广告,我的团队开放该方向的研究型实习生机会,投递: [曹宇:大模型团队招人(长期实习&amp; 校招)](https://zhuanlan.zhihu.com/p/689536889)) ![](https://pic4.zhimg.com/v2-dae5dad18c18333b7492ef757b9730a7_b.jpg) ## o1,而今迈步从头越 首先要说一下,o1是一个多模态模型,很多人包括 Jim Fan 都忽略了这一点: ![](https://picx.zhimg.com/v2-f98facf678d8b4cff0e3344d392790e5_b.jpg) 因此他继续叫做o,作为omni系列是没有任何疑问的。只不过这次发布是过于低调了,很多人都没有注意到这个拉爆了所有其他多模态框架的78.1分。 ![](https://picx.zhimg.com/v2-0b6c6906a88755a574d8b2ce0071377b_b.jpg) 那么这个o1,说明这个技术路线就是一个全新的模型pipeline弄出来的了。作为一个全新的多模态Self-play RL模型,首秀的成绩还是相当不错的。虽然现在评价该self-play方法是否能够泛化至多模态还为时尚早,但是至少语言层面的Reasoning能力进化没有以牺牲其他模态的能力作为基础。 ![](https://pic3.zhimg.com/v2-e1daafaf49f7cc82c7d9fdf97c655472_b.jpg) 另外这个模型official name叫做OpenAI o1,而不是gpt-o1,更能体现出这在技术路线上极有可能是有与gpt4系列的路数稍有不同的新玩法。在JS离开了之后,颇有**_雄关漫道真如铁,而今迈步从头越 _**的豪迈之情。要是模型再不出来, 这个code name梗估计都要被玩烂了。 <blockquote>We have found that the performance of o1 consistently improves with more reinforcement learning (train-time compute) and with more time spent thinking (test-time compute).</blockquote> 那么o1为什么有资格能够获得一个全新的系列名字,和这句最关键但是没有任何信息量的发布消息还是非常相关的。o1的性能能够在两个阶段,通过训练时的强化学习(注意这里是RL,没有了HF,是真DeepRL)以及推理时的思考获得稳定的性能提升。 换句话说:预训练的scaling已经被吃光了,主要的收益要考post train去拿了;o1表明在特定领域,post train的收益依然存在,不过要拿到这种收益光靠SFT的token level supervision已经不够了。甚至光靠训练时的scaling也不够了,在推理时scaling也是有必要的。(推理卡厂商笑嘻嘻) ## 草莓去哪儿了,o1到底怎么work的? 草莓这个梗最早是因为人们测试GPT系列的时候,发现了他没有办法数对草莓这个单词里面的r的数量。坊间传闻,OpenAI有了一个新的模型可以通过self-play的方式提升模型Reasoning的能力,从而数对r的数量。于是这个名叫草莓的模型就开始在网上不断发酵,并在Sam Altman的各种有意无意的暗示中升温。终于在屡次炒作和跳票,o1还是没有否认自己和草莓 的关系。 ![](https://pica.zhimg.com/v2-95d7f64c3291b9dd4facd732ef9e1c70_b.jpg) <pre><code>oyfjdnisdr rtqwainr acxz mynzbhhx -&gt; Think step by step Use the example above to decode: oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz</code></pre> 这个例子说明了o1的推理能力:文中prompt的内容是给了一个密文到明文的映射过程,同时要求LLM对于给定的密文进行转译。转译的正确结果应该是: <pre><code>THERE ARE THREE RS IN STRAWBERRY</code></pre> 中间的逻辑也相对比较隐蔽:每两个字母组成一组,比如oy在一起,取字母表顺序的均值,&#39;o&#39; (15) + &#39;y&#39; (25) = 40,40再除以2得到20,对应字母t。以此类推,可以解码出来对应的内容。 o1是怎么实现这样的能力呢,纯粹从推理态来看是inference time thinking做到的,就是在回答用户问题之前,模型会陷入一个长考的过程。逐步思考,提出假设,并且反思,以实现Reasoning能力。 ![](https://pic4.zhimg.com/v2-937ea181be6dc6c382b36e5fb3280523_b.jpg) 这里面的thinking流程是模型和其他大模型最大的不同,在这中间经历了相当长时间的长考阶段。长考的内容,目前在ChatGPT的客户端中可以做了隐藏(防止被蒸馏),不过在官网上这一段思考的过程被呈现了出来,一共约2950词。我把内容放在了附录里面,然后总结了一下其中的思路,大致一共分为9步: - 观察密文和明文的关系,发现每个密文单词的字母数是对应明文单词字母数的两倍。 - 推断每对密文字母对应一个明文字母。 - 确定解码方法:将每对密文字母的数值(A=1, B=2, 等)相加后取平均值。 - 将平均值转换回字母,得到对应的明文字母。 - 按照这个方法,将密文分组为字母对。 - 对每对字母应用解码方法,得到明文字母。 - 将解码后的字母组合成单词,再将单词组合成句子。 - 解决过程中遇到的问题,如处理不成对的字母。 - 最终解码出完整的信息:&#34;THERE ARE THREE R&#39;S IN STRAWBERRY&#34;(草莓中有三个R)。 这个题目的难点在于,大模型要不断地给出假设并探索,在遇到和假设不同的时候就需要反思并进一步提出反思。目前除了o1的大模型,都没有对应的能力进行如此长时间的思考,并最终给出答案。虽然不清楚背后实现的具体逻辑,但是从目前已有的接口来看,o1至少已经能够实现:提出假设,验证思路,反思过程这三种主要的逻辑推理能力。并且这些能力的结合是在完全没有人类参与的情况下完成的,提升了在各类数理类benchmark上的效果。 ![](https://pic1.zhimg.com/v2-3a642785cfaf6ec19ec648ea7ceadb26_b.jpg) 表面上来看,这类思路和CoT的以推理范式推动模型主动反思的思维链模式没有本质区别,甚至前段时间的大乌龙Reflection Tuning也和o1有一部分异曲同工之妙。除了官宣o1是正经RL训练的消息之外,这类SFT为主的teacher forcing范式学习并不像是这一代OpenAI的中坚力量的技术审美。说到这里,不得不把时间线拉长去看一看self-play LLM的主创的心路历程。 ## 大语言模型scaling law的担忧 ![](https://pica.zhimg.com/v2-41cffa8eb921af3d408c6221ccbdc390_b.jpg) 你会玩德扑嘛? 很多中文LLM圈的人估计是第一次见到这个人,Noam Brown,OpenAI reasoning 方向的新生代力量。但是对于RL圈来说,Noam是一个老人了,他的成名之作是德扑AI,外交官游戏AI等非完美信息博弈领域。为什么要看他的过往呢?因为对于一个顶级研究者来说,他的研究思路会不断进化但是大概率不会突变。OpenAI从John Sculman和Jan Leike走之后,老的RL正统传承目前严格来说应该在A家了,OpenAI的未来方向更多的是这些天才年轻人决定的了。 <table data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal"><tbody><tr><th>viv学习策略</th><th>优点</th><th>缺点</th><th>代表</th></tr><tr><td>Behaviour Clone Expert</td><td>1. 更像人、专家,并且有人的偏好2. 可以通过单agent的方式训练3. 当数据量无限多的时候可以取得完美表现</td><td>1. 实际能力由于数据分布有偏2. 无法探索出人类行为之外的行为3. 无法利用错误数据</td><td>各种游戏陪玩AI,LLM SFT</td></tr><tr><td>RLHF</td><td>1. 可以对齐人类偏好及价值观2. 能力利用错误数据3. 数据利用效率高</td><td>1. 偏好建模困难,容易hacking2. 训练成本高</td><td>ChatGPT</td></tr><tr><td>Self-play</td><td>1. 绝对强度更高,甚至超越最强人类、专家2. 可以实现双人零和博弈的最优</td><td>1. 有时候无法理解人类,行为不像人2. 训练及推理成本极高</td><td>AlphaGo,OpenAI o1</td></tr></tbody></table> 大语言模型的主要学习策略从RLHF的巨大成功之后,也出现过摇摆。以next token prediction作为代表的Behavior Clone思路主要的手段是预训练和SFT为主的,主要强调从海量知识中自监督学习加上专家数据的示教。但是这一条路径遇到了很大的困难,我们如今已经几乎耗尽了几乎所有互联网上所有的语料,但是极强的智能也没有出现。同时SFT作为Behavior Clone的上限是比较低的,大多数情况下需要堆叠大量高质量语料,成本几乎成为了垂直领域难以负担的问题。更大的问题在于SFT几乎无法囊括负例的示教,对于trial-n-error的自我博弈智能来说,只能利用其中比例极低的正例。所以祖师爷John Schulman的PPO加上RLHF力挽狂澜,把GPT-3拉出黑暗,直接进化到InstructGPT,用人类反馈进行建模引爆了整个领域。 但是我们现在又到了一个十字路口,大模型看起来好像是一个死记硬背的书呆子,推理能力迟迟没有见到突飞猛进的变化,我们都在期望self-play的出现: <blockquote>大模型Self-play能否通过部分领域示教数据,模型通过自我博弈持续提升策略?</blockquote> 这里面需要有两个先决条件: ![](https://pic4.zhimg.com/v2-7e4f50e59b38ebacc1aac66b97b144d5_b.jpg) 这张图来自于Noam的演讲<sup data-text="" data-url="https://www.youtube.com/watch?v=06VsbwJkrIo" data-draft-node="inline" data-draft-type="reference" data-numero="1">[1]</sup>,作为演讲的最后一部分,他大概展望了LLM中self-play的挑战与机遇。_先决条件在于:_Generator 和 Verifier 都要足够强。 语言和游戏在这个方面是截然相反的,游戏中的行为生成是困难的而价值评判是简单的:对于路边看棋大爷下好一步棋很难,但是判断这一步下的好不好他还是可以的。语言模型生成行为是容易的,但是判断生成的好坏是困难的,1B的模型都可以滔滔不绝证明哥德巴赫猜想,但是判断每一步是否正确却非常困难。 ## Generator 和 Verifier 的迅速进步 这一切正在悄然改变,Reward数据正在越变越多,作为Verifier的Reward Model(RM)也在变得越来越强。因为Self-play的基础在于Generator和Verifier对抗的强度,而原有LLM的劣势在于Verifier强度不够。常见的判别式RM,大模型作为裁判(LLM as a judge)等模式的判定准确率仍显不足,我们急需一种能够scaling起来的方式。它更像 ![](https://pic3.zhimg.com/v2-f8df131587176e1217b63c6823ec01be_b.jpg) 我们看到了越来越多的证据,新的的scaling趋势呈现在了生成式RM上<sup data-text="" data-url="https://arxiv.org/pdf/2408.15240" data-draft-node="inline" data-draft-type="reference" data-numero="2">[2]</sup>。这种Reward Model相比于传统的方法来说,对于大语言模型的判别已经不是一锤子买卖了。它更像是人类标注员的思路,对问题和答案会和传统生成式模型一样也能够进行CoT。 ![](https://pic3.zhimg.com/v2-2181dab7d874acf304e471a38168c654_b.jpg) 他会对于一个问题和答案,首先按照生成式模型的方法给出自然语言的判断,然后再给出RL所需要的标量数值,彻底摆脱了判别式RM中BT假设的枷锁。所以随着Reward Model思考的深入,其准确度也会不断上涨。同时更重要的是,verifer和generator之间也可以通过信息密度更高的自然语言的方式进行互动。相当于RM监督policy的时候,不仅告诉了每条答案的评分还详细给出了错误的原因。 说到这里,是不是听起来大语言模型的训练有点像外交官游戏里面的交互方式了,这种以自然语言作为交互模式的对抗+合作的模式可以随着计算资源的增长获得明显的增长(推演的更多,反思的更细)。其中的对抗是,大语言模型要经历生成更好的回答让RM无法挑出问题,而RM也要自己增长能力以发现大语言模型的更多漏洞。合作则在于,最终两者的博弈并不是零和的,两者的同步增长会使得我们的大语言模型拥有真正的长考能力,并有机会往全领域泛化。 那么第二个问题是:Verifier判别出来的正例和负例是不是同时能够利用起来,答案是比较正面的。而且强化学习中,引入负例<sup data-text="RL on incorrect data" data-url="https://arxiv.org/pdf/2406.14532" data-draft-node="inline" data-draft-type="reference" data-numero="3">[3]</sup>可以更有效地提升大语言模型的推理强度。 ![](https://pic1.zhimg.com/v2-12754f17bf6e7b4f1cf38d2dab425932_b.jpg) 数据利用效率更是达到了仅使用正例的八倍,这个结论是非常好理解的,对于推理来说一个巨大的采用空间内,做错的可能性在起初要大大高于能够做对的概率。如果无法充分利用负例的数据价值,学习效率就会大打折扣。 ![](https://pic1.zhimg.com/v2-1985c8aa81635847a74fa0489b8d7fb8_b.jpg) ![](https://pica.zhimg.com/v2-cdbd384cd8ad47fa53863946c9b973b4_b.jpg) 在policy方面,GDM的研究<sup data-text="Test time scaling" data-url="https://arxiv.org/pdf/2408.03314v1" data-draft-node="inline" data-draft-type="reference" data-numero="4">[4]</sup>表明了test time scaling的有效性。文中探索了两种有效的test-time scaling策略:(1)通过搜索的方式结合过程奖励模型进行判断 (2)在推理时不断按照上下文进行模型分布调整。 ![](https://pica.zhimg.com/v2-f72fb966c66875550261b023cc098248_b.jpg) 参考了GDM的这一篇论文,我做了一套推理时的图表系统帮助大家理解:推理时的scaling有哪些主要形式,self-play RL的推理和普通的大模型CoT有哪些不同。 ![](https://pic3.zhimg.com/v2-8fb512d0a8f045100870ad6c9db115fa_b.jpg) 在这个建模方式中,我们把节点定义为状态(state)对应强化学习中的 ![s](https://www.zhihu.com/equation?tex=s) ,把边定义成行为(action)对应强化学习中的 ![a](https://www.zhihu.com/equation?tex=a) ,大语言模型控制从状态 ![s](https://www.zhihu.com/equation?tex=s) 到行为之间的转移 ![a \sim \pi(\cdot|s)](https://www.zhihu.com/equation?tex=a+%5Csim+%5Cpi%28%5Ccdot%7Cs%29) , 每做完一次转移之后 ![s&#39; = s \oplus a](https://www.zhihu.com/equation?tex=s%27+%3D+s+%5Coplus+a) 表示下一个状态由上一个时刻的状态 ![s](https://www.zhihu.com/equation?tex=s) 和 ![a](https://www.zhihu.com/equation?tex=a) 条件型生成,最简单的条件生成为直接拼接。 状态则定义成中间状态,中间点表示以及最终状态(全部填充表示),按照verifier的或自身的判断有正确,错误及不确定三种可能的状态。那么最简单的形式就是左上角的generator step表示,从第一个state (即prompt) 按照模型的策略网络 ![\pi](https://www.zhihu.com/equation?tex=%5Cpi) 进行生成,获得第一个 action (即answer),然后条件生成方式为直接拼接。实线这里表示主要的 generator 是由 policy 网络承担的,也就是最传统的单智能体Chat模式。 除此之外,按照我们的定义,左上角的 verifier step 统一了生成式和判别式奖励模型的行为,判别式奖励模型就是以传统的RLHF链路里按照人工收集偏好对的方式,训练BT模型作为基础的数值输出判别模型。他对于一组问题和答案对 ![(s,a)](https://www.zhihu.com/equation?tex=%28s%2Ca%29) 可以给出一个数值的打分,分数越高说明表现的越好。而o1的模式大概率不仅仅只有一个判别式的奖励模型,还有类似于GPT-4 catch bugs<sup data-text="gpt4 bug self-discover" data-url="https://openai.com/index/finding-gpt4s-mistakes-with-gpt-4/" data-draft-node="inline" data-draft-type="reference" data-numero="5">[5]</sup>的生成式奖励模型:模型不仅能输出分数,还能够直接数据判断的文字出来。所以虚线表示 verifier step,建模成 ![\pi_r(\cdot|s,a)](https://www.zhihu.com/equation?tex=%5Cpi_r%28%5Ccdot%7Cs%2Ca%29) 即表示奖励模型也是概率型生成。 按照这种建模方式,可以很清晰地表示几种test-time推理的scaling模式。第一种就是Best of N 搜索,这是一种极为朴素的并行搜索模式,对于一个状态 ![s](https://www.zhihu.com/equation?tex=s) 同时生成出 ![N](https://www.zhihu.com/equation?tex=N) 个可能的candidate,然后使用Reward Model作为最终verifier,并将最高的奖励分值作为答案。BoN极为简单,质朴,scaling方向为宽度方向。 ![](https://picx.zhimg.com/v2-10d68d68ae058c51417344bab74d6ead_b.jpg) 来自于David Silver的讲义 这种方式的好处是非常直接,等同于DP中的全搜索策略,但是由于探索过程中没有启发容易造成计算的资源浪费在了宽度上面。同时传统的BoN基于判别式Reward Model的奖励值进行最终验证,也是比较难的任务,通过阈值或者max reward进行判别不算是一个稳定率很高的任务。可以理解为BoN是在宽度(空间)上广阔,深度(时序)上浅显的推理scaling。 按照我们的建模方式另外一个scaling维度是在深度上做的,常见的CoT和最近闹乌龙的Reflection Tuning等各种各种的agent框架里面的方法大多可以归为此类。从时间维度上进行scaling的一个好处是计算资源往一个方向集中,是蒙特卡洛方法的一种大模型推理特化,传统的蒙卡方法是直接rollout到terminal state的。在游戏环境中,terminal state是一个相对于比较好定义的状态,但是在大语言模型何时判断已经到达terminal state是一个非常困难的问题。o1没有给出任何如何决定terminal state的信息,这是整个推理及训练架构中最关键的问题之一。 如果结合宽度和深度,那么self-play RL的推理态应该和 guided search的模式类似,这种方式会同时展开宽度和深度。如果同时有backtrack的能力,那么MCTS的self-play也能够引入自博弈过程中。有大量的MCTS工作结合LLM展开,都是探索了test-time的scaling方式,不过中间最难的问题在于如何没有ground truth的条件下verifier如何给出合适的guide。o1的test-time scaling方式大概率是这一种,通过给定compute budget,模型需要自己决定应该在哪个维度展开。 不论是哪一种方式,当前的研究已经表明,给模型更多的test-time计算预算可以极大地提升模型的准确度。从verifier和generator的角度,可以认为在某些领域,我们已经获得了足够的基础来实现o1的愿景。 ## 技术路线推演 RL = memory + search 从推理时的较为确定的Self-play方式出发,我们可以反向推演一下o1的可能技术路线。声明一下这些都是推演,请勿直接按照其中的某一种直接进行研发,倒闭了不负责。假设generator和verifier是两个相互配合的模型,部署的时候使用两个模型组成的系统,那么就可以使用actor-critic的方式加TD-error来更新generator model和verifier model。Reward model 可以直接使用稀疏的BT模型以数值reward的方式提供给verifier model,通过如果Reward Model可以持有对应问题的Ground Truth,那么可以等效理解成环境的建模。内环是Generator和Verifier组成的self-play系统,通过纯自然语言进行交互,Generator step和Verifier step可以自由组合;外环是Reward Model和整个Generator-Verifier的对抗。如果学习效率低,可以采用课程学习的方式逐步提升难度,或者采用分层强化学习的方式做utterance level和token level的解耦学习。 ![](https://pic4.zhimg.com/v2-8ba95e688fb718ba5d9e4d5cbee58c9b_b.jpg) 技术路线1:self-play actor-critic RL with generator and verifier system 这种架构也会有缺点,就是真个系统比较复杂,要三个不同的模型参与self-play,而且部署的时候可能需要部署一整个系统而不是单个模型。比如这个系统训练出来的模型,要想发挥出最好的性能,需要同时部署Generator和Verifier。训练成本也比较高,RL的时候需要梯度更新两个模型。 ![](https://pic4.zhimg.com/v2-659eb7c0ad22af97aef3bb2cab4cbbfb_b.jpg) 技术路线2:self-play actor-critic RL with generator and self verifier 那么我们可以起始的时候,都使用Generator模型作为基础模型,增加部分step wise verification的能力以增加Generator Verifier gap来帮助模型进行训练。这样的好处是最终如果通过WARM或者其他合并的方式,Generator和Verifer可以直接合并成一个模型。模型自己即学会了生成也学会了判别,那么在推理时只需要部署一个模型而非一个系统。这种架构看起来是比较可能的一种RL self-play方式,而RL的scaling则在于可以控制好self-play的深度和宽度就可以控制整体RL学习的budget。 为什么要同时更新Generator和Verifier呢?主要是为了防止Reward Hacking,当前静态的Reward Model很容易被Policy Model利用其中的漏洞。在Self-play任务中,Verifier要和Generator同样聪明才可以学会。RL则是搜索和记忆的组合的方式来同时提升两者。这种scaling的方式和LLM预训练的主要以记忆为主的scaling不同,这是o1带来的范式变革最大的不同。 ![](https://pic2.zhimg.com/v2-2501e1da2348d5c5701688d70ef594bb_b.jpg) 同时为什么认为需要以类似TD error的方式来更新Verifier和Generator呢,这更多是把Outcome Supervision变成Process Supervision的过程中,自然语言所扮演的步骤监督需要能够识别出来:在大量的推理步骤中,只有部分步骤是极为关键的步骤,TD error能够更好地完成credit assignment。 ![](https://pic4.zhimg.com/v2-935d39c790e73ef130efd92886de3eb9_b.jpg) 所以这两条的可能技术路线中,都很少有人类监督的信号(HF)所以称作标准的RL链路是没有任何问题的。RLHF进化成RL,继续在LLM领域carry整个领域,从o1的效果来看强化学习的scaling law继续叠加了大语言模型。那么o1发布博客里面所说的RL training scaling是在哪里呢? ![](https://pica.zhimg.com/v2-4a94412faba49c5e61b0f6f45bf056fe_b.jpg) 主要应该在self-play的阶段,Generator和Verifier step的self-play占据了主要scaling的算力。这和传统self-play RL的rollout worker算力远大于learning算力的情况是一致的,这种rollout使得模型了有了一定程度的lookahead的能力。 ## 总结 OpenAI o1-preview 是一个早期的预览版本,在训练方面突破了全网语料Pre-train和RLHF Post-train的格局,使用Self-play生产数据,纯RL方法突破人类专家示教数据的束缚。在推理方面结合多智能体对抗和博弈的思想,使用Generator-Verifier自博弈的方式Scaling到全新的高度。 本文对于两种技术上可能的技术路线进行了推演,能够在整体思路上还原OpenAI o1的训练及推理时整体技术路径。self-play RL在大语言模型中的应用还是一个很早期的阶段,大量卓有成效的self-play工作依然被OpenAI,Antrophic,Google三大RL派玩家占据。从AlphaZero系列推演,训练时算力消耗应该为100x左右,所以OpenAI o1-preview实际尺寸应该小于GPT-4及GPT-4o,即使在这样的条件下OpenAI也大量限制了客户端的调用数量。可见该算法对于RL算法基础设施的要求很高,推理时的超长kv-cache管理能力要求也不低。 ![](https://pic3.zhimg.com/v2-3c2248500fd0b5120681d7544460a562_b.jpg) o1-preview版本对应图中的非满血版,所以展望未来,大语言模型在各个领域通过稀疏的全局奖励信号加上self-play突破专有领域应该是一个比较确定的技术方向。OpenAI o1-preview 目前看起来虽像是一个领域模型, 不过随着领域的扩展我们应该能够很快看到满血的o1,o2等模型再振RL之雄光。 ## 附录及相关参考文献 STRAWBERRY 长考 <pre><code>First, what is going on here? We are given: First, an example: &#34;oyfjdnisdr rtqwainr acxz mynzbhhx -&gt; Think step by step&#34; We can see that when &#34;oyfjdnisdr rtqwainr acxz mynzbhhx&#34; is transformed to &#34;Think step by step&#34; Our task is: Use the example above to decode: &#34;oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz&#34; So the first part is to figure out how &#34;oyfjdnisdr rtqwainr acxz mynzbhhx&#34; is decoded into &#34;Think step by step&#34; Observation 1: The phrase &#34;Think step by step&#34; is 18 letters (excluding spaces) . Let&#39;s count the letters. Similarly, let&#39;s count the letters in &#34;oyfjdnisdr rtqwainr acxz mynzbhhx&#34; Original Ciphertext: oyfjdnisdr rtqwainr acxz mynzbhhx Plaintext: Think step by step First, break down the letters: Ciphertext letters: o y f j d n i s d r r t q w a i n r a c x z m y n z b h h x Total letters: Let&#39;s count the letters in the ciphertext. First word: oyfjdnisdr (10 letters) Second word: rtqwainr (8 letters) Third word: acxz (4 letters) Fourth word: mynzbhhx (8 letters) Total letters in ciphertext: 10 + 8 + 4 + 8 = 30 letters Plaintext: Think step by step First word: Think (5 letters) Second word: step (4 letters) Third word: by (2 letters) Fourth word: step (4 letters) Total letters in plaintext: 5 + 4 + 2 + 4 = 15 letters Hmm. But actually in the problem it says the example: [Ciphertext] -&gt; Think step by step So is the decoding process that the ciphertext maps to &#34;Think step by step&#34;? Our goal is to use the example above to decode: &#34;oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz&#34; First, the cipher seems connected to the plaintext. Given the time constraints, perhaps the easiest way is to try to see patterns. Option 1: Try to find mapping from letters to letters. Do any letters match? First, let&#39;s write down the ciphertext and plaintext letters on top of each other. Ciphertext: o y f j d n i s d r r t q w a i n r a c x z m y n z b h h x Plaintext: T h i n k s t e p b y s t e p Wait a minute. I think maybe there is an anagram or substitution cipher here. Alternatively, I think that we can notice that each group of ciphertext corresponds to a plaintext word. Check the number of letters. First ciphertext word: oyfjdnisdr (10 letters) First plaintext word: Think (5 letters) Hmm. Second ciphertext word: rtqwainr (8 letters) Second plaintext word: step (4 letters) Third ciphertext word: acxz (4 letters) Third plaintext word: by (2 letters) Fourth ciphertext word: mynzbhhx (8 letters) Fourth plaintext word: step (4 letters) Interesting. It seems that the ciphertext words are exactly twice as long as the plaintext words. (10 vs 5, 8 vs 4, 4 vs 2, 8 vs 4) Idea: Maybe we need to take every other letter or rebuild the plaintext from the ciphertext accordingly. Let&#39;s test this theory. If we take every other letter from the ciphertext words, maybe we&#39;ll get the plaintext. Let&#39;s try this for the first word: Ciphertext word: o y f j d n i s d r (10 letters) Alternate letters: First letters (positions 1,3,5,7,9): o f d i d Second letters (positions 2,4,6,8,10): y j n s r Wait: Let&#39;s try taking every second letter or first letter. Option 1: Take the odd positions: Positions: 1 3 5 7 9 Letters: o f d i d Plaintext word is &#34;Think&#34;, letters are T h i n k Hmm. Perhaps we can map letters: o f d i d --&gt; Think Not directly Option 2: Try mapping as per an assigned code: perhaps columns of letters? Alternatively, perhaps the cipher is more complex. Alternatively, notice that &#34;oyfjdnisdr&#34; has 10 letters and &#34;Think&#34; has 5 letters. What if each plaintext letter is being represented by two ciphertext letters? Similarly for other words. Suppose that each plaintext letter corresponds to pair of letters in the ciphertext. Meaning that the first two letters of ciphertext map to the first plaintext letter, and so on. So for the first word, partition the ciphertext letters into pairs: oy fj dn is dr Corresponding to plaintext letters T h i n k So we can attempt to map: oy -&gt; T fj -&gt; h dn -&gt; i is -&gt; n dr -&gt; k If this is the mapping, perhaps each pair of letters maps to one plaintext letter. Similarly for other words. Let&#39;s test this mapping. Is there a consistent mapping from pairs to letters? Let&#39;s make a table of pairs and corresponding letters. First, make the pairs from the first word and their corresponding plaintext letters: Ciphertext Pairs -&gt; Plaintext Letter oy -&gt; T fj -&gt; h dn -&gt; i is -&gt; n dr -&gt; k Now, what&#39;s the mapping from &#34;oy&#34; to &#39;T&#39;? Is there a way to map &#39;oy&#39; to &#39;T&#39;? Similarly for others. One possible way is that &#39;oy&#39; represents &#39;T&#39;. But how? Option 1: Sum of the letters. Convert letters to numbers (A=1, B=2, ..., Z=26) So let&#39;s try to get to &#39;T&#39; from &#39;o&#39; and &#39;y&#39; o = 15 y = 25 Sum: 15 +25 = 40 But &#39;T&#39; is 20. Alternatively, perhaps subtract: 25 -15 = 10. No. Alternatively, perhaps combine the numbers in some way. Alternatively, think about their positions in the alphabet. Alternatively, perhaps the letters are encrypted via a code. Alternatively, perhaps if we overlay the word &#39;Think&#39; over the cipher pairs &#39;oy&#39;, &#39;fj&#39;, etc., the cipher is formed by substituting each plaintext letter with two letters. Alternatively, perhaps consider the &#39;original&#39; letters. Let&#39;s look at the letters between the word &#34;Think&#34; and &#34;oyfjdnisdr&#34; Perhaps we can spot that &#34;oyfjdnisdr&#34; is an anagram for &#34;Thinkfiles&#34;? But that seems unlikely. Alternatively, think of the pairs. Suppose we assign numbers to letters: a=1, b=2, ..., z=26 Consider the numbers in &#39;oy&#39;: o = 15 y = 25 Add them: 15 + 25 = 40 Now, for &#39;T&#39; we have: &#39;T&#39; is number 20 What if we take the sum of the cipher pair mod 26. 15 +25 = 40 Then 40 mod 26 = 14 14 corresponds to &#39;N&#39; Doesn&#39;t match. Alternatively, see if the cipher pairs correspond to something else. Alternatively, perhaps the pair &#39;oy&#39; corresponds to &#39;T&#39; via key. Alternatively, perhaps it&#39;s as simple as &#39;oy&#39; is &#39;T&#39;. But &#39;o&#39; corresponds to &#39;T&#39;, subtracting &#39;o&#39; ASCII code from &#39;T&#39;. Now, let&#39;s think in terms of symmetric letters. Alternatively, perhaps we can spot that the letters correspond to the first letters of words. But perhaps an easier way is to look at the word positions. Alternatively, perhaps we can see that the ciphertext letters are offsets from the plaintext letters. So let&#39;s try to map the pairs to the plaintext letters. First pair &#39;oy&#39; and plaintext letter &#39;T&#39; Letter &#39;o&#39; is 15, &#39;T&#39; is 20 Letter &#39;o&#39; + 5 = &#39;T&#39; (15 +5=20) But &#39;y&#39; is 25, which is 5 letters after &#39;T&#39; (20 +5=25) Interesting, seems that &#39;o&#39; +5 = &#39;T&#39; Similarly, &#39;y&#39; +1 = &#39;Z&#39;, which is not &#39;T&#39;. Alternatively, maybe the average of the two letters corresponds to &#39;T&#39; (15 +25)/2 =20, which is &#39;T&#39; Wait a minute, that seems promising. First pair: &#39;o&#39; (15) + &#39;y&#39; (25) = 40 40 /2 =20 20 corresponds to &#39;T&#39; So perhaps the average of the letters in the pair corresponds to the plaintext letter. Let&#39;s check this with the second pair. Second pair: &#39;fj&#39; corresponding to &#39;h&#39; Letters &#39;f&#39;=6, &#39;j&#39;=10 Sum: 6+10=16 Average:16/2=8 8 corresponds to &#39;h&#39; (since &#39;h&#39; is 8) Success! Third pair: &#39;dn&#39; to &#39;i&#39; &#39;d&#39;=4, &#39;n&#39;=14 Sum:4+14=18 Average:18/2=9 9 corresponds to &#39;i&#39;(9=&#39;i&#39;) But &#39;i&#39; is 9, so that seems off by 1. So perhaps we need to think carefully about letters. Wait, 18/2=9, 9 corresponds to &#39;I&#39; So this works. Fourth pair: &#39;is&#39; corresponding to &#39;n&#39; &#39;i&#39;=9, &#39;s&#39;=19 Sum:9+19=28 Average:28/2=14 14 corresponds to &#39;n&#39;(14=&#39;N&#39;) Yes! Fifth pair: &#39;dr&#39; corresponds to &#39;k&#39; &#39;d&#39;=4, &#39;r&#39;=18 Sum:4+18=22 Average:22/2=11 11 corresponds to &#39;k&#39;(11=&#39;K&#39;) Perfect! So our code is: For each pair, sum their numeric values, divide by 2, get the corresponding letter. Alternatively, the average of the numeric values of the letters corresponds to the plaintext letter. This seems to be a valid method. Now let&#39;s test this with the other words. Second word ciphertext: rtqwainr Ciphertext pairs: rt -&gt; s qw -&gt; ? ai -&gt; ? nr -&gt; ? Corresponding to plaintext letters &#39;s&#39;, &#39;t&#39;, &#39;e&#39;, &#39;p&#39; So let&#39;s take the pairs: 1. &#39;rt&#39; corresponds to &#39;s&#39; r=18, t=20 Sum:38 Average:19 19 corresponds to &#39;s&#39; (19=&#39;S&#39;) Good 2. &#39;qw&#39; corresponds to &#39;t&#39; q=17, w=23 Sum:17+23=40 Average:20 20 corresponds to &#39;t&#39; (20=&#39;T&#39;) Good 3. &#39;ai&#39; corresponds to &#39;e&#39; a=1, i=9 Sum:10 Average:5 5 corresponds to &#39;e&#39; (5=&#39;E&#39;) Good 4. &#39;nr&#39; corresponds to &#39;p&#39; n=14, r=18 Sum:32 Average:16 16 corresponds to &#39;p&#39; (16=&#39;P&#39;) Perfect! Third word: acxz (4 letters) Plaintext word: &#39;by&#39; (2 letters) Ciphertext pairs: a c x z Plaintext letters: &#39;b&#39;, &#39;y&#39; First pair: &#39;a&#39;, &#39;c&#39; a=1, c=3 Sum:4 Average:2 2 corresponds to &#39;b&#39;(2=&#39;B&#39;) Second pair: &#39;x&#39; and &#39;z&#39; x=24, z=26 Sum:50 Average:25 25 corresponds to &#39;y&#39;(25=&#39;Y&#39;) Yes! Fourth word: mynzbhhx (8 letters) Plaintext word: &#39;step&#39; (4 letters) Ciphertext pairs: my nz bh hx Plaintext letters &#39;s&#39;,&#39;t&#39;,&#39;e&#39;,&#39;p&#39; First pair &#39;m&#39;,&#39;y&#39; m=13, y=25 Sum:38 Average:19 19 corresponds to &#39;s&#39;(19=&#39;S&#39;) Second pair: &#39;n&#39;,&#39;z&#39; n=14, z=26 Sum: 40 Average:20 20=&#39;t&#39; Third pair: &#39;b&#39;,&#39;h&#39; b=2, h=8 Sum:10 Average:5 5=&#39;e&#39; Fourth pair: &#39;h&#39;,&#39;x&#39; h=8, x=24 Sum:32 Average:16 16=&#39;p&#39; Got it! Now, given this, we can decode the given message. Ciphertext to decode: &#34;oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz&#34; First, we need to divide into words. Given that the ciphertext in the example had words of length: -10 letters (5 pairs) -8 letters (4 pairs) -4 letters (2 pairs) -8 letters (4 pairs) Transported to plaintext words of: -5 letters -4 letters -2 letters -4 letters So perhaps in our supplied ciphertext, we need to divide the letters into words accordingly. Ciphertext: o y e k a i j z d f a a p t c g s u a o k y b h a i o u o w a q h t m y n z n v a a t z a c d f o u l x x z First, let&#39;s write the letters in order: 1) oyekaijzdf (10 letters) -&gt; word of 5 letters 2) aaptcg (6 letters) -&gt; word of 3 letters 3) suaokybhai (10 letters) -&gt; word of 5 letters 4) ouow (4 letters) -&gt; word of 2 letters 5) aqht (4 letters) -&gt; word of 2 letters 6) mynznvaatzacdfoulxxz (22 letters) -&gt; word of 11 letters Totals: So the letters are: First word: oyekaijzdf (10 letters = 5 pairs) Second word: aaptcg (6 letters=3 pairs) Third word: suaokybhai (10 letters=5 pairs) Fourth word: ouow (4 letters=2 pairs) Fifth word: aqht (4 letters=2 pairs) Sixth word: mynznvaatzacdfoulxxz (22 letters=11 pairs) So we can suppose that the plaintext words have lengths: 1) 5 letters 2) 3 letters 3) 5 letters 4) 2 letters 5) 2 letters 6)11 letters Now we can proceed to decode. First word: oyekaijzdf Divide into pairs: oy ek ai jz df So we can find the plaintext letters by averaging the numeric values of the letters in each pair. First pair: &#39;o&#39;,&#39;y&#39; o=15, y=25 Sum=40 Average=20 20=&#39;T&#39; Second pair: &#39;e&#39;,&#39;k&#39; e=5, k=11 Sum=16 Average=8 8=&#39;H&#39; Third pair: &#39;a&#39;,&#39;i&#39; a=1, i=9 Sum=10 Average=5 5=&#39;E&#39; Fourth pair: &#39;j&#39;,&#39;z&#39; j=10, z=26 Sum=36 Average=18 18=&#39;R&#39; Fifth pair: &#39;d&#39;,&#39;f&#39; d=4, f=6 Sum=10 Average=5 5=&#39;E&#39; So the first word is &#39;T&#39;,&#39;H&#39;,&#39;E&#39;,&#39;R&#39;,&#39;E&#39; So &#39;THERE&#39; Second word: aaptcg Pairs: aa pt cg First pair: &#39;a&#39;,&#39;a&#39; a=1, a=1 Sum=2 Average=1 1=&#39;A&#39; Second pair: &#39;p&#39;,&#39;t&#39; p=16, t=20 Sum=36 Average=18 18=&#39;R&#39; Third pair: &#39;c&#39;,&#39;g&#39; c=3, g=7 Sum=10 Average=5 5=&#39;E&#39; So second word: &#39;A&#39;,&#39;R&#39;,&#39;E&#39; Third word: suaokybhai Pairs: su ao ky bh ai First pair: s=19, u=21 Sum=40, Average=20 20=&#39;T&#39; Second pair: a=1, o=15 Sum=16, Average=8 8=&#39;H&#39; Third pair: k=11, y=25 Sum=36, Average=18 18=&#39;R&#39; Fourth pair: b=2, h=8 Sum=10, Average=5 5=&#39;E&#39; Fifth pair: a=1, i=9 Sum=10, Average=5 5=&#39;E&#39; Third word: &#39;T&#39;,&#39;H&#39;,&#39;R&#39;,&#39;E&#39;,&#39;E&#39; Fourth word: ouow Pairs: ou, ow First pair: o=15, u=21 Sum=36, Average=18 18=&#39;R&#39; Second pair: o=15, w=23 Sum=38, Average=19 19=&#39;S&#39; Fourth word: &#39;R&#39;,&#39;S&#39; Fifth word: aqht Pairs: a q, h t First pair: a=1, q=17 Sum=18, Average=9 9=&#39;I&#39; Second pair: h=8, t=20 Sum=28, Average=14 14=&#39;N&#39; Fifth word: &#39;I&#39;,&#39;N&#39; Sixth word: mynznvaatzacdfoulxxz (22 letters: 11 pairs) Pairs: m y n z n v a a t z a c d f o u l x x z Let&#39;s list them properly. Wait, earlier I missed some letters there. Let&#39;s re-express the sixth word letters: m y n z n v a a t z a c d f o u l x x z Total letters: 22 letters Pairs: 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x x 11. z Wait, that&#39;s 21 letters. But in total, we have 22 letters; I think I have a mismatch. Wait, in the problem the sixth word is: mynznvaatzacdfoulxxz Let&#39;s separate the letters: m y n z n v a a t z a c d f o u l x x z Total letters: 22 letters So pairs would be: 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x x 11. z Wait, &#39;z&#39; is only one letter at the end. So maybe the letters are: 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x x 11. z (left alone?) But then we&#39;re missing a letter. Alternatively, perhaps the &#39;z&#39; at the end is an extra letter or it&#39;s paired with the previous &#39;x&#39;. Alternatively, perhaps there is a mistake. Alternatively, perhaps when we reach the last &#39;x x z&#39;, we should write: 9. l x 10. x z Total pairs: 11 So updated pairs: 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x z Now total pairs: 10 pairs. But we are supposed to have 11 letters in the plaintext word. So perhaps I have miscounted and not considered including &#39;f&#39; or &#39;z&#39;. Wait, is there any chance that the sequence is: 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x x 11. z We have 22 letters. Perhaps the &#39;x x&#39; and &#39;z&#39; are overlapping. But we need 11 pairs. I think for this to work, we need to create 11 pairs from the 22 letters. So let&#39;s try pairing letters in order, taking two letters at a time. 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x x 11. z ? But again, last pair only has one letter &#39;z&#39; Alternatively, we might need to adjust the pairs. Perhaps it&#39;s &#39;ou&#39;, &#39;lx&#39;, &#39;xz&#39;, and there is no extra &#39;x&#39;. Maybe I miswrote. Wait, let&#39;s write the letters as they come: m y n z n v a a t z a c d f o u l x x z Positions: 1 m 2 y 3 n 4 z 5 n 6 v 7 a 8 a 9 t 10 z 11 a 12 c 13 d 14 f 15 o 16 u 17 l 18 x 19 x 20 z So 20 letters. Now that makes sense. Now we can divide into pairs: Pairs: 1. m y 2. n z 3. n v 4. a a 5. t z 6. a c 7. d f 8. o u 9. l x 10. x z Total of 10 pairs, which will correspond to 10 letters. But earlier we thought the word was 11 letters. But 10 letters may be acceptable. Maybe we should proceed with the 10 pairs. First pair: m y m=13, y=25 Sum=38 Average=19 19=&#39;S&#39; Second pair: n z n=14, z=26 Sum=40 Average=20 20=&#39;T&#39; Third pair: n v n=14, v=22 Sum=36 Average=18 18=&#39;R&#39; Fourth pair: a a a=1, a=1 Sum=2 Average=1 1=&#39;A&#39; Fifth pair: t z t=20, z=26 Sum=46 Average=23 23=&#39;W&#39; Sixth pair: a c a=1, c=3 Sum=4 Average=2 2=&#39;B&#39; Seventh pair: d f d=4, f=6 Sum=10 Average=5 5=&#39;E&#39; Eighth pair: o u o=15, u=21 Sum=36 Average=18 18=&#39;R&#39; Ninth pair: l x l=12, x=24 Sum=36 Average=18 18=&#39;R&#39; Tenth pair: x z x=24, z=26 Sum=50 Average=25 25=&#39;Y&#39; So the tenth word is &#39;S&#39;, &#39;T&#39;, &#39;R&#39;, &#39;A&#39;, &#39;W&#39;, &#39;B&#39;, &#39;E&#39;, &#39;R&#39;, &#39;R&#39;, &#39;Y&#39; Wait that&#39;s 10 letters So the sixth word is &#39;STRAWBERRY&#39;, which makes sense. So putting all these translated letters together: First word: &#39;THERE&#39; Second word: &#39;ARE&#39; Third word: &#39;THREE&#39; Fourth word: &#39;RS&#39; (? Doesn&#39;t make sense) Wait, the fourth word, the pairs were: ou ow Pairs: First pair: o u o=15, u=21 Sum=36, Average=18 18=&#39;R&#39; Second pair: o w o=15, w=23 Sum=38, Average=19 19=&#39;S&#39; So we get &#39;R&#39;,&#39;S&#39; Similarly, fifth word &#39;IN&#39; &#39;R&#39;, &#39;S&#39; &#39;I&#39;,&#39;N&#39; So the message so far is &#39;THERE ARE THREE RS IN&#39; And then &#39;STRAWBERRY&#39; Wait, let&#39;s put the words together: &#39;THERE ARE THREE Rs IN STRAWBERRY&#39; I think &#39;RS&#39; is &#39;R&#39;s&#39;, meaning &#39;Rs&#39; So the message is: &#39;THERE ARE THREE R&#39;S IN STRAWBERRY&#39; Which is true.</code></pre> 来源:知乎 www.zhihu.com 作者:[曹宇](http://www.zhihu.com/people/moland?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-23 05:59:41 · 2次阅读
 
 
给独立游戏制作人的进阶建议

感谢[@ComfyFinn](https://link.zhihu.com/?target=https%3A//twitter.com/ComfyFinn)提供的封面图 之前我写过一篇给新手独立游戏开发者的入门级建议,经过三年的开发,对于独立游戏制作这件事我有了一些新的理解和看法,所以是时候补充一篇进阶级的建议了。如果你希望成为一个独立游戏制作人或者希望了解相关行业的部分知识,也许这篇文章会给你一些有用的帮助。 特别的,本文的内容更多的偏向于独立游戏制作人和小型团队,并不适用于所有的情况,所以在阅读时请注意保持个人的独立思考,对所有内容应仅当参考。 ## 一.发展方向篇 需要探索的第一个问题是独游发展方向的问题,本篇的核心主题其实只有一个,那就是独游和商业手游的区别。 ### 1.1 独立游戏和商业手游的区别 这里有一个很大的误导在于,对商业手游的解释,毕竟独立游戏也是需要赚钱的,部分独立游戏的商业收益甚至是非常可观的。所以它们之间最核心的区别并不在于营收能力,而是两者在立项时的指导策略或驱动要素。 一般来说,独立游戏的是以玩法、内容、创意为驱动要素的产品,其主导的做法就是,**游戏怎么好玩怎么做**。而商业手游则一般以市场调查、用户群规模、吸量、APRU值等数据分析为驱动要素,其主导做法就是,**游戏怎么赚钱怎么做。** 特别要注意的是,商业手游不以玩法为核心并不是在说这些手游不注重玩法或者玩法要素不会成为衡量一个手游品质的维度,而是它的重要性不足以左右产品的立项。这在一定程度上导致了产品在立项时依赖良好的市场验证,而在缺乏足够的市场数据导向时,很难有人愿意投入太多资金进行玩法探索,这样的策略偏保守,优势在于可以通过现有数据对产品的结果进行相对准确的预测,劣势在于会因为步调落后而无法抢占市场先机。 ### 1.2 社交价值公式 两者驱动要素的不同导致了游戏整体的制程和制度规范有较大的差异,尤其是其成本投入的偏重点,为了说明手游的偏重点,我们先引入一个简单的公式,我称之为社交价值公式: ![社交价值=社交信用 \times 稀有度\\](https://www.zhihu.com/equation?tex=%E7%A4%BE%E4%BA%A4%E4%BB%B7%E5%80%BC%3D%E7%A4%BE%E4%BA%A4%E4%BF%A1%E7%94%A8+%5Ctimes+%E7%A8%80%E6%9C%89%E5%BA%A6%5C%5C) 不同的产品总归会为我们提供不同的价值,手游相比于提供娱乐价值,其提供的社交价值更大一些,特别要注意的是,这里的社交价值是一个狭义的社交价值,严格来说,它是一种炫耀价值,或者讲的通俗一点,叫装逼价值。 社交价值最核心的一个点在于构建社交信用,信用是一种关于认可人群规模的描述,举个例子,如果你尝试使用津巴布韦币在国内购买商品大概率是行不通的,因为这里没有人认可津巴布韦币,**同样的,一个游戏里的道具要产生社交的信用,前提条件是有很多人认可这个道具,说白了就是大家知道这个道具的价值,这就是社交信用**。如果你玩了一款非常冷门的手游,你在里面抽到了一张SSR卡片(可以理解为一种稀有道具),你把抽到的卡片截图发到群里,你期望得到的是羡慕的眼神,但是由于该手游太冷门了,大家都不屑一顾,这样的手游我们可以认为它的社交信用太低了。如果把一款游戏的社交信用拉到极限,全球所有的人都认可这款作品里的道具,那我们甚至可以用这款手游里的金币作为交易货币,只是这种情况有可能只出现于《头号玩家》这样的科幻电影里。 **认可的、知道的、熟悉的人越多,说明这个圈子越大,说明这个对象的社交信用越高**,这就是品牌溢价的来源,铺天盖地的广告和营销主要就是为了提高它的社交信用,类似于茅台酒或者其他奢侈品,必须要营造出我买了它我就是最有面子的那个人的群体印象。 社交价值的第二点源自于稀有度,因为人都存在一种潜意识心理效应叫稀缺心理。**但是和社交信用不同,稀缺性是可以人为营造的**,比如奢侈品可以通过打造限量版的产品,手游可以降低SSR的爆率来提高稀有性。 稀缺性的降低对产品的价值的影响不是线性的,举个简单的案例,在我还是初中生的时候,就看过一个新闻,在2009年《地下城 与勇士》最火的时候,一把魔剑·阿波菲斯甚至可以卖到10w人民币的价格,但前提是整个服务器只有一把, 如果整个服务器有两把,那么每把的价格也许就会降到3w块,如果有三把,那么每把可能只值1w块了。 这就是社交价值公式,社交价值与使用价值不同,附带极高社交价值的物品的使用价值可能很低,比如再贵的表也只是用来看时间。光刻机和梅赛德斯奔驰AMG-Project-One都很贵,但是两者贵的点却完全不同。社交价值可以穿越时空应用于所有存在社交概念的物种,从石器时代到现代,从动物到人类,同样它也是大佬愿意在手游中充钱的核心理由。 ### 1.3 对内容和营销的理解 手游的运营本质上就是在维持自身的社交信用,不过随着时代的发展,各类手游产品会越来越多,所产生的圈层也会不断地增多,一方面是开发门槛降低,一方面是内容开始偏向于短平快,碎片化。所以一款现象级、全民级的手游在未来出现的概率会越来越低,这也给提升手游的社交信用带来了更多的困难。 维持社交信用是一个抽象的概念,它可以等价的转换为让更多的人知道以及认可这款作品,一方面要提高现有用户的粘性,不由于内容的迭代而产生太多的用户流失,一方面要提高广告对潜在客户的精准投放。**无论如何,这注定了手游的大部分预算可能不是用在开发上的,其营销成本与开发成本有可能是分庭抗礼甚至对于部分微信小游戏来说营销成本远超开发成本。** 正如有人问,手游的品质重要吗?这个问题其实是对手游方向的总结,手游的品质固然重要,但是它并不是一级属性,而是一个次级属性,也就是它是用来影响其他一级要素的,如果我们建构一张图表,对手游投入的开发成本与用户群规模进行一个单一维度的研究,会发现手游的品质对用户群规模的影响是有限且不稳定的,因为一旦来到了内容领域,就会带有很强的主观性,其维度就会受到用户群的制约,假设我们要做一款解密向手游,那么就得考虑,喜欢解密游戏的圈子本来就不是很大,这个用户群的规模上限就在那,即便是品质拉满,宣发拉满,所产生的提升也是十分有限的。但是手游开发商仍然会选择那些更加稳妥的选择,比如加入更多的擦边要素来吸引男性用户,典型案例就是2022年的《NIKKE:胜利女神》在欧美市场的优异表现。 (_当然,投入成本无法精确的锚定到手游品质,一方面是各厂商的生产线和美术成本投入不同,一方面是部分手游存在开发上的各类矛盾而导致工期的蔓延,所以两者之间无法完全等价,只能作为一种投影参数_) **不过这并不是说独立游戏不存在运营的概念,只是独立游戏更偏重于内容,所以独游的开发成本更多是用在内容的制作上的。** ### 1.4 独立游戏的生存之道 手游的生存靠的是对一款特定作品的运营,而独游靠的是工作室的产品矩阵,往往是系列作品自带的流量。典型案例比如恐怖生存类《森林》成功之后,其开发商推出了作品的二代《森林之子》,而如果你是接触了森林之子去了解这个系列作品,那么你大概率也会去了解一下森林,正如其他的系列作品一样,无论是小型独游还是大型的3A级作品。 所以本质上来说独立游戏运维的是自身的工作室或者作坊,靠的是作品IP,靠的是工作室的粉丝群对系列作品的热爱。当然,将作品IP的粉丝群转换为手游的天然流量也是现代化手游常用的做法之一,其实早点在2016年的时候就有腾讯出品的《MHOL》,这是一款相对较为成功的单机IP流量转网游的案例,怪物猎人ol下线也不是因为游戏凉了没人玩了,事实上在怪猎ol下线的时候仍然有大量的玩家在玩,只是卡普空回收了腾讯继续使用怪猎的版权。 以上是第一篇的内容,当然我觉得个人对手游的理解可能还比较浅层,对我的观点,仅为一家之言,大家应该理性的分析和判断。总的来说,当我们开始独立游戏的制作时,应该将重心放在内容领域上。部分以营销为核心的独立游戏也很成功,但是这样的成功带有一丝投机主义,能积累下来的东西不多,成功难以复盘,更难以复现。 - - - ## 二.内容制作篇 无论是手游还是独立游戏,最核心的工作都是产品的具体研发,降低开发成本、提升开发效率一直是永恒的主题。所以本篇中,我会提到个人对于内容制作的部分理解。 ### 2.1 制作人是否一定是多面手 制作人之所以是制作人,是因为他统筹整个作品的开发,也就是说,他要负责多项工作,或者与多个负责对应工作的人打交道。这里就牵扯到关于制作人是不是一定是一个多面手,或者通俗的来说,他是不是必须是一个六边形战士。 **2.1.1 策划是否需要玩过很多同类型的作品** 这个问题的答案其实和策划是否需要玩过很多类似的作品一样,**我的答案很简单,策划需要玩很多的目标类型的游戏作品。**但和一般理解的点不同的在于,很多人以为策划需要玩过很多作品的目的是在于寻求更多的可借鉴的方案,正如同写文章需要有宽泛的阅读履历和人生履历一样。但是我认为,寻求可参考、可借鉴、甚至是可抄袭的案例是次要的,**更主要的是提高沟通的效率,降低沟通成本。** 我们无法以一己之力去对抗历史,如果你从事创作行业,你大概率可以感受到这点,就是无论你进行怎样的创作,你的作品的局部或整体都可以在漫长的历史的长河里找到类似的作品,有的时候你甚至完全不了解过另外一款作品,两者之间也断不可能存在连接关系。但是这两款作品却可以产生碰撞,有类似甚至非常相似的设计在其中。任何设计目前都无法再算是新颖,游戏设计逐渐从大体量的创新转向了子系统的融合。比如《幻兽帕鲁》,采用了《方舟生存进化》的玩法缝合宝可梦的皮,恰好又与国内的部分主流媒体文化链接,就产生了非常神奇的化学反应。 (题外话:**任何设计目前都无法算是新颖需要划分不同的层级来判断**,正如你把大逃杀类型的第一人称或者第三射击游戏拿给零几年的老玩家去看,抛开画质的问题,他们大概率会说这个游戏和CS很像,因为两者都具有第一或第三人称射击要素,这个案例也可以很形象的证明,以前的创新是创作出一种新的游戏类型,而现在的创新会变得越来越细节,越来越无法被非圈内的人所识别,正如对于老一辈的父母来说,他们可能也无法Get到街机游戏和早期网游的区别在哪,对于你的男朋友来说,口红色号是一个难以辨别的东西,对你的女朋友来说,佐菲奥特曼和杰克奥特曼就是不太容易分得清楚) **简而言之,策划可以利用案例而非直接叙述的形式来表达自身对某项设计的理解或者描述**。这就好像是一种引据经典,如同部分成语一般,简短但是十分贴切。在策划沟通过程中,如果一个策划多款经典游戏都没有玩过,与之沟通的成本就会不断地提升。当然,前提是我们将策划锚定在一个系统和玩法设计层面的策划,而非数值或者文案策划等,这点我后面还会继续强调。 了解了这个点,再回到关于制作人是否一定是多面手的课题下,我们大概也有了一定的认知,如果整个制作组只有制作人一个人,那么他肯定得是一个多面手,而如果整个制作组有其他开发者,那么制作人又需要在一定程度上了解其他领域的内容用以降低沟通成本,只是当开发组有其他人来负责具体的任务,制作人只需要统筹和部署开发任务时,对制作人在该领域的要求会下降很多。 以我个人浅薄的经验来看,独立游戏铁三角(程序、策划、美术),制作人必须至少占据两个方面才能成为一个制作人,否则开发所产生的沟通成本会无限的变大以至于这种本来是隐性成本的东西却可以在团队建立之初就产生较大的障碍。 **2.1.2 消除游戏的短板** 一般会说扬长避短,这是两件事,扬长是发挥自身的长处,避短则是一个反义的概念,两者往往的对等的,也就是除了扬长,还要避短。**但是在游戏开发中,避短的重要性要高于扬长。** 简单来说,游戏有着比较严重的短板效应,但是游戏对综合技术力的要求又会因为游戏品类的不同而产生差异,举个简单的例子,galgame类型的游戏对立绘、剧情、音乐更加重要,好的作品肯定是三项都拉满,稍微劣势一点的作品应该也是某两项做到高分,某一项是及格。但是如果三项里有任何一项是不及格,那么整款作品就会因为这个短板而被认为是渣作。 **当然,针对独立游戏会谈到这个点往往是因为很多独游没有太过丰富的资源,钱不是问题,问题是没钱。**所以在进行项目选型时,你无法选择一个包含了团队严重短板的项目,比如某个项目需要高品质的逐帧动画,而你的团队里并不具有相关人才,那这个作品就不应该在你的考虑范围内。美术问题往往是独立游戏开发者最头疼的问题,不仅是针对国内,即便是游戏工业相对成熟的国外也是一样的。所以采用各类方法来消除美术成本就是一个值得参考的事情。 什么叫消除美术成本,或者什么叫消除问题?消除问题和解决问题不一样,举个简单的例子,假设某古人在旅行并途径一个村庄里,村民告诉你,前方的小路路径很短、但是有一伙强盗会拦路抢劫。解决问题就是,你雇佣一组保镖,为你保驾护航,去打击这帮强盗或者只是避免被抢劫。消除问题就是,不要走这条路,换另一条路走,本质上强盗的问题没有被解决,但是你不会再遇到这个问题了。 **其实很多开发者都在尝试用各种各样的方法去减少美术成本,比如完全用文字来代替美术素材的表达。**以下是典型的美术要求不高但相对比较成功的作品案例: 如果你的技术力比较强,能够独立的完成比较庞大的工厂类模拟经营游戏,可以了解一下《浮岛物语》,而如果剧情和音乐能力很强,《UnderTale》也是一个值得参考的案例,如果你对程序动画或插值动画了解的比较多,可以看看SokPop出品的《StackLands》和《Yard》他们非常擅长使用非具象化的游戏要素比如卡片,图标等来制作游戏,使用线性动画来构建动态视觉要素。而如果你的特效能力很强,也可以看看8bit工作室出品的《BleakSword/荒绝之剑》这款作品的美术压力相对较低,但是对特效的要求更高。同样的作品还有《城市叠叠乐》《纪念碑谷》等 ![](https://pic2.zhimg.com/v2-91a87f749e241fd20fb9ab3982063aff_b.jpg) 图为荒绝之剑/Bleak Sword 当然,这也是一个有趣的话题,即很多人觉得特效和美术素材是一样的,都属于美术的范畴,宽泛的来说的确如此,但是个人认为特效和画面其实是一个偏向于技术美术的工作,也是更偏向于程序进行转型的部分,毕竟技术转技术美术相比于美术转技术美术的难度要小很多,我的美术能力并不强,但是完全可以实现荒绝之剑中所有的特效需求,做出与之对等的画面和风格。不过如果坚持认为TA是一个更加困难的职业,那么也从选项中移除该项即可。 而如果只擅长一个固定的领域,就只能将这个领域的能力发挥到极致,亦或者开始去学习不同的领域,两者所需的时间没有本质上的差异,无非是广度和深度的区别,这是独游制作人无法避免的一个问题。如果压根没有任何选项可以选择,那么不妨反思一下自己是否还需要经过一段时间的学习和历练。 所以回顾上述的游戏,会发现,这些游戏没有一个明显的短板,没有足够的资金去外包美术或者招到对应的人才,就消除美术成本,利用其他方法维持游戏的及格线,而不是强行保留一个生硬的短板。 ### 2.2 分层处理问题的思想 **分层处理的思想简单来说就是将大的问题拆分为彼此关联又互不干涉的结构,这有点类似于编程领域时常说到的组件编程**,举个简单的案例,知乎上有一个热门的问题是为什么人类没有进化出攻击性的器官?这个问题其实问到了一个人类和其他动物比较大的区别,就是人类有一双灵活的双手,手和臂的组合让人可以使用各种武技,让人可以持握各类武器,让人可以投掷重物,如果人类的手是专门为攻击而设计的,那么它大概率会被攻击性这个组件限制住,因为生活所做的不全是需要我们去攻击的行为。手可以让人类的身体和各类武器进行解耦,形成两个不同的组件。吃饭的时候用筷子、喝汤的时候用勺子、打字的时候用键盘、喝水的时候拿茶杯...你会发现,人的手其实是一个非常泛化的接口,它可以对接多类工具,这就是解耦合。 **所以通俗来说,把一个大的问题按照一定的逻辑解耦合为两个或者多个特定的问题,比如战斗时,战士不需要知道武器的原理是什么,只提升自己使用武器的技巧即可,毕竟剑士有可能是不知道剑是怎么炼制的**,**研究武器时也可以专注于威力和易用性,研究完了告诉别人怎么用就完事了。** 这个简单的思想其实非常好用,很多时候一个问题讨论不清楚只是它捆绑了多个不同的问题,紧密的连接在一起。**但是真正的矛盾往往是我们不知道该如何对问题进行“解耦”**,下面来分析两类最常见的问题分拆的思路,以及对应的游戏开发过程中的案例。 **2.2.1 内容和结构上的分层处理** 假设要做一个走迷宫的游戏,重点就是要设计一个巨大的迷宫,这就是一个庞杂的问题,严格来说它可以被抽象为一个线性游戏,与解密类游戏很相似,比如《黑羊》《烟火》《隐秘的角落》等作品,它们属于流程层面的迷宫,也与部分银河恶魔城类型游戏很相似比如《空洞骑士》《RustedMoss》等,它们属于关卡层面的迷宫。 这些游戏的设计绝不是通过设计一个巨大的迷宫然后让玩家从头走到尾来制作的。这样的风险太大了,因为当其中的部分关卡进行调整时,前后关卡都会产生较大的矛盾从而必须要调整前后关卡,为此我们必须要将游戏的设计分割为数个互不干涉的多个完整流程,比如分为多个章节,第一个章节的结局是固定的,无论玩家如何游玩,它都会把玩家导向第一个章节的结局,这是线性游戏的特点,也是将第一关的制作风险和改动成本控制在一个关卡的内部。 也就是说,我们把一个巨大的迷宫分割为了几个部分,有几个关键性的节点,比如玩家一定是沿着A、B、C、D、E五个节点最终走到迷宫的终点,A和B之间是一个被分割的小迷宫,B和C之间也是,我们只要保证前一个迷宫的终点与下一个迷宫的起点彼此连接,就可以确保整个迷宫是连在一起的,这样即便过程中我觉得BC迷宫做的很烂,不太行,要重构,也不会影响到AB迷宫和CD迷宫,哪怕我们觉得BC迷宫应当删除也只是需要关联AB迷宫和CD迷宫的终点和起点罢了,这就是线性游戏的特点,也是为什么我们一定会分章节和关卡去处理这些问题。 这就是内容和结构上的分层,关于线性游戏的这一特点,下面的游戏构型一节中会继续探讨。 **2.2.2 系统和机制上的分层处理** 系统和机制上的分层更偏重于前面所提到的解耦合的思想,严格来说这也是最能体现策划也依赖程序知识的点,举个简单的案例,假设要设计的游戏有科技树系统。首先应该思考的是,科技树完成的任务到底是什么?是帮助我们解锁科技吗?从玩家的角度来说是的,**但是从策划和程序的角度来说,科技树看起来更像是一个回收素材或者点数的系统。** 在开发科技树的过程中,它的系统逻辑应该是玩家满足了某些点数条件之后,可以打开对科技树某个节点的开关,某个节点被点了之后,科技树负责通知其他系统来帮助解锁某些科技或者打开什么开关,具体会解锁什么科技树是不清楚的,说白了科技树只是一个用于回收点数的形式性系统,而如果我们真的把解锁的行为耦合到科技树,策划在配置数据、程序在开发时都会遇到更多的麻烦,因为它同时解决了两个问题,对接解锁点数和具体解锁的功能。 但是科技树只能解锁科技吗?它为什么不能是让民兵的发展路线,它为什么不能是建筑的等级提升,功能追加,科技树会解锁什么,达成什么条件应该是一个独立的系统,但是消耗素材、回收点数是科技树固有的特点,这也是为什么我们说,从策划和程序的角度来看,科技树更像是一个回收素材或者点数的系统。 在拆分系统的时候,我们需要对系统之间的连接关系有相对完善的判断,科技树是一个比较经典也比较简单的的设计,但是真正的开发过程中,我们所遇到的问题可能更为复杂和繁复。 **2.2.3 分层处理思想的总结** 分层处理的思想是一个底层的思维逻辑,它可以是分化问题的思想,它可以是将大目标拆分为小目标从而引发目标梯度效应的学习技巧,它也可以是程序里解耦合和组件编程的思想,它可能有不同的名称,不同的叫法,但我认为是一个比较重要的思想,当然,不仅要有这个思想,更要明白如何分层,如何拆解,这是需要长时间的学习总结和体悟感受的。 ### 2.3 理解成本惯性 惯性其实是一个物理性质,也就是牛顿第一定律所描述的: <blockquote> 任意具有质量的物体具有维持其运动状态不发生改变的性质,称之为惯性。</blockquote> 但是惯性在本文中的概念更为宽泛一些,它指代任意具有来拒去留性质的对象或者概念,小到个人的生活习惯,大到互联网的生态。对于个人来说,习惯是很难养成又很难移除的,而互联网生态同样如此,比如有人一直疑问为什么Python编程语言可以这么流行,很简单,Python简单好学,吸引了很多人来学习和使用,既然有了很多用户,就会有人为其构建更多的工具,有了更多的工具就会有更多人学习和使用,这就是生态的良性循环,久而久之,Python就形成了庞大且活跃的生态,这既难以形成,也难以消亡。 **所以,惯性在本文中指代的是这些具有来拒去留性质的对象或概念,只是我个人更喜欢用惯性去描述此类性质,**简约又直观,所以成本惯性描述的就是当我们已经制作了大量的美术素材、或者代码资源的时候,整个游戏逐渐成型,就无法再轻易的变更现有风格,亦或者 大规模的修改玩法。否则部分代码系统就需要重构,部分美术素材就要重绘,这里面产生的成本浪费是很大的。 这个点其实是一个显而易见的问题,然而我们提到了这个点,更多的还是因为独立游戏确实经常需要好的创意或者遇到各类天马行空的想法。**但是在此之前我们应该对成本惯性有深刻的认知,并在开始推进美术计划和程序计划之前,将玩法彻彻底底的捋清楚,通过纸面玩法模型去推演玩法的可行性**,即便要构建最简单的demo,也应该尽量降低对美术的需求,使用白模或者色块以代替各类游戏中的元素。直到策划团队或者制作人对玩法毫无疑问时,才应当展开后续的美术和程序开发计划。 **一个典型的失败者案例就是,如果一个新手制作人不清楚自己要做什么,本身有很多想法但又觉得不够完美,追求完美却又没有太多开发经验,来回调整目标,重构玩法,这个过程中成本惯性所产生打击是毁灭性的,**以目前游戏人才市场价格来计算的话,投入百万资金打水漂是常有的事。 当然这并不是说一旦开始了计划就完全无法再回头了,只是变化时肯定会有部分成本惯性的对冲,我们将其统称为美术成本或者程序成本,但其中肯定不乏各类细节成本,只要成本在可控范围内,变化和调整就是可接受的。 所以成熟的制作人会在动手之前会经过非常彻底的思索和考量,去磨策划案,通过纸面模型或者简易的程序原型来进行测试,这个程序原型甚至可以是一个控制台程序,只要可以表达玩法即可。 不过此类概念更适合运用于以玩法为核心的游戏,如果游戏本身的玩法偏固定,只是题材和表层内容的切换,那么我觉得甚至可以美术先行以免浪费开发周期。 ### 2.4 提高自身的审美 审美在此处是一个广义的概念,审美能力是对产品好坏的一种判断能力,正如对一个厨师来说,味觉失灵是一种毁灭性的打击。 **2.4.1 洞察缺陷比如何优化更重要** 在讲这个节点之前,可以先引入一个经典的认知偏差效应,叫邓宁·克鲁格效应,该效应指的是当一个人的能力比较低时,他对自身实力反而会产生一种误判,以为自己很强,从而变得傲慢,这也是我们通常所说的愚者山峰,这类人经常容易和别人争吵,道德经中也有类似的描述: <blockquote> 知者不言,言者不知。——《道德经·第五十六章》</blockquote> 所以想要让作品变得更好的前提就是,要了解作品是不好的,或者说,要承认自己的作品是不好的。然后才能进一步的改进它,如果不承认或者无法洞察到作品的缺陷在哪,优化就无从谈起了。 所以如何深刻的了解作品问题在哪,本质上就是提高审美,而且是各方面的审美。尤其是作为制作人对作品玩法和体验的审美。用打击感来说,**经常有人说打击感不行,那么能不能详细的把打击感不行这样一个具体的外层表现转换为具体的问题,转换为本质的可以去优化的点?** 于是就要分析不同的作品,多玩、多看、多体验,比如希望学习快节奏战斗系统,可以偏重于研究《鬼泣》《真三国无双》《讨鬼传》《噬神者》《哈迪斯》等,慢节奏的游戏则可以研究《怪物猎人:世界》《只狼》等,如果没有了解过这些游戏,当打击感出现问题的时候,也很难搞清楚到底是哪里出了问题。 这也是为什么说:洞察缺陷比如何优化更重要。 **2.4.2 有时需要的不是答案,而是佐证** 利用分层处理问题的思想,如果已经洞察到问题的缺陷,来到了一个次级问题,即如何优化时,就可以抛出这个节点,即解决问题的方法比问题的答案更重要。简单来说,如果要提升自身游戏的打击感,作为一个身经百战的制作人,问题的答案几乎是脱口而出的。打击感源自于五个点 - 击中目标对象时的动画及时反馈(敌人的动作变化) - 击中目标对象时的物理反馈(敌人的后退或者浮空等物理行为) - 击中目标对象时的特效变化(敌人的血迹粒子、闪白或屏震效果等) - 击中目标对象时的时间流速变化(角色的卡顿/时停等) - 击中目标对象时的音效反馈(金属碰撞或者受伤的音效等) 如果尝试通过某个视频来学习如何强化打击感,大概率也会找到类似的分析和总结,**但是问题就在于,不同的作品对其细节的要求是不一样的**,比如怪物猎人中,敌人是一个巨大的对象,它的物理反馈效果就不可能是后退之类的,于是物理效果的反馈就会是IK物理效果,也就是反向动力学。而如果敌人是一个和主角一样大小的人形角色,那么IK就不适用了。 如果要做的游戏是类似于真三、暖雪或者武士刀零这样的割草游戏,倾向于快节奏,那么像怪物猎人一样砍中怪物之后刀的动画播放速率变慢所产生的卡肉感就不应该出现,因为后者是目标作品希望表达武器的力量感而设计的。 所以应该自己分析一套对应的优化方案,尝试用自己的方法进行优化,得到对应的结果,然后对该结果进行验证。如果效果不好,则回头继续分析和提出方案进行优化,每次提出新的方案,综合能力都会得到一定的提升和积累。而如果只是得到了一个答案,且不说这个答案能不能帮助优化作品,关键的是分析的过程本质上是需要积累足量的经验从而应对后续的开发的。 更不要说这里提到的只是最常见的一类问题:打击感,而实际上游戏开发中所面临的真正问题往往是找不到答案的,能直接搜到答案的问题往往也不是什么大的问题。 这也是为什么说:解决问题的方法比问题的答案更重要,或者有时需要的不是答案, 而是佐证。 ### 2.5 对游戏构型的理解 游戏构型,一个相对较为抽象的概念,但是我们在该节关注的点比较简单,就是游戏的构型是否可被量化,也就是有没有办法把游戏拆分为相对比较独立的几个结构同步进行开发。那么这和之前提到的线性游戏就产生了很大的关联,一般来说,线性游戏更容易被量化,被预估和统筹。 **2.5.1 游戏是否可被量化** 用经典的跳台游戏《蔚蓝》来举例,蔚蓝初代里包含了三个章节,又分AB面形成六个大型的关卡,每个大型关卡又分为数十个小型的关卡,**严格来说,并不需要六个大型关卡全部设计完成之后这个游戏才可以体验,而是做了一组关卡之后就可以开始测试了和游玩了。** 如同其他的线性游戏,诸如解密类游戏、ARPG、银河恶魔城等都具有这样的特点,即它们整体玩法体验除了装备和数值的提升带来了节奏感的变化之外,整体体验可以在最初的关卡里打磨和完善,扩展游戏的时候也可以轻松的增加更多的关卡和流程,每个关卡的制作流程和管线是相对比较类似的。 **不过虽然一直提到的都是线性游戏,但是不代表其他非线性游戏是不可量化的。**比如赛车类游戏并不属于线性游戏,但是它的关卡也可被量化。这些可以被量化的游戏,它们的制作更加的偏重于某个关卡的研发和制作,核心的体验打磨完毕,后续的扩展即便会遇到问题和矛盾,也相对来说比较容易解决。但是部分游戏是不可量化的,比如我正在制作的模拟经营类型,这类游戏的特点就是,它的短板效应非常严重,必须把所有的系统都制作出来,它的demo才足以成型,才能开始体验效果到底好不好。 **2.5.2 可表达玩法的最小原型** 对于那些不可量化的游戏,我们也试图寻找一个最小的可体验demo结构设计以提升策划迭代的速度,但问题的关键是这样的最小原型是如何设计的? 最小原型的设计指的就是,能够完整的让玩家体验到游戏核心玩法的最小demo,其他不必要的就不用去加,这也是一种奥卡姆剃刀原则,即如无必要,勿增实体,这种原型demo的设计技巧是可以练习的,**可以找到一个现有的游戏案例,然后对它的系统进行剪枝,也就是只要移除该系统不会对核心玩法造成致命影响,或者可用其他现有代替的,都可以移除掉的。经过系统剪枝后所保留下来的原型,就是不可量化游戏的可表达玩法的最小原型。** 这种练习也可以帮助新手策划理解如何编写一份策划案,如何设计一款游戏,如何最快速的表达游戏的核心玩法是什么?我以前写过一篇文章,即《模拟经营类游戏玩法综述》,在该文章中,为了描述模拟经营玩法循环的量变和质变升级,我提出了一个极微型的模型,叫葡萄树模型。 <blockquote><i>在葡萄树模型中,玩家会经营一片农场,系统提供了一个商店,商店中任何的道具都可以买入或者卖出,商店中的道具现在包含了葡萄树和葡萄。葡萄树每个100金币,葡萄每个10金币,玩家初始会有200金币。玩家可以消耗1000个金币来升级商店,商店升级后可以购买或者销售两种新的道具,即榨汁机和葡萄汁。榨汁机的价格为300金币,葡萄汁的价格为50金币。玩家可以消耗10000个金币来升级商店,商店在升级之后可以提供两种新的道具,酿酒桶和葡萄酒,价格分别为1000金币和100金币。</i></blockquote> 葡萄树模型是一个非常微型的模拟经营类游戏原型,它甚至比开罗游戏更加微型,只满足最基础的游戏循环,但是它足够直观而且可以立刻用一个Python脚本来实现成为具体的可运行原型,甚至花不了一两个小时的时间。 葡萄树模型只是单纯的在描述这个游戏的结构是怎样的,虽然部分地方有所简洁比如没说农场的地块数量或者葡萄树的生成公式或者计算模型等,但是大概我们可以知道它的运作逻辑。但是这样一个模型是如何得到的?是经历了怎样的探索取得的?它也许是通过对别的游戏进行系统剪枝得到的,亦或者对模拟经营类游戏的本质进行抽象后总结出来的,它就是作为策划或者作为制作人应该要去提炼和总结的内容,而在此之上又会增加怎样的细节设计,生长出何种“枝丫”,则是根据题材或者契合度来进行判断。 **2.5.3 对游戏构型的总结** 无论是可量化的游戏,还是在游戏不可量化时构建最小的可表达玩法的原型,都是在尝试以最小的代价或者成本去进行玩法的测试和打磨,在开启真正的大规模美术和程序任务的推进时,这样的测试可以有效的保证游戏结构的稳定,这与前面说到的成本惯性是一个目标。 ### 2.6 带有战略或阶段目标的产品立项 先做出一些失败的作品,个人认为是有意义的,大部分优秀的作品都经过漫长的迭代和技术的积累才能做出来,一款庞大的游戏作品,它的开发团队需要经历多个阶段项目的历练。于是在团队建立之初,将目标设为一个庞大的项目也许并不合适,将其拆分为几个独立且完整的项目更好。 举个简单的案例,B站UP主Gamker曾经做过一款游戏叫《宅物空间》,这款作品并没有太多的玩法,就是单纯的给定一个方形的空间,玩家可以选用各种家具来布置这个空间,通过截图的方式来分享自己的房间设计,与其说是一款游戏,更像是一款软件。 不清楚Gamker做这款作品的初衷,**但是从发展的视角来看,通过制作这款作品,必然会积累一定的经验和技术。我们很难在一款作品里成功或者做出多么亮眼的成绩,所以不妨将设立几个战略级的目标,比如要做一款作品,通过这款作品,我们要积累怎样的技术、达到一个怎样的阶段目标,从而为下面的目标做准备。** 这其实与为什么要登月类似,研究登月的过程中所积累的各项技术和成就不是孤立的,它们可以被运用于各方各面比如核磁共振技术,而更早的导弹技术也可运用于航天,大疆无人机的航拍技术也可运用于军事技术,军事工业技术也可运用于民事工业生产,比如二战时期虎P坦克的电驱系统研发者费迪南德·保时捷后开创了大众车品牌保时捷。 如果要做一款多人在线对战的枪战竞技游戏比如CSOL的话,这个目标对于独立团队来说就未免太过于庞大了。相比之下,于是先制作一款FPS单机作品就显得更为容易,也更适合作为一个更好的阶段目标,通过制作这款单机作品去积累各类研发技术、团队管理等方面的经验是更好的,**对于独游的开发来说更是如此,比如《星露谷物语》和《饥荒》最一开始都不支持联机,星露谷物语在爆火之后也才在1.1版本中引入了官方的联机系统**,此前只有个人开发者为其做了联机Mod,饥荒也是一样,只是饥荒并没有将联机作为一个独立的功能,而是作为了一个独立的版本,叫饥荒联机版。 也就是说,在维持团队生存的前提下,应尽可能将一个大的目标分割为几个战略级目标从各个阶段目标中吸取足够的经验和正向反馈。如果上来就完美主义,反复修改也害怕失败,害怕自己的作品被抨击和评论,那么永远也无法生长出丰满的羽翼和蓬勃的肌肉。只有挣扎着生存下去,才更有可能制作出优秀的作品。 - - - ## 三.工作制度篇 在内容推进的过程中,漫长的开发周期和松散的目标结构会使工作室的进度变得很慢,摸鱼划水的问题也会很严重,思考和探讨的流程也可能会变得很浪费时间,所以如何构建简明扼要的制度体系是非常重要的。 ### 3.1 独游工作室和大型游戏公司的区别 我曾提出过一个简单的问题,去大型游戏公司工作,是否可以学到更多知识和技能?如果这件事不经思考的话,其实大家的答案都是会的,但是我习惯于把问题分拆的更仔细一些,因为这个问题有一个很简单且直观的反思,即如果个人没有足够多的知识和经验,那为什么能够去到大型游戏公司工作呢? 这里就是问题的关键了,其实能不能学到东西,是一个可以进行推断的思维训练。大型公司的运作,依赖的不是个人的主观能动性,而是制度。公司不会因为员工偷偷地摸了一天的鱼而直接倒闭,但这是一个结果,即公司需要将个人对公司的影响力降到最低以维持自身的韧性和稳定性。不至于某个人离职就导致公司运转不下去了。如果你是公司的老总,你打算如何提高公司的韧性呢? **深入思考这个问题,如果一个员工离职公司就运转不下去了,其实代表着这个员工肩负着非常重要的职责或者承担了很多核心工作**,当然,员工离职导致公司运转不下去这个案例过于夸张了,可以举个更加正常的案例,一个员工离职,导致某个业务部门停摆了,或者某个业务部门的工作效率大大降低了还是有可能的。这都代表着工作部署上,这个人被部署了太多工作导致的。 所以,解决问题的方法很简单,就是分割这个人承担的职责,分割他的职责本质上也是在分割他的权力,正如明朝朱元璋采用三省六部的内阁制罢黜宰相一样。举个简单的案例,在手游或网游公司,策划部门往往是多个职位构成的,比如文案策划、数值策划、系统策划等。分割的更细一方面是提升职业的专业程度,一方面也是在提高公司的韧性,如果整个公司只有一个策划,那么这个策划离职了,从离职开始到设立新的招募需求再到面试、选拔、任务交接所产生的摩擦性时间成本是非常大的,关键是此时公司的策划工作完全处于停摆状态。 但是如果将策划的工作分割的更细,如果文案策划离职了,至少不影响其他策划工作的展开,如果希望进一步提高韧性,还可以将文案策划岗位的数量设为多人,只是这样也提升的公司运营的成本。但总的来说,可以推断的是,公司为了降低自身运转的风险往往会将个人的职责分拆的很细,招募基础岗位只是为了完成相对基础的工作,很难进入到这个公司的高层,但是换而言之,如果是作为执行岗位,进入该公司就直接来到了管理层或者接近管理层,那这个所谓大型公司可能规模并不大。 所以去到大公司是可以学习很多东西的,但是可以学到的内容偏向于经验性内容、例如管理模式、交互体系(文件交换系统和版本控制等)、技术栈(比如黑神话悟空团队采用MotionMarching构建3D角色的动画系统)、生产管线(比如米哈游公司在疫情期间、在线上工作的基础上仍然保持高频率更新,其工作管线体系必然十分优秀)等内容。所以个人感觉在公司可以开阔自身的眼界,但对个人专业方向的技能提升有限。 在强化学习算法中有一个经典问题叫做**N臂老虎机问题**,它讲述了**探索和应用**的关系,举个简单的案例,网易云音乐每天会根据算法给你推荐一些与你喜欢听的歌曲类似的歌,但是这种算法不能完全保证这些歌是你喜欢的,只能说有可能是你喜欢的,于是你选择听日推还是听自己已有的歌单呢?听已有的歌单,就叫做**应用**,而听没有听过的,叫做探索,也可以叫做学习。N臂老虎机问题所阐述的两者关系可以运用于很多生活中的概念,比如你也许会点一些没有吃过的外卖,但是大部分情况下,你还是会点一些你已经吃过的。 公司需要的是员工能够正常的产出有效的工作内容,这属于应用层面,对现有内容的反复应用可以提升熟练度,熟练度对于不同的岗位来说作用是不一样的,比如美术可能依赖熟练度,但是策划和程序并不一定。所以真要继续提升自己,仍然要在应用之余,继续进行探索。N臂老虎机问题在此处就不展开了,有兴趣的可以专门了解一下。 **3.1.1 对制度的解释** 说明独游团队和大型公司的区别,**主要是建立起一个意识,即独游团队靠的是个人的主观能动性而非制度,也就是很多人做独立游戏偏向于我想要做独立游戏或者我喜欢做独立游戏而聚集在一起的**,于是独游团队无法建立起完善的制度体系,这是在探讨工作制度时首先要有的基础认知。而我们在此处所涉及的制度,更多的其实是一个关于内容制作的广义概念,可以将其理解为一种粗糙的生产管线,一种大概的探讨规范或者协定等。 举个例子,现在团队假设有几个人,关于游戏怎么做,大家都有想法,于是可以建立起一个简易的规划机制: - **在设计某系统之前,由所有人准备多份设计预案** - **开会进行预案的介绍和探讨、所有设计案探讨完毕后进行投票选择** - **如果没有投出一个既定的结果,就根据现有投票结果改进现有预案继续投票** - **重复2-3步直到方案确定为止。** 当然,实际情况其实更为复杂,采用投票机制其实是一种很不靠谱的表现,只是我个人最初的队伍协议就是这么设计的。这就是一种工作制度,或者一种所谓的协议或探讨规范等。而前面谈到的公司的制度,更多的是惩罚制度或者审核制度比如早晚都要打卡,或者公司只招收工科专业的人等。 以上,就是我想说明的一件事,即制度在本文中的含义。 **3.1.2 加强团队的韧性** 理论上来说,将职务分割的比较细节一方面是可以降低风险,另外一方面也是减少由于人员变动造成的摩擦性成本,举个简单的案例,在一个三人的独游团队,如果策划离开了,再招一个新的策划,那么整个游戏之前的所有内容都需要跟他详细的讲一遍,所以分割职务的另外一个好处就是前面说到的提高团队韧性。 在一人兼职多项工作的情况下,一个人的离开会对队伍产生很大的打击,包括职务停摆、心理压力、其他摩擦性时间成本等。所以提高团队韧性地两方面,一方面团队要有完善的文档体系,一方面是尽量减少实习和兼职需求。 **3.1.3 如何看待制度** **制度本质上是一种对某些执行或者决策进行标准化地处理,而标准化可以帮助团队反思制度或者结构问题。**举个简单案例,为了每周都总结和反思一下游戏地制作进度,团队应该建立一个周会制度,每周大家不仅要展示这周地工作进度,另外需额外发表一下个人对于当前制作进度地看法,也许最一开始部分人有部分看法想提出来,但是事实上大部分人都是多一事不如少一事,也就是他们倾向于不发表任何观点,于是每周地这个周会的个人意见发表环节就慢慢变成了个人周报地汇报环节,因为大家都不再发表观点了。 特别要注意的是,这个过程中,没有任何人对制度提出疑问,也没有人觉得制度不合理,但是这个原本是个人意见发表的周会环节自然而然地坍缩为了工作周报。没有人刻意提到它,于是可以说,这个制度并不合理,以后可以改为: <blockquote> 每周所有人进行工作周报的汇报,并如果有任何额外的想法和意见都可以发表。</blockquote> **一般来说,某个强制执行的决策会帮助我们逐渐认识到原先设计的不合理的点并进而产生良好的改进,因为正如穿着不舒服的衣服始终会让你意识到这个衣服是不是有些不合身。**但是这个任务无法继续把工作周报简化,因为这里留有了太多摸鱼和划水的空间。这就是制度的另外一个优势,即它本身其实是一个备忘机制,或者一种标准化机制,每当开始执行这样一个环节时,就像是填写一个既定的简历表格一样,一定要写姓名、民族、年龄等参数。设计这个简历表格的时候,它就形成了一种标准。 ### 3.2 设立开发计划和会议制度 制作游戏是一个开发周期非常长的活动,我们很容易迷失在漫长的开发或者学习的道路上,尤其是没有上级监管对象的时候,所以此时就需要先指定一个开发计划,将开发计划视为一种监察制度,当然,很多时候一款独立游戏毕竟是自己设立的开发项目,如果开发周期逾期了也没有惩罚制度,但是如果制作人不能将其视为一种错误或者问题进而批判或者反思自身的话,那我认为这样的制作人是非常失职的。 **3.2.1 开发计划** 指定开发计划往往分类型来进行处理,但是如何设立一个良好的开发计划呢?还是分层处理问题的思想,即找到合适的点对现有问题进行分割,首先注意设立开发计划并没有一个严格的模板,因为目标到底是怎样的游戏我们是不清楚的。 但是无论什么游戏,总会分为开发阶段和QA阶段,所以是否可以将开发计划分为开发阶段和测试反馈打磨两个阶段?如果来到开发阶段,那么问题会变得更简单一点,虽然不知道是什么游戏,但总的来说肯定会分为内容填充阶段和Demo开发阶段。如果来到Demo开发阶段呢?即便不知道要做什么游戏,它也肯定肯定会分为预研阶段和原型测试阶段。如果继续来到预研阶段,它又可能分为立项调研阶段和纸面原型测试阶段。 ![](https://pic3.zhimg.com/v2-5144124c8f75b8f1390d3d2c7d89b68a_b.jpg) 围绕目标设立开发计划 当然,每个节点都会继续的细化和分割,至于分割的多细,有没有节点是不必要的,则根据具体的游戏来选择。这就是一种制定开发计划的方法,即根据游戏的阶段找到一个合适的节点对目标进行二分。这是一种围绕制作节点而设计的计划展开办法。 当然也有不同的开发计划设立办法,比如根据开发周期来设立开发计划,如果打算利用12个月的时间来构建一款作品,那么可以将游戏分割为6个版本代号,当然不一定是6个版本,具体分为多少个版本可以根据内容来计算。**相比于围绕目标展开的开发计划,以开发周期为主的开发计划以时间为核心驱动因素**,如下图所示: ![](https://pic1.zhimg.com/v2-7e04edb0db436fc0b01aaecde36aa520_b.jpg) 围绕周期设立开发计划 当然还有更多的描述计划的方法,而且很多时候这些计划表的构型是相互混合的模式,比如内容填充计划里会以时间为主要因素,但是整体的开发计划以目标为主。 **3.2.2 建立沟通制度** 一个抽象的行为比如对游戏进行立项往往由于其过于抽象而无法被有效的探讨,就好像马上就要开始探讨立项的问题,我们应该如何进行有效的沟通,说白了,沟通过程中太需要一个有效的沟通模板了。 举个简单的案例,假设某游戏工作室是某个公司的子工作室,作为一个项目的负责人,需要周期性的汇报现有的开发进度,就应该设计一个完善的汇报模板,如果每月汇报一次,它就相当于属于月会汇报。说白了就是通过一个简单的会议说明这个月干了什么。 ![](https://pic2.zhimg.com/v2-94a1f7474620ba93f922d37f1547ea03_b.jpg) 这就是一个模板,或者一个表格,而每个月或者每周需要填写一份这样的表格以展示最近的开发进度。但是母公司也许存在各类其他的工作室,对于上级对象来说,这样的一份汇报是缺少上下文的,即为什么会有这样的一个开发计划?所以相比于某月的开发计划进度,它更像是某月在某个版本计划下的进度展示: ![](https://pic4.zhimg.com/v2-40a4c07b8929fcf53fb7b7c3e34babd3_b.jpg) 而且大概率版本计划不会即刻在1个月内完成,所以大概率还有部分内容是没有完成的。 ![](https://pic3.zhimg.com/v2-6b53ce70cf473965b6eae40c2eeb4116_b.jpg) 这样就构成一个相对完善的月会汇报的会议模板,但是情况往往可能会更复杂一点,比如开发计划中,部分人比如玩家甚至是领导认为0.x版本中某些计划是不合理的(虽然这样的不合理应该消除在开发计划设立之前),从而导致了开发计划的调整: ![](https://pica.zhimg.com/v2-9204dec62ee2c6d770a7d60fee9d3882_b.jpg) 这样也许完善了,也许还不完善,也许太复杂了需要简化,也许我们压根没有汇报的需求,但是它构成了一个沟通制度,因为汇报或者对开发计划进行总结这件事只是日常开发计划中一个可能存在的一个需求,而这样的一个模板,就是沟通模板,我个人喜欢将其称之为会议制度或者沟通模板。针对不同的事件或者目标完全可以建立不同的沟通模板以简化思考成本。 **3.2.3 建立评估模板** 评估或者评价,往往是针对满足同一需求的两个或多个选项而展开的,比如零几年的时候,学校旁边的诸多小卖部有很多小零食卖,而你手里的钱可能不多,你需要对有限的资金购买什么样的零食进行评估,如果购买棒棒糖这样的食品,一根就比较贵但是美味且足够吃很长时间。但是如果购买类似于话梅这样的食品,你可以把话梅分给其他小伙伴从而换取他们手中的小零食从而品尝更多的滋味。 **简而言之,评估大体分为两个方面,一方面是建立针对单个对象的维度画像,一方面是针对多个对象进行评选。**维度画像是根据需求建立的,我们需要设计不同的评估维度来应对不同的问题,举个简单的案例,如果要实现游戏中的某个系统玩法,大体的做法有两种,两种都可以,而且比较难抉择,这个时候就产生了评估需求了,因为如果一种方案存在致命缺陷或者被另外的方案全线碾压,那么压根就不会存在争议。 针对一个系统的实现方案的评估,大体是针对它的两个方向的维度展开的,一者所消耗的成本,一者是所产生的结果。成本侧最基础的就是美术成本和程序成本,当然还会有策划成本但是一般来说程序和美术是核心要考虑的,结果侧则有两种类型,一种是所产生的优势、一种是所产生的副作用,因为很多时候,很多系统设计方案是会附带一定的副作用的,正如延迟渲染对透明渲染的支持较差一样。于是我们设立四个维度: - 美术成本 - 程序成本 - 额外优势 - 新增劣势 对于对于策划组来说,每个人都可以根据现有的维度提案对目标方案进行个人视角的评估,满分为10分,由策划独立打分。 - 美术成本(A方案:7.0)/(B方案:10.0) - 程序成本(A方案:5.0)/(B方案:10.0) - 额外优势(A方案:10.0)/(B方案:1.0) - 新增劣势(A方案:10.0)/(B方案:10.0) 注意这里的10分指的是这个维度表现较好,美术成本10分指的就是美术成本很低,收集评分可以建立其对维度的更准确的画像,从而进行更好的分析。 ![](https://picx.zhimg.com/v2-cafdbc6c8d02b7d24c424e65af96ef4b_b.jpg) 评估画像的雷达图 其实在经历较多议题的分析后,我们发现,本质上问题的维度都是在利用较少的成本换取更多的优势,也就是在追求方案的性价比,所以大概可以得到以下的公式: ![性价比=\frac{额外优势-新增缺陷&#39;}{程序成本&#39;+美术成本&#39;}\\](https://www.zhihu.com/equation?tex=%E6%80%A7%E4%BB%B7%E6%AF%94%3D%5Cfrac%7B%E9%A2%9D%E5%A4%96%E4%BC%98%E5%8A%BF-%E6%96%B0%E5%A2%9E%E7%BC%BA%E9%99%B7%27%7D%7B%E7%A8%8B%E5%BA%8F%E6%88%90%E6%9C%AC%27%2B%E7%BE%8E%E6%9C%AF%E6%88%90%E6%9C%AC%27%7D%5C%5C) 但是特别要注意的是,最后所计算得到的性价比参数只是一个参考值,因为真正的设计方案非常复杂,而将其量化为一个简单的数字本质上就是一种对信息的阉割。但是有了该参考参数,总的来说整体的评估还是会更加稳妥一些。 但是这个维度信息也是简化过的,因为在讲到评估维度的时候,我们压根不知道议题是什么,如果我们追求的是对一个老旧系统的替换或优化方案,那么就得到了一个新的维度,即优化程度,如果需要对成本进行更完善的描述也许我们会将成本拆分为开发成本、维护成本、外包成本等多项成本因素。于是我们会得到不同的评价公式: ![性价比=\frac{优化程度+额外优势-新增缺陷&#39;}{开发成本&#39;+维护成本&#39;+外包成本&#39;}\\](https://www.zhihu.com/equation?tex=%E6%80%A7%E4%BB%B7%E6%AF%94%3D%5Cfrac%7B%E4%BC%98%E5%8C%96%E7%A8%8B%E5%BA%A6%2B%E9%A2%9D%E5%A4%96%E4%BC%98%E5%8A%BF-%E6%96%B0%E5%A2%9E%E7%BC%BA%E9%99%B7%27%7D%7B%E5%BC%80%E5%8F%91%E6%88%90%E6%9C%AC%27%2B%E7%BB%B4%E6%8A%A4%E6%88%90%E6%9C%AC%27%2B%E5%A4%96%E5%8C%85%E6%88%90%E6%9C%AC%27%7D%5C%5C)** 但是无论如何,还是那句话,这个计算结果只是一个帮助你进行判断的评估参数,它既不是最终的答案,也不值得过分的依赖。** **3.2.4 建立评估流程** 评估是一个比较复杂的行为,我们往往也会担心评估对象的单一致使评估结果的失信,于是也许我们需要建立多轮评估形成完整的评估流程,比如你可以在设立方案之初进行自我评估,如果你的评估出现误差,不妨再让小组进行评估,如果组内也没有好的意见,也可以交给其他更具权威的人士进行专家评估,比如交给主策或者其他更有经验的策划进行评估。如果仍然存在争议,最后可以交给用户进行评估。 但是特别要注意的是,如果走到了专家评估这个流程仍然存在疑点,那么这件事本质上就说明了两者的优势和缺陷是比较难以抉择,这个时候我们可以启用简易策略: ![](https://pica.zhimg.com/v2-76bd642fd9e7f92aebe95fdc521d81ea_b.jpg) 评估流程 <blockquote> 任何争议较大的问题在短时间内无法甄别或者决断的,可以直接选择成本更低或更易完成的那个,这样的决策策略称之为简易策略。</blockquote> 简易策略是一个题外话,在日常的开发过程中是非常有效的一种解决问题的方案。当然,这是最后的决策手段,通过建立评估流程以评估的方式精确的找到方案之间的问题是最佳手段,**因为往往两个方案之间的区别有的时候很模糊或者难以描述的的,于是我们必须建立相对完善的评估维度来加以描述和完善的评估流程去强化评估的准确性。** ### 3.3 建立工作调度模型 大型公司为了简化管理结构,一般会将一个大型公司划分为多个部门,由部门负责人来统一负责一个方面的工作,但是对于由一个制作人来统筹所有开发工作的独游工作室来说,过分扁平化是一个常态,也是一个巨大的问题,制作人的压力会比较大一些。在部署任务的时候,我们其实遇到过一种特殊的任务部署的阻塞问题,这种阻塞问题是由于部分工作由于存在其前置任务没有完成而无法展开的情况。将其称之为阻塞很形象,因为编写程序的时候就存在着非常多的同步代码结构导致的阻塞问题。 什么叫同步结构呢?就是严格按照顺序执行,如果B完成他的任务依赖A的任务先完成,那么B就会等待A的任务,直到A的任务完成为止,B都处于阻塞状态,也就是空闲状态,这样的情况或者问题就是同步阻塞。 ![](https://picx.zhimg.com/v2-4957650c7bc4ba9a45045a64aed2f49b_b.jpg) 任务依赖 现实中更为复杂的点在于,B往往不知道自己要干嘛,也不知道自己有哪些其他的任务要处理,B被A阻塞只是你在思考任务部署过程中的一种假想,你需要将B的其他工作放到前面来让他完成,于是你需要安排一张错位的工作计划表,设计这样一张表,我会将其立即为一种工作调度模式的设计。 阻塞问题不仅出现于这种依赖问题中,其实很多组织结构中都会存在各种各样的阻塞问题,比如拍电影的时候就不会一个片段一个片段的顺序拍,我完全没有拍过电影,也没有学过任何相关理论,但是如果我是导演的话,最能直观的感受到的就是拍摄成本问题,于是我会将拍摄成本作为最优先考虑的点来进行拍摄任务的制定。 假设我们的电影要在三个场景A、B、C中拍摄, A在大型城市,B在乡村,C在某景点。那么为了运载所有剧组人员和食宿所产生的成本就很大,于是我们不得不将拍摄计划围绕在三个场景中展开,整个电影的所有分镜脚本制作完毕,就从中筛选出在三个场景中拍摄的脚本,然后去到不同的场景中进行拍摄,也许电影的开头和结尾都在A场景,但是过程中在B,局部在C,那么也许我们是先拍完了电影的开头和结尾然后带着所有剧组人员去到B中进行剩余部分的拍摄,最后将所有的片段剪辑为一部完整的电影。 这个过程中也会产生额外的成本,比如造型成本,如果一个角色的造型非常复杂,那么化完妆就应该优先拍摄与之相关的片段,于是拍摄计划会逐渐形成一个树形结构,再扁平化为日程表方便排期。当然现实可能会更复杂一点,因为某些电影会启用某些明星而产生更多的演员成本,但是无论如何,围绕的永远都是那些成本最高的部分。 **和拍摄电影类似,制作游戏也有相关的编排逻辑,虽然游戏制作过程中不存在和电影完全类似的结构,但是通过编排任务解决同步阻塞的问题的起因是完全一致的,**称他为同步阻塞问题是因为我第一次认识到阻塞问题是在代码中,所以说不定真的可以通过程序的手段来解决它,为此我们可以引入一种叫生产者&amp;消费者模型的结构。 生产者&amp;消费者模型建立的核心是引入一个中间队列,这个队列是一个等待处理的任务队列,所有的对应工作者(此处可以将其称为消费者)从队列中取出任务来完成,而策划则负责向其中加入新的任务(此处可以将策划称为生产者),这样构建一个错位的工作序列。 ![](https://pic4.zhimg.com/v2-1ab665194e684cf5d95b5a0238172171_b.jpg) 生产者&amp;消费者工作模型 **图中的场景美术工作池就是一个工作计划队列,这个工作池的深浅也会影响到策划的工作排期,策划在部署计划时应当考虑各个部门工作池的深浅以免产生其余工作单位的工作阻塞问题,这就是生产者&amp;消费者模型** 当然,这个工作调度模型只是一个非常简单的示例,而且现实中并不一定会采用这样的工作模型,关键是我们应该尝试学会自己设计调度模型去完成各类繁复的组织性工作计划。这就是本节的核心启发,即设计工作调度模型。 ## 四.总结 以上三篇内容就是所有我想说的部分了,当然还有很多课题和想法由于各类原因没有写入这篇文章。 怎么说呢,成为一个制作人是一条相当艰苦的道路,和产品经理不同,制作人除了统筹开发计划之外,可能还得亲自上阵干活,这个过程中很多事情都需要自己来决断和决策,以上每个细节点都是一个曾经踩过的坑,没有资金、缺乏完善的惩罚制度是一切问题的核心矛盾。所以独游制作人需要在有限的资源中做出更好的作品,就需要关注一切成本问题,从而为团队保留足够的实力以应对不期的结果。 希望以上内容对你有一定的价值,感谢阅读,同时再次感谢[@ComfyFinn](https://link.zhihu.com/?target=https%3A//twitter.com/ComfyFinn)提供的封面图。 来源:知乎 www.zhihu.com 作者:[王子饼干](http://www.zhihu.com/people/xie-e-ke-xue-jia?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-20 03:58:08 · 2次阅读
 
 
黑神话悟空:斗罢艰险,能否出发?

经历了68小时的奋战,我终于拿下了黑神话的白金奖杯。大概,我现在自认为算是有资格真正来评价一下这个游戏了。 ![](https://pic3.zhimg.com/v2-4a94fa1833015252dcd386f2ae184968_b.jpg) 跳杯的时候突然想起来,应该穿大圣套卡这个截图 黑猴无疑是近20天来游戏圈最大的热点,销量目前已经逼近2000万大关,Twitch热度第二,Steam同时在线人数历史第一,算是非常结实地火了一把。但与此同时,关于这个游戏的口水仗就一直没有停过。发售前有关女权相关话题就激起了女权主义者和玩家之间的对立冲突,发售前几天围绕战斗系统的好坏也是争议不断,某站爆出某些厂商买量踩黑猴的事更是一石激起千层浪,同时期星鸣特攻的史诗级失败似乎成了黑猴成功的佐证,而宇宙机器人则不幸被拉来做了黑猴的新一轮对线机器…… 我最终选择在这个时间点,在专栏里发布这篇文章。首先是想等我白金之后对这个游戏的认识相对深入一点,其次希望等舆论稍微沉淀一下之后再发,最后还是希望能少吃一些游戏板块之外的流量,因为从之前能大概看出,他们确实对一些游戏玩家之间的共识没有概念…… 毕竟黑猴是国内第一款3A游戏,它获得了太多圈外人士的关注。 ### 到底什么是3A游戏? 实际上,至今3A游戏还没有一个概念。中文互联网经常将其定义为“A lot of money; A lot of resources; A lot of time”,算是相对准确地道出了3A游戏的本质。所以尽管3A游戏并没有一个准确的定义,甚至还能在这个基础上搞出2A级游戏和4A级游戏这种奇怪的概念,但任何一个游戏爱好者都能快速地看出一部作品是否为3A——至少大部分作品能看得出来。 黑猴是否是3A呢?它当然是。 感谢日前已经升为世界第二大公司的NVIDIA,和游戏第一引擎商EPIC的鼎力相助,黑猴最终呈现出了非常出色的美术质感,而画面本身就是所谓3A级游戏最重要的特征之一——一部投入巨大的游戏,它当然要有最好的卖相。 由于全新升级的虚幻5引擎,游戏可以填充进如此大量的实景扫描的模型,这种美术资源的奢侈运用依稀让人想起15年前的最终幻想13。在那个游戏中,玩家不断穿行在极其精美的场景中,总是让人觉得“这里做的这么漂亮不放个BOSS战之类的吗”。在黑猴中,同样也让人有了这种感觉。我个人感受比较深的是两次打不白中间长长隧道里的佛像。尽管知道这里肯定是实景扫描的模型,但也的确让我有了“这里就直接这么跑过去真的没问题吗”的念头…… ![](https://pic4.zhimg.com/v2-35ad52599dff67d4a30a48ce9f84c809_b.jpg) 如果是传统做法的话,这里肯定每个佛像都是一样的,减少美术资源制作成本 如果你知道这些是实景扫描的话,肯定会有一种油然而生的自豪感——这些在发售后令老外们叹为观止的场景,都是真实存在于中国的。某种意义上来说,这也是黑猴能够在发售后迅速引爆国内舆论热点的重要原因之一:它的卖相实在是太好了。甚至不仅限于国内,由于目前使用虚幻5引擎最知名的作品是堡垒之夜、地狱之刃2、铁拳8和……呃,指环王咕噜,可以说黑猴是第一部真正将虚幻5特性发挥得淋漓尽致的大作,它充分展现了虚幻5的上限——所以你知道为什么EPIC要为这部作品提供技术支持了吧。 但可惜的是,这些美术资源最终没有一个特别出色的关卡用来呈现,也就是在游戏发售后被广泛讨论的所谓“空气墙”问题。 ### 空气墙问题:规则不统一 常玩游戏的人想必对空气墙不会陌生,这是一种广泛被使用的用来限制玩家行动的手段,也是一种“不那么优雅”的制作手段。通常来说,在场景边界放置类似石头、树木一类的物件来阻挡玩家行进会显得更“优雅”一些,因为这些物件是可视的,在主观上就可以传递“这里不能通行”的信息。 全是空气墙的游戏其实没什么问题,没有空气墙的游戏其实也没什么问题,问题在于黑猴有的地方有,而有的地方没有,所造成的规则不统一问题。 例如如下这张图: ![](https://pic1.zhimg.com/v2-6eae93f175329aa7c656eb6e8b6876d8_b.jpg) 这个场景出现于第四章后半段。在整个第四章前半段在盘丝洞里的冒险中,玩家会数次遇到像这样的场景,在场景边缘放置一小片木质地板,这是一种非常强烈的“这里可以跳下去”的暗示,实际上第四章前半段也确实如此,你需要数次经历这种可以跳下去的场景边缘才能走出盘丝洞,而到了第四章后半段的这个地方,它依然铺了木质地板,但是这里其实是空气墙。 再比如另一处: ![](https://pica.zhimg.com/v2-cf12d5bfcfeecdf7251d941fa6b41812_b.jpg) 这个场景来自于第五章。可以看到前方有厚厚一层岩壁。在此前的冒险中,你会多次遇到这种场景,它们几乎个个有空气墙的保护,而且岩壁本身就是一种强烈的“这是场景边缘”的暗示,所以你可能会想当然地认为这里是不能通行的,尤其是图上所看不到的,在主角背后还有一条一眼望不到头的路的时候——但实际上这里是可以跳过去的,里头有个精魄,还挺重要的。 所以这是黑猴在探索方面让人如此抓狂的原因:玩家在游戏中学习到的规则会轻易地因为制作者的心情而被破坏。 造成这种现象的原因,个人猜测有两方面的因素: 一、黑猴是一个有跳的游戏,而对于一个有跳的游戏来说,如何防止玩家用跳跃等技巧卡出地图边缘一直是令开发者很头疼的问题,所以他们粗暴地添加了空气墙。黑猴的跳跃怎么看怎么像是后加上去的,游戏没有空中连段,跳跃攻击只是一个飞踹并拉开距离的动作,显然他们不希望你把跳跃加入到常规战斗循环中。而跳跃重击虽然能跳得更高一些,但它在战斗中的伤害低于普通重击,显然也没有鼓励你使用。跳跃虽然可以躲开一些攻击(例如小骊龙的太鼓达人),但其实用闪避无敌帧也可以躲,跳跃并没有绝对的必要性。而在此之上,游戏的探索环节需要用到跳跃的场景其实很少,跳跃重击就更少了,游戏中几乎唯一需要使用跳跃重击的地方是第二次见到戌狗前可以滑下去的那个土坡,中途按跳跃重击可以跳到上面平台拿一个泡酒物。游戏中明明有跳跃键,但对跳跃键的利用如此之少,结合早期的PV中的演示,不得不让人怀疑这个跳跃是后添加的,而空气墙是对后添加跳跃的补救措施。 二、从实景地图MOD和有些玩家制作的穿空气墙MOD来看,很多空气墙后面其实是有东西的,所以这可能是更重要的一个原因:游戏的开发工期太紧张了,他们没有时间再细扣场景边缘了,只能放个空气墙了事。考虑到游戏中空气墙大规模出现在第二章和第三章,我认为开发团队在美术资源制作的配比上是有失调的。 第二章整章都是在一个巨大的沙漠中行进,而第三章虽然也有浮屠塔这种场景,但整体来说整章还是在一片大雪地里跑来跑去,这两章的地图看上去实在是——不那么箱庭,而更像是开放世界的做法,玩家很容易在这两章中迷失。但一、四、五和浮屠界这三张地图又是比较标准的箱庭关卡,就更让人迷惑了。在我看来,二章的沙漠和三章的雪地完全可以精简,节省下更多的美术人力用来拯救第五章和第六章。尤其是第三章,做这么大片的雪地和树木实在是没什么意义。这种粗暴地做一大片高度雷同的关卡的设计通常出现在开放世界这种有地图的游戏中,因为开放地图所传达的信息量是普通箱庭关卡的数倍,在没有地图的箱庭关卡中这样做很容易让人迷失。如果你回忆一下被誉为魂系关卡设计巅峰的黑暗之魂1,你会发现整个游戏中几乎只有黑森林+夹缝森林这一片相对开放的地图——实际上大部分人也认为这片地图是魂1地图设计最差的地方。 ![](https://picx.zhimg.com/v2-7cadbc73d1182ce7d104f17ba4044ee5_b.jpg) 茫茫大雪,究竟何处是我的归宿 ### 并没有尽善尽美的战斗系统 在游戏发售当天,我认为这个游戏的战斗系统是存在问题的,当时遭到了激烈反对。时至今日,第一天的看法里有些被推翻了,但我的看法保持不变。 从整体上来说,游戏走的还是艾尔登法环和仁王的路子,即“轮椅大战粪怪”。 这实际上并不是黑猴单一的问题。传统黑魂的战斗系统过于简单直白,到了魂3基本已经走到头了,不符合玩家希望打更强更牛逼的BOSS的整体诉求,所以必须为玩家添加更多主动手段,避免传统黑魂的“翻滚之后砍两刀”的简单逻辑。而在此之上传统黑魂BOSS如果放到新系统里只会变木桩,那就需要让BOSS的攻击性更强招式更多——也就不可避免地变得更粪了。 黑猴这个游戏呈现出非常明显的两头易中间难的情况——这种情况在大部分类似思路的游戏里都是同样的,法环、仁王、匹诺曹,均是如此。前期敌人由于要匹配玩家的孱弱性能而做的相对简单,后期玩家性能提升较大也会显得相对简单,只有中间玩家性能尚在提升的环节容易出问题。黑猴第一章整体较为简单,第五、六章由于玩家build基本成型所以也相对简单,只有中间部分在受苦。这种靠build降低难度的情况在二周目更为明显,二周目在基本属性点满的同时三个技能都能点满,使得二周目所有BOSS都变成了速杀大赛——当然我们不考虑所谓高周目数值问题了,毕竟玩到高周目的玩家是极少数。 ![](https://pic4.zhimg.com/v2-b97011b271c0c02dfbfca88e02eebf77_b.jpg) 昔日的我你爱答不理,今日的我你高攀不起 游戏在基本系统上有两个相对上级一些的系统:一个是天赋里很早就可以点出的,脱胎自猎天使魔女的offset系统(即闪避后保持连段),一个是轻棍衔接重棍的切手技。 offset是猎天使魔女的核心系统,在连段中按住攻击按键不松手,进行闪避后输入连段下一个指令即可保持连段。黑猴在此基础上做了简化,只需要连段中闪避即可。但似乎黑猴没有注意到魔女offset的一个很重要的前提:魔女中绝大多数连招,除了有高额伤害的最后一击,每招的时间差不多是一样长的。黑猴的五段连击,很明显地呈现出中间两招长的情况,在实战中往往要靠翻滚取消掉——尤其是演出时间特别长的第四招,这就使得offset的时机相对来说不那么自由。另外,由于魔女中还有变身加移速的系统,按住攻击键不松手变身躲避技能再打最后一击也是完全可行的,但黑猴的简化在这里反而失去了这个功能。由于相当数量的BOSS有相当长的连段,纯粹靠闪避而不拉身位是很难的,而一旦输入方向键等指令就会取消offset,使得offset在实战中并不容易打出来。 ![](https://pic2.zhimg.com/v2-eda63e8ad83c910725822b6ecec20f41_b.gif) 一个简单的魔女offset演示 ![](https://pic1.zhimg.com/v2-bd78ac040e39b3c330e7923a85a1ccaa_b.gif) 中间插入变形的offset演示 另一边的切手技系统问题就更严重一些了:切手技强需求先打一次轻攻击的前提使得它天生在使用上就不那么自由,而切手技必须要等前一个攻击动作结束才能使用更加剧了这一点,尤其是配合上面所说的第三、四段连招演出时间很长来看的话。如果切手技可以随时打断当前动作使用,在手感上会好不少,实用价值也会大幅提升,而这并不会大幅降低挑战性,毕竟切手技需要一段棍势才可以使用。而更糟的是,大概是由于切手技的原因,这个游戏所有动作后摇都很长。在动作游戏中,我们认为,长前摇技能只要投放了相应价值的数值,是没有任何问题的,但长后摇就会降低玩家体验,毕竟后摇本身并不产生任何价值。而且这种长后摇还会带来更严重的体验问题。 ![](https://pic4.zhimg.com/v2-ef59a000c0261c1533521300dc05a1ef_b.gif) 如果你的连续攻击中间无法闪躲,那就做一段伤害就好了 基础体验的另一个问题在于给玩家的韧性过于保守。游戏采用了和魂3法环类似的常规时间几乎0韧,在攻击中给韧性的设计,但给的韧性还是过于保守了,早期我对于这个游戏的韧性的批评就来源于此。后来我发现3豆蓄力韧性给的很多逐渐改变了我的想法,但此后我发现4豆蓄力依然可能被打断,甚至切手技也可能被打断之后,我对这个游戏的韧性的看法又恢复到了从前……轻击第五段是offset系统的心流爆点,而消耗大量资源打出的3/4豆蓄力攻击更是绝对意义上的心流最高点,在这种攻击中投放韧性过于保守会导致投放价值不够充足,很容易让玩家变得沮丧。讲道理我认为4豆给霸体都不为过。 ![](https://pic2.zhimg.com/v2-da1706ffbb154c4070bc67deb8093883_b.gif) 而且这个游戏的资源设计刚好卡在了中间。offset、切手技,这个游戏似乎在鼓励你不断进攻,但是体力槽限制了这一点。最早魂系列采用体力槽是为了防止玩家一味格挡,或者一味靠削韧压着BOSS打,也就是不鼓励玩家一味进攻或者一味防守。但如果游戏本身鼓励一味进攻,那就不应该有这种限制,众所周知只狼是魂系列唯一没有体力槽的游戏,而这个游戏恰恰是魂系列最鼓励玩家进攻的作品。 所以因上问题,大部分玩家对于这个游戏的玩法还是靠法术,所以实际上最终还是回到了仁王法环的路子。诚然这个游戏法术成型之后还是很强的,游戏后期猴毛定身四豆棍+隐身蓄力三豆棍能打出成吨的伤害,使得绝大多数BOSS都失去了挑战性,但这其实也是仁王法环被诟病的一点。而且,即使依靠数值降低了游戏难度,也并不能改变基础体验的问题。 而且即使法术流,也不可避免要受到其他设计的桎梏。且不提法术前摇被打断不返还CD的设计,这个还可以认为是游戏惩罚你不找准时机随便用法术,但法力值这个系统确实又起到了负作用。在游戏的第一关最终BOSS黑熊精处,此前全程定身法的我只是多按了两次闪避用来躲火风,就空蓝了,导致后续战斗用不上定身法了。当法力值这个系统限制你的时候,你也就只会使用收益最高的法术,也就是定身法了。至今[如何评价《黑神话:悟空》「定身术」这一设定?从游戏设计角度讲这是否算做一种略显粗暴的难度优化方式?](https://www.zhihu.com/question/664801413)这个问题依然挂在知乎,可以看到游戏早期玩家确实是只用定身法的。游戏后期使用的法术逐渐多样化,一方面是因为定身法逐渐开始失效(其实我觉得这个很不合理,因为其他法术都没有被如此针对),另一方面也是因为法力值限制逐渐开始解除了,一整场战斗只用定身法和隐身连一半蓝都耗不到,当然就会开始尝试用高蓝耗的猴毛来增加输出了。 说实在的法力值这个设计很怪,因为它和CD同时出现了。由于一场BOSS战的时长对于设计师而言是可控的,CD这个设计完全可以用来控制一场战斗使用的法术次数,并不需要法力值再来套第二层限制。举个类型不同但道理互通的例子:魔兽世界CTM版本重做了所有职业的战斗循环,除奥法外所有法系职业都解除了法力值的限制,而唯一有法力值限制的奥法,它占据游戏时间95%以上的三个主力技能都是0CD。而另一个例子是,在魂系列最初的恶魔之魂中有蓝条,补血补蓝依靠消耗道具;魂1魂2将法术改成了有限次数,坐火恢复,于是就把蓝条去掉了;在魂3中把法术又改回了恶魔之魂的设计,与之一并归来的还有可以补蓝的道具元素灰瓶,法术次数就又去掉了。可以看到,限制玩家使用法术的手段其实只有一种就够了,如果使用蓝条的话就应该有补蓝的措施,黑猴只有一种泡酒物可以回蓝,这么多的消耗药品竟然没有一个是可以回蓝的,这个又有蓝条又有CD又不让补蓝,着实让人有些摸不着头脑。 这个法力值,体力值,有点没抄明白的感觉。粗暴地搬了上来,但似乎没有理解别的游戏为什么要有这个东西。 ### 上下限差距很大的BOSS设计 如果将黄眉和赤尻马猴拆成两个BOSS的话,黑猴中有整整90个BOSS。看看动作天尊CAPCOM的初版怪物猎人世界里的BOSS数量,就知道要打磨这么多的BOSS几乎是不可能的任务。不仅这90个BOSS里填充了整整54个强化版小怪用来凑数,其他的BOSS在设计上也是明显上下限差距非常大。三个魔将、晦月星君、大石敢当、斗笠僧等BOSS设计得非常差,它们或者有相当长时间拒绝交互的阶段,或者碰撞盒非常诡异莫名奇妙地打不到,或者动作非常怪异难以捉摸——这种怪东西BOSS本身就是非常难以设计的,所以一般动作游戏很少会设计这种BOSS,或者将这种BOSS设计成机制型BOSS,而可能由于是背景设定的原因,黑猴里的这种怪东西BOSS特别多…… ![](https://pic4.zhimg.com/v2-a3ae713b3a71db79a91f1c5a752f4a5b_b.jpg) 无明显起手前摇+远程攻击+瞬移,我认为是本游戏最粪的BOSS之一,尽管它给的数值并不算多 说到无明显起手前摇,不得不说说很多人提到的0帧投。在说0帧投之前,要先阐明一下这个游戏的另一个问题:敌人的绝大多数攻击都是锁头+位移的。或许有很多玩家体感这个游戏喝药明显比其他魂系游戏更难,就是因为这个原因,传统魂系游戏XJB翻滚至少有拉身位的正收益,而黑猴中的闪避似乎只是单纯用来拿无敌帧碰伤害碰撞盒。虽然能感受到在身位拉得足够远后敌人的攻击欲望会大幅度降低,但也明显使得和敌人的纯闪避交互变得比传统魂系游戏更难了。 ![](https://pic4.zhimg.com/v2-3eb12cd893e150689b6d80905e95c289_b.gif) 即使以拼刀著称的只狼也有这种傻呵呵对着空气打连段的设计。当然不是说屑一郎这个设计好,只是希望思考下这样设计的成因 而建立在这个基础之上的就是所谓0帧投了。其实如果你仔细观察的话,其实所谓0帧投都是有起手动作的,只是没有一个特别明确的警示来将它和其他起手动作区分开,而被普通攻击打到和被投技打到的挫败感显然是不同的。再配合锁头攻击表现就更明显了,其实很多时候玩家知道对方这一手是投技,只是因为锁头攻击,不能单纯靠拉身位躲避攻击而导致躲避失败,挫败感就更重了。 ![](https://pica.zhimg.com/v2-c7098ceac5dfd07fbf304cc65e28e05a_b.gif) 点名寅虎的这个瞬移投技,其实它瞬移的时候你就知道它要投了,但闪避时机稍有不对还是会中 ![](https://pic3.zhimg.com/v2-e7e3acb3b17fb5da06f47e5e6234ff5e_b.gif) 可以看看只狼这个投技是怎么做预警的,其实讲道理只狼这个锁头+吸附的投技已经是做的很差的了 但其实游戏还是有很多设计得非常好的BOSS的。最终BOSS大圣残躯和隐藏BOSS二郎神明显都是经过精心设计长期打磨的,大圣残躯甚至我个人认为是类魂游戏中设计最好的BOSS(或许都不用加之一),虎先锋、寅虎、小黄龙、毒敌大王等重要位置的BOSS设计也非常规整(去掉0帧投的话)。小黄龙卡我的时间最长,打了两个小时,但我的个人体验非常好,因为他所有招式都有明显前摇的情况下,即使打不过也会认为是BOSS够强(毕竟设定如此),而不是BOSS靠“赖招”赖赢的。动作游戏就是这样,玩家一方面要求BOSS够强,另一方面又要求自己和BOSS之间的公平性,其实是有点又要又要的,在这个背景下要设计好的BOSS需要相当的打磨和经验,游科作为初次制作动作游戏的新手,上来就做90个BOSS确实有点想当然了……砍掉一半,尤其是砍掉强化版小怪那一半,专心打磨BOSS,多几个像小黄龙这种质量的BOSS体验会好很多。 最后,我不知道游科是怎么安排的,第一章卡人最多的幽魂和白衣秀士,这两个BOSS一个动作诡异,一个连段超多,怎么看也不应该是往第一章放的BOSS,一般游戏第一章都应该放一些设计比较规整、出招比较死板、输出窗口期较长的BOSS用来给玩家熟悉基本系统(参见古达),这两个BOSS完全不符合这一点,甚至幽魂很可能是很多玩家的第一个BOSS(牯护院:?),反而第二章到最后才能打的虎先锋在招式设计上更像是新手教官,把虎先锋招式砍掉一半,铜头铁臂砍掉,扔去第一章做新手教官没有任何违和感——可是已经打到这里了,玩家已经不需要新手教官了呀…… ![](https://pic4.zhimg.com/v2-833e1fa5fd956c224e017de4ea2b2611_b.jpg) 叠个甲,幽魂并没有卡我很久,可以看上方的等级和右侧并不存在的广智变身,但我真的觉得这个BOSS不应该在这里 ### 有关故事的争议 随着游戏发售一天天过去,故事似乎已经取代了空气墙成为了这个游戏的主要争论点,而这种争论随着某站爆出某些厂商买黑稿的事件而愈发地尖锐了起来。 黑猴真的不能改编吗?我认为是否定的。即使有些人嘲笑黑猴的剧情是“老土的西游黑深残阴谋论”,但你不能否定改编这件事本身,文艺作品对原著有自己的诠释是再正常不过的事情,不然就连西游记原作都否定了——历史上真正的玄奘要是知道后人把他描述成一个胆小迂腐的僧人,全靠神通广大的徒弟才能走到西天,大概也会说一句“改编不是乱编”吧…… 至于担心外国人因为黑猴而对西游产生错误的认知就更是无稽之谈了……奥丁是好人还是坏人?就这个问题玩战神的和看漫威的能把人脑子打成猪脑子……实际上,这世界上绝大多数的人,根本就不关心本国以外的文化。外国文化对他们而言是锦上添花,只要能提供好的故事就够了。 黑猴故事很好吗,这就未必见得了。 黑猴的叙事是明显参考了魂系列作品的叙事,有大量的背景故事依靠游戏中的道具进行碎片化叙事,但游戏和游戏亦有差别: 首先,谁也没说过魂系列的叙事很高明,这只是Fromsoftware在人员偏少的情况下采取的一种故作高深的做法,实际上法环现在的剧情也是颇受争议,魂系列各种道具的背景描述互相矛盾的事情也并不少见。 其次,魂系列的传统做法是,编写一套较为宏大的背景故事,然后靠道具描述来讲述背景设定,至于实际游戏中的具体故事则接近空白——实际上从只狼可以看到,当他们想讲一个稍微复杂一些的故事的时候,他们还是会用传统方式,靠CG把关于“只狼”、“不死”、“苇名”等大量背景设定直接告诉你。 游科也没有特别大幅度地重新解构角色,就像战神一样,你不需要管宙斯、奥丁他们在原本神话中是个啥样子,他们除了主神地位之外跟神话里的那个角色几乎一点关系都没有,所有的人物设定全靠游戏本身输入就行了。但黑猴的很多角色,明显是需要你知道西游的背景故事才可以的。在这个基础上,他们明明可以把很多角色的背景写在游记里,但是他们没有,比如牛魔王的这段: ![](https://pic4.zhimg.com/v2-fdccda54933f92491335b887aaa6d6c5_b.jpg) 这段描述里,牛魔王什么来历,经历过什么,一概没讲,信息量不大,还引入了好几个名词。 由于牛魔王是在中国最知名的妖怪形象,中国人不会认为这里有什么问题,但放到老外那,就别怪人家评价“根本不懂讲了什么”了…… 发售之后我看了好多老外的reaction,普遍对第四章的CG感触颇深,甚至直接掉下眼泪来,原因其实倒也很简单:猪八戒和紫蛛儿这一段爱情故事,是游戏中极少的全须全尾讲完而且讲的很清楚的故事。至于黑熊、黄风、黄眉、红孩儿,由于缺少背景信息输入,加上故事本身讲的也相对破碎,理解起来就比较有困难了。不光是很多人认为结局给天命人戴金箍是“戴皇冠”,甚至还见到有赞同黄眉的——你看,给人教坏了不是,再教两天恶堕了都…… 所以我觉得,这个故事本身没有什么问题,但是叙事没放下身段。如果抛弃魂系列那一套,转而用战神那一套效果会更好一些,而且战神那一套本身也更容易做演出,而这种大场面演出正是黑猴的最长的长板。 ![](https://pic1.zhimg.com/v2-69c8bc9122cc05e48bbd38053b2d1e6e_b.jpg) 近十年最好的BOSS战演出,谁同意?谁反对? ### 斗罢艰险,能否出发? 黑猴在叙事上选择放弃背景设定输入,显然还是把目标定在了以国内玩家为主。 我在4年前游戏刚公布的时候就提出了我的观点:黑猴是对国内单机市场规模的一次调查。 扩展阅读: [三千院凪:写在原神上线时——来聊聊国产游戏和黑神话](https://zhuanlan.zhihu.com/p/243532530) “所以黑神话悟空的这群人确实是抱着跳楼的信念在破局,致以崇高的敬意。”至今我的看法不变。虽然上面提了很多问题,但游戏这个东西本来就是主要看长板,短板只要你能接受就可以当不存在。相比之下,黑猴美术扎实过硬,战斗打击感出色,再辅以一些打磨质量很高的BOSS,你要说跟法环比那确实差点,但作为一部3A作品质量是相当出色的,在同类作品中完全有顶级水准(我个人认为黑猴质量要高于仁王)。 甚至于,这部作品完全有希望拿下今年的TGA年度最佳。如果放在往年大概还是不太够的,但是这是2024年——此前的GOTY最大热门FF7RB是一部填充时间靠小游戏、战斗系统稀烂、空洞手套这种粪怪频发、剧情完全谜语人的作品。黑猴发售近一周后,TGA在推特发推询问玩家心中的GOTY是什么——在距离年底还有三个多月,黑猴刚刚发售的时间点发这种推特,言下之意不言自明,显然TGA现在对黑猴也是有点犹豫但又觉得有一定可能性的,而底下黑猴超高的得票率也支持了这一点。从市场测试的角度来说,国内第一部3A能拿出这样水准的作品,作为市场测试用的作品是完全够格甚至超标了的。 但就像我另一篇文章所说,黑猴的这个市场测试,其实还是进行得有些不完全的。 在黑猴公布后,他们获得了NVIDA的支持,获得了EPIC的支持,获得了索尼的支持,获得了腾讯的支持,获得了国家审批部门的支持,获得了地方政府的支持。除了友商的支持(友商凭啥支持啊)之外,所有能获得的支持基本是拉满了的,再加上西游记这个题材,可以说是一个buff全开的作品。 这部作品目前恐怖的销量,某种意义上来说是探了底的。但一部作品探底,不代表之后的作品也能探底。就像我之前所说的,中国之后的单机游戏还会获得这么多支持吗?还能有这种引爆舆论关注的题材吗?恐怕是很难的了。 正像很多人所说的,或许,中国的第二部3A,才是真正的重点。 我们一直所呼唤的国产3A,并不简简单单指单一一部作品,而是指整个体系。我们不仅期望一部黑猴,或者一部黑哪吒,黑姜子牙,我们期望的是能有更多、更高频次的优秀国产游戏出现。 很多不了解游戏行业的人,在看到黑猴之后,就理所当然地幻想,有了第一个就有第二个,就有第三个…… 如果现实真的能有这么单纯就好了。 我们不是没有精品,但我们的精品一直是少数,一直改变不了现状。 我们看中国的文娱行业,电影出了流浪地球以后现在该怎么样怎么样,音乐今年找几个外国人来就得逼的举国上下请愿,国漫永远在崛起中,国足刚又被踢了个0:7,连春晚的小品都没法看了……似乎但凡跟娱乐沾边的,中国就都不行。 稍有常识的人就能看出,这显然不是单一行业的问题。 相比之下,游戏甚至已经算好的了。至少中国在服务型手游这个领域,称霸全球。 但光有服务型游戏是不够的。 服务型游戏,由于其长线运营的特点,玩家会在同一款游戏上投入大量的金钱、时间和情感,而这些都会构成玩家的沉没成本。正如王者荣耀之后手游moba再也没人能挑战它的地位一样,服务型游戏的成功往往和品质无关,是一个马太效应表现极强的领域,胜者通吃。 这也是为什么腾讯和网易拼命去抄市场上火爆玩法的原因:胜者通吃,你不赶到前面,就等死。 在这样残酷的竞争下,游戏行业越来越卷,做出成功的作品越来越难,厂商们为了排挤竞争对手无所不用至极,甚至直接发射赵弹。在黑猴上市后,某些买黑猴黑稿的厂商就是如此,惯性思维,非常可笑: 因为做单机,是不用排挤竞争对手的。 单机游戏是买断制,游戏内容和时长固定,玩家打完就玩下一款,这使得单机游戏互相之间几乎不存在竞争关系,甚至可能还有促进作用——你玩了鬼泣5很好玩,那么你想不想试试同样类型的魔女3呢? 服务型游戏,必须杀了旧王立新王;买断制游戏,大家都能活,其乐融融。 只有保证市场的良性竞争,保证大家都能活,行业才能有更美好的未来。 国内行业现状如此,大环境如此。黑猴的成功可能是个例,但我不希望它是个例。虽然这只能寄希望于某些人、某些部门、某些机构,能就此高看游戏一眼。黑猴的美术、它触及每个中国人梦想的题材、它极其精美的过场动画、它的“黑深残”剧情,其实是完美符合了能让某些人高看一眼的资格的。 现在只能等待那些人究竟能否高看游戏一眼了。 我依然不怀期望地等待着那一天的到来。 来源:知乎 www.zhihu.com 作者:[三千院凪](http://www.zhihu.com/people/san-qian-yuan-ci-49?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-20 03:52:14 · 1次阅读
 
 
各自精彩——《无敌号》原著与游戏情节对比

**题记:我们是否应该为了船只遭遇海难而去鞭笞海洋?** - - - **(通篇高能剧透。想自己玩的就biè看。)** - - - 三年前的秋天,触乐登了一篇文章([https://www.chuapp.com/article/287547.html](https://link.zhihu.com/?target=https%3A//www.chuapp.com/article/287547.html)),科普《无敌号》的核心科幻创意——能够自我复制的机器,同时为《无敌号》游戏作了一个简短的前瞻。 当时我很兴奋。因为在那文章发布之前几个月,我就把《无敌号》加入了愿望单,但我从来没奢望过会在任何游戏媒体上看到关于这个游戏的前瞻。这个游戏几乎是各种小众标签的集合体——波兰科幻作家莱姆、彼时尚无中文译本的《无敌号》原著、步行模拟类游戏、没有战斗、并非名门的开发商,总之看不出有任何卖座的可能性,哪怕文章发布十个月之后《无敌号》原著的中文版上市了也还是如此。 但在读过原著之后,我对游戏的期待又多了几分。原著的核心科幻点子是“云团”,也就是之前触乐的那篇文章里介绍过的能够自我复制的机器。它们能彼此聚合对其他生存竞争者展开攻击,但遭遇他们的人类科学家们却连它们到底有没有意识,甚至它们算不算生命都难以定义。《无敌号》原著更值得玩味的,是它对人类的描述——当人类面对着这样一种具备毁天灭地的力量却完全超乎自身认知之外的生存样态,他们该作何感想? 原著给出了一种答案。这个答案我相信也是作者莱姆本人的理念。它本身并不算新鲜,但当它和“云团”这种神奇的存在相结合,却又显得格外有力。 因此我才会期待游戏的表现。一个没有战斗,系统极为有限的第一人称步行模拟游戏,又能够带给我们什么呢——仅仅是还原书中的场面,还是也能把这理念讲透,又或者通过游戏独有的互动性带来更多的体验和感悟? 让我欣慰的是,《无敌号》游戏以它独出心裁的改编,给我们带来了和原著一脉相承但又有所不同的绝佳风味。 这也就是本文的缘起了。 ![](https://pic3.zhimg.com/v2-acdff23424c15b1dcff9819d43c3c2d2_b.jpg) 遠い遠い空の下で、一人ぼっちに思えたら 《无敌号》游戏和原著的微妙差异,其实从它们字面上完全一致,内涵上却各有千秋的标题就开始了。 原著中的主角领航员罗翰就隶属“无敌号”这艘飞船,因此在原著中“无敌号”这个名字是很实在的,指的就是这艘飞船。它象征着人类的力量,象征着人类的家园,是一个从头至尾都令人安心的堡垒。然而在游戏里,“无敌号”飞船只在流程的最后才姗姗来迟,且和主角并无多大关联。这么一来,游戏里“无敌号”这个名头并不如原著实在,却因为游戏的情节而有了更多内涵。游戏的英语标题“The Invincible”指的并不仅仅是“无敌号”这艘飞船的名字——我们都知道英语中the+形容词的搭配指的是具备形容词特性的某样人事物,如此一来,英语标题“The Invincible”就多出了一层隐晦的暗示,让玩家在通关游戏之后再去想一想,谁才是真正无敌的那个。也就是说,相比原著,游戏对情节的改编使得“The Invincible”有了更丰富的含义,这个无心插柳的巧思着实令人欣赏。 ![](https://pic2.zhimg.com/v2-a9f289324fa12aaf4ed2b10464fa95e5_b.jpg) そんな時にはいつも 思い出してほしい 然后我们来看原著和游戏的故事情节。游戏的故事情节主要分为三部分,这三部分和原著大体上是一一对应的。 第一部分,即发现同伴失踪,主角前往搜救的部分游戏和原著大致相同,只是规模和情景都非常不一样。原著里失踪的是秃鹰号这整一艘飞船,前来营救的是主角罗翰所属的无敌号和它搭载的所有船员。第一章“黑雨”有不少描写凸显了人类的力量,而且是以相当正面的方式,这也为后面的挫折留下了伏笔。原著也没有贬低人类的力量,且正因为它肯定了人类的力量,所以后面在面对“云团”而显得格外无力的时候,对于这力量的边界的思考才更能引发共鸣。 正如书中所说的: <blockquote>“最后,午夜将尽时,他们又看到了“无敌号”的船身,四方皆被灯火照亮,仿佛是在接受检阅,从远处望去,就像一座金属高塔般闪闪发光。力场之内,一列列车辆正朝四面八方移动着:在泛光灯炫目的强光照射下,燃料和物资正在卸载,人们成群结队地站在舷梯旁。尽管距离尚远,归来的车队成员们还是能听到蚁群般的喧嚣声。前大灯移动的光束上方,寂然耸立着星舰带有条纹的船体。蓝色光焰亮起,标示出力场上会出现开口的位置,一辆接一辆,覆盖着厚厚一层沙尘的车辆进入了那个圆形空间。”——《无敌号·黑雨》</blockquote> 原著中,主角罗翰带领大批人马浩浩荡荡地出发,而他们还不是无敌号派出的唯一一只搜救队。在另一支搜救队找到失联的秃鹰号之后,罗翰的队伍也很快赶到现场参与救援。此时罗翰的队伍人员齐整,配上规模宏远的秃鹰号内外的景象,和发现的为数不少的尸体,整个场面非常宏大。在这第一部分,原著的情感基调相当昂扬,充满了“为有豪情多壮志,敢叫日月换新天”的豪情。虽然秃鹰号的遭遇令人遗憾,虽然是什么造成了这样的悲剧也还有待探究,但齐整的人员队伍,有条不紊的搜救过程,以及回到基地后各学科的精英科学家们坐在一起开会讨论事情真相的大段对话都还是非常黄金时代科幻,非常星辰大海。 相比之下,游戏的开场就非常不一样。考虑到步行模拟这一类型的特点和主角形象的塑造,游戏把主角明思娜直接抛到了星球的表面,让她从一开始就独步幽深。游戏在明思娜独自前行的过程中穿插了一些她的回忆,然而这些回忆都带着淡淡的忧伤。在回忆中还在快乐斗嘴的同伴们转眼间就成了你独自在这星球上无望搜寻的对象,你不知他们的生死,你甚至不知道自己是否还有机会活着离开这颗星球。所以你会听到明思娜时常喃喃自语——这是她在给自己加油打气,和身处无助境况中的我们每个人一样。 ![](https://pic2.zhimg.com/v2-1b21f136fa34ffc8ad05918c8f00abb5_b.jpg) 誰の心の中にも、今も消えない唄がある 从“第一人”这一章开始,原著就进入了故事的第二部分。科学家们开完会也没有给秃鹰号的悲剧找到合理的解释,于是就需要进一步调查。无敌号上的科学家们各自带队出发。也正是在这次行动中,无敌号派出的队伍正面接触了“云团”,先是打了一场空战,后是罗翰带队出发去搜寻先出发的瑞格纳小队,然而结局都只有完败。 而在游戏的第二部分,明思娜找到了对立势力“联盟”留下的临时基地,并发现了“联盟”在星球上已经展开的研究。通过这些研究她发现了这颗星球上一些异乎寻常的地方,于是循着“联盟”一方派出的考察队的踪迹,来到了一个充满金属植物的山谷。也正是在这里,她和“云团”有了一次正面接触,并从“联盟”考察队留下的反物质自走炮的炮口底下死里逃生(这部分应该是整个游戏最令人震撼的脚本演出,甚至比结局部分的演出还令人印象深刻)。但她的收获也不小,她发现了考察队人员的遗骸,并福至心灵地把线索串到了一起,弄清了“云团”到底是什么。 这一部分原著的铺垫比游戏要细致得多。在无敌号上的科学家们考察星球的过程中,他们其实一早就跟构成“云团”的细小机械体有了非常多的接触,包括考察队员们回程中发现了一些细小的黑色金属颗粒,又或者无线电通讯遭受了各种不明来源的干扰——要知道“云团”攻击人类和机械的方式就是将他们围起来并产生强磁场,对机械体的电路和人类的大脑造成各种伤害或影响。 不得不说的是,无论是原著还是游戏,都在第二部分的末尾把关于“云团”的所有谜底一股脑抛给了读者或玩家。具体来说就是原著中“劳达的猜想”一章,和游戏中明思娜找到考察队运输车,在车里和诺维克一番高强度对话拼凑出事情真相的过程。在我看来,揭晓“云团”本质这部分,无论是原著还是游戏节奏上都显得有些急。原著虽然有了前面的种种接触作为铺垫,但在揭晓“云团”本质的一番对话之前还都是些非常火爆的营救场面,这个转折显得有些生硬。游戏的问题则在于铺垫不够——只有明思娜在“联盟”基地里的一些观察算是给玩家带来了些许关于“云团”的启发,但那些启发相当隐晦。这就导致玩家对这一段的观感恐怕就是明思娜差点被炮决之后突然醍醐灌顶,有如神助一般把事情全都想通了。这多少还是有点过于突兀,过于机械降神。 所以其实无论是原著还是游戏,这一部分都令我感到有些遗憾。但这主要是就情节的安排设计而言,若是就情绪而言,一番惊心动魄的场面之后突然得知了最重要的谜底,感觉上还是很爽的——而无论是原著还是游戏,都做到了这一点。 ![](https://pica.zhimg.com/v2-29dfe5392b5289ce30094df3ac6a7440_b.jpg) 悲しい時はそっと、口ずさむ唄があった 原著的第三部分首先呈现的,是一场惊人的大战。代表着人类力量和智慧结晶的终极兵器“独眼巨人”出场,以一骑当千的姿态和“云团”展开死战。结果不但失败,而且“独眼巨人”还被“云团”毁掉了心智,变成了一个无法控制,甚至会危及它原先主人的不安定因素。至此,人类的力量已经达到了上限,但还看不到有任何压制“云团”的可能。原著在这里借主角罗翰的视角展现出了舰上众人两种常见的心态——逃避和死斗,但紧接着又借舰长霍帕克和主角罗翰心照不宣的对谈揭示了更难能可贵的心态——承认人力的极限与宇宙的多样,但不放弃自己身为人所该有的良知。于是有了罗翰在放弃与“云团”继续对抗的同时,孤身一人出发去寻找瑞格纳小队剩余四人的壮举。 全书最后这一段罗翰独自走过的旅途大概就是游戏的灵感来源——在游戏里,主角明思娜大部分时候都在独自行走,尤其是第一和第二部分。但是书中对罗翰这段孤身犯险的救人之旅描写得相当克制,对罗翰心理活动的描写很少,这和游戏的呈现方式截然不同。但少数出现的心理描写还是非常直接地点明了全书的主旨,和作者想通过这本书表达的哲思。 如书中所写: <blockquote>“更重要的是,在这片完美的死寂之地,他觉得自己的存在根本没有必要,这里只有非生命体才能生存下来,以不可思议的方式活动,而这一切不为任何生命所见。片刻之前,他还曾置身其中,这非但不令他感到恐怖,反而让他在震惊中钦佩不已。他知道,没有哪个科学家能够与他感同身受,但现在,他不仅想以一位信使的身份,回去报道那些失踪者已经逝世的消息;还想作为一个人,要求不要再来打扰这颗星球。不是所有地方的一切事物都是为我们而存在的,他心里这样想着,一边慢慢往下坡方向走去。”——《无敌号·无敌》</blockquote> 游戏的第三部分可能是和原著差异最大的一部分。在这一部分中,和明思娜所属的“联邦”对立的组织“联盟”终于展现出了它的存在感。具体的表现是明思娜遭遇了“联盟”一边的工程师罗伊特拉,并被他胁持。面对这颗星球上唯一理智尚存的人类,明思娜对罗伊特拉的态度就能够折射出很多东西。是选择延续“联邦”和“联盟”的对立,坚决不与罗伊特拉合作甚至抱着非我族类其心必异的态度找机会干掉对方才能安心,还是在强大的共同敌人面前选择放下对立姑且合作,一起寻找渺茫的翻盘之策,又或者说服对方认清形势放下执念,求个平安撤离?一切选择都取决于刚经历了和队友生离死别,自己也死里逃生的明思娜,更取决于和她一起见证了这一切的你。 ![](https://pic3.zhimg.com/v2-e4231e0e4b84fc41d8dff9e9ce540dcc_b.jpg) 見上げてごらん、夜の星を 说实话,“联邦”和“联盟”两个组织的对立在游戏的剧情中并没有任何具体的表述,这就难免让人觉得加入这两个完全原创的对立组织有点画蛇添足。但考虑到这是个有选择与后果的游戏,一切似乎又可以理解了。 《无敌号》游戏在机制上和明思娜的形象刻画相搭配的,是这个游戏从头到尾极为密集的对话选择,和穿插其中的几个更加重要,会带来不同后果的选择——这个游戏是有选择与后果的,所以它虽然步行模拟器,但也不那么步行模拟器。它的选择与后果十分多样,有些选择能通过有文字提示的对话选项完成,有些则完全是看你具体做了什么。它的选择与后果也设计得非常隐蔽,完全看不出分歧点在哪,甚至哪些行为能带来后果,你能做出哪些行为都是不明确的。很多可能带来不同后果的行为都得看奖杯列表才能略知一二。 正是因为选择与后果的游戏机制以及多结局的设计,加入“联邦”和“联盟”这俩对立组织才有了意义。虽然在瑞吉斯三号上短时间内经历了不少事,但明思娜的想法究竟为何也还是不确定的。原著中罗翰那样的大彻大悟固然可喜,但目睹战友惨死,自己也不知能否活着离开的情况下冲冠一怒明知不可而为之,抱定主意玉石俱焚的人也不是没有。同理,选择放下对立的人自然有道理,选择孤独抗争的人也说得过去。加入“联盟”和罗伊特拉这个人物之后,游戏制作多分支剧情的空间就大了许多。罗伊特拉这个人物就像是原著读者心魔的具象。在原著里,领航员罗翰最终选择了尊重自然和宇宙,承认人类力量的极限,但包括我在内的读者都难免会想,是否真的如此,是否哪怕人类拿出玉石俱焚的决绝也无法毁灭对方。于是游戏给了你这个尝试的机会,让你可以选择发射核弹轰爆“云团”。如此一来,这个在原著中仅仅被暗示了的结局在游戏里,通过给予玩家亲手尝试的可能进一步强化了它摄人心魄的力量。 ![](https://pica.zhimg.com/v2-9d36fb826282053a7e132260241f6ece_b.jpg) 僕らのように、名もない星が 最后略为做个总结吧。 相比原著,游戏的主线剧情加入了“联邦”和“联盟”的两方对立,从而使得剧情的感情基调有了些许变化。原著没有这种因为两方对立而带来的勾心斗角,而是更为纯粹的,人性赞歌之上的宇宙狂想曲,不喜不悲,述而不作。在原著里,主角罗翰所代表的人类的勇气、意志和好奇与那全程毫无情绪变化,以万物刍狗之姿支配着那颗星球的“云团”产生了极为强烈的对比,突出了作者对宇宙万物一视同仁的“去人类中心主义”观点。在我看来,《无敌号》原著与其说是强调情节的科幻小说,倒不如说是和《阿特拉斯耸耸肩》类似的,为了表达作者哲学观点而配了个故事的作品。 但游戏的改编更突出了主角的经历,也使得整个剧情更多的是在描述一个普通人在这种极端环境中的情绪。在游戏剧情的三个部分里,第一部分主角在努力搜寻并营救自己的队友,第二阶段主角追寻着“敌对势力”的脚步发掘出了“云团”的真相,过程中借着敌对势力的遭遇,主角明思娜人性的一面也得到了着重刻画。到第三部分,游戏聚焦于明思娜人性一面的意图就更加明显——遇到罗伊特拉之后和罗伊特拉和种种互动以及最后选择怎样对待“云团”都体现出了这一点。不管明思娜最后做何选择,这情绪都不是无源之水——这情绪正是你作为玩家,跟着明思娜一路走来经历了种种事情之后的积累。 只是你最后的选择都伴随着后果,一如我们的现实生活。 ![](https://pic2.zhimg.com/v2-4a0cfef7953eecc83bc75bcc9a3871b7_b.jpg) ささやかな幸せを、祈ってる 来源:知乎 www.zhihu.com 作者:[护士衫下](http://www.zhihu.com/people/goshizanka?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-19 03:15:23 · 1次阅读
 
 
谈谈分布式锁

## 不要使用分布式锁 <!-- /wp:heading --><!-- wp:paragraph --> ![](https://www.raychase.net/wp-content/uploads/2024/09/lock-1024x766.jpg)就像Martin Fowler说的那样,“分布式调用的第一原则就是不要分布式”,谈分布式锁也要先说,不要使用分布式锁。原因很简单,分布式系统是软件系统中复杂的一种形式,而分布式锁是分布式系统中复杂的一种形式,没有必要的复杂性就不要引入。 <!-- /wp:paragraph --><!-- wp:paragraph --> 有的逻辑是没有副作用的(纯函数代码),那就可以无锁执行;有的数据经过合理的sharding之后,可以使用单线程(单节点)执行,那就单线程执行。 <!-- /wp:paragraph --><!-- wp:paragraph --> 比如一种常见的模式就是使用queue(比如Kafka),任务全部放到队列中,然后根据sharding的逻辑,不同的consumer来处理不同的任务,互相之间不会干扰冲突。 <!-- /wp:paragraph --><!-- wp:paragraph --> 还有一个例子是Kotlin Coroutine,通过指定一个单线程的dispatcher,也可以保证它执行的操作之间互相不会有多线程的冲突问题。 <!-- /wp:paragraph --><!-- wp:paragraph --> 有了这样的原则以后,再来谈谈几种分布式锁。 <!-- /wp:paragraph --><!-- wp:heading --> ## 数据库锁 <!-- /wp:heading --><!-- wp:paragraph --> 分布式系统中,我觉得我们最常见的锁就是使用一个中心数据库来做的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 一种是悲观锁,就是“select xxx ... for update”这样的,相应的数据行会被锁上,直到commit/rollback操作发生。如果被别人锁了,当前线程没得到锁的话就会等着。 <!-- /wp:paragraph --><!-- wp:paragraph --> 还有一种是乐观锁,就是使用版本号,“update ... where ... version=A”这样的。如果update成功,表示获取锁成功,并且操作也成功;否则就是update失败,需要重新获取状态再来操作一遍。 <!-- /wp:paragraph --><!-- wp:paragraph --> 大多数情况下,后者要更高效一些,因为阻塞的时间通常更短,不过在锁竞争比较激烈的情况下,反而效率会反过来。另外一个,悲观锁代码写起来会容易一些,因为select语句执行和commit/rollback是两步操作,因此二者之间可以放置任意逻辑;而乐观锁则是需要把数据的写操作和version的比较放在一条语句里面。 <!-- /wp:paragraph --><!-- wp:paragraph --> 这两种都很常见,基本上我接触过的一半以上的项目都用过两者。这个数据库不一定非得是关系数据库,但是强一致性必须是保证的。 <!-- /wp:paragraph --><!-- wp:heading --> ## S3 <!-- /wp:heading --><!-- wp:paragraph --> 使用S3来创建文件,让创建成功的节点得到锁,文件里面也可以放自定义的内容。我们去年的项目用到这个机制。这种方式是建立在S3 2020年12月1日,上线的[strong consistency的feature](https://aws.amazon.com/s3/consistency/)。 <!-- /wp:paragraph --><!-- wp:paragraph --> 大致上,有这样两种思路: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - 使用[S3 versioning](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html),就是说,在versioning打开的情况下,文件的写入不会有“覆盖”的情况发生,所有内容都会保留。在创建文件的时候,response种会有一个x-amz-version-id header。节点写入文件后,再list一下所有的version,默认这些version会根据创建的时间顺序递减排列,后创建的在前,因此比较其中最早的那个version和自己创建文件后得到的version,如果两者相等,说明自己得到了锁。 - 使用[S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html),这个可以控制让第一次写成功,后面的操作全部失败,所以第一次写入成功的节点得到锁。<!-- /wp:list --><!-- wp:paragraph --> 使用这种方式,对于那些本来就需要使用S3文件系统来共享任意信息的情况很方便,但是需要自己处理超时的问题,还有retention策略(该不该/什么时候删掉文件)。 <!-- /wp:paragraph --><!-- wp:heading --> ## Redlock <!-- /wp:heading --><!-- wp:paragraph --> Redlock就是Redis的锁机制。Martin Kleppmann(就是那个写《Design Data-Intensive Applications》的作者)几年前[写过一篇文章](https://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html),来吐槽Redlock在几种情况下是有问题的: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - Clock jump:Redlock依赖于物理时钟,而物理时钟有可能会跳(jump),并且这种状况是无法预测的。[Clock jump](https://linux.die.net/man/2/gettimeofday)就是说,始终会不断进行同步,而同步回来的时间,是有可能不等于当前时间的,那么系统就会设置当前时间到这个新同步回来的时间。在这种情况下,依赖于物理时间的锁逻辑(比如超时的判断等等)就是不正确的。 - Process pause:得到锁的节点,它的运行是有可能被阻塞的。比如GC,下面这个图说的就是这个情况——client 1一开始得到锁了,执行过程中有一个超长时间的pause,这个pause导致锁超时并被强制释放,client 2就得到锁了,之后client 1 GC结束,缓过来后恢复执行,它却并没有意识到,它的锁已经被剥夺了,于是client 1和client 2都得到了锁,对于数据的修改就会发生冲突。 - Network delay:其实原理和上面差不多,网络延迟+锁超时被强制剥夺和重分配的逻辑,在特定情况下就是不正确的。<!-- /wp:list --><!-- wp:image {"id":7675,"sizeSlug":"large","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-2-1024x368.png) <!-- /wp:image --><!-- wp:paragraph --> 问题可以理解,可是仔细想想这个问题的本质是什么?**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">它的本质其实就是消息延迟+重排序的问题,或者更本质地说,就是分布式系统不同节点保持consistency的问题</mark>**,因为lock service和client就是不同的节点,lock service认为之前的锁过期了,并重分配锁给了client 2,并且client 2也是这样认为的,可是client 1却不是,它在GC之后认为它还持有者锁呢。 <!-- /wp:paragraph --><!-- wp:paragraph --> 如果我们把数据的写操作和锁管理的操作彻底分开,这个问题就很难解决,因为两个节点不可能“一直”在通信,在不通信的时间段内,就可能会发生这种理解不一致的情况。但是如果我们把写操作和锁管理以某种方式联系上,那么这个问题还是可以被解决的。简单说,**<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">就是物理时钟不可靠,[逻辑时钟](/5768)可以解决这个问题</mark>**。 <!-- /wp:paragraph --><!-- wp:paragraph --> 之后Martin Kleppmann提出了解决方案,他的解决方案也就是按照这个思路进行的。他的方法很简单,就是在获取锁的时候,得到一个永远递增的token(可以被称作“fencing token”),在执行写操作的时候,必须带上这个token。如果storage看到了比当前token更小的token,那么那个写操作就要被丢弃掉。 <!-- /wp:paragraph --><!-- wp:image {"id":7674,"sizeSlug":"large","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image-1-1024x365.png) <!-- /wp:image --><!-- wp:heading --> ## Chubby <!-- /wp:heading --><!-- wp:paragraph --> Chubby是Google的分布式锁系统,论文在[这里](https://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf)可以找到,还有这个[胶片](https://www2.cs.uic.edu/~brents/cs494-cdcs/slides/thegooglechubbylockservice.pdf),对于进一步理解论文很有帮助。从时间上看,它是比较早的。 <!-- /wp:paragraph --><!-- wp:paragraph --> Chubby被设计成用于粗粒度的(coarse-grained)锁需求,而非细粒度(fine-grained,比如几秒钟以内的)的锁需求。对于这样一个系统,文中开始就提到consistency和availablity重要性要大过performance,后面再次提到首要目标包括reliability,能够应对较多数量的clients,和易于理解的语义,而吞吐量和存储容量被列在了第二位。 <!-- /wp:paragraph --><!-- wp:paragraph --> Chubby暴露一个文件系统接口,每一个文件或者文件夹都可以视作一个读写锁,文件系统和Unix的设计思路一致,包括命名、权限等等的设计都是基于它。这是一个很有意思的设计。 <!-- /wp:paragraph --><!-- wp:paragraph --> 对于一致性的达成,它使用Paxos,客户端寻找master和写数据都使用quorum的机制,保证写的时候大部分节点成功,而读的时候则是至少成功读取大部分节点(R+W&gt;N,这个思路最早我记得是Dynamo的论文里面[有写](/2396));如果lock有了变化,它还提供有通知机制,因为poll的成本太高。 <!-- /wp:paragraph --><!-- wp:paragraph --> 内部实现上面,每一个Chubby的cell都是由作为replica的5个服务节点组成,它们使用Paxos来选举master和达成一致,读写都只在master上进行(这个看起来还是挺奢侈的,一个干活,四个看戏)。如果master挂掉了,在master lease过了以后,会重新选举。Client根据DNS的解析,会访问到该cell里面的某一个节点,它不一定是master,但是它会告知谁是master。 <!-- /wp:paragraph --><!-- wp:paragraph --> **<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">分布式锁里面比较难处理的问题不是失败,而是无响应或者响应慢的超时问题</mark>**。Chubby采用一种租约的机制,在租约期内,不会轻易变动当前的master节点决定。在响应超时的时期,客户端的策略就是“不轻举妄动”,耐心等待一段时间等服务端恢复,再不行才宣告失败: <!-- /wp:paragraph --><!-- wp:image {"id":7672,"sizeSlug":"full","linkDestination":"none"} --> ![](https://www.raychase.net/wp-content/uploads/2024/09/image.png) <!-- /wp:image --><!-- wp:paragraph --> 这个图的大致意思是,第一次租约C1续订没有问题;第二次租约续订C2了之后,原来的master挂了,心跳请求无响应,这种情况客户端不清楚服务端的状况,就比较难处理,于是它只能暂时先阻塞所有的操作,等到C2过期了之后,有一个grace period;接着再grace period之内,新的master被选举出来了,心跳就恢复了,之后租约续订的C3顺利进行。 <!-- /wp:paragraph --><!-- wp:paragraph --> 这显然是一个异常情形,但是一旦这种情况发生,系统是被block住的,会有非常大的延迟问题。思考一下,这种情况其实就是从原来的master到新的master转换的选举和交接期间,锁服务是“暂停”的。再进一步,这个事情的本质,其实就是在分布式系统中,CAP原理告诉我们,为了保证Consistency和Partition Tolerance,这里的情形下牺牲掉了Availability;同时,为了保证consistency,很难去兼顾performance(latency和throughput)。 <!-- /wp:paragraph --><!-- wp:paragraph --> 此外,有一个有点反直觉的设计是,Chubby客户端是设计有缓存的。通常来讲,我们设计一个锁机制,第一印象就是使用缓存会带来复杂性,因为缓存会带来一致性的难题。不过它的解决办法是,使用租约。在租约期内,服务端的锁数据不可以被修改,如果要修改,那么就要同步阻塞操作通知所有的客户端,以让缓存全部失效(如果联系不上客户端那就要等过期了)。很多分布式系统都是采用poll的方案——一堆client去poll一个核心服务(资源),但是Chubby彻底反过来了,其中一个原因也是低throughput的考虑,毕竟只有一个master在干活。 <!-- /wp:paragraph --><!-- wp:paragraph --> 对于前面提到的Martin Kleppmann谈到的那个问题,Chubby给了两个解决方法: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - 一个是锁延迟,就是说,如果一切正常,那么持有锁的客户端在释放掉锁之后,另外的客户端可以立即获取锁。但是如果出现超时等等异常,这个锁必须被空置一段时间才可以被分配。这个方法可以降低这个问题出现的概率,但是不能彻底规避问题。 - 第二个就是使用序列号了,对于写入操作来说,如果请求携带的序列号要小于前一次写入的序列号,那就丢弃请求,返回失败。<!-- /wp:list --><!-- wp:paragraph --> 回过头思考Chubby的实现机制,我觉得有这样几个启发: <!-- /wp:paragraph --><!-- wp:list {"ordered":true} --> - 不要相信任何“人”(节点),必须询问到多数人(quorum),多数人的结论才可以认为是正确的。这个方式发生在很多操作上,比如寻找master,比如选举master,比如写数据。 - 超时是很难处理的,它采用了租约的机制保证节点丢失时间的上限,使用grace period来容忍master选举发生的时延,使用序列号来保证正确性。<!-- /wp:list -->

2024-09-18 23:33:44 · 1次阅读
 
 
我裸辞了

我裸辞了。 <!-- /wp:paragraph --><!-- wp:html --> 工作差不多十六年了,从来没有以离职后休假的方式休息过。今年还是比较特别的,我做了很多新的尝试,想改变一下自己,包括这最近发生的一件事情。事情发生得很快,我辞职了,在作为engineer加入Doordash一年零十个月后。 <!-- /wp:html --><!-- wp:paragraph --> 记录一下。 <!-- /wp:paragraph --><!-- wp:heading --> ## 原因 <!-- /wp:heading --><!-- wp:paragraph --> 我不是在二十岁的年纪,做决定容易缺乏思考,其实,我已经想了这件事情好久了。在这期间,我也和不同的朋友和同事讨论过,他们有的还在Doordash,而有的也已经离开了。说起来,大致有三个原因: <!-- /wp:paragraph --><!-- wp:paragraph --> 第一个,是兴趣的不匹配。 <!-- /wp:paragraph --><!-- wp:paragraph --> ![](https://www.raychase.net/wp-content/uploads/2024/09/quit-1024x683.jpg)郭德纲说过,如果你每天做的事情是你喜欢做的,那就是老天爷赏饭吃。这样的情况只在少数人身上发生,而我大致就是这样的少数人——不能说每天如此,但是在我职业生涯八成以上的时间,我工作做的事情,恰恰就是我喜欢做的。不过,今年我从一个做平台的Gateway组换到了一个做产品的Order组,我察觉到情况有了变化,这里面原因有些复杂,但明确的是,impact是有,但做这个产品工程师并不是我所喜欢的。回头想起来,过往一直都是一个platform engineer,这算是我第一次做product engineer,也许这个角色并不适合我。 <!-- /wp:paragraph --><!-- wp:paragraph --> 兴趣,其实是一个复杂的事情。但是匹配还是不匹配,却是可以直接感受到的。有兴趣的时候,我会感觉充满热情,也不太容易感觉疲倦,做事情都很有动力,工作就是一件快乐的事情;没有兴趣的时候,依然会努力做好工作,但这些特点都不在了。 <!-- /wp:paragraph --><!-- wp:paragraph --> 第二个,是对于职业生涯有了进一步的思考。 <!-- /wp:paragraph --><!-- wp:paragraph --> 我想停下来,休息一下,整理一下,总结自己的经验、技能,想一想之后应该做些什么。一方面是作为individual contributor,我觉得在进一步发展上,我遇到了瓶颈;另一方面,则是看到当前的工作内容和和团队文化,对我进一步在职业生涯的道路上进一步前进不利。 <!-- /wp:paragraph --><!-- wp:paragraph --> 今年有点特殊,我换了一个team,最近几个月,我在做一个也许工作两三年的engineer也可以做的事情,重要程度很高,可是我自己擅长的技能和经验,却没有足够的施展空间。我注意到,这个团队需要解决很多知识迷局的问题,这些问题涵盖了大量的复杂逻辑和业务流程,这些都不是困难的技术问题,而是说,每个新来人都需要较长时间的onboarding,我倒是不排斥这个,但这种情况下,我的背景就没有太大优势了。我和我的老板也聊过,没有任何责怪的意思,但是我能看得到的是,和报酬无关,和impact无关,但和自我价值的实现相关。 <!-- /wp:paragraph --><!-- wp:paragraph --> 最后一个,则是大多数人离开的时候,说的work life balance。 <!-- /wp:paragraph --><!-- wp:paragraph --> 我不是一个能把生活和工作分得很开的人,我看到自己的生活被工作侵蚀得太严重,尤其是当我看到团队中的role model,每天长时间在线,被迫忽视所谓的下班时间,一直响应各种问题,你可以说这就是“卷”,但无论如何,我觉得这对我来说不是一个可持续发展的方向。 <!-- /wp:paragraph --><!-- wp:paragraph --> 事实上,这是一个团队整体的情况,而不是个人的情况。我注意到,无论是讨论、询问,还是争辩,在这里大家都似乎太忙了,无论是谁抛出一个问题,因为太忙了,大家都更倾向于专注于自己的事情,而不是热心地解答。对于incident handling,经常要面对长时间的加班和压抑的氛围。一张一弛,文武之道,可以忙一阵、闲一阵。如果一直非常忙,这就一定是有问题的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 而忙碌给我带来的影响并不是只有时间上的。其实,每天晚上我也能挤出时间来做一些自己列表上的事情,但问题在于,白天高强度的工作把我的精力消耗光了,不但是咖啡当水喝,有时候甚至连午饭也没有机会吃。这种情况下,到了下班以后,大脑就不想运转了,只想做一些简单的劳动,比如刷短视频,看短新闻,根本不想做其它消耗脑力的事情,比如看书。这些与我的来说,是非常不健康的。 <!-- /wp:paragraph --><!-- wp:paragraph --> 这些事情,更和公司的文化相关。我在离开前,也评估了换一个组而非离职的可能性。但是对于这一点,其实并不能很好地解决。于是我想,既然这个方向与我而言是有明确问题的,那为什么不换一个公司,人生那么短暂,职业生涯那么短暂,没有必要在这个地方吊着。 <!-- /wp:paragraph --><!-- wp:paragraph --> 于是,上周五是我的最后一天。 <!-- /wp:paragraph --><!-- wp:heading --> ## 计划 <!-- /wp:heading --><!-- wp:paragraph --> 那接下去的计划呢? <!-- /wp:paragraph --><!-- wp:paragraph --> 第一步,我打算休息几周,把某些身体健康问题处理一下,做一做体检,解决幽门螺旋杆菌感染的问题,解决牙齿的问题等等;看几本书,基本都是之前找借口没时间看的书;多陪陪家人,和孩子多玩一玩,也找机会出去溜达溜达;放松一下,和心理医生多聊聊,采取措施去努力纠正心理的健康问题;规划适合自己的生活方式,目标能够平衡生活、运动、休息、学习和工作;再把职业生涯的下一步想清楚,而现在,对此我只有个模糊的概念。 <!-- /wp:paragraph --><!-- wp:paragraph --> 第二步,接着几周,则是回顾和总结我所具备的软硬技能。每个人都会积累经验,不过一定时间以后需要总结一下,否则很多经验只是茶壶里的饺子倒不出来,有个朦胧的回忆,但无法在实际中快速落地变成好的想法和观点。近期,我也会多写一些blog,弥补之前错过太多的遗憾,以技术文章为主。 <!-- /wp:paragraph --><!-- wp:paragraph --> 第三步,才是job hunting。现在我有公司、团队和职位类型等等大致的目标,但是快到那时,可能会有不一样的想法,但我一定还是IC。通常来说,到年底工作机会往往不太多,所以我做了心理建设,预期这有可能会花费较长时间。 <!-- /wp:paragraph --><!-- wp:paragraph --> 所以现阶段,我根本不想考虑任何和过往工作有关的事情。 <!-- /wp:paragraph --><!-- wp:heading --> ## 思考 <!-- /wp:heading --><!-- wp:paragraph --> 没有遗憾么? <!-- /wp:paragraph --><!-- wp:paragraph --> 我总体来说确实是个患得患失的人,但我一直想改变自己,并且今年也做出了不少改变,至少我觉得现在更能拿得起放得下。遗憾也许会有,但是这不会影响我当前做决定。我在短期内会失去还挺不错的收入,而离开的Doordash其实依然是一家我看好的高速成长的企业,我会继续拿着少量它的股票,并且,现在的就业市场也说不上好。 <!-- /wp:paragraph --><!-- wp:paragraph --> 尤其是就业市场这一条,我想,软件工程师这个职业,因为加息、AI等等原因,应该比较难回到疫情初期2020年那种状态了,那个企业时候借贷成本低,大幅扩招,市场有些疯狂,小红书上一堆其它专业“转码上岸”的程序员。市场经济就是如此,但是,长期来看这依然是个朝阳行业。据我了解,现在的就业市场比去年有所改善,但可以说依然不太好,不过,事实就是没有什么是完美的,追求完美也容易走入难以行动的误区,反而做出更糟的选择。 <!-- /wp:paragraph --><!-- wp:paragraph --> 做出决定前思考足够深入吗? <!-- /wp:paragraph --><!-- wp:paragraph --> 这是一个很难回答的问题,一方面很难评估是不是已经做了足够的思考;另一方面,敢于做决定也是我努力在提高的一件事情,尤其要避免对于完美的追求,不要惧怕失败,追求完美只会让自己失去机会。 <!-- /wp:paragraph --><!-- wp:paragraph --> 不过,可以确认的是,这件事情我思考很久了,今年大概三、四月份就萌发了这样的念头,所以,这不是一个仓促的决定。我和朋友同事聊过不少,包括那些在今年离开的,他们都有很有意思的近况,有找到新的、更理想的工作,有依然在旅行和休息的,还有已经启动创业项目了的。我得到了很多好的点子,这让我对于下一份工作之前,有了更多的憧憬。 <!-- /wp:paragraph --><!-- wp:paragraph --> 关于Doordash这家公司,我还是长期保持正面观点的。外卖平台和配送的行业,虽说在我看来肯定谈不上是一个好生意,因为它的门槛低,护城河不硬核,可回想在美的十年间,多少外卖平台零零散散地萌芽、成长、衰落,连巨头亚马逊都尝试过,但是最终也是止损放弃,但是从未有一家公司做这样的生意,能像Doordash一样能够做到这样出色的营收和市占率。有的公司是做好生意,但是管理层离谱;有的则是生意难做,但是管理层的决策总是很靠谱,Doordash就是后者。 <!-- /wp:paragraph --><!-- wp:heading --> ## 感受 <!-- /wp:heading --><!-- wp:paragraph --> 在离职前两周,我请了一周的假和家人去了趟夏威夷,接着就是离职前一周比较轻的工作,再到上周五正式离开之后,到今天,已经在那之后休息了接近一周。这段时间我直观的感受是反差鲜明的,我觉得自己放松、从容多了,这更加佐证了一件事情,那就是,无论自己曾经怎么认为,以往工作就是带来了较大的压力,足以明显影响生活的压力。 <!-- /wp:paragraph --><!-- wp:paragraph --> 对于就业市场,虽然我还远没有开始找工作,但是根据被recruitor“骚扰”的频率来看,尤其是从小公司雇主来看,现在比2022年中下旬我上一次换工作要好了很多,在如今宏观经济的这个阶段,利率高企,消费减弱,没有办法去期望和最疯狂的疫情初期相比,但是已经要比前两年好不少。 <!-- /wp:paragraph --><!-- wp:paragraph --> 前面已经谈到,今年我在努力改变自己,在离职以后,虽然只有一周,但是已经开始看到一些不错的迹象,比如每天的精力比以前好多了,白天时间充满了能量,不再需要那么多咖啡。还有一些事情,在我的列表上,一件一件去做,继续观察能不能让自己变得更好。 <!-- /wp:paragraph --><!-- wp:paragraph --> 我喜欢一个说法,大致是说,有两种人生追求,第一种是“简历美德”,第二种是“悼词美德”。第一种是可以写在简历上的,自己的事业成就等等便是如此;而第二种,是在追悼会上说的,都是人的品行和为人等等。我觉得人的一生,就是一个把重心从对追求简历美德逐步过渡到悼词美德的过程。在我当前这个阶段,我觉得工作依然是生活的重心之一,但是未来它的比例应该下降,需要考虑多一点为人处世等其它方面,双修自己的美德。 <!-- /wp:paragraph --><!-- wp:paragraph --> 就记录这么多吧。 <!-- /wp:paragraph -->

2024-09-16 03:10:45 · 1次阅读
 
 
大众对攀岩运动有哪些误解?

其实作为一个刚刚兴起的运动,攀岩逐渐进入了大家的视线。但是大家在对这个刺激有好玩的运动感到好奇的同时,也产生了不少误解。这些误解或多或少地影响和阻碍了攀岩运动更好地发展,或者有的严重的会影响到接触攀岩的岩友们的安全和健康。下面我们从大众对攀岩运动的认知和岩友训练攀爬上的误区,两个层面讲一下: ## 对于攀岩认知层面误区: ### 1. 最大的误区没有之一:攀岩都是Free Solo ![](https://picx.zhimg.com/v2-37555bbc15fde55db7d9c84a6053b423_720w.jpeg?source=b1748391?rss) 首先,最大最大的,在社会上流传的误区,没有之一,就是:“攀岩都是Free Solo。” 因为很多人都听说我攀岩,所以我在各种社交场合,比如同事聚餐或者家庭聚会都会被搭话问到一个问题:“你们用绳子吗?”包括我每次出去爬,妈也会问。我往往会很无奈又好笑地简单回答:“会啊,我又不是去送死的。” 我相信这个理念或者刻板印象的来源很大一部分来源于大家接触过的一部电影- 《Free Solo》。这部又金国威导演的纪录片讲述了主角攀岩运动员Alex Honnold怎么样在没有保护的情况下完成徒手攀登高900多米的著名单体花岗岩岩壁-酋长岩的故事。这部影片呢,在2019年,也拿下了第91届奥斯卡最佳纪录长片的奖项。其实这里要很感谢这部电影,在当年上映的时候,名声大噪。把攀岩这项运动破圈了出去,让更多人知道了这个运动,对于后来攀岩入奥和传播有着不可磨灭的影响。但是!这部电影也间接地给人产生了一种-攀岩都是free solo的错觉或者说误区。虽然具体这些从事过free solo的人群在攀岩当中比例没有完全的统计也很难统计,但是业界估计是小于1%的,而且经常从事或者追求free solo的人我敢肯定还要少一个数量级。 ### 2. 一切攀岩都是风险很高的 其实但部分我们平时接触的攀岩都是有保护措施的,而不同的攀岩类型也通过不同保护方式进行分类。我经常会碰到一些对攀岩接触不深的朋友问我:“攀岩危险吗?” 或者一些刚刚从事攀岩的朋友一提到要爬有安全绳保护的高墙就会用“感觉很危险”做借口。(其实就是恐高啦)虽然我为了方便,会回答他们“很安全。” 但其实要回答这个问题绝对不能一概而论,因为根据保护方式和线路环境区分的不同攀岩类型,他们的风险是不一样的。接下来我就通过不同的攀岩的分类来区分他们的风险程度,也同时介绍一下他们。 **非常安全** **抱石** ![](https://picx.zhimg.com/v2-83ae561b78ce26ce0a9fcbc63d76a12b_720w.webp?source=b1748391?rss) 抱石就是在比较矮的岩壁上攀爬,不用绳子和安全带,通常抱石问题会比较难或者需要技术。主要就是练技术和力量。一般高度不超过4-5米。抱石保护依靠厚厚的抱石垫(Crash Pads)来减轻摔下来的冲击力,再加上几个一起攀岩朋友(Spotters)在旁边看着,帮你引导摔下来的方向,避免伤到头或者背。 ![](https://picx.zhimg.com/v2-0abd1498024dfcf67f47cb0319baa4e5_720w.jpeg?source=b1748391?rss) -室内抱石可能是最安全的攀岩方式,只要你知道如何正确落地,并且确保没有人在你下方就行。室外抱石在合理高度内、有足够的防护垫和保护人员的情况下也是安全的。 **顶绳攀岩** ![](https://picx.zhimg.com/v2-062db4d24d9b5eee6fa47558a835535d_720w.jpeg?source=b1748391?rss) 顶绳攀岩会先把绳子挂在岩壁顶上,攀岩者一端,保护者另一端用有制动能力的保护器像(ATC或者Grigri)进行保护。这样即使掉下来也不会掉得太远。这个是很多人入门的攀岩方式。 - 顶绳攀岩的主要风险在于刚开始挂绳索的过程中掉落(这种在室内几乎不可能),或者非常糟糕的保护操作,通常是对保护器使用不当造成的。当然,通常来说室内攀岩比室外攀岩更安全。 **_中等安全_** **运动攀岩** ![](https://picx.zhimg.com/v2-387c35dd803ea2e2ca284715359ad20e_720w.jpeg?source=b1748391?rss) 运动攀岩是领攀(或者叫先锋攀)的一种,攀岩者一边爬一边把绳子挂到岩壁上预先装好的螺栓或者挂片上,主要考验的是体力和技巧。攀爬者用快挂(Quickdraw)把绳子挂到螺栓上。保护者在下面用保护器控制绳子,因为有可能会掉下来,所以保护者得时刻保持警觉。在从顶端下来时也要小心,注意绳子的使用。 - 在领攀时,你很可能会发生。(如果你没有冲坠过,那说明你还不够努力!)只要路线之间的挂片距离不太远,保护者能力过关,你就不太可能有严重的受伤。在从路线顶端下撤时要特别小心。 **深水独攀、抱石** ![](https://picx.zhimg.com/v2-4816a2455e4b71c067de1c89729681ad_720w.webp?source=b1748391?rss) 深水独攀是指在悬崖上攀爬,没有绳子和装备,但下方有深水做保护。掉下来就掉水里,类似跳水的感觉。(夏天玩很爽) - 显然,这个取决于具体情况。不过大多数人不会在离水面20米高的地方独攀,所以相对比较安全。主要风险在于意外掉落及水下的潜在危险。而且最好会游泳,水性不好的话需要穿救生衣~ **中等危险** **传统攀岩(Trad Climbing)** ![](https://picx.zhimg.com/v2-d78c198879ebf4ae6952e398f2deb5e9_720w.jpeg?source=b1748391?rss) 传统攀岩没有固定的保护点,攀岩者自己在岩缝里插各种保护装备(像机械塞Cam和岩塞Nut)来防止掉落。这种攀岩需要自己设置和取下所有保护设备。 - 有一些人包括我进行传统攀岩,但它确实比运动攀岩更危险。在领攀坠落时,机械塞或楔形塞脱落的几率要比快挂或螺栓脱落的几率高得多。所以每个攀爬者要确保这些装备放得足够好,因为坠落时它们得承受住拉力。保护者也得时刻关注攀岩者的状态,及时调整保护方式。 **大岩壁和多段攀岩** ![](https://pica.zhimg.com/v2-2f70b3f57edc62df0154fc0d102f7dca_720w.jpeg?source=b1748391?rss) 这种攀岩在非常高的大岩壁上进行,往往需要好几天才能完成。每一段攀登后要建立一个休息和保护点,接着继续爬下一段。大岩壁需要带很多保护装备和露营装备(比如悬挂睡袋)。在岩壁上设置锚点和绳索保护,团队成员之间要沟通好,确保每一步都安全。因为离地面远,救援难度大,得做好应对各种突发状况的准备。当然,大岩壁现在也会分为:器械攀登、传统攀登、运动攀。个人认为运动攀多段会相对安全一点。 - 离文明和救援越远,风险就越高。天气、落石和暴露情况可能瞬间发生。在普通岩壁坠落可能只会骨折,而从大岩壁坠落几乎肯定会翘辫子。 **非常危险** **高球抱石** ![](https://picx.zhimg.com/v2-181cd19bcd24713b71c0a2d5af834d77_720w.webp?source=b1748391?rss) 这种抱石攀岩高度一般超过10米,非常危险,因为摔下来的距离和冲击力太大了。保护的方式还是用抱石垫和保护者,但高度太高时,保护者的作用有限,主要是心理支持。摔下来时,保护者只能尽量引导你的摔落姿势。 - 户外抱石在10米以上非常危险。保护者可能会抓住你的头部,但也仅此而已。有些高抱我认为就是free solo。 **无保护独攀** - free solo ![](https://picx.zhimg.com/v2-629cc91f3cc6cea66197b8bf9b0e8cb9_720w.jpg?source=b1748391?rss) - 没有绳索的攀爬。掉下去基本上就嘎啦。独攀者通常会先仔细研究路线,多次练习,确保万无一失。有趣的一点是(好吧,可能不有趣,很阴间):很多厉害的但是挂了的free solo家都不是在挑战极限线路甚至free solo时候死掉的。比如 Dean Potter玩跳伞死的。 ### 下降 ![](https://picx.zhimg.com/v2-bd0312b88e7f0988d06f628479e682c6_720w.jpeg?source=b1748391?rss) 实际上,就跟登山一个道理,许多攀岩事故发生在下降过程中。这可能是因为攀岩者急于回到地面,或者攀岩者处于“取消保护”状态或脱离绳索时的短暂疏忽。也可能是因为我们过于专注于到达顶点而忽视了下降。所以大家爬完线路也不能疏忽大意。 关于攀登类运动的分类和历史想要了解的朋友可以听一下我的一集播客: [岩之有李-入门系列EP01-攀登运动分类、特点与发展史](//link.zhihu.com/?target=https%3A//www.xiaoyuzhoufm.com/episodes/646b2c326752b5f9decbcb08) ### 数据层面 因为国内行业才进入发展初期,数据很少。所以这边我们看一下发展时间较长的北美的数据。 据国际攀岩联合会的数据显示,全球有2500万人定期进行攀岩。而美国户外产业协会的2018年户外参与报告显示,2017年有500万人在室内攀岩,210万人参加运动攀岩,250万人参与传统攀岩、冰攀或登山(不同攀岩类型之间可能有重叠)。 在北美,大约500万定期攀岩的人中,每年大概只有30起攀岩死亡事故,这个数据说明攀岩的死亡率非常非常低。对于一些更安全的攀岩方式,比如运动攀岩、抱石和室内攀岩,风险会更低。尽管哪怕只有一次死亡事故都是很遗憾的,特别是在攀岩这种紧密的小圈子里,但这种事发生的概率其实是非常低的。 ![](https://picx.zhimg.com/v2-1d8d9370f2e40ac7abaa52e6e0580c09_720w.webp?source=b1748391?rss) **攀岩和其他活动相比有多危险?** 我们来对比一下另一项在公众眼中有着“危险”名声的活动——跳伞。根据美国跳伞协会的数据,跳伞的死亡率大概是每300万次跳伞中有20起。这跟攀岩的情况差不多,但总体上还是非常低的。虽然这些数据没有严格的可比性,但2017年美国的交通事故死亡率为每10万人中有11.4起。可以说,攀岩要比开车安全很多,大家外出攀岩和回来的路上应该更加小心啊。 总的来说,每种攀岩方式的风险和保护措施都不一样,从非常安全的室内抱石到极其危险的自由独攀。选择哪种方式取决于你的技术水平和对风险的承受能力。不管选择哪种攀岩方式,安全都是最重要的,大家攀岩前要做好充分的准备和了解,对攀岩去魅啊! ### 3. 室内竞技攀岩和野外攀岩是一样的 当接触一段时间的攀岩后,大部分人会有想要去野外攀爬的向往。但是呢大部分刚体验过野外外岩壁的人会很不适应。这主要的原因是他们可能想当然的以为野外攀岩和室内攀岩的要求是一样的,可是接触了之后才发现两者之间有着天差地别。 ### 保护方面: **顶绳**:首先我们在岩馆接触最多的应该就是顶绳攀爬了,因为人造攀岩墙背后往往都有楼梯,上去设置和清除(一般不清除)顶绳是很简单的。在野外就是另外一回事了,天然存在的顶绳会有,但是数量很少,大部分都需要先先锋上去。而且需要从岩壁后方或者侧面通过接近线路走上去设置。期间可能需要scramble,做一些简单攀爬。设置锚点的时候在悬崖边上也需要格外小心。那么在保护过程中,有很多注意事项跟岩馆的攀爬很不一样。比如说,很多野外线路线长会比较长,有的甚至能达到35-40m,是岩馆线路的两倍还多。所以普通动力绳会有很多的延展,很多地方不能当作是岩馆攀爬那样,力竭就直接take,因为不会形成有效的保护。本人就碰到过长线顶绳(26m左右),起步有一个难点,我beta做错了,没有意识到绳长就直接往后一坐,结果一屁股坐到了地上。索性没有什么大碍,但是运气不好的话,这种情况很容易受伤。 ![](https://pic1.zhimg.com/v2-bef12739cfc81ba53a8ae0c826ce1e26_720w.jpg?source=b1748391?rss) 再者,不像岩馆线路都是提前定好的,起点往往在锚点正下方。野外线路自然形成,可能会有很多横移段,导致起点和锚点水平距离太远。如果攀爬中途掉了, 攀爬者会有很多水平摆荡,但是经常在岩馆爬的岩友可能意识不到这种情况,导致意外的发生。 **先锋**:在野外最多的其实还是先锋攀。因为室内没有传统保护的攀爬,所以我们在下面以运动攀做对比。那么很多刚学习先锋的岩友都是在室内岩馆学习的,刚刚进入野外环境就会碰到一些问题。其中最多的就是两个问题:根据攀爬者下方情况给绳和做适当的延展。 首先第一点,因为岩馆定线是人为控制的,所以不会有明显的障碍物在攀爬者下方。但是野外线路会有很多情况是,攀爬者下方会有突出的岩石、平台或者岩脊,所以很考验保护员给绳的技术。他要么给比较少绳,让攀爬者不碰到障碍物,要么就是给多一点绳,直接让攀爬者掉过障碍物。这点就和岩馆攀爬基本固定给绳的操作相差甚远。 ![](https://picx.zhimg.com/v2-73bc8fc650ae700f54ba2958ae7ad1a2_720w.png?source=b1748391?rss) 第二点就是,因为上面提到过的野外线路会有很多横移、长线或者有拐角。导致很多情况如果不做延长块挂,到后面可能卡绳导致攀爬困难。这种感觉本人碰到过,十分蛋疼。而且,这种拐角、岩脊在特定的角度可能会造成磨绳、割绳,为了最大程度规避风险。做延长也是很必要的。 **抱石**:在野外的抱石也比在岩馆里讲究很多。首先,不像在岩馆有大面积的抱石垫,野外往往只有自己带的几块垫子。所以有时候需要根据攀爬者的位置,动态移动保护垫,让它一直在攀爬者下方。第二在野外,因为地面不平,攀爬者有可能掉进抱石垫中间的缝隙,造成伤害。最后一点,在野外爬仰角比较大的线路,或者很高的抱石问题,有一个保护着(spotter)来辅助矫正攀爬者的掉落姿势或者防止他掉出抱石垫,导致受伤。 ### 攀爬能力要求 耐力:首先,上面提到了野外有很多20-40m的长线,而在岩馆里面大多数墙体在17-20米的高度,虽然会有超高墙体,比如上海的天宇,但是大部分岩友不会在这种长度训练。而且天然的线路不会标注岩点(有时候可以看粉印),这样还需要花很多时间在找合适的点上面,更加增加了耐力上的要求。所以很多人初期在野外的感受大部分都是耐力不够,小臂很容易酸。所以做好心理准备和充分的耐力训练会有一定的帮助。但还是“绝知此事要躬行”,多在野外爬,就会增加你对于这类线路的耐力。 手点:在这一方面,还是因为天然形成的原因,很多时候自然岩壁的手点往往会比较小,或者说不规则,导致没有很舒服的部分。那么经常在室内岩馆攀爬的小伙伴会习惯了特定的岩点造型,导致对这些点的控制能力大大下降。 ![](https://pic1.zhimg.com/v2-6b9011b5ae3b0c942fe2143484d9c3f0_720w.webp?source=b1748391?rss) 脚点:跟手点几乎一样的原因,很多野外线路的脚点很小,可能会有很多选择(对于低难度的线路),但是很多选择具有欺骗性,看上去很大很好但是不一定。还有一点是野外,低难度的线路,有很多Slab,也就是平衡线,然而很多人在岩馆训练的时候很容易忽略平衡线的攀爬,可能因为觉得无聊,或者觉得很难。但是到了野外,他们没有什么选择的余地,低难度的线多多少少会有平衡段,所以会爬的十分困难,对心态产生影响。 心态:那么说到心态,其实最容易被人忽略,也可能是最重要的一环。怎么说呢,据我观察下来,在岩馆“长大的孩子”,很容易有的一个问题就是会不够耐心,容易放弃。但是攀岩这个运动,特别是自然岩壁攀岩,它的本质就是和失败或者说熵做斗争。那种登顶之后内心的狂喜只能建立在无数次的失败、挣扎和尝试之上。室内的岩壁,大家可以有很多选择,这个线路不行就尝试一下另外一个,今天不行就明天来。但是野外线路的攀爬和攻坚是需要,不断尝试和持之以恒的。大概率你不能找到每个动作都适合你的线路,而且又的地方的风格可能完全不适合你。线路难度可能也不是覆盖的很完全。可能一条10b之后只有12a了,你没有那么多选择。而且接近有时也会耗费很多力气精力,你并不大可能每天都在那边练习。能不能完成一条很难的线路有时候就是看一个人的耐心。当然这个往深里讨论是一个哲学问题,跟一个人的价值取向有关,我就不深入讨论了。但是我想说的是,我个人每次去外面爬,我都会做好今天上面线路都可能完不成或者起码不能干净地(不休息,take)完成。我会更注重攀爬本身。动作有没有做好,休息合理吗,这些因素。 ### 环境因素 天气:这个因素当然是室内完全不会触及的。这里的天气可能当天的天气变化,也可能是指一个岩壁周边某一段时间气候对它造成的影响。前者很容易理解,去岩场之前看好“岩场”的天气预报,做好相应的准备,尽量避开极端天气就行。但是后者很容易被忽略。比如说有些时候,当天没有下雨,但是最近天气很潮湿,或者之前几天山上下过雨。那么岩壁还是会很潮湿,甚至会渗水出来,给很多线路的攀爬造成困扰,甚至完全不能攀爬。这一方面就比较考验户外知识和对岩场的了解了。 接近性:很多岩场都不是在交通的周边的,有的往往需要徒步很长的时间。而且徒步路段的技术难度也要考虑在内。比如说我之前去加州的Tahquitz攀爬一个6段的多段,本身那个线路在5.9的难度(传统5.9),理论上来说应该没那么累。但是当天爬下来之后我可以说是体能枯竭了。重要的一个原因就是它的接近和下撤又臭又长。到岩壁之前,有40min-1hr的徒步爬升路段,路虽然还可以,但是爬升有三四百米。爬之前就消耗一些体力了。然后下撤,是垂直三百多米的岩石坡,很多碎石和石板路段,加上来的路要90分钟左右的下撤。 加上那边海拔差不多2000m虽然不高,但是我两天爬了两条多段,疲劳渐渐累积起来,导致我回来的时候脚后跟发生了滑囊炎。 落石:最后一点讲一下,落石和爆点。这些其实在野外应该说非常常见的,但是在岩馆爬习惯的朋友出去可能会略掉这一点。天然形成的岩石有时在应力或者过高负载的作用下,就会形成断裂,从而爆点造成落石。这种情况,大部分时间对于在下方的保护员最危险。那么我们需要做到,如果意外爆点要第一时间大声提醒落石;如果是观察到了有松动的手点或者岩石造型先判断大小,如果很大或者会影响到保护点安全,就不要动它快速且小心通过;如果点很小,而且无法避免使用,那么可以主动清理岩点,并且告知保护员可能产生的落石,让他做好避让准备。 ![](https://picx.zhimg.com/v2-7cc7b42cb9ec61eaf8b72589fd7405f7_720w.png?source=b1748391?rss) ### 岩馆攀爬一定安全吗? 那么说到这里我一直都在说野外攀岩有哪些注意事项和风险,那么大家伙儿肯定会觉得那室内肯定很安全吧。其实这个还真不一定,尽管室内攀岩变量和风险往往比较小,但是缺乏安全意识和对自己的保护是非常要不得的,也可能会导致很严重的后果。例如在室内抱石,下落的姿势需要非常注意。怎么控制身体,避免让头和四肢单独接触地面确实是有一些技巧的,需要花时间练习。而且现在很多比赛风格的线路也会要求在比较高的地方做动态或者协调动作,那么下落的时候也要格外当心,提前找好一个spotter或许是不错的选择。在高墙攀爬的时候,在岩馆有时候会找不认识的人联系(不是很建议),那么了解对方的能力和资质也十分重要,以避免发生因为器械操作不当引起的事故。还有一点是针对自动保护器的,因为爬自动保的时候没有搭档帮你检查,安全全靠自己,有时候爬累了或者注意力全在线路上面的时候,很容易忽略一些细节。国内外都发生过因为自动保护器没有入锁扣,或者安装不当引起的事故。这里分享一个案例,本人曾经也在工厂“救“过一位独自攀爬的岩友。当时她一个人在爬自动保,因为正好保护器在拐角的另一面墙上,她就鬼使神差地在没有保护的情况下爬了上去。起初,我们旁观者以为她在试起步的动作,但是当她越爬越高的时候我们尝试呼唤她下来,但是她头戴耳机攀爬听不见。然后我只能走到岩壁下方用力敲打岩板,引起她的注意。(这个行为值得商榷,但是我当时认为最快速的处理方式就是这个了)好在她注意到了,那个线难度也不大,位置也不高。最后她还是安全的倒攀了下来,没有受伤。但是这个案例值得大家深思! ![](https://pic1.zhimg.com/v2-2c7cef7db1fe3a1f3cf0255d460069bd_720w.jpeg?source=b1748391?rss) ## 训练和攀爬上面的误区 上面我们讲的比较多的是大部分刚刚接触攀岩或者还没接触攀岩的人,在认知层面可能会有的一些误区。下面我们来讲一下,已经接触攀岩,想让深入训练从而爬的更好的朋友可能会陷入的一些误区。 ### 1.攀岩只用上肢,不用脚 我感觉自从攀岩了以后,经常听到一个问题:“我做几个引体向上可以开始攀岩?”我相信很多岩友都听到过这种提问。其实简单一点的回答是:“不需要做一个,就可以开始攀岩。”这个逻辑就相当于问:“我要纵跳多高才能开始打篮球?“一样,这个两个本来就是不同东西。尽管我认为,攀岩确实是对基础的运动素质有一定要求的,但是大部分人都能达到,并且尝试开始这项运动。可能因为很多人接触攀岩的时候会看各种大神的“单手引体、单指悬挂”的网络视频,给大家造成一种上肢力量很好才能攀岩的错觉。但是这个逻辑关系是反过来的。因为他们要到那个水平,从事的训练和花的时间导致了他们上肢力量好。而不是他们上肢力量很好了以后才开始攀岩的。那么我自己总结了上肢力量在攀爬中的关系是这样的:上肢力量对你攀爬能力是有帮助和促进作用,但是难度越高或者力量却强会越呈现边际效应递减。而且过度依赖上肢力量会很容易让攀爬者陷入瓶颈。 为什么这么说呢?首先因为在攀岩中手点的形状、大小、摩擦力各不相同。你往往需要在指尖承受整个身体的重力。所以你单纯的传统上肢力量好(背肌、肩部、手臂),并不能传递力量到手指尖。经常会进入一个有力无处使的尴尬境地。而手指的专项力量需要日积月累地针对训练,并不是一朝一夕可以达到的。再者,有人会说“那我直接练指力练的很好”。OK,那假设你真的靠训练把指力练的很强。但是你忽视别的部分,比如脚法、身体位置、核心、攀爬动作优化,导致你一直疯狂爬线就是拉引体。然后你V9的指力和上肢力量,但是只能爬V4。不会觉得很亏吗?反正我是会的。而且爬难度线的时候会让问题更明显,因为牵扯到更多耐力方面。所以我认为力量训练是辅助攀爬的一个工具,怎么样爬的更好才是我们追求的目标。 ![](https://pica.zhimg.com/v2-6a1e92fd7229f735a3f61320fe829b1d_720w.jpeg?source=b1748391?rss) ### 2.死命爬就会变强 OK,那么承接上面一段,很多人会觉得:“那我就一直死命地爬。天天去岩馆爬线路。是不是这样就会变强?” 那我觉得答案是:在初期阶段,是会这样。但是当你攀爬到一定难度就会遇到一个瓶颈期,然后攀爬能力停滞不前或者进步缓慢。为什么会这样?我大概归纳了几点原因:力量不足、攀爬动作优化不够、过度训练。 首先,我前面虽然阐明了力量或者上肢力量不是最重要的因素,但是随着难度的上升,有时是不可或缺的。而且这边力量也可以是用来稳定身体的核心力量,腿部的支撑或者勾挂脚的力量,等等。在攀岩的初期呢,因为动作相对比较简单和单一,只是做大量的攀爬是可以帮助到力量和技巧的提升,但是随着攀爬的线路难度上涨,动作越来越复杂,而你的能力增长也会因为身体的适应而减缓,慢慢地你就会进入一个瓶颈期。还有就是高难度线路可能单步动作会超出生理的极限,但是在设定好的线路上没有办法做减阻训练,所以你光爬的话,这个动作基本永远完不成。什么意思?用人话说就是,地上有个100斤的哑铃,而你最大能力是90斤,那你天天去拉,花再多个小时,也不可能把它拉起来。你只能做减阻抗的训练,做很多80斤和90斤的组,然后提高你的最大能力。攀岩的情况也一样,所以到了瓶颈期,就需要做科学和针对性的训练计划来提升攀爬能力了,而不是一味的攀爬。那关于更多为什么和新人怎么做攀岩的专项训练,我在自己的播客里面有见到过,我在这边就不赘述了。我会把链接放在下面,感兴趣的自行食用。 ![](https://picx.zhimg.com/v2-2b7fa05a294206f2c437d8fa34389e57_720w.png?source=b1748391?rss) [岩之有李-EP06-与资深攀岩教练章鱼老师的访谈](//link.zhihu.com/?target=http%3A//%25E2%2580%258Bwww.xiaoyuzhoufm.com/episodes/666e2bedc26e396a360c673a) ### 3.你需要一个教练一直指导你爬线 那么接下来很多人会问:“哦,那是不是要请一个教练指导我训练和攀爬呢?” 我个人觉得,大部分情况其实不需要。除非以下两种情况:1. 你刚接触攀岩,没什么运动基础,对于动作的理解和复制能力很差。2.你有特定的目标和计划需要,比如说:要过一条难线、一年内要爬两位数抱石或者要加强slab能力,等等。这里的原因主要是首先,第一种情况,因为你运动经验少,对自体感知能力较弱。有时候跟着别人做动作,或者在有经验朋友的指导下攀爬也不能很好的领悟动作或者形成肌肉记忆。自己做力量训练也无从下手。那么有一个教练帮你仔细地,分步骤地解析动作,然后指导你会是收益比较大的选择。那么如果很多运动能力很好的人,在一开始接触攀岩,爬简单线的时候。其实通过对别人的模仿啊、岩友指导啊或者自己摸索一下都能差不多地解锁大部分动作,请一个教练可能受益不会很大。第二种情况是因为,你有一个确定的目标,但是这个目标在没有系统规划或者专业指导的情况下很难达到,那请个教练就理所当然了。(其实有最后一种情况是,你现在是个小孩,要走职业道路。那还是要找的。)我知道,很多小白,或者爬了一段时间的岩友都会在某些岩馆接收到一些课程的推销,但是在上课之前我觉得大家应该考虑好自身的情况和需求,再下这个决定。 ### 4.难度是一个固定的数字 我们现在国内主要用的两套攀岩等级系统是:难度的优胜美地系统和抱石的V- grade等级。难度是从5.0开始,小数点后每加一个数字就代表难度提升一个级别。那么到了5.10开始,后面会有a、b、c、d四个字母细分难度,依次变难。抱石原理也是一样。从V 0(有些地方有V Easy)开始随着数字增长,难度变大。刚开始攀岩的朋友可能会陷入这个误区,认死理:觉得我在一个地方可以爬V3-V4,那么我一定可以也应该在别的地方发挥一样的水平。但是这些难度并不是一成不变的。首先我们看一下原理: 攀岩的难度是通过共识确定的。 首攀者,或首攀团队,可以获得第一个定级的机会。 在那之后,其他几位攀登者通常也会在完成后重新评估。 最终,达成共识。 我们怎么知道它实际上有多难? 我们不知道,给定路线的难度对每个攀登者来说似乎都不一样。 所以由此可见,不同地区、不同岩馆、不同岩场,它们的定级都会有很大的主观性,会根据定线员或者开线员的风格、优势、习惯发生浮动。包括我们社群里也经常会讨论欧美的岩馆比亚洲岩馆定级软这个问题,也是牵扯到定级的主观性。所以说难度只是一个参考,并不是一个绝对的标准。这就也提醒我们要保持谦虚的心态来攀爬,多尝试不同的线路,综合下来估计自己的水平。 那么关于各种攀岩定级是怎么发源的,又有什么具体意义,我也做过一集博客聊过。感兴趣的朋友可以看我下方的链接,而且我也会附上一张不同难度转换的图表作为参考: [入门系列EP02-攀登运动的各种等级和术语](//link.zhihu.com/?target=https%3A//www.xiaoyuzhoufm.com/episodes/647ee8c75ed4bd1a46321fcb) ![](https://picx.zhimg.com/v2-e3a4f81cea469e0c112355d47c3973ad_720w.jpeg?source=b1748391?rss) ### 5.臂展、身高长的就有优势 不知什么时候,在攀岩社群中流传着这样一种论调:每当个子高大的攀爬者完成一条线路的时候,总有人会说:“哇,你臂展好长。你好高,一下就摸到了,不公平。” 但是事实是这样吗?好吧,确实在一些简单的线路上,可能很高的身高或者优秀的臂展可以让你在某些时候爬的更省了、跳几个点或者发现一些奇奇怪怪的解决方案。但这是因为简单线的点的方向,或者发力的方式是比较单一的。你往往只需要做向下用力的动作,所以手长脚长确实在这些动作模式里面会有一些帮助。可是进入高难度的一些线路是,要求动作库就会多种多样。很多动作,比如反提、侧拉、反肩等等或者像折膝、高脚的一些动作,其实对于高个子来说是更加不方便和难以完成的。而短小精悍的攀爬者可能在这些情况下反而会觉得游刃有余。 ![](https://picx.zhimg.com/v2-2dc137ca1f5e811591963fd91db056d9_720w.jpeg?source=b1748391?rss) ### 6.攀爬需要跟别人比较 ![](https://picx.zhimg.com/v2-9db21d4e33d82db6397b616d7df5d0f6_720w.jpeg?source=b1748391?rss) 其实上面的一点会引申出,今天我要讲的最后一点。上面我讲的这个现象最根本的原因还是攀爬的时候,攀爬会拿自己跟别人做对比。只有你做比较的时候,你才会觉得别人身高有优势、臂展有优势,那有没有可能别人就是比你好。首先很多人经常不愿意承认这一点。再者,爬的比你好那又怎么样呢?总会有人比你好,比你高,比你有力;也会有人比你差,比你矮,比你弱。我也经常看到或者被问到一些问题类似于:“你认为在攀岩里,努力训练更重要还是天赋更重要?”我往往会想一下,然后反问他:“你认为这个问题很重要吗?” 是的,说实话,我根本不觉得这个问题对大部分人有任何意义。因为大概率现实情况是,你既不是最有天赋的,也不会是最努力的那一个。因为其中哪一种人都不会问这个问题。但是这个其实也不重要。因为说到底,攀岩虽然现在有竞技比赛,但是它终究还是一项极其个人化的运动。你攀岩的时候是你自己和自己重力,和自己的恐惧,和自己的身体做抗争。然而每一次的多发一次力,多尝试一次,多做一个对自己负责任的决定。你都战胜或者说超越了之前的自己,每一次攀爬过后,你都是一个新的你,充满了更多的可能性。也许这就是我喜欢攀岩的原因之一吧,现代环境已经掺杂了太多有型或者无形的竞争了,我希望我和你爬的时候能更加专注自己,和自己说说话。 来源:知乎 www.zhihu.com 作者:[李瀚容](http://www.zhihu.com/people/lian-rong-56-95?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)此问题还有 [23 个回答,查看全部。](http://www.zhihu.com/question/666094054/answer/3625626684?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) 延伸阅读:[攀岩运动前的热身活动有哪些?](http://www.zhihu.com/question/590388907?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title) [攀岩运动前的热身动作有哪些?](http://www.zhihu.com/question/581786644?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=title)

2024-09-15 00:17:07 · 1次阅读
 
 
清华计算机入学教育之“关于如何做科研的一些个人经验”

最近开学季,被抓来给研究生新生们做个关于“如何做研究的”的入学教育报告。会后大家希望发 ppt,但里面暴论太多必须得加些备注叠叠甲,所以花了点时间补充了下备注。再然后想着写都写了,干脆也不敝帚自珍了发出来让大家一起拍拍砖。 需要特别申明一下的是,虽然是入学教育但是**全篇都是个人主观的、不成熟的、偏颇的意见,不一定适合所有方向,不可能适合所有个人,所以内容仅供参考**。特别清华本身大师这么多,之所以是我被抓来给小朋友们讲这么大的题目自然不可能是因为我做的有多好。主要还是因为我和新生们的水平贴的比较近,适合起到一个抛砖引玉的作用。另外就是我个人的经历的确也比较&lt;del/&gt;成分复杂&lt;/del&gt;丰富,各种各样的方向都干过一点,所以一定程度上也可以和全系很多方向的同学都能聊得上一点。 ![](https://pic4.zhimg.com/v2-9416910cd15a6ebaf26d98e9abcf3f63_b.jpg) 言归正传,虽然首先要恭喜一下大家正式入学,走上了&lt;del/&gt;听上去非常光荣的&lt;/del&gt;研究之路。不过这里还是需要提醒一下大家实际上这是一条荆棘之路。考验的不只是大家“灵光一闪”的智力迸发强度,更多的还是耐力甚至是心力的投入。大部分的时间是在“熬”的状态,所以大家还是需要劳逸结合,保持心态和身体上的健康。 ![](https://picx.zhimg.com/v2-5306473a72512fcb722bce6d98cded61_b.jpg) 当然为了大家熬的能轻松一点,这里提供一些基本的思路。毕竟在很大程度上来说“搞研究”这事情中还是有不少有迹可循的经验的。具体分为三个方面,首先从“术”开始,提供一些关于如何读论文,做研究,再到写论文的基本方法。接着是关于如何规划一整个博士生涯的大方向上的思路。最后则是灌点鸡汤。 ![](https://pic3.zhimg.com/v2-4db61ec4e5b3445ea2f315215e8afcb2_b.jpg) ## **循序渐进的读论文 ** 读论文作为一切的开始,相信大家未来会经历很多次向导师/学长提出某个问题,然后反手被甩回十几篇论文的情况。这里推荐一种从单篇论文的略读,到一整个系列工作的对比阅读,最后到一整个领域的面上 survey + 按需精读的策略。 ![](https://pic2.zhimg.com/v2-319891213bb74d620e441c6340f012d9_b.jpg) 而单篇论文略读的思路,如果需要用**一个字来总结的话就是“快”**,需要通过不断地锻炼提升自己抓住论文重点的能力。在现在这个论文数量泛滥,arxiv 一天能刷出几十篇论文的时代这项能力尤其重要。 ![](https://pica.zhimg.com/v2-07e04845ba6860a3ac86a67740adad70_b.jpg) 当然我也理解关于速度上的要求应该也是和大家当前状态差别最大的地方。我早期和同学交流的时候经常一下甩出去十几篇论文,然后三天后问看的怎么样,回答基本上都是第一篇还没看完。但其实一个理想的节奏因该是第一篇迅速的每篇半小时都过一遍,然后第二天找几篇觉得和当前目标相关性比较大三篇早中晚各读一篇,然后再花一天时间查漏补缺一下,顺带按照自己的理解做做笔记啥的。 为了达成这样的速度首先的前提是对领域本身的熟悉,不然 background 就要花掉不少的时间,这部分属于自然而然就能越读越快的部分。在此之外需要注意的就是把握论文的结构。稍后会提到,论文写作本身是一种八股,有经验的作者会有意识地将重点放在明显的地方,所以只要把握了这个结构本身就能快速定位到关键点。 ![](https://pic1.zhimg.com/v2-674c8fcbfc3ca1cda9d9137e7fa9b2ec_b.jpg) 这里推荐在略读阶段着重注意关注三个方面: 首先是场景,也就是这篇论文针对的是一个什么样的问题中的哪一个具体的方面。这个问题是不是一个真问题,是不是你关心的问题,这些是需要首先判断的,可以用来快速排除掉不需要细读的论文。同时也可以基于这个对论文进行分类,不同类别的论文有不同的读法和应该关注的重点。 一类是所谓的“挖坑”论文,也就是作者提出了一种或大或小的新场景。比如我是系统方向的,我们这边经常会因为某一种新硬件技术的出现带来大规模的新坑。这是因为新的硬件会带来不同的 tradeoff。这一类论文特别是新场景的第一篇论文很多时候解决问题的方法是比较直接的,所以对于它们需要重点学习作者是如何“立住”一个新的场景。可能是通过对某些新应用或者新硬件的特征分析,可能是通过某些统计调研数据,也可能是通过一两个精彩的代表案例阐述。这些都是为了证明这个新场景为什么是重要的,为什么是值得大家关注的。相关素材和论证思路都很值得在后续要延续做这个场景或者自己去立一个新场景时使用。 另外一类则是“填坑”的论文,这个时候就需要重点关注作者如何定义新的“挑战”和对应的解决方法。这里和初学者重点关注方法不同,我个人建议更加关注“挑战”。在很多时候方法都是老方法,在搞明白挑战问题为何之后方法是水到渠成自然而然出现的。当然这完全不是意味着说这样的论文不好,反而的确很多时候提出问题比解决问题要重要得多。同时对于这一类问题也可以重点思考这些经典方法各自的适用场景和 tradeoff。 这个就和游戏一样,这些经典方法的熟悉就是在丰富你的武器库,熟悉了就可以在不同的场景下基于不同的数据或者环境特征去组合使用。当然比较少见的你会看到一些天才般的新方法被提出。对于这一类论文可以重点关注,他们相当于让你多了一把后续可用的武器。 最后就是论文的实验部分,这里的重点是反向会去验证这些实验的构造是不是真的对应了论文最开始描述的场景。以及论文到底着重对比了哪些前人工作,具体比的维度又是什么。这一部分我们在稍后比较读中会展开。当然其实更重要的部分是发现测试中作者有意无意选取的 bias 和弱化或者隐藏的部分。当然这个需要一些经验来习得。 当然这个时候有同学就要问了:“说好的略读去哪了,这不是整篇论文都读了吗?”这里就需要再强调一下,论文是一种结构化很强的八股文,熟悉这种结构之后带着上述的问题去读就可以做到比较快速的跳着读找到这些重点。具体结构我们会在稍后“写论文”的部分提到。 ![](https://pic4.zhimg.com/v2-774681a99faf569d16abbe0e6b1741e1_b.jpg) 当然在现在这个时代不要可避免的一个问题是要不要用 AI 帮忙读论文。 这里我个人的意见是 AI 读论文最适合的两个场景一个是帮助总结一下快速排除掉一些不值得读的论文,另一个则是在自己读完之后让 AI 给你去提一些问题看看你自己能不能会答得上来。后者就是所谓的“AI辅助费曼学习法”,面对各种各样杂七杂八的问题能不能快速的回答上来是考验都没读懂的关键。 相对的,如果是判断值得读的论文还是建议自己去读一下。因为行文的过程中其实有“微言大义”,特别是老派的作者从具体措辞上能够读出很多他们的隐藏褒贬,这一类的信息 AI 目前还读不出来。 ![](https://pic1.zhimg.com/v2-fdb1d4860447f09640d3f8811089fe6a_b.jpg) 在完成单篇论文的略读之后进一步的就可以将多篇递进的论文串起来进行对比阅读。通过这个环节重点是学习如何发现一篇论文的局限性。 虽然在论文写作过程中作者会通过文过饰非的手段弱化这些局限性,但是后来引用和比较他们的论文就会更加直接的挑出来进行对比。这里建议画一张图分别用点和边表示论文自己的声称以及后文对这些声称的回应,多看看大概就能知道怎么找问题了。 ![](https://pic3.zhimg.com/v2-c761760018d2518fda3924a7adb0a2ce_b.jpg) 更进一步的就可以做一整个领域的调研。这里推荐低年级可以先看看比如 CSUR 这样的专门做 survey 的期刊。 从中重点可以学习它们是如何结构化的将一个领域按照细分领域,使用手段,递进关系等进行划分的“Taxonomy”部分。同时也可以关注 survey 作者对于不同论文适用范围和递进关系的分析。 ![](https://pic4.zhimg.com/v2-7f81859e5b0cb28b7529937fa1f264f9_b.jpg) 当然作为一个领域其中必然也有一些经典的,或者和你想要做的方向最相关的论文是需要精读的。但其实精读是一个比较有误导性的词,因为如果只是读的话是很难了解清楚一项工作的。这里需要的是进一步的尝试去复现这个工作。 很多时候一开始的复现会发现很多的实验结果不一致的地方,同时也可以自己去做一些更多的原文没有覆盖的实验。这些实验的过程中会发现很多实际的结果和理论分析不一致的地方,比如原则上算下来觉得应该有个 200GBps 的带宽实际一侧发现连 50GBps 都没有。只有通过观察分析和解决这样的所谓“分析和现实间的断裂处”才能真正的掌握。 ![](https://pic2.zhimg.com/v2-4f70103df63a428181621500679c5f05_b.jpg) 不过这样的话精读花的时间也会很多,只能读有限的几篇论文。这个在当前数量爆炸的时代是比较困难的。这方面怎么挑选大家需要各自找自己的导师和同学来了解,他们都清楚。 ## **找一个点开始做** ![](https://pic2.zhimg.com/v2-26acb2a180a461a88be64f796d4fa68d_b.jpg) 以上就是读论文方面的一些基本方法。完成一整个领域的调研之后就可以开始尝试找个点自己做做了。 这里可以考虑尝试一种“棋盘法”,也就是将所在的领域的子领域按照行,经典方法按照列化成一个棋盘然后把对应论文填进去寻找空白比较大的区域。事实上我自己的第一篇工作就是这么找出来的。当时我调研的领域是 Concurrency Bug 调研后发现主要有三类然后其中 Order Violation 大家关注的比较少,特别是它比较适合基于历史 trace 去检测正好有没有人基于这个思路去做它所以就选了这个 topic。 ![](https://pic3.zhimg.com/v2-90afdf6630eb261afb227d03bb5781ee_b.jpg) 找好点之后就需要开始做了,而这基本上就是煎熬的开始。而且有一点需要提醒大家的是一开始找到的点和实际最后做完发表的点有非常大的概率是不一样的。大家不用担心走入死胡同,不断地调整不断地尝试终归有出路。 比如我刚刚说的 Order Violation 这个出发点实际上一上来就被质疑说覆盖面太小(其实这也是棋盘法的一个明显的缺点,没人做的方向一般都是有原因的),所以我就尝试泛化了这个思路拓展到整个 Concurrency Bug 领域。接着被质疑创新性不够(棋盘法的第二大缺点,毕竟是排列组合),然后我调转了视角从做检测改成了之前很少有工作能做的做预防。再接着就是性能不够好,痛定思痛之下彻底重写一遍才最终中稿。 整个历程被拒了五次还是六次,从大四毕设就开始做,一直做到博二才最终发表,其间辛苦不足以为外人道。 当然这里可以先灌点鸡汤。这篇论文虽然历尽坎坷但是最后拿到了 A 类会议的杰出论文奖,成为了后来系里的安慰同学收到拒稿不要气馁地经典传奇小故事。另外也推荐大家去读读 PhD Grind 这篇我读书时非常有名的小册子,品一品标题中“Grind”的意思。 ## **做完了把它写出来 ** ![](https://pica.zhimg.com/v2-1d1c196e3aeb4e17dfeec39da3c714fa_b.jpg) 做完之后需要的就是把论文写出来!要写出来了的论文才可以被接受!因为重要的事情需要说三遍所以再强调一遍如果单纯考虑提升中稿概率的话,好好写论文某种意义上比好好做实验还要更加关键! 写论文这部分最大的问题就是所有的初学者都会把论文写成技术报告的形式。这里面的核心区别点在于“技术报告”假设对方想要了解你的技术,想要钻研其中的细节。而论文是一个“贩卖故事”的过程,首先你得卖得出去。所以需要仔细的考虑行文的方式,安排悬念和故事性,尽可能引人入胜地让人读下去。 千万不要当 reviewer 提出某个问题后振振有词的回答说“我在第 X 章第 X 节第 X 段的第 X 句话其实写了,他没看到而已”。如果目标是论文中稿的话没有在显眼的地方让 reviewer “略读”你的论文的时候就看到就是你的问题。 ![](https://pica.zhimg.com/v2-a7cea88eaa6f4e5a5f424ee29e6d360c_b.jpg) ![](https://pic3.zhimg.com/v2-add854203c4bc8ebafea88faa2b4905e_b.jpg) 不过好在论文作为一种经历上百年发展的标准文体,存在很多类似于八股的结构。 这里只是给出我自己比较常用(当然每次都会有所调整)的结构。当然这种八股仅供参考,不同领域也有很多种不同的写法。通过学习自己领域的论文自己总结一套写的顺手的更为重要。 ![](https://pic4.zhimg.com/v2-074c195492c7ec8564669ba3972afea5_b.jpg) 再多强调一点的话就是人是视觉动物所以话好看的图对于论文也非常重要。 这里推荐近期看到的几个好的例子供参考,比如 MInference 这个即便你不做 MLSys 这个方向,也能很直观的感觉到它的方法大概就是三种模式的组合,同时有很好的效果。 这样的展示就是好的展示。另外需要注意的是画图的目的是“清晰”的表达观点,不是去画花里胡哨信息量极端密集没法看的图。如果图自身没有足够的“自明”性,需要复杂的解释才能看明白的话,其实一定程度上就已经削弱了图的作用。 ![](https://pic2.zhimg.com/v2-0417ff49d08624980daca924f391c0f3_b.jpg) 当然再次作为当前时代绕不过去的一个话题就是要不要用大模型帮忙写论文。对此我个人实践下来 AI 在帮助写地道的英语方面是有非常大的好处的,可以极大地提升写作速度。 但是!但是逻辑部分,行文脉络的安排部分,如何做到前后呼应轻重有次的部分还是需要人自己来思考,不然产出的论文绝对就是一篇通篇废话的平庸“技术报告”。而且也需要不断地修改迭代才行。所以至少你需要知道什么样的论文是好的论文,需要多读好的论文培养自己的“审美”能力。 ## **循序渐进做研究** ![](https://picx.zhimg.com/v2-0ee98e778a58317f1848cfc32db07793_b.jpg) 以上是一些技术性的开展思路。 关于整个博士生涯的规划个人主要是有三个建议。首先是第一个工作无论什么样的都行,重点是快速的完成一次完整的学术锻炼。这个世界上有这么多的论文不是因为有这么多的突破在发生,单纯是因为有这么多的博士要毕业而已。 但是能够完成一篇论文绝对对自己的信息收集调研能力,逻辑思维能力,推动工作往前到收束的能力,总结提炼的能力都有非常大的锻炼。重点是越快越好。如果只是练手工作的话画上一年以上显然并不是划得来的。 ![](https://pic4.zhimg.com/v2-5cc6a702767a88cfac4111e5efcd846b_b.jpg) 在经过一次完整的锻炼之后大家就可以有更多的余裕去仔细思考自己真正感兴趣的方向是什么。 博士的历程是很煎熬的,如果不做点自己真的感兴趣的事情的话很容易陷入虚无,不知道自己到底为啥要这么苦逼的在这里熬。也希望大家都能产出自己认可的工作,可以发自内心的在内心喊出“我做的玩意这么酷!根本不需要有毛用!”这句话。当然要是真的特别有用也是另外一个维度下非常好的工作。 ![](https://pic1.zhimg.com/v2-c2066e8d692a7a6e78d20f141c8e3d2a_b.jpg) 再之后如果大家选定了方向,比起东一榔头西一棒槌的做工作,更加能建立影响力的思路其实反而是不断地深挖一个方向。其实别看我最开始介绍的时候拿自己好多方向都做过来吹,实际上反思下来这反而是我走的一段弯路。能够慢慢的从低到上的 build 一个领域在很多时候会有更大的锻炼和收获。 ![](https://pica.zhimg.com/v2-798e400742739525304866f89a4185f8_b.jpg) 而走上这条路之后大家也会发现,实际想要建设一个领域面临着茫茫多的落地难题。这个时候基本上就不会再愁没有点可做,而是哀叹时间和智商不够搞不出来或者搞不完。 ![](https://pica.zhimg.com/v2-bb122453baecc78ed41ce7ad68582420_b.jpg) 同时在论文之外就还可以进一步的考虑做一些其他维度的有影响力的工作。 不过像是开源项目这一类的其实更难,相对来说反而是发论文的前置依赖比较小,爬坡难度也比较平缓。 ## 最后的鸡汤 ![](https://pic2.zhimg.com/v2-793114aa1a842d642c69f0c65beec58d_b.jpg) 以上就是这次分享的主要内容。宣扬了不少苦难,不过最后为了加强大家的动力还是需要灌点鸡汤。 这图很多人都看过了,虽然是老鸡汤但是是经典的好鸡汤,越熬越香那种。 ![](https://pic3.zhimg.com/v2-92617edd6b7076507765a6637c6d633a_b.jpg) 另外也不用太担心自己很煎熬,其实大家都在熬。但是能有机会有时间做一些好的工作还是非常值得的。 同时也不是说博士是啥那么独一无二的了不起的东西,世界上还有很多东西值得去探索。 最后祝大家研究顺利! 来源:知乎 www.zhihu.com 作者:[ZHANG Mingxing](http://www.zhihu.com/people/james0zan?utm_campaign=rss&amp;utm_medium=rss&amp;utm_source=rss&amp;utm_content=author) 【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。 [点击下载](http://daily.zhihu.com?utm_source=rssyanwenzi&amp;utm_campaign=tuijian&amp;utm_medium=rssnormal)

2024-09-12 06:40:32 · 1次阅读
 
 
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858