第 1 章

计算中心第六层的夜

第1章 计算中心第六层的夜

帕基特诺夫把最后一根烟抽到过滤嘴边缘,在铁皮烟灰缸里捻灭。电子管显示器的绿色荧光映在他脸上,Electronika 60终端的风扇嗡嗡作响,像一只困在铁壳里的飞蛾。桌上的烟灰缸已经满了。

他抬手看表:凌晨两点十七分。走廊尽头的终端室里只有他一个人,穿孔纸带从墙上的挂钩垂下来,像一卷卷没拆封的档案。外面是莫斯科六月的夜,但六楼没有窗——计算中心的设计者不信任自然光。荧光灯管在天花板上发出持续的嗡鸣,与终端风扇形成一种单调的双音。这间屋子里的每一件东西都属于国家:桌子、椅子、电灯、计算机,甚至他此刻呼出的空气。

他对此并无怨言,因为他从未想象过另一种可能。他的手边放着一本翻旧了的书,封面上印着《数学娱乐与谜题》,马丁·加德纳著,1978年美国版。这本书是两年前一位同事从某个国际会议上带回来的,在计算中心的几个程序员之间传阅了一个多月才轮到他。

加德纳在书中用整整一章介绍了五格骨牌——由五个单位正方形连接而成的十二种不同图形,可以拼合出各种几何形状。帕基特诺夫在莫斯科航空学院读书时就迷上了这类拼图问题。他的数学训练告诉他,最有趣的东西往往藏在最简单的约束条件里:给定十二块骨牌,把它们放进一个矩形盒子,可能的排列方式是一个天文数字。这种组合爆炸让他着迷——不是因为它通向某个明确的答案,而是因为它制造了一种可控的无限。

但那本书讨论的是桌面上的拼图。骨牌平放在二维平面上,玩家有充足的时间旋转每一块,寻找它们之间的吻合关系。帕基特诺夫想的是另一回事:如果把拼图搬进重力场会怎样?如果骨牌不是平放的,而是从上方掉下来的,人脑还能处理同样速度的空间旋转吗?

这不是一个商业问题,甚至不是一个游戏设计问题。这是一个认知实验的起点。

他在键盘上敲了几行命令,调出自己已经写了几个星期的程序。屏幕亮起来,字符模式下出现一个空白的矩形区域——那是用句号和空格拼出来的井,宽十格,高二十格。

他没有图形界面。Electronika 60没有像素,没有色彩,没有鼠标。它的输出设备是一台单色文本显示器,只能显示ASCII字符集里的字母、数字和标点符号。帕基特诺夫用方括号拼出方块——两个左方括号并排,就是一块完整的四格方块。他用尖括号和方括号区分不同的旋转状态。这不是图形,这是字符构成的抽象符号。但在他的大脑里,这些符号已经在空间中旋转了。

他最初的想法是直接复制五格骨牌的十二种形状。但很快他就意识到一个问题:五格骨牌太复杂了。十二种形状,每种最多可以旋转出八个不同方向——Electronika 60的处理能力跟不上。这机器的主频不到一兆赫,内存以千字节计。在文本模式下让十二种形状实时下落,屏幕上只会剩下一片闪烁的混乱。

他做了那个决定性的简化:把五格砍成四格。五个正方形可以组成十二种不同图形,四个正方形只能组成七种——I、O、T、S、Z、L、J。七种形状,每种四个旋转状态,总共二十八个变化。

这个数字刚好落在人脑可以实时处理的边界上:足够多变,不会让人觉得重复;足够有限,不会让认知过载。帕基特诺夫后来对人说,这个简化是直觉性的——他没有做过人因测试,没有用户数据,没有A/B实验。他只是凭一个数学家的嗅觉判断,四格骨牌的复杂度正好处于简单与复杂之间那根最细的线上。这不是一个可以论证的决定。但正是这个决定,在日后让俄罗斯方块跨越了每一种文化边界。

