两个约翰的故事--读DOOM启示录

两个约翰的故事--读DOOM启示录

这是一个精彩的故事:
两个约翰(卡马克和罗梅洛)才华横溢,相得益彰,组建了id Software游戏开发公司。在这里,技术、设计和艺术一起产生了核聚变,从《德军总部3D》到《毁灭战士》(DOOM)到《雷神之锤》(Quake),每款游戏都呈现出革命性的、前所未有的畅快淋漓。

约翰·卡马克(John Carmack)是入列“互动科学艺术协会名人堂”的天才极客,凭借《德军总部》、《DOOM》被誉为“FPS之父”,他在计算机图像引擎以及游戏研发方面的贡献使其无愧殊荣。

约翰·罗梅洛(John Remore),与卡马克共同创立了id Software。作为《德军总部》、《DOOM》事实上的总设计师,罗梅洛总能第一个发觉卡马克历代引擎的潜能,并通过超然的设计理念将其呈现给所有玩家

前者代表游戏创意理念,后者代表游戏技术能力;前者让创意得以实现,后者让技术能够发挥最大效能。正是得益于两位约翰的卓越才华和默契配合,《DOOM》成为超越时代的殿堂级神作

类似上个世纪八十年代创立苹果电脑的乔布斯和沃斯尼亚克这两位史蒂夫。

阅读本书不但可以了解游戏行业的历史,更是一部励志传记。去感受“在如今的世界上,只要你愿意,没有人可以阻止你成功,只需要一台电脑和网线,再加上一箱可乐和比萨。

0.出身
罗梅洛生于1967年,父亲离家出走,继父不让他完游戏,并自己制作苹果机游戏,投稿赚钱,被编辑杰伊看重,一起加入softdis公司。
卡马克生于1971年,开始是个中产家庭,后来父母离婚,也就没有人管他了,曾经因为偷苹果机被送到少年中心一年。上大学两个学期觉得无趣就退学了,自己做游戏,成为一个自由职业者。

1.缘起--ID成立
罗梅洛、卡马克在softdisk公司相遇。1990年9月,PC机的性能还比较差,连基本的卷轴功能都没有,也就是屏幕滚动。
平滑的卷轴效果。这种在《防御者》和《超级马里奥》里被使用到的技术,能够在玩家走到屏幕边缘的时候通过背景卷动让玩家体验到一个连续的世界。经过几个夜晚的尝试,卡马克终于在PC上也实现了这种效果。和往常一样,他用了一种独特的手段。很多人会一上来就试图走捷径,但卡马克觉得那样不能解决问题。他一开始先试了最直接的做法:在整个屏幕上重新绘制图像,但行不通,因为那时的PC实在太慢了。然后他尝试着优化——可以通过多使用一些内存来换取性能的提高吗?他试了几次,发现这也是死路一条。最终,卡马克冷静下来,从头开始考虑,“我要的是什么?——我要在玩家穿过游戏的时候图像能够平滑地移动。”他回想起他以前做的《墓窖》,在那个游戏里,当玩家走到屏幕上地牢边缘时,他会让背景做一次很大的调整,这种基于图素的卷动在当时是很常见的技术,而他现在要的是基于像素的卷动,哪怕玩家只移动了一点点,背景也要随之调整。问题是如此频繁地重绘远远超出了当时PC机的能力,但卡马克很快找到了突破口。如果,卡马克想道,不是每次重绘整个屏幕,而是只重绘那些真正改变了的部分,会怎么样呢?那样的话,卷轴效果执行起来会快很多。他盯着屏幕,假想着一个由蓝天白云组成的背景,玩家跑向屏幕右边,如果他跑得足够远,那些云朵将会逐渐被他抛在身后,直到从屏幕上消失,尽管改变的只是一片白云,大部分蓝色区域没有变化,但计算机不知道这些细节,它不知道其实有更快捷的办法,它只会笨拙地重绘每一个组成蓝天的像素,从屏幕的左上方开始,一个像素一个像素地往右,再一行行往下,直到完成整个屏幕。接下来卡马克就干了一件漂亮的事情,使效率得到极大提高。他写了一段代码,用来哄骗计算机,让它觉得譬如左数第七块图素其实是屏幕上的第一块,这样的话,卡马克就可以让计算机在他指定的地方开始绘制图像,计算机就可以直接绘制白云,而不需要再一个像素一个像素地填充蓝色的天空。为了确保玩家移动时感觉到平滑的效果,卡马克还想出了一个小技巧:让计算机在屏幕右边以外的地方画一块额外的天空,这其实是画在计算机的显存里,当它们真正进入屏幕时,它就不需要再被重新绘制,它可以直接从显存里反映到屏幕上。卡马克把这个过程叫作“图素自动刷新”。
汤姆立刻感觉到了这项技术的潜能:这意味着他们可以在PC上做出《超级马里奥》!
卡马克和汤姆把工作保存在一张磁盘里,再把磁盘放在罗梅洛的桌子上,然后就回家睡觉了。罗梅洛早上十点钟到公司时看到了这张磁盘,以及一张便条,上面是汤姆的笔迹:“敲DAVE2”。罗梅洛把磁盘插入软驱,输入命令,屏幕暗了下来,然后浮现出一行字:侵犯版权的戴夫
罗梅洛按下方向键,戴夫开始沿着地面走动,就在背景开始平滑卷动的一刹,他整个人呆住了。罗梅洛几乎喘不过气来,他无法相信屏幕上发生的事,他就坐在那里用手指摁住键盘,控制着戴夫在场景里来回走动——这难道是真的?
罗梅洛被这突如其来的惊喜击溃了,他动弹不得,甚至站都站不起来。直到几个小时后卡马克回到办公室,他才有力气说话。他只有一件事要告诉他这个朋友,这个编程天才,这个绝配般的搭档:“不用想了,我们走人!”

