游戏老兵回忆录之姚震(上):从致敬到创新


老兵档案           

姓名           姚震

之前的职位       程序员、独立游戏制作人

现在的职位       智酷计算机 CEO 、一骑当千股份有限公司董事长

曾经研发的产品       《生死之间》 1 、《生死之间 2 》、《至尊》、《剑侠情缘》 WEB 、《一骑当千》、《特种部队》

为什么那时要进入游戏行业           一念之差

目前最期望做的事           将单机、端游、页游、手游和主机游戏聚合在同一个大屏终端上

人生中最骄傲的事情       今天还在游戏圈混饭吃

人生格言           所失即所得

导语

关于姚震

 

1

       时间闪回到 1995 年, WESTWOOD 旗下知名 RTS 大作《命令与征服》横空出世,让许多游戏人从此找到了心目中理想游戏的方向。有据可考的是,后来的《横扫千军》、《最高指挥官》制作人克里斯 . 泰勒当时一边玩着《命令与征服》一边赞叹到:“哇,太酷了,这就是我要做的游戏。”

       鲜为人知的是,同期在地球另一侧的中国大陆,也有一位克里斯 . 泰勒式的人物,因为《命令与征服》从此改变了自己的人生轨迹。他就是今天本文的主角——姚震。

     1995 年,毕业四年,留校任教的姚震因对计算机的兴趣,一念之差的接触到了《命令与征服》这款游戏。而后,基于个人兴趣,独自利用业余时间开发的《生死之间》 DEMO 又一念之差的被台湾一家叫做“新艺”的电脑公司相中获取投资——如果用今天时髦一点的说法,姚震将自己的独立游戏实现了商业化。

      但姚震否认龙虎豹的这种说法,在他看来,这个单人手作的 DEMO 不足以成为一个商业化的游戏。台湾新艺公司真正看中的,乃是《生死之间》最早的 DEMO 背后人工智能的算法。但不管怎样,可以考证的一点是,那个年代的创意鹰翔,是不折不扣的国产游戏开发团队中的技术领先者。

      来自于国内和国际的评价都可以证明这一点:

      首先是在 1997 年,台湾地区《生死之间》的发行商将这款游戏带到了当年的 E3 大展。外商看到在惊讶之余纷纷表示:“如果这个产品能够在细节和美术上再处理的好一点,完全可能包装成一个欧美的二线产品来销售。”在那个年代,欧美的一线产品是《暗黑破坏神》、《魔兽争霸 2 》、《红色警戒》。而二线产品的参照则是类似于《绝地风暴》( KKND )这样在当年大红大紫的作品。

      而在国内,一个鲜人为知的案例是。在《生死之间》发售之后一次游戏人的聚会中,吴刚曾对姚震这样表示:“这么好的产品,你卖给我多好?你赚到了钱,我也赚到了吆喝。”

      这些来自于国内与国际范围的评价或许今天听起来有些夸张。不可否认的是,在那个年代的创意鹰翔,在资金、规模远无法与前导、金山这些大型游戏研发企业相比的情况下,在技术上却并不落于人后,甚至在某些方面还领先于上述公司。两部《生死之间》或许在销售上并不圆满,时至今日其口碑却绝对是那个年代国产游戏中的佼佼者。

      正因如此,今天回忆起来,姚震多少有些感怀——《生死之间》没赶上好日子。但《生死之间》究竟给国产游戏带来了什么?创意鹰翔在那个年代又是怎样实现《生死之间》的?这些幕后故事,让当事人今天自己来讲述。

因篇幅原因,本文分为上下两部分刊登。

Q

龙虎豹:您的游戏生涯应该说是从创意鹰翔开始的,与当时国内其它的厂商如前导、西山居等相比,创意鹰翔的出现感觉有些突然, 1997 年《生死之间》的发售才让我们意识到国内还有这样一家单机游戏公司。至少作为当时玩家的我来说,这种感觉挺突然的?

A

   震:其实不仅仅是你觉得突然,我也觉得突然(笑),创意鹰翔的出现和《生死之间》这款产品密不可分,或者说就是《生死之间》催生了创意鹰翔。 1995 年,我在大学毕业留校担任教师,基于对电脑的兴趣,深入地学习了电脑应用和编程。期间接触到了《命令与征服》这个游戏,当时因为年轻所以产生浓厚的兴趣。渐渐的随着学习的深入,发现自己也有能力写代码,于是就参照这个游戏花了近一年时间做了 DEMO 出来。