七种形状不需要语言、不需要文化背景、不需要任何先验知识。一个从未见过计算机的人,在看到第一块方块下落的那一刻,就已经理解了全部规则。

他把第一块骨牌放下去。方括号拼成的方块从屏幕顶端出现,一格一格向下移动。他敲击空格键让它旋转——方括号变成了尖括号,尖括号变成了倒置的尖括号。方块落到井底,停住。第二块出现。然后第三块。到第七块的时候,井里堆满了错位的骨牌,顶部被堵死。游戏结束。

他坐在那里,盯着屏幕看了很长时间。游戏结束了——这是一个前所未有的概念。

Electronika 60上的程序绝大多数没有结束状态。它们要么是计算工具,输入数据、输出结果、返回命令提示符;要么是数据处理程序,读入一批穿孔纸带、写出一批穿孔纸带。一个程序拥有自己的内部状态,并且这个状态可以以一种不可逆的方式走向终结——这在苏联科学院的计算中心里是罕见的。

帕基特诺夫不是在设计一个产品。他是在构建一个封闭的逻辑系统,这个系统有自己的规则、自己的失败条件、自己的内在戏剧性。

他重新启动程序。这一次他试图控制节奏:先填满底部,留出空隙,等待长条形的I骨牌出现,一次性消除四行。I骨牌没有来。来的是一连串S和Z,它们互相咬合,在井壁上留下锯齿状的缺口。他不得不把T塞进一个缝隙里,但缝隙太窄,T旋转了九十度还是卡在半空。又堵死了。

第三次,他找到了感觉。他学会了提前为I骨牌预留一条垂直通道——在井的右侧留出一列空格,其他骨牌全部靠左堆放。当I骨牌终于出现时,它笔直地落入那条通道,一次性消除四行。

屏幕上的字符闪烁了一下,堆积的方块整体下沉。他感到一种轻微的满足——不是赢的满足,这个游戏没有赢——而是秩序从混沌中短暂浮现的满足。

凌晨四点,他站起来活动僵硬的肩膀,走到走廊里抽烟。走廊很长,两侧是紧闭的门,门上钉着编号牌。日光灯管有几根坏了,明暗交替地照在地板上。计算中心第六层在这个时间是完全安静的——白天的研究人员都回家了,只有夜班操作员在一楼机房守着那台大型主机。

帕基特诺夫不是夜班操作员。他是语音识别实验室的研究员,白天的工作是分析人类语音的波形特征,试图让计算机理解俄语的发音规律。那项工作进展缓慢——不是他的问题,是硬件的问题。苏联的计算机处理能力不足以实时解析语音信号,他手头的Electronika 60连一个完整音节的傅里叶变换都要跑上好几分钟。

白天他做的是国家分配给他的研究任务。晚上他做的是他自己想做的事。这种双重生活不是他的个人选择,而是苏联科研体制的结构性特征。

苏联科学院的计算中心是一个庞大的机构,拥有数千名研究人员和技术人员,由国家预算全额供养。它的使命是推进计算机科学的基础研究和应用开发——语音识别属于前者,工业自动化控制系统属于后者。帕基特诺夫的职位是初级研究员,月薪大约一百五十卢布,相当于当时苏联平均工资的七成。他的工作合同上没有写明他必须每周产出多少研究成果,也没有KPI考核。只要他完成实验室主任分配的任务——通常是编写某段分析程序、跑一批测试数据、写一份技术报告——剩下的时间他可以自由支配。

这种自由不是制度设计的本意。苏联计划经济的逻辑是把每一个劳动力都变成生产函数中的一个变量:给定输入,产出输出。但科研工作天然抵制这种量化。一个研究员在终端前坐一整天,可能写出了一百行有效代码,也可能一行都没写出来——思考过程不产生可见的产出。计算中心的管理者对此心知肚明,他们采取了一种务实的默许态度:只要基础任务完成,不追问剩余时间的去向。

这种默许在苏联体制中有一个专门的词,翻译过来大致是“无目的研究”——它不指向任何国家计划目标,不被列入任何五年规划,但它被容忍,因为管理者明白,压制它可能会导致更糟糕的结果:研究人员什么都不做。帕基特诺夫就是这种无目的研究体制的典型产物。