开始他们晚上把软盘公司的计算机运回家编码,后来被发现,干脆离职,1991年2月1日,ID公司成立

湖畔小屋
软盘公司的四个人在湖畔租了个屋子,开发基恩三部曲,商业上,一个叫斯科特的人共享软件模式:在BBS上免费分发软件,做几个免费关卡,如果玩家乐意,再买完整版。 这个模式让斯科特赚了不少,成立了天极公司。天极是ID的贵人,开始资助ID完成基于卷轴技术的基恩三部曲,ID很快盈利,可以继续前进。

2.德军总部时代

射线追踪
卡马克很久以前在苹果机上制作MTV标志时就接触过三维图像编程。在那以后也出现过一些主视角三维游戏。
在他看来,飞行模拟类的三维游戏实在太慢了,繁复的图像让玩家们感觉自己像一只飞行在空中的蜗牛。他和id的其他人都更偏爱街机式的快节奏动作游戏,譬如《防御者》、《行星撞击》、《金手套》,在其他人忙于《拯救罗瓦》和《鬼屋里的戴夫》时,卡马克就开始尝试去做这没有人做过的东西:快节奏的三维动作游戏。
然而,他随即发现,PC机的性能还不足以运行那样的游戏。卡马克翻遍了各种书籍和期刊,但没发现什么有价值的东西。他又像当初做卷轴效果时一样:先尝试最直接的办法,如果不行,再拓宽思路。三维游戏之所以很慢的一个原因是需要绘制的物体表面太多,但卡马克又想到,是不是可以让计算机每次少画些表面,就像给马儿戴上个眼罩,譬如,在绘制过道时,省略掉地板和天花板,只画出两侧的墙壁,用透视法的话,它们就是两个简单的梯形。此外,卡马克又独辟蹊径地使用了所谓的“射线追踪”算法(raycasting),在剔除掉玩家视角外的物体后,游戏的速度得到了极大提高。这时,他只面临着最后一个挑战:在三维世界里加入角色,而解决的办法是简单地绘制出表现这些角色的图像和动画,《银河飞将》已经能够根据玩家和目标之间的距离远近来动态缩放图像的大小。在综合起削减多边形、射线追踪、动态缩放这些技术后,卡马克创造出了一个流畅的三维世界。整个研究工作耗费了卡马克六个星期,而他以前的游戏顶多只需要四个星期。当罗梅洛看到卡马克的成果时,他再次叹服于这位拍档的才华。他们接下来讨论起应该制作个什么样的游戏,以便发挥出引擎的技术优势。
材质贴图
《基恩》的工作在顺利进行,支票也在源源不断到账。卡马克得以抽出空来继续研究三维主视角射击游戏。最新的进展来自于他从罗梅洛口中听到的一项技术,材质贴图”(texturemapping)。材质贴图是指把一幅精细的纹理图片应用到游戏中某个物体的表面上,这样就可以画出一面由砖块构成的砖墙,而不是一个毫无质感的棕色方块。罗梅洛从保罗·纽拉斯(PaulNeurath)那里听说了这个词,纽拉斯的公司“蓝天制作”(Blue Sky Productions)正在开发一个叫作《地下创世纪》(UltimaUnderworld)的游戏,这款游戏将由创世纪系列原作者盖略特的维真公司发行。纽拉斯告诉罗梅洛,他们正把材质贴图应用于三维世界里的多边形上。罗梅洛的第一反应是:“酷!”他立刻挂掉电话,挪到卡马克旁边:“保罗跟我说,他们正在用材质贴图制作游戏。”材质贴图?”卡马克在脑海里琢磨了一下这个概念,几秒钟后,他告诉罗梅洛:“我也能办到。”