1996 年的 4 月,很偶然的一个机会,我参加了在五洲酒店举行的“海峡两岸多媒体展览会”并演示了这个 DEMO 。引起了台湾新艺公司的浓厚兴趣,当时国内以《命令与征服》为代表的 RTS 游戏正是火爆。他们看了 DEMO 之后非常吃惊,拿这个 DEMO 到台湾去做了一些测试,发现 DEMO 中展示的单兵寻路、敌方 AI 等算法的表现都非常不错。于是在当年 10 月就给我投资了一笔钱,我用这笔钱招兵买马,创意鹰翔就是在这种情况下成立的。

Q

龙虎豹:这么说是先有《生死之间》,后有创意鹰翔。那当时您做这个 DEMO 的时候只有您一个人吗?

A

   震:对,基本上我一个人。我是程序出身,一个人完成了全部的程序。策划方面基本上是照搬《命令与征服》的创作思路,所以基本上也是我。美术方面自己差不多完成了 90% ,剩下 10% 找朋友帮忙, DEMO 就是这么出来的。在游戏的数据方面,后来《生死之间》也是创意鹰翔的策划闫国胜帮助我做了一些工作。

但是老实说,现在回想起来台湾人其实看中的不是这个 DEMO ,而是背后的算法和开发能力。因此在拿到投资并且搬到新的办公场地后,我们是在 96 年的 10 月基于原始的设计思路开始重新写游戏的代码。值得一提的是《生死之间》一开始就是基于 Windows 直接开发的游戏,而在那个年代下很少有人这么做。因为 Windows 在当时对游戏的显示机能非常差,效率也比较低下。因此我们做了一些突破性的研究,通过 Windows 机能把效率提升上去。

Q

龙虎豹:这些突破性的研究主要是指哪些方面?

A

   震:主要是一些编程上的技巧。比如说你把一张图贴到屏幕上,用 Windows 系统无法直接把这张图贴到显存里面。要通过自己的一个绘图 API 添加到内存里面,再 COPY 2D 图形卡的图形缓存里。这样的结果是一方面效率低下,另一方面具体到我们的游戏来说,人物是无法正常移动的。