他编写俄罗斯方块的最初动机不是赚钱——在1984年的苏联,个人通过软件赚钱在法律上是不可能的。苏联没有软件版权法。1984年的苏联民法只承认个人对文学、艺术和科学作品的署名权和有限的报酬权,但这个框架从未被应用到计算机程序上。程序被视为一种工业产品,而不是创造性作品。它的所有权属于生产它的机构——就像一台车床属于制造它的工厂。程序员写代码就像车工车零件:你付出了劳动,国家付给你工资,产品归国家。个人不能拥有软件,就像个人不能拥有国营工厂生产的钢铁。

这不是法律漏洞。这是制度逻辑的必然结果。在计划经济的产权体系里,所有权是一个被有意模糊的概念。

一切生产资料归国家所有,国家通过各级行政机构管理这些资产,但国家本身不是一个可以行使产权的法律实体——它是一套行政命令链条。当帕基特诺夫在Electronika 60上写完俄罗斯方块的第一版代码时,这份代码的所有者在法律上是不存在的。它不属于帕基特诺夫——他没有权利出售它、许可它、或者阻止别人复制它。它不属于计算中心——计算中心是苏联科学院的下属机构,科学院是部长会议的下属机构,部长会议是苏共中央的下属机构,而苏共中央不会为一个电子游戏注册版权。它不属于ELORG——那个日后将代表苏联出售俄罗斯方块海外版权的机构当时根本不知道这个程序的存在。它就是一个在产权真空中漂浮的数学客体。

帕基特诺夫当时并没有意识到这一点。他回到终端室,重新坐下来,开始调试程序的边界条件。旋转算法有一个bug:当骨牌紧贴井壁时,旋转会导致字符溢出到屏幕的其他区域,破坏显示。他花了一个多小时重写了旋转函数,加入边界检测逻辑。

然后他发现下落速度需要调整——太快了,人脑来不及处理空间旋转;太慢了,游戏失去紧张感。他设置了一个初始速度和一个加速度变量:每消除一定数量的行,下落速度增加一个增量。这个简单的反馈机制构成了游戏设计史上极为优雅的难度曲线:它不依赖关卡设计、不依赖敌人AI、不依赖数值膨胀,它只依赖一个单一变量——速度——的线性增长。玩家不是在对抗越来越复杂的敌人,而是在对抗越来越快的时间。

到凌晨六点,程序的主体框架已经可以稳定运行。七种骨牌轮流出现,顺序是随机的——他用系统时间的毫秒值作为伪随机数生成器的种子。骨牌下落、旋转、堆叠、消行。

游戏没有计分系统,没有音效,没有彩色,没有背景音乐,没有过关动画。只有方括号和尖括号在绿色屏幕上安静地移动。

但这已经够了。他把程序保存在一张八英寸软盘上。软盘的标签上他用圆珠笔写了几个俄语字母:Tetris。

这个名字是两天前想出来的:他把希腊语词根tetra——意为“四”——和他最喜欢的运动tennis的后半截拼在一起。网球是他为数不多的体育爱好——计算中心有一个水泥地面的网球场,夏天午休时他去打过几次。这个名字的拼合逻辑和游戏本身的构造逻辑如出一辙:把两个已有的元素拆开,取各自最有效的部分,拼成一个新的整体。

他关掉终端,把软盘装进衬衫口袋,走出终端室。走廊里日光灯管仍然嗡嗡作响。他下楼,推开计算中心沉重的铁门,走到户外。

六月的莫斯科天亮得很早,清晨的阳光照在科学院大院的灰色建筑群上,空气里有股煤烟和椴树花混合的气味。他点上最后一根烟,走向地铁站。他口袋里那张软盘上的程序,将在接下来的五年里穿越铁幕、引爆资本主义世界最激烈的版权争夺战、让一家日本公司卖出超过一亿份拷贝、让一个英国媒体帝国损失数千万美元、最终成为人类历史上传播最广的电子游戏之一。