然后他们从北方的麦迪逊,一个冬天阴冷的地方。
卡马克研究了得射线追踪算法和材质贴图技术,大家商量着做3D游戏,这样就有了德军总部3D
这个游戏90年代很流行,大学机房里面很多计算机屏保都是德军总部的三位立体动画。
不过我玩这个游戏总是头晕。

亮度衰减,带材质贴图的地板和天花板
卡马克的技术。他带着在《造影者》引擎里取得的成果回到办公室,大家立刻注意到,这是个相当大的飞跃。引擎里一眼就能看出来的新特性有:亮度衰减,带材质贴图的地板和天花板。
亮度衰减的意思是,就像在现实世界中,当你打着手电筒行走时,越远的物体就越陷入黑暗。在《德军总部3D》里,所有的房间,所有的角落,都是亮堂堂的,没有色调的变换,而画家们都知道,光的效果是使图画栩栩如生的关键一环。有了亮度衰减后,卡马克的虚拟世界更加鲜活了。
卡马克还研究出如何把材质贴图应用于地板和天花板,此外,他还摸索出如何实现不等高的墙体。新引擎的执行速度大约是《德军总部3D》的一半,但《造影者》是一个冒险游戏,它的乐趣在于探索,而不是战斗,所以速度慢一些没有关系。
这次飞跃对卡马克而言绝不是一件轻松的事情,他花了大量时间才琢磨出如何正确地绘制地面。他的勤奋和自律给他带来了回报,他现在甚至能够绘制出倾斜的地面,玩家可以感觉到自己是在上坡还是在下坡,这简直让人难以置信——凯文在游戏里的一座小山上来来回回跑了二十分钟。显然,id该用新技术去制作一款新游戏了。

公司立足
北方寒冷无法忍受,一伙人搬到了德克萨斯,天极公司附近。德军总部完成后,这还只是第一个月,再加上《基恩》带来的进账,id的年收入无疑将达到一百万美元。

3.DOOM时代
1)技术精进:
编程这门学问是基于有限的资源而展开的,人们只能在当前的硬件和软件基础上进行开发。1992年秋天,卡马克还在使用着VGA显卡,也就是说,屏幕上最多只能同时显示256种颜色,而他要使DOOM的世界能够由近及远平滑地过渡到黑暗中。
解决的办法是巧妙地组合这256种颜色,也就是利用所谓的“调色板”。比如,可以在里面放入16种红色,从亮红到暗红。然后,卡马克根据玩家在房间里所处的位置,把不同的颜色应用到不同距离的墙壁上。如果玩家走进一个大厅或是露天空地,程序会做一次简要计算,把最暗的颜色应用到最远的地方,当玩家继续往前走时,程序还会动态调整四周环境的亮度。就这样,DOOM的世界不但变得更加逼真,还更加阴森。
此外,卡马克和罗梅洛一直以来还盼望着能摆脱“图素”的限制:id以前的游戏世界,《基恩》和《德军总部3D》,都是像拼瓷砖一样建造出来的,譬如把一块块画着砖头的图素拼接起来组成一面墙,或是用一面面墙拼出一个房间。他们俩,尤其是罗梅洛,希望能够有更灵活多变的形式来创造游戏世界,譬如,最好能有巨大、怪异、狰狞的房间。在《德军总部3D》里,墙的每个拐角都是九十度,而在DOOM里,它们要是任意角度。面对这些挑战,卡马克显得胸有成竹;计算机的性能越来越强大,他的技术也一样。他开始尝试着绘制任意形状大小的多边形,并且给天花板和地板加上材质贴图。当罗梅洛越过卡马克的肩膀看向屏幕时,一如往常,罗梅洛再次惊呆了。卡马克向罗梅洛介绍了关于光影和多边形的进展,并谈起他的计划,譬如把游戏制作得更容易让玩家们修改,以及对网络的支持,那样的话,玩家们就可以互相对战。
罗梅洛立刻看到了这些技术的潜能,这种特长是卡马克自己所不具备的,他对此也毫不讳言。而且,罗梅洛自己也是个程序员,他可以用程序员的语言和卡马克交流,罗梅洛可以把心中的蓝图描绘给卡马克,然后由他来编写代码实现。罗梅洛看到亮度衰减时,脑海里的第一个念头是:我们可以用这项技术来做什么?
这两个人是互补的。