在这种情况下,我们的做法是在 API 底层进行了一些针对性的破解,使之在技术上可以实现直接写屏。最后达成的效果就是可以在 Windows 上达成类似于 DOS 一样的开发效果,使游戏在分辨率提升的情况下能够显示出比较好又流畅的效果。(注 1

2 :台湾新艺公司当时在台湾地区负责发行《生死之间》。这部作品在当地更名为《失落战线》,同时由代理商带到美国参加了 1997 年的 E3 大展。当时有美国发行商表示这个产品如果可以在美术等细节做的再好一点,完全可以包装成为一个美国地区的二线产品来发售。 Q

龙虎豹:等于在当时这套 AI 算法至少在国内是领先的?

A

   震:对。因为 RTS 的技术复杂性本身就比 RPG 高。其次具体到《生死之间》来说,游戏最多同时涉及到 100 个单位的动作,那个时候的机器配置很难承载。在这种情况下我们采取了模拟多线程的技术。当时针对于 PC 普遍是单核 CPU 的现象普遍的做法是在多线程上由自己和自己抢资源,甚至还有人中断跳转技术。我认为这个标准做法其实并不适合做 RTS 游戏。因此干脆就自己做了线程调度。

这个概念相当于什么?在 RTS 游戏中 100 个战斗单位前进要 100 条路径,如果 100 个单位用一条路径那就卡死了。但是 100 个战斗单位的路径在当时的环境下要想通畅至少是三十分之一秒做 100 条路径出来,我认为这非常不现实。我的做法是模拟今天多线程的处理方式,让所有单位分开计算。从用户体验来说可能会发现有些单位开始启动时走的慢一点,有的则快一点。但是在 1 秒之内所有单位都会开始走动。相比之下当时很多的 RTS 游戏没有这个技术,以至于在进行多个单位的前进指令时,你常会发现用户下达指令单位先会顿一下,然后才开始往前走。比如说 1997 年有个很火的 RTS 叫《绝地风暴》就是这样。

Q

龙虎豹:把话题往回收一收,当时很多游戏人做游戏是出于兴趣。你当时做《生死之间》也是因为这方面的考虑,但针对于《命令与征服》这个原型,有没有一些自己的思考?

A

   震:坦率来讲当时做《生死之间》更多是基于学习的态度。从拿到投资再到团队组建到成品只用了半年时间,时间是非常紧的。对于合作方来讲这是一个很大的惊喜,因为原本约定的时间是一年完成,现在只用了半年就完成了。

但对于这个产品来说,我认为他的创意未必有多强,只能说是学习做好一个产品,技术上攻克了一些难关,基本达到了预设目标,且让大家玩起来很有乐趣。相对来讲也有一些创意,但总体来讲《生死之间》还是一个以学习为主的产品,今天时髦点的话说叫“致敬”(笑)。

Q

龙虎豹:说到产品的创意,还是能看出做了一些微小的改变。比如说占领系统,可能更加方便。同时游戏引入了空对空战斗,而《命令与征服》同期尽管有空军,但仅实现了空对地的战斗……

A

   震:就占领系统来说我觉的不叫创意,我们当时玩《命令与征服》的时候也发现游戏有一些不合理的地方。于是就按照自己心里想的更舒服的方式去做了一些改进。但我认为这不算创意,仅仅是简化。

空战系统则是另外一种情况,我们当时的想法是在人力所能及的情况下做一些别人没有的东西。因此就引入了空对空的战斗概念,同期的《命令与征服》如你所说仅仅是有直升机对地的攻击。直升机的攻击方式是悬停,和坦克一样。但《生死之间》的空战有战斗机空中格斗的过程,这块是我们在产品大致完成之后认为应该做一些变化才去引入的。

实际上空战系统的实现并没有想像中困难,只要把算法运作好就可以了。那时候我没有使用浮点运算。当时的电脑 CPU 不管是什么方式的浮点运算效率都不如整形运算快。我们尽量把数值全部按整形运算的方式来做,算完了再通过移位的方式来模拟小数点。今天的程序员不用考虑这些,但那时候条件不一样,我们必须要去考虑这些。

空战真正的复杂性主要是基于方位、方向和导弹发射的轨迹而言,在这块如果用浮点计算肯定是比整形运算更容易一些。所以我就通过不同角度的算法和方式进行快速运算与模拟。最终通过这种方式实现了游戏的空中战斗系统。

Q

龙虎豹:那这个问题我换个纬度来问,您说《生死之间》是一个学习的作品。这个学习的作品如果让您挑出一个最满意的地方是哪块?

A

   震: AI ,当时的《生死之间》在人工智能这块我认为是比较值得自豪的。他可以让用户感觉到背后有一个以人类的思维思考的 AI ,这也是我当时比较有成就感的地方。

举例来说,当玩家在进行人机对战的时候不管是 1V 几, NPC 都要模拟真人玩家。这个时候这套 AI 系统就会主动的模拟如何向玩家进攻。这个模拟和当时市场上主流的随机数或者是永远往一个方向进攻的游戏是不同的。这套 AI 当时是通过模拟玩家的战术打法以及分析玩家的兵力防守弱点而去做出决策。比如说玩家的防空不够就派空军过来,右边防守空虚也会率先从这一路进攻。在这方面我的设计是先往中路走,然后到地图中间时兵力开始分散,哪的防御弱就往哪去。游戏是 21 关。越玩到后面这方面的感觉会越强。

Q

龙虎豹:我记的在 1999 Virgin 公司做了一个游戏叫《魔法师传奇》也推了这个概念,不过他们管这个叫 AAAI 。直译过来是“高级适应性人工智能”。

A

   震:那会儿我们没起什么高大上的名字,但在程序里确实实现了这一点,实际上《生死之间》还是一个学习性较多的产品。反倒是《生死之间 2 》,无论是从创意上还是技术突破上都比一代要强。还有一点,《生死之间 2 》的程序在中国当时没有第二个人能写。这和今天的情况没法比,今天是人才辈出。

Q

龙虎豹:作为一个 RTS 游戏,数值平衡是比较重要的。我很好奇这块《生死之间》是怎么做的?因为我知道国内有些游戏早期是直接照搬国外游戏的数值。

A

   震:这块主要是闫国胜去调的。他的定位是策划,实际上主策划还是我,因为程序决定功能。但是后来我把程序交给他之后,由他来决定打起来之后攻击力是多少、防御力是多少等进行数值调优。在这方面他很有心得,给这个游戏的数值平衡助力颇大,闫国胜在数值策划方面非常有实力。

实话实说,《生死之间》最早开发的时候,你能把游戏做出来就已经很不容易了。那个时候网络不像现在这么发达,也没有什么公开资料,就连书本上都没有写 RTS 类型游戏怎么写。基本上就是看原型,然后自己琢磨。如果说数值方面,《生死之间 2 》的进步比较大,因为所有的数值我们都不断的测试和修改。相比之下一代比较传统,二代则进化很多。

Q

龙虎豹:在谈《生死之间 2 》之前我想先问一个八卦。我曾经听说《生死之间》上市之前逆火工作室听说您做出了一个不错的 RTS ,在一天晚上以挑战《红色警戒》的名义想来看游戏,但最后据说也没给他们看。有这事吗?

A

   震:这个说法是不准确的,当时鹰翔和逆火两个团队的办公地点非常近,关系也很融洽。我们有一个习惯就是每天中午一起玩一局《 DOOM 》,但逆火总打不过我们(笑)。有这层关系在,双方就没什么可防范的,我当时邀请徐创来的目的就是给他看产品。当时的情况是徐创的美术能力是我们所没有的,而我们的技术能力也是他们所欠缺的。双方都比较认可这一点,我记的 1997 年逆火做了一个射击游戏《天惑》非常不错(注 3 )。总的来讲我觉的我们没有赶上最好的时候,如果是今天这种市场环境。无论是《生死之间》还是《天惑》都会是市场上的爆款。

注四:即今天《刀剑 2 》的制作人刘坤。

Q

龙虎豹:当时在《生死之间 2 》的时候为什么会想把游戏环境从陆地变成星海?

A

   震:当时我们的想法是,古代战争和现代战争都要去针对于社会背景做一些贴合,会对游戏内容造成局限性。星际题材就没有这个问题,我们可以在星际间搭建防御基地,甚至是搭建管道过去打掉敌人的基地。事实上,我们在二代解决的技术问题,在当时并不是每个程序员都可以想明白的。

Q

龙虎豹:这个怎么理解?

A

   震:比如说游戏中你的基地是可以移动的,当两个基地发生撞击时。撞击点会产生爆炸和火苗。这时程序应该怎么运算呢?今天实现起来很容易,那个时候要实现程序里必须有非常强大的索引和算法。你要能够快速索引到碰撞点上,然后把碰撞点的装备单位损坏率高的地方炸掉。

类似这样的还有光影算法,这个算法今天可以用 3D 加速卡的 Shader 功能实现。但那个时候没有这些,每一帧都要实现包括 AI 、移动判断等等各式的叠加,然后还要把光线算出来。

其次是二代传承了一代的精华。比如说刚才的 AI ,你会发现对方的太空基地并不是一下冲过来的,而是根据你的设计结构,冲过来找你的漏洞与突破点。这块在当时并不完美,如果后来能做《生死之间 3 》的话会有更大的突破。

Q

龙虎豹:问一点题外话,如果做《生死之间 3 》是 99 年。那个时候《家园》已经出现了,你会也把《生死之间 3 》做成全 3D 吗?

A

   震:其实全 3D 不是太难的技术,主要的难度还是在于底层技术,如何把游戏做的拟人化,同时有战略和想像空间等特点。总体来讲, RTS 的商业模式在网络游戏时代没有延续下去,他不像 RPG ,在网络游戏时代爆发了。

Q

龙虎豹:这里有一个问题我一直没搞明白。《生死之间 2 》的游戏规则是拼接基地而后战斗。但这样一来究竟游戏的主要玩法是在战斗上还是拼接基地上?

A

   震:其实你可以把他理解成《沙丘 2 》,当时按照我的理解,《命令与征服》是以进攻为主的游戏,他的防御概念并不强。而到了《红色警戒》时代, WESTWOOD 就更为淡化游戏中的防御概念了。在这种情况下,我们按照《沙丘》,以防御的思路去设计了整个游戏。

当时的想法,基地在星海中的移动也是一个比较新颖的玩法。我们也希望能够实现一些更有挑战性的算法,并且实现技术上的进一步创新。比如说用炸药从一个节点或者管道末端依次向主基地炸过去,这种算法的最终实现,在当时对于研发来说是非常有挑战性的。如果不仔细琢磨,机器根本带不动。但今天回想起来,我们的确太拘泥于算法和游戏内核中技术的体现。

当然,还有一点就是《生死之间 2 》是没有参照物的,《星际争霸》虽然也是星海间的战斗。但本质上还是没有脱离陆地的概念。而有类似概念的《家园》是在 1999 年末才出现。所以对于我来说,创意鹰翔的回忆可能更多还是积累了经验。

(未完待续)