但此刻,1984年6月6日凌晨六点二十分,阿列克谢·帕基特诺夫只是一个没睡觉的程序员,走在莫斯科清晨的街道上,口袋里装着一个他不知道该归谁所有的东西。

第二天上午,他把软盘插进实验室另一台Electronika 60的驱动器里,让同事德米特里·佩夫洛夫斯基试玩。佩夫洛夫斯基是语音识别实验室的另一位初级研究员,和帕基特诺夫共用一间办公室。

他盯着屏幕上正在下落的两对方括号看了几秒钟,然后伸手按了空格键。骨牌旋转了九十度。他又按了一下。又转了一次。帕基特诺夫站在他身后,看着他笨拙地操作——骨牌已经落到井底了,佩夫洛夫斯基还在按旋转键。帕基特诺夫伸手越过他的肩膀,指了指屏幕上的骨牌落点,示意他需要让方块落到底部再处理下一块。

佩夫洛夫斯基看着骨牌一格一格下降,落到井底停住。第二块出现。他按左箭头键把它移到左侧,让它落下。第三块出现时他开始犹豫——他必须在骨牌下落的那几秒钟内判断它的形状、想象它的旋转状态、找到它在井底的落点。

这个决策循环只需要两三秒,但连续重复几十次之后,他的前额开始微微出汗。五分钟后,井被堵死。他又玩了二十分钟。然后他站起来,让另一位同事瓦季姆·格拉西莫夫坐下去。格拉西莫夫当时只有十六岁,是计算中心最年轻的见习程序员,正在参与语音识别实验室的一个暑期项目。他坐下来之后玩了将近一个小时,直到被帕基特诺夫叫去开会才停下来。到当天下午,实验室里的六个人都试过了这个程序。没有人追问它的研究目标或者实际用途。他们只是玩,然后要求拷贝一份。帕基特诺夫把软盘递给佩夫洛夫斯基,佩夫洛夫斯基复制了一份,递给格拉西莫夫,格拉西莫夫又复制了一份,递给了隔壁实验室的一位朋友。没有人签署保密协议,没有人讨论授权条款,没有人提到版权这个词——这个词在1984年苏联计算中心的日常语汇里根本不存在。这就是俄罗斯方块的初始扩散模式:磁盘在走廊里手手相传。

计算中心的研究员们把程序拷贝到各自的软盘上,带回各自的终端,在工作间隙打开它,玩上二十分钟,然后继续做国家分配给他们的正式任务。没有人统计过第一周有多少人玩过这个程序,但据帕基特诺夫后来的回忆,到1984年6月底,计算中心几乎所有可以访问Electronika 60终端的程序员都拷贝了一份。有些人开始修改代码:有人加了计分功能,有人改了骨牌下落的速度曲线,有人试图把它移植到其他型号的计算机上。格拉西莫夫是第一个成功移植的人。他把俄罗斯方块从Electronika 60的Pascal环境移植到了IBM PC上,用DOS的图形模式实现了真正的像素显示——不是方括号和句号,而是彩色的方块。这个移植版本加了计分系统和难度选择菜单,还加了一个简陋的音效:每次消行时PC扬声器发出一声短促的蜂鸣。格拉西莫夫做这些修改不是因为有人要求他这么做,而是因为他觉得好玩。他把修改后的版本拷回给帕基特诺夫,帕基特诺夫觉得不错,又把它拷给了更多的人。