2)加速:
法拉利的引擎只是卡马克试图使之变得更快的引擎之一,此外还有DOOM。尽管DOOM的代码运行起来已是风驰电掣,但以他的标准来看还是不够,这个游戏在速度上还面临着很大挑战,譬如那些带贴图的地面和天花板,以及那些高低不一的墙壁。在移植《德军总部3D》到超任的过程中,卡马克读到了一篇讲述二叉空间分割(BSP)算法的文章,贝尔实验室(Bell Labs)的一个程序员通过这种算法更快地在屏幕上绘制出三维模型。用最简单的术语来说,这个算法就是把一个模型分割成大量的片断,每个片断的数据作为全局树状结构中的一个叶结点,然后程序就可以快速地筛选出需要绘制的多边形,避免无谓地重绘整个模型,从而提高了绘制的速度。当卡马克读到这里时,他忽然想到,如果用这个算法来绘制一个巨大的虚拟世界,而不是一个小模型的话,会是什么样?
没有人做过——甚至可能都没有人想到过——这种尝试,毕竟,没有多少人在试图建造虚拟世界。通过把DOOM关卡的几何数据分割成一棵巨大的BSP树,计算机就不必在玩家每次改变视角或位置的时候重新绘制所有叶结点,而只需绘制玩家面对着的那些物体。当这个改动完成后,卡马克那已经很快的DOOM,就可以起飞了。

3)网络:
卡马克告诉他,引擎已基本定型,马上就可以着手制作DOOM的联机部分。是啊,联机,罗梅洛想道,我们在一月份就告诉过别人的,DOOM一定会有多人游戏部分,玩家们可以在里面互相对战。但后来一直太忙,都快把这码事搞忘了。卡马克向罗梅洛谈起技术上的一些挑战:“首先我要弄清楚如何正确利用IPX协议来通信,还有通过串口,这也要花点时间……”
接下来的两个礼拜,卡马克在房间里架起两台联网的计算机,一台是他控制的玩家,另一台用来作为另一个玩家。一切就绪后,他通过键盘控制着他这个玩家向前移动,他心里假想着那些小数据包通过网线传输到对面那台计算机里,然后立即表现为一个屏幕上的太空战士。两台计算机就这样互相对话,而卡马克知道对话的结果。他扭过头去看另一台计算机屏幕,他看到了自己控制的玩家——在那台机器上是旁观视角——从屏幕上跑过。就这样,卡马克成功创造出一个可以互相感知的虚拟世界。罗梅洛走进来的时候险些跌个踉跄,“噢,天呐!”他叫道:“这太了不起了!”
这是事关生死的比赛,这是——罗梅洛呆立在原地:死亡竞赛(deathmatch)。

4)发布:
1993年12月10号,星期五,历史性的时刻到了。连续测试三十小时后,id已经准备好把DOOM上传到因特网上。一个名叫大卫·达特(DavidDatta)的好心人给id提供了文件服务器。
DOOM引起了对战狂潮,在大学到公司,甚至美国能源部超级超导对撞机实验室里,都有人晚上不回家沉迷于游戏中。
我记得当时在系里机房晚上总有人打这个游戏,我是依旧一打就头晕。
对ID来说,DOOM就是一台印钞机。

5)DOOM变种
在DOOM中,卡马克进一步抽象了引擎和数据文件之间的关系,他专门制作了一个资源管理子系统,把数据都放到所谓的WAD包中,这个名词是汤姆的点子,意为:数据都在哪儿?(Where's All the Data?),从而,在每次主程序启动时,它载入的是一个包含了所有图片和音乐的WAD包,这样,玩家就可以每次指定不同的WAD文件让引擎使用,而不必再像《德军总部3D》那样麻烦地备份和恢复数据。
此外,卡马克还公布了DOOM关卡编辑器和其他辅助工具的源代码,以便玩家们定制自己的游戏。
他身体力行地去铸就黑客文化的辉煌。公司其他人可不这么想,认为会影响id 的收入。卡马克根本就不管这些。

6)裂痕
罗梅罗忙于各种事务,无心工作。卡马克继续打磨自己的图形引擎。

4.Quake时代
1)照旧需要新引擎:
如果说死亡竞赛是对工作、家务、压力、劳累等事物的一种解脱,那么,这种解脱是卡马克所不需要的,甚至是无法理解的。事实上,他从未真正体会到所谓的娱乐休闲究竟有什么乐趣,不知所终的人们莺歌燕舞、声色犬马、纸醉金迷,所有这些对他都毫无吸引力。显然,这世上有太多人并不喜欢自己从事的工作
卡马克清楚地知道,他喜欢的事情就是——编程,他系统地安排着生活,以便把大部分时间都用于此。从制作DOOM时起,他就决定开始调整生物钟,以达到一种更孤寂更专注的境界,以避开罗梅洛的尖叫,避开记者的电话,避开所有这些日常生活中使他分心的事物。他开始强迫自己每天睡觉前多熬一个小时夜,然后第二天再晚一个小时到办公室。1995年初,他养成了他觉得最理想的作息规律:下午四点到公司,凌晨四点离开。为了Quake,他得全神贯注才行。

2)挑战和伙伴:
卡马克清楚地知道,他喜欢的事情就是——编程,他系统地安排着生活,以便把大部分时间都用于此。从制作DOOM时起,他就决定开始调整生物钟,以达到一种更孤寂更专注的境界,以避开罗梅洛的尖叫,避开记者的电话,避开所有这些日常生活中使他分心的事物。他开始强迫自己每天睡觉前多熬一个小时夜,然后第二天再晚一个小时到办公室。1995年初,他养成了他觉得最理想的作息规律:下午四点到公司,凌晨四点离开。为了Quake,他得全神贯注才行。
而卡马克很快就意识到,他所面临的挑战远比他所预料的艰难。他的目标是创造因特网上的真三维世界,项目之初,他和往常一样收集和阅读了大量的研究资料,他花了几千美元购买书籍和论文,但所有这些都只是纸上谈兵的东西,还从来没有计算机程序可以模拟出一个交互的、实时的、快速的、真三维的游戏世界,要实现这样的虚拟体验,不光要耗尽他的才能,还要榨干当前PC机的性能。更糟的是,在这紧要关头,卡马克发现,他一直以来的战友,罗梅洛,不见了踪影。
卡马克心目中已经有了合适的人选。在编程方面,他首先想到的无疑是计算机图形学界的泰斗级人物:迈克尔·亚伯拉什(MichaelAbrash),正是他的书,指引着卡马克和罗梅洛完成了他们早期的游戏,从那时起,亚伯拉什就成为程序员们为之仰止的神话。最近几年他在微软工作,协助视窗NT操作系统的开发。但就像所有致力于图形编程的程序员一样,他清楚地知道,最动人的成果只能是诞生于游戏领域,而在游戏中,最让他赞叹的无疑是DOOM。
在卡马克和盖茨之间,亚伯拉什选择了卡马克。在他看来,id的吸引力是微软根本没法比的。当一个三维的网络世界呼之欲出的时候,当虚拟现实技术即将有革命性突破的时候,他希望自己能置身其中,他希望自己能参与这历史性的事件。而且,卡马克的邀请触动了亚伯拉什:卡马克看上去很孤单,没有知音。

3)引擎时间
卡马克的引擎依然遥遥无期,《德军总部3D》的引擎只花了他一两个月,DOOM的是六个月,而这次已经进行了半年——还望不到头。

4)Windows平台
在1995年初,亚力克斯带领他的队伍开发了一种技术,使游戏能稳定可靠地在视窗系统上运行,而无须担心硬件的改变带来像《狮子王》那样的滑铁卢,这项技术叫做DirectX。
亚力克斯认为,最有效的手段莫过于给他们展示运行在视窗系统上并采用了DirectX技术的DOOM。
1995年3月,硅谷,DOOM视窗版在游戏开发者大会(Game Developers Conference)上揭开面纱,微软为此不惜重金租下了大美利坚主题公园,当会场的灯光暗下时,观众中的玩家们有节奏地喊起:“DOS! DOS! DOS! ”以抵制微软所谓的新一代游戏平台。最终大会很成功。

5)巨大压力
卡马克的思维完全陷入其中,他假想着各种几何体如何依照他的指令移动、旋转,他要把它们分解开,调整,再组装,再分解……哪怕他在凌晨四点蹒跚着走进家门时,这些几何体仍在他脑海里飘来飘去、飘来飘去、没有尽头。同龄人会梦到一对男女在屋里的关系,而卡马克只会梦到一对多边形在三维空间中的关系。一天清晨,他坐在屋里,看着编码后的指令沿手臂传送,指导着它如何抬起、伸出、收回,他觉得奇怪,现实生活里手臂不是这样工作的呀,这肯定是个怪异的梦——他忽然惊醒,一身冷汗。他被困在了Quake的世界里,无处可逃,哪怕是在睡梦中。

6)分道扬镳
卡马克认为罗梅罗忙于杂事,没有认真工作,quake主关卡都让提姆做。刺激了罗梅罗。
经过若干个礼拜的通宵苦战后,卡马克和他的良师益友迈克尔·亚伯拉什终于解决了那个恼人的蓝色虚空问题,屏幕上呈现出一个完整无瑕的真三维虚拟世界。大功告成,卡马克静静地盯着墙角,或是随意地在里面走动,他感受着这个世界的一致,这个世界的真实。1996年2月24日,Quake初具雏形,为了在玩家们千差万别的机器配置上进行测试
最终两人彻底闹翻,卡马克说:“你没有完成你的工作!你没有尽到你的职责!你对项目无益,你对公司无益,你是公司的祸患。曲终人散。

5. 结局
1)没有了罗梅罗,ID公司的创意不在,只有技术,卡马克做了quake2,doom3,公司也没有太大起色。2013年,Carmack离开了一手创办的id,以CTO的身份加入Oculus VR,在虚拟现实领域大展拳脚。当游戏从2D进化到3D的时候,我们无法目睹大神的诞生;但是当游戏从3D进化到3D无处不在的时候,我们将见证大神的归来
2014年3月,Facebook收购了Oculus VR,而JohnCarmack则是Oculus的CTO;

2)罗梅罗创立了离子风暴公司,靠名头拿了3000万风投。强调设计优先,技术为设计服务。因为没技术,项目几次延期,最终内斗、项目失败,被逐出公司。后来去做手机游戏了,不再有进一步的消息。

6.番外--学习其精神。
卡马克相对正面一些,你会发现一个真正游戏人的风骨:专注、热情、坚持、自律、黑客精神,以及更多。
书中写卡马克说,“在信息时代,客观障碍已不复存在,所谓障碍都是主观上的。如果你想动手开发什么全新的技术,你不需要几百万美元的资金,你只需要在冰箱里放满比萨和可乐,再有一台便宜的计算机和为之献身的决心。
禅宗书中对于卡马克有一句话说得非常贴切:“长年浸淫于图像编程中的他几乎达到了禅宗般的境界”。对,就是禅宗的境界。卡马克对于技术与编程,超出了喜爱的范畴。他深受黑客精神的影响,相信一切问题都能被技术解决,这与当下硅谷看问题的方式:“死亡不过是一个技术层面的问题”有同样的意味。并且,卡马克本然地抛开一切杂念,完全地专注于编程,享受那种宁静——禅的境界。
如果说死亡竞赛是对工作、家务、压力、劳累等事物的一种解脱,那么,这种解脱是卡马克所不需要的,甚至是无法理解的。他看到电视上人们出入酒吧、结伴郊游、度海滩周末,所有这些对他都毫无吸引力。卡马克清楚地知道,他喜欢的事情就是——编程,他系统地安排着生活,把大部分时间都用于此,达到一种更孤寂、更专注的境界。”
 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值