第 3 章
莫斯科地下弧
第3章 莫斯科地下弧
瓦迪姆·格拉西莫夫第一次见到俄罗斯方块的那个下午,他本该在调试一串Pascal代码。计算中心第六层的走廊里日光灯管发出持续的低频嗡鸣,那种声音在苏联任何一座政府建筑里都能听到——它和暖气片的咔嗒声、电梯井里的钢缆摩擦声、以及远处某个办公室传来的打字机敲击声一起,构成了科研体制运转的背景音。
格拉西莫夫对这座建筑已经相当熟悉。他的父亲在计算中心工作,这使得他比同时代绝大多数苏联青少年更早接触到真正的计算机——不是学校机房里那些纸带穿孔的老式设备,而是能运行操作系统、能编译高级语言的机器。父亲偶尔带他进入计算中心,给他分配一些简单的编程任务,在“实习生”标签下,没有人认真追究一个未成年人出现在国家科研机构里的合法性。
他此前已经听说过帕基特诺夫的名字。在计算中心,程序员们提起这个人时语气里带着一种特殊的尊重——不是对行政级别或学术头衔的尊重,苏联体制内那些东西都有明确的量化标准,而是对一个人做出了有趣的东西的认可。
这种认可几乎不会出现在官方评价体系里,但在走廊、茶水间和下班后的编程马拉松中,它构成了真正的声望等级。帕基特诺夫在走廊里叫住了他。他手里拿着一张五英寸软盘,问了一个直接的问题——格拉西莫夫是否熟悉IBM PC的汇编语言。格拉西莫夫点了点头。他确实会。
在父亲所在的实验室里,有一台从东德进口的Robotron 1715,这是计算中心少数几个能运行MS-DOS操作系统的设备。它被严格限制用于官方科研项目,但在无数个下班后的夜晚,格拉西莫夫坐在这台机器前,读完了能找到的所有英文技术手册,学会了8088汇编语言、C语言和Pascal。他的英语水平也因此被迫提升——IBM PC的技术文档在苏联几乎全部是英文,没有俄文译本。
帕基特诺夫把他带进了自己的办公室。Electronika 60的终端屏幕上,由空格和方括号组成的方块阵列正在缓缓下落。格拉西莫夫注视了大约三十秒,然后伸出手,握住了键盘。
他的手指笨拙地试探着控制键,一块L形骨牌掉到了底部,接着是第二块。他玩了十分钟,然后抬起头说了一句话——这个游戏必须上PC。
帕基特诺夫知道这个判断是对的。但他面临一个具体的技术障碍:他不熟悉IBM PC的架构。Electronika 60使用的是苏联仿制的PDP-11指令集,而IBM PC使用Intel 8088处理器,两者的汇编语言、内存映射、显示机制完全不同。帕基特诺夫可以写出一个在Electronika 60上完美运行的游戏,但要把同样的逻辑移植到IBM PC上,需要一个人能读懂8088汇编语言、能直接操作显存、能绕过DOS系统的各种限制来获取足够的屏幕刷新速度。
格拉西莫夫就是这个人。他十六岁,没有正式的研究员身份,没有工资,理论上只是计算中心一个见习生,但在这条技术鸿沟上,年龄和身份毫无意义。
帕基特诺夫向格拉西莫夫详细解释了游戏的核心逻辑。七种四格骨牌的旋转算法。碰撞检测的边界条件。消行判断的逐行扫描机制。
那个他引以为傲的伪随机数生成器。解释持续了大约四十分钟,期间帕基特诺夫在白板上画出了骨牌的旋转矩阵,用俄语混合英语术语,在苏联程序员特有的技术方言中穿梭——这种语言混合了俄语语法、英语关键词和民间发明的缩略语,外人完全听不懂,但圈内人毫无障碍。
格拉西莫夫听懂了。他接过帕基特诺夫递来的源代码打印件——在点阵打印机上输出的、用俄语注释的Pascal代码——然后把它们塞进了书包。书包里还有一本代数课本和一份共青团支部的会议通知。这两样东西他当天都没再翻开。
格拉西莫夫开始工作。他选择的时间段是晚上十点到凌晨三点。计算中心白天的行政秩序到了夜间就松弛下来,走廊里只剩下值班人员的脚步声和日光灯管的电流声。那台Robotron 1715在白天被分配给一个语音识别研究项目,但从晚上九点开始几乎无人使用。格拉西莫夫坐在机器前,将Electronika 60的汇编代码逐行翻译成8088汇编语言,同时重新设计显示机制。
Electronika 60用的是字符终端,而IBM PC有图形能力,尽管分辨率只有640×200像素,但已经足够用像素块来绘制四格骨牌,而不是用方括号和空格拼凑。格拉西莫夫决定用彩色像素块来呈现游戏。他为每种骨牌分配了不同的颜色——I形骨牌是青色,O形是黄色,T形是紫色,L形是橙色,J形是蓝色,S形是绿色,Z形是红色。这个配色方案后来成为俄罗斯方块的标准,在任天堂Game Boy版本中几乎原样保留,被全球数十亿玩家视为理所当然。
但在1985年秋天的那个夜晚,它只是格拉西莫夫在Robotron 1715的彩显前随手做出的一组选择——他需要七种颜色,调色板提供了十六种,他选了其中七种,没有经过任何用户测试或市场调研。十二天后,IBM PC版本的俄罗斯方块第一次运行成功。帕基特诺夫站在格拉西莫夫身后,看着彩色方块在屏幕上旋转、下落、堆积。
这不是他第一次看到自己创作的逻辑运行在另一台机器上,但这是第一次,他看到Electronika 60上的那个由空格和方括号组成的简陋游戏变成了一个在任何旁观者眼中都像一个真正的电子游戏的产品。帕基特诺夫说了一句话,大意是这个东西看起来像西方的。在1985年的苏联,这是一个极高的赞许——它意味着质量上的某种标准,不是意识形态上的,而是技术上的。苏联消费者对西方电子产品的迷信是一个现实,但苏联程序员对西方软件标准的追赶则是另一个故事。在计算中心第六层,写出一段像西方程序一样好的代码,是比任何官方表彰都更真实的荣誉。
格拉西莫夫没有回应这句赞许。他正在调试最后一个bug——当方块堆满屏幕时,游戏不会自动结束,而是继续在满屏的方块上生成新的骨牌,导致内存溢出。他添加了一个检测条件,判断最顶行是否存在方块,如果存在则触发游戏结束。这个过程用了不到五分钟。然后他保存了文件,把编译好的可执行程序拷进一张软盘,递给帕基特诺夫。
帕基特诺夫接过软盘,放进了他办公桌的抽屉。那个抽屉里已经有三张软盘,装着Electronika 60版本的不同迭代。
但这一张不一样。这张软盘里装着的,是一个可以在任何一台能运行MS-DOS的机器上执行的俄罗斯方块。在1985年,这意味着它可以被复制到整个苏联和东欧科研机构中正在缓慢但稳定增加的IBM PC兼容机上。
这张软盘不会在抽屉里待太久。它开始移动的机制,是苏联学术网络内部一条古老的、非正式的、但效率极高的传播路径。这条路径的运作逻辑与任何商业发行渠道都毫无关联。它没有营销部门,没有库存管理,没有定价策略,没有任何形式的货币交易。它的节点是遍布苏联各地的科研机构、大学和设计局,它的媒介是程序员出差时随身携带的磁盘,它的驱动力是好奇心、同行情谊和一种在计划经济社会中稀缺的交换乐趣。苏联的计划经济可以精确规定一吨钢的分配路径、一块面包的价格、一本学术期刊的发行量,但它无法控制信息在人与人之间的流动。
这不是因为计划经济设计者忽略了信息——恰恰相反,苏联体制对信息的控制渗透到了每一个环节:印刷机需要许可,打字机需要登记,长途电话需要向单位申请。
但计算机软件处于一个特殊的灰色地带。它不是出版物,不是商品,不是国家机密,也不完全是私人财产。在苏联法律中,软件没有明确定义的法律地位,它既不受版权法保护,也不受专利法约束,甚至不被承认为一种可交易的产品。它只是一串存储在磁性介质上的二进制信号,没有重量,没有物理形态,可以在一秒钟内完成复制,且无需任何质量损失。
这个法律真空,在大多数情况下表现为一个障碍。苏联程序员无法为自己的作品申请专利,无法通过销售软件获利,无法像西方同行那样创办软件公司。但在1985年至1986年这个特定的时间窗口,它表现为一个机会:俄罗斯方块可以自由地复制、传播、修改,没有任何法律障碍,没有任何人需要签署授权协议,没有任何货币需要交换。
它可以在完全不受任何制度监控的情况下,从莫斯科流动到列宁格勒、从列宁格勒流动到基辅、从基辅流动到新西伯利亚,然后从那里流动到更远的节点。
第一张拷贝离开计算中心的方式,是一个典型的苏联学术传播场景。1985年11月,莫斯科科学院计算中心接待了一批来自列宁格勒国立大学的访问学者。访问的主题是语音识别的人机交互界面——一个在苏联科研体系中属于民用范畴的课题,这意味着一系列的会议、报告和纸质文件交换。
但在正式议程之外,访问学者们被带到了计算中心的计算机房,参观了那些苏联和东欧的计算机设备,并获准与计算中心的研究员们进行非正式的技术交流。在这类交流中,询问对方有没有什么有趣的程序是一个标准问题。帕基特诺夫的一位同事——他的姓名没有被记录下来,但帕基特诺夫在多年后的采访中确认了这件事的发生——将IBM PC版本的俄罗斯方块拷贝给了列宁格勒的一位访问学者。
拷贝的物理过程很简单:将源软盘插入一台IBM PC兼容机的驱动器,输入DOS的diskcopy命令,等待三十秒,取出目标软盘,完成。没有签署任何文件,没有登记任何信息,甚至没有口头约定不要外传。在苏联,科研人员之间共享软件是一种惯例,就像西方同行共享论文抽印本一样。没有人认为这有什么不妥。
那位列宁格勒学者带着这张软盘返回了列宁格勒国立大学。他将其安装在自己系的计算机上,并展示给了同事和学生。其中一位同事是数学系的一名副教授,他对游戏中的伪随机机制产生了兴趣,开始分析其算法。另一位同事将游戏拷贝到了自己的软盘上,在下一次出差时带到了基辅的控制论研究所。在基辅,又有人将其拷贝到了第三张软盘上,带到了新西伯利亚的计算机中心。从莫斯科到列宁格勒,从列宁格勒到基辅,从基辅到新西伯利亚——每一跳都只需要一张软盘、一次diskcopy命令和一个人愿意花三十秒来做这件事。
没有人在任何环节要求支付费用,没有人在任何环节签署协议,没有人在任何环节询问这个软件的版权归谁。这个问题在1985年的苏联甚至不具有可理解性。版权是一个西方概念,它在苏联法律体系中的对应物是作者权,但作者权保护的是文学、艺术和科学作品,而计算机程序是否属于科学作品这一范畴,在当时的苏联法律中从未被明确界定。
更关键的是,帕基特诺夫本人从未声称过任何所有权。他不是一个被体制剥夺了权利的受害者——至少在那个时刻不是。他只是一个在业余时间写出了有趣程序的研究员,他乐于看到这个程序被更多人使用。
当同事们问他是否可以拷贝俄罗斯方块时,他的回答通常是当然可以,有时会加上一句让他知道它传到了哪里。但在绝大多数情况下,他并不知道拷贝的下落,也不知道有多少人在玩他的游戏,更不知道这个游戏已经跨越了苏联的欧洲部分,正在向乌拉尔山脉以东扩散。在完全缺乏商业渠道的情况下,俄罗斯方块的传播速度令人惊讶。
1986年初,也就是格拉西莫夫完成IBM PC移植后的三个月内,这个游戏已经出现在莫斯科、列宁格勒、基辅、明斯克、新西伯利亚、斯维尔德洛夫斯克等至少六个城市的科研机构中。传播的精确路径无法追踪——任何试图重建这条路径的努力都会遇到一个根本性的障碍:没有人记录这些拷贝。没有销售记录,没有用户注册,没有授权协议,没有技术文档中的版本号。每个拷贝都是一次性的、非正式的、没有留下任何纸质或电子痕迹的行为。
但传播的范围和速度,可以通过一个间接证据得到证实。1986年春天,帕基特诺夫收到了一封来自列宁格勒的邮件。寄件人是一位他从未听说过的程序员,名叫米哈伊尔·波塔波夫。
波塔波夫在信中写道,他看到了俄罗斯方块,认为它极其有趣,并询问帕基特诺夫是否介意他做了一些小修改。波塔波夫在游戏中添加了一个计分系统,并修改了随机数生成器的种子算法,使得游戏在高分状态下产生更大的难度。
他在信中说,他已经将这个修改后的版本分享给了几个朋友,希望帕基特诺夫不会介意。帕基特诺夫没有介意。他给波塔波夫回了信,感谢他的修改,并询问他是否愿意将修改后的版本寄回莫斯科。
波塔波夫照做了。于是,俄罗斯方块在列宁格勒的一个分支版本重新流回了莫斯科的计算中心,并与帕基特诺夫自己的版本合并。这个合并过程没有任何版本控制工具,没有svn,没有git,没有任何现代软件工程所依赖的协作基础设施。它只是帕基特诺夫坐在终端前,比对着波塔波夫的代码和原始代码,手工将修改整合进去。
这个场景揭示了一个深层结构。俄罗斯方块的传播,不是一个单向的、从中心到边缘的散发过程,而是一个多向的、去中心化的网络效应。每个节点——莫斯科、列宁格勒、基辅、新西伯利亚——都在接收游戏的同时,也对游戏进行了修改、增强和再传播。这些修改有时会流回帕基特诺夫手中,但更多时候,它们在本地形成了一个独立的演化分支,永远没有与主干合并。
在基辅的控制论研究所,一位初级研究员为俄罗斯方块添加了预览下一块的功能。这个功能在当时看来只是一个微小的便利性改进,但它的设计含义是深远的:它使得玩家可以提前规划,将俄罗斯方块的游戏性质从纯粹的即时反应转向了策略性规划。这个功能后来被几乎所有俄罗斯方块的商业版本采用,成为游戏的标准配置。
在明斯克的自动化系统研究所,一位程序员将俄罗斯方块移植到了苏联国产的ES-1840计算机上——这是一种仿制IBM PC/XT的机器,在苏联工业部门中广泛使用。这个移植版本在工厂的自动化控制工程师中传播开来,他们开始在工作间隙玩这个游戏。工厂管理者最初试图禁止——在苏联的工厂里,计算机是用于生产计划的,而不是用于娱乐的——但禁止的效果微乎其微。程序员们学会了在后台运行俄罗斯方块,当管理者走近时,按一个热键切换回工作界面。
在新西伯利亚的计算机中心,一位研究生将俄罗斯方块拷贝到了他导师的VAX小型机上。
VAX是DEC公司的产品,在苏联属于稀有的进口设备,但新西伯利亚的科研机构由于与军事技术相关,能够获得一些通过特殊渠道进口的西方设备。这个VAX上的俄罗斯方块版本,被一位前来访问的捷克斯洛伐克学者看到了。他询问是否可以拷贝,新西伯利亚的研究生说可以。一张VAX兼容的磁带被塞进了那位捷克斯洛伐克学者的行李中,飞越了苏联国境线,进入了东欧。
这条传播路径揭示了一个关键事实:俄罗斯方块在1985年至1986年间的扩散,不是苏联体制内部的一个偶然事件,而是苏联学术网络固有结构的一种必然产物。苏联的科研体系由数百个机构组成,分布在十五个加盟共和国的各个城市中。这些机构之间的正式联系是等级制的、官僚化的、缓慢的——一篇论文从提交到发表可能需要一年,一次跨城合作需要经过层层审批,一台设备的调配需要填写的表格足以让任何研究者望而却步。但在这个正式体系之下,存在着一个平行的、非正式的、基于人际信任和共享伦理的网络。
这个网络由程序员、工程师、科学家和研究生组成,他们共享软件、交换技术信息、互相帮助解决编程问题,完全绕过了正式渠道的官僚障碍。
这个网络不是苏联特有的。在西方,学术界的开源运动、黑客文化以及后来的Linux社区,都遵循着类似的逻辑。
但苏联的语境给这个网络赋予了一个特殊的意义:在计划经济的物资短缺环境中,软件共享不是一种伦理选择,而是一种生存策略。当正式渠道无法提供所需的工具时,人们只能依靠彼此。苏联的科研机构长期面临西方设备的进口限制和技术禁运,这使得本土程序员发展出了一整套应对技术匮乏的实践——逆向工程、软件移植、非正式的代码共享、以及对西方技术标准的集体学习。
俄罗斯方块的传播,正是套嵌在这个更大的实践传统之中。这个传统在苏联有一个名字,叫做samodeyatelnost,字面意思是自我活动,在苏联语境中指的是在官方渠道之外、由公民自发组织的活动。这个词通常用于描述业余合唱团、民间体育俱乐部或者未经批准的诗歌朗诵会。
但它在技术领域同样适用:苏联程序员们在国家主导的科研体系之外,自发地形成了一个平行的技术文化,其核心是共享、好奇心和创作自由,而非行政命令、生产指标和意识形态审查。
俄罗斯方块是这种技术文化的一个完美产物。它不是一个正式项目,没有经过任何审批流程,没有填写任何立项表格,没有任何人在任何层级的会议上讨论过它的国民经济意义或意识形态正当性。它只是帕基特诺夫在业余时间写出来的一个程序,然后被格拉西莫夫在业余时间改进,然后被几十个、几百个苏联程序员在业余时间复制、修改、传播。它从始至终都没有进入过苏联的正式经济体系,它完全存在于那条地下弧之中。
但恰恰是这条地下弧的存在,使得俄罗斯方块在苏联内部获得了巨大的、但完全不可见的传播规模。到1986年6月——也就是帕基特诺夫在Electronika 60上写出第一版整整两年之后——俄罗斯方块已经遍布苏联学术圈的主要节点。任何一个在苏联科研机构中接触过计算机的人,都有可能见过这个游戏。
它正在成为苏联程序员群体中的一种共有知识,一种不需要解释的共识,一种你看到了就知道那是什么的东西。
然而,在这条地下弧的所有节点上,有一个共同的特征:没有人从中获利。帕基特诺夫没有获得任何报酬,格拉西莫夫没有获得任何报酬,波塔波夫没有获得任何报酬,那些在基辅、明斯克、新西伯利亚为游戏添加新功能的无名程序员们也没有获得任何报酬。不仅是货币报酬的缺失,而且没有任何形式的激励——没有署名,没有荣誉,没有职称评审中的加分。俄罗斯方块在进入这些人的职业生涯时,没有留下任何可以被官僚体系识别的痕迹。
这是一个奇特的经济学现象。在西方,一个软件的流行程度与它的经济价值是正相关的——越流行的软件,商业价值越高。但在苏联,俄罗斯方块的流行程度与它的经济价值是完全脱钩的。它正在成为苏联最流行的计算机程序之一,但它的账面价值为零。没有人为此付费,也没有人因此获利。
它存在于一个完全无货币的经济空间之中,其价值由使用者的乐趣和满足感来定义,而不是由任何可量化的经济指标来衡量。
这个无货币经济空间的存在,是苏联计划经济的产物,但它的逻辑与计划经济的逻辑截然相反。计划经济试图通过中央计划来配置所有资源,但这个无货币经济空间完全绕过了中央计划。计划经济试图通过价格信号来调节供需,但这个空间根本不使用价格。计划经济试图通过产权制度来界定所有权,但这个空间不承认任何产权。
正是在这个意义上,俄罗斯方块的地下传播构成了一场完全去中心化的、无货币媒介的技术传播实验。它证明了,在苏联计划经济的正式渠道之外,存在一条高效的、基于人际信任和共享伦理的地下弧。这条弧线不需要任何货币输入,不需要任何官方批准,不需要任何基础设施投资,它只需要程序员之间的信任和一种共享的伦理——你拿到了一个有趣的程序,你就把它分享给同行。这个实验的成功,反过来也暴露了苏联体制的一个根本性张力。
苏联的科研体系需要计算机,计算机需要软件,但苏联的软件产业无法通过正式渠道满足这种需求,于是科研人员只能通过非正式渠道自我供给。这条地下弧线越是高效,就越是证明正式渠道的失败。俄罗斯方块的传播,既是苏联技术社群创造力的证明,也是苏联体制失灵的证据。
但1986年夏天的帕基特诺夫并没有从这个角度思考问题。他正在做的,是一个更实际的决定。
格拉西莫夫完成了IBM PC版本的移植后,帕基特诺夫开始考虑将游戏分享给更广泛的东欧用户。苏联的IBM PC兼容机数量有限,但在匈牙利、捷克斯洛伐克、波兰,这类机器正在逐渐普及。匈牙利在1980年代初期实施了经济改革,允许一定程度的私营企业活动,并放宽了对西方技术进口的限制。这使得匈牙利成为东欧最早的PC文化中心之一,布达佩斯出现了一些小型的软件公司,它们从西方进口计算机,然后向本地市场销售软件和硬件。帕基特诺夫认识一位在布达佩斯工作的匈牙利程序员,两人曾在一次学术会议上交换过联系方式。
1986年夏天,帕基特诺夫给这位匈牙利同行寄去了一张软盘,里面装着IBM PC版本的俄罗斯方块。他在信中写了一段简短的话,大意是这是一个他写的游戏,他认为对方可能会喜欢。没有价格,没有条件,没有授权协议,没有任何关于版权或商业用途的讨论。这只是一次纯粹的、基于同行情谊的分享。
这张软盘是俄罗斯方块第一次通过作者本人的主动发送跨越苏联国境线。它标志着一个分水岭:俄罗斯方块将不再仅仅是苏联内部的一个地下现象,它即将进入一个更大的、更复杂的、充满了商业可能性的世界。
在布达佩斯,一个名叫罗伯特·斯坦因的英国软件商即将看到它。帕基特诺夫对此一无所知。他把软盘塞进信封,贴上邮票,走到计算中心附近的邮局,将信投进了那个标着国际邮件的窗口。
邮局的工作人员按照标准程序称重、贴标签、收取费用,然后那封信被装进了一个帆布袋,与其他国际邮件一起,开始了前往布达佩斯的旅程。投递本身没有发生任何意外。
苏联的国际邮政系统在这一刻运转正常,效率配得上它的官方承诺。大约一周后,那张软盘将抵达布达佩斯,被帕基特诺夫的匈牙利同行拆开,插入一台IBM PC兼容机的驱动器,然后在屏幕上显示出一个正在下落的彩色方块阵列。
俄罗斯方块在苏联内部的旅程——从莫斯科计算中心第六层到遍布苏联学术圈的每一个节点——在此刻已经完成。它证明了一条地下弧的存在,证明了在计划经济之外存在一个高效的信息传播网络,证明了设计本身的吸引力可以不需要任何营销或货币输入就能驱动传播。
但它的下一段旅程,将不再仅仅是一个技术传播实验。它即将进入一个不同的世界,一个由版权、合同、独家授权和商业谈判组成的世界。在那个世界里,没有人会再问是否可以拷贝,而是会问谁拥有这个。而这个问题,在1986年夏天的莫斯科,还没有答案。
帕基特诺夫回到计算中心第六层的办公室,继续他的语音识别研究工作。那张寄往布达佩斯的软盘已经不在他的抽屉里了,它正在国际邮政系统中移动,距离莫斯科越来越远,距离一个他无法预见的未来越来越近。
三十七年后,这段从莫斯科到布达佩斯的旅程被搬上了银幕。2023年,一部名为《俄罗斯方块》的传记惊悚电影在西南偏南电影节首映,随后登陆Apple TV+。影片由乔·S·布拉德执导,塔伦·埃哲顿饰演亨克·罗杰斯,聚焦于1980年代冷战末期多方公司为争夺游戏版权与苏联当局谈判的惊险历程。电影的风格被描述为类似《社交网络》。它的主题曲《Hold On Tight》由韩国女子组合aespa演唱,采样了任天堂版《俄罗斯方块》中那首经典的、源自俄罗斯民歌《货郎》的游戏背景音乐。从一张在计算中心抽屉里等待的软盘,到一部讲述其版权战争的好莱坞电影,俄罗斯方块的故事本身,已经成为一个关于传播、所有权与全球化的寓言。