这种传播模式在西方几乎不可想象。在美国,一个程序员写出一个游戏,要么把它锁进抽屉,要么把它卖给发行商,要么成立一家公司来发布它。每一步都涉及法律文件:版权登记、授权协议、利润分配条款。在苏联,这些机制全部不存在。程序在同事和朋友之间自由流动,就像萨米兹达特——苏联地下出版网络中流传的禁书手抄本——一样自由。没有人想过要阻止这种流动,因为没有人意识到这个程序可能具有商业价值。包括帕基特诺夫本人。这不是天真。这是制度认知的边界。在计划经济的逻辑框架里,价值是由国家计划定义的:一台机器有价值,因为它能生产国家需要的产品;一吨钢有价值,因为它能被列入物资调配表;一个计算机程序有价值,因为它能提高某个工业流程的效率。俄罗斯方块不符合这些标准中的任何一个。它不生产任何东西,不提高任何效率,不服务于任何五年计划目标。在苏联的经济核算体系里,它是一个零——一件没有使用价值的物品。但正是这个零,在计算中心的走廊里证明了另一种价值的存在。

人们主动拷贝它,主动花时间玩它,主动修改它让它变得更好玩。这种行为不能用计划经济学的任何范畴来解释。它是纯粹的需求信号——没有被价格机制中介、没有被行政命令驱动、没有被意识形态包装的需求信号。每一个拷贝磁盘的人都用自己的行动回答了一个问题:这个东西有没有价值?答案是有。但这个价值无法进入苏联的经济核算体系,因为那个体系只承认一种价值:国家定义的价值。于是出现了一个奇特的局面:俄罗斯方块在诞生后的两年里,在苏联境内积累了数千名玩家,但它仍然是一个不存在的商品。它不在任何商店的货架上,不在任何外贸目录里,不在任何统计报表中。它在产权真空中漂浮着,等待着第一个发现它商业价值的人。那个人不会出现在莫斯科计算中心第六层的走廊里。他会在两千公里之外的布达佩斯出现。帕基特诺夫在那个六月清晨把软盘装进口袋时,并不知道自己刚刚做了什么。他以为自己在做一个拼图游戏的计算机版本——一个智力练习,一个打发夜间时间的消遣。

这种“无目的研究”体制并非苏联的独创,但它在苏联获得了独特的制度形态。要理解帕基特诺夫为什么能在凌晨两点坐在计算中心第六层的终端前编写一个拼图游戏,必须回到苏联科研体系的一个核心矛盾:国家需要创新,但创新天然抗拒计划。苏联的计划经济体制在工业生产领域取得了可观的效率——给定明确的投入和产出指标,工厂能够按照指令完成生产任务。但科研不是生产。科研的产出是不可预测的:你无法在年初计划今年会发现什么。苏联的科技官僚们对此并非一无所知。早在1960年代,苏联科学院内部就形成了一种不成文的契约:国家为研究人员提供稳定的薪水和设备,不追问每一分钟的用途;作为交换,研究人员在国家需要的时候——比如军方需要一个新的加密算法,或者工业部门需要一个自动化控制系统——必须能够交出可用的成果。这种契约的运作依赖于一个关键前提:基础研究和应用研究之间的边界足够模糊,使得管理者可以把“无目的研究”视为基础研究的一部分,而基础研究在苏联意识形态中享有崇高的地位。

帕基特诺夫所在的语音识别实验室就是这个契约的典型产物。语音识别在1980年代初是一个既有科学价值又有潜在军事用途的领域——军方对声控指挥系统有兴趣,克格勃对语音识别在监控中的应用有兴趣,工业部门对语音控制自动化有兴趣。这些潜在需求为实验室争取到了预算和设备,包括那台Electronika 60终端。但实际的研究进展远远落后于这些期望。苏联在微电子领域的落后是系统性的:西方已经在使用十六位和三十二位处理器的时候,苏联的主流计算机仍然依赖八位芯片和笨重的分立元件。Electronika 60是苏联仿制美国DEC公司PDP-11的产物,仿制周期长达近十年,等到它量产时,西方的同类产品已经更新了两代。这种技术滞后意味着苏联的计算机科学家们手头的工具永远比他们需要解决的问题落后一个数量级。帕基特诺夫白天做语音分析时,必须把问题简化到Electronika 60能够处理的程度——这意味着牺牲精度、缩减样本量、放弃实时处理。

这种削足适履的日常工作本身就是一种持续的挫败感来源。在这种条件下,晚上的“无目的研究”不仅是自由的,而且是必要的——它让一个训练有素的数学家能够暂时摆脱硬件的束缚,在纯粹的逻辑空间里找到智力上的满足。

帕基特诺夫选择拼图问题作为夜间项目并非偶然。拼图问题在苏联数学文化中有着深厚的传统。苏联的数学教育体系从中学阶段就开始训练学生的组合思维和空间想象力——数学奥林匹克竞赛中的几何题和组合题往往比西方同类竞赛更强调直觉性的空间操作。莫斯科航空学院虽然以培养航空工程师为主,但它的数学训练极为严格,帕基特诺夫在那里接受的不是应用数学的速成课程,而是完整的数学分析、线性代数和概率论训练。这种训练塑造了一种特定的思维习惯:把复杂问题分解为简单的约束条件,然后在约束条件构成的框架内寻找最优解。五格骨牌问题恰好是这种思维模式的完美对象——十二种形状、一个矩形边界、天文数字的排列可能性。它不是工程问题,不是生产问题,不是任何五年计划中的项目。它是一个纯粹的智力挑战。但正是这种纯粹性,使得它能够在一个以实用主义为官方意识形态的社会中被容忍——因为它看起来足够无害,足够远离政治。

然而,帕基特诺夫从五格骨牌到四格骨牌的简化,不仅仅是技术限制下的权宜之计。这个简化触及了游戏设计的一个深层原理:认知负荷的黄金分割点。心理学研究后来表明,人类的工作记忆平均能够同时处理七加减二个信息块。十二种五格骨牌加上旋转变化,信息量远远超出了这个范围——玩家需要在每一块骨牌下落的那几秒钟内,从六十种以上的可能性中做出选择。这不是游戏,这是智力测试。四格骨牌的七种形状恰好落在这个认知边界之内:足够少,让玩家可以在短时间内做出判断;足够多,让判断不是自动化的。

他不知道自己已经完成了一次设计几何学的精确切割:七种形状、四个旋转状态、一个重力井、一条线性加速曲线——这组参数构成了一台普遍可玩性的数学引擎,它将在接下来的四十年里被证明适用于每一种文化、每一个年龄段、每一种计算平台。他更不知道,他创造的这个东西将成为冷战末期最奇特的一件商品:一件没有所有者的商品,一件没有人可以合法出售却最终被所有人争相抢夺的商品。但此刻这些都不重要。此刻他只是坐在终端前,看着方括号从屏幕顶端一格一格落下来,落进他自己挖的井里,堆成一道锯齿状的高墙,然后消失在一行整齐的闪光中。然后下一块出现。走廊尽头的门被推开,早班的同事陆续到了。有人打开收音机,莫斯科广播电台的晨间新闻开始在走廊里回荡:关于超额完成季度生产计划的某拖拉机厂、关于美苏日内瓦军控谈判的最新进展、关于即将召开的苏共中央全会。帕基特诺夫关掉终端,把软盘放进抽屉,开始处理今天的第一项正式任务:一段语音样本的频谱分析。

抽屉里的那张软盘上,俄罗斯方块的唯一一份原始拷贝安静地躺着。它没有加密,没有许可证文件,没有任何形式的访问控制。任何拿到这张软盘的人都可以把它插进任何一台兼容的驱动器里,输入一条简单的命令,然后看着那些方括号开始下落。它就是这样开始旅行的。

四十年后,这段从莫斯科计算中心第六层开始的旅程,被浓缩进一部名为《俄罗斯方块:版权争战》的电影里。2023年3月15日,这部由泰隆·艾奇顿主演的传记惊悚片在西南偏南电影节首映,随后登陆Apple TV+。电影将帕基特诺夫的创造、斯坦因的发现、罗杰斯的赌命谈判与任天堂的商业押注编织成一部冷战末期的商业谍战片。它提醒我们,这个由方括号构成的简单程序,其故事的核心并非技术奇迹,而是一场关于所有权、国家与个人、计划与市场的全球性博弈。