作者简介
Patrick Wyatt曾任职于Blizzard(暴雪)公司,超过八年以上的资深经历,身任前开发部副总裁,参与过《魔兽争霸2》、《星际争霸》与《暗黑破坏神》、《暗黑破坏神2》的开发,甚至还创立了 Battle.net 此网路连线对战平台架构。在离开 Blizzard 之后,于 2000 年时与 Mike O’Brien、Jeff Strain 共三人一同创办了ArenaNet,公司座落于美国华盛顿州之贝尔维尤市,隶属于 NCSoft 旗下开发公司之一。这间公司最知名的游戏产品,正是大家耳熟能详的《激战》(GuildWar)。目前Patrick Wyatt跳槽至 Bluehole 的 Patrick Wyatt,正担任此韩国公司的首席营运长。
Patrick Wyatt
当PC游戏还处于DOS上的混沌阶段,我就开始制作《魔兽争霸》了!我当上了项目领导!
我最初开发过几款PC、MAC游戏和超任、世嘉 Genesis 游戏,但都只是移植复刻或者打杂。我的工作包括:担任制作人,领导团队或者担任首席程序员,编写大部分代码。那时的团队只有十几二十人,不像现在多达两百人的团队那么惊人。
暴雪logo变化
魔兽争霸的起源
我刚入职的公司名叫Silicon & Synapse(后来改名为暴雪)。我和同事们在午休时间和下班后一有空就玩《沙丘2》,研究3大种族的优势和弱点、游戏策略和战术。而这一过程爆发了《魔兽争霸》的创作灵感。
美中不足的是,《沙丘2》不能联机对战。而即时战略游戏应该让所有玩家能够同时发出指令,临场应变并执行长期战略。因此,我在尚未详细计划、评估技术需求、制订日程或者预算的情况下就开始了《魔兽争霸》的创作。后来,我们在暴雪的同事都将这种项目称为“灵光一现”,并将其做为标准的开发方法之一。
魔兽争霸
最初的开发
这个项目在初始阶段只有我这唯一的开发者并且缺乏美工团队的支持,所以我只能先借用《沙丘2》的截图。而最初的编程工作包括:创建滚动地图编译器、绘制游戏单位的编译精灵和搭载单位动画的精灵排序引擎,加载鼠标、键盘动作的事件分配器,控制单位行为的游戏分配器以及控制应用程序行为的大量界面代码……我只用几周时间就完成了这些项目并整合出可以“运行”的游戏。但是,由于单位生成系统尚未确定,我只能输入代码,将单位直街加载到屏幕上。
我那时只知道埋头苦干工作,没有指定任何日程计划。我享受自由的开发过程,而编程就像是嗑药一样上瘾。22年之后的今天,我依然热爱编程工作中创造性。
首个特性:单位复选
这是我最自豪的一个游戏特性。《沙丘2》只允许玩家每次选择一个单位。这大大增加了战斗中的鼠标动作。而单位复选则加快了单位的调配,改进了战斗过程。
入行之前,我曾用MacDraw和MacDraft等CAD软件,帮我爸设计酒窖。所以用“点击和拖拽”后生成的矩形框来选择多个单位的做法就显得再自然不过。
我相信《魔兽争霸》是第一款能够复选单位的游戏,而且最初的设计中没有数量限制。为了修正复选并控制一百多个单位时的Bug,我反复实验了这个特性。但是,我并不感到厌烦,因为它是我所创作的最酷的游戏特性。
后来,通过协商,我们决定让玩家一次最多只能选择4个单位(在《魔兽争霸2》中,我们又将这个数字增加到9),使玩家专注于制订策略,而不是简单地将乌合之众全派到敌方阵地。《沙丘2》的继任者《命令与征服》就没有类似的限制,我觉得这种设计还有待商榷。
除此之外,那时的《魔兽争霸》只是山寨版《沙丘2》而已。我甚至自嘲道:《魔兽争霸》确实受到了《沙丘2》的启发,但它们截然不同——我们的小地图在左上角,而《沙丘2》在右下角……
组成团队
1994年初,我开始招募帮手。于是,Ron Millar、Sam Didier、Stu Rose、Bob Fitch、Jesse McReynolds和Mike Morhaime等人纷纷加入。而他们中的大部分人在我们公司被Davidson & Associates 收购后依然留任。
长相粗犷的Ron Millar原来是美工。但他惊人的创新和设计能力让他在包括《魔兽争霸》在内的多个暴雪项目中都担任设计师。
和熊一样的Sam Didier堪称暴雪画风的奠基人。他高超的绘画技巧和一有空就画画的热情使他在新项目中担任美术总监。
曾是插画家的Stu Rose设计了暴雪至今仍在使用的公司标志。他那时负责背景地图的绘制并在《魔兽争霸》的最终设计中发挥了重要的作用。
Bob Fitch原先是程序员和另一个项目的领导。暴雪公司主席Allen Adham让他负责拼字游戏《Games People Play》,但Bob对此缺乏热情并消极怠工。而得到Bob的帮助之后,《魔兽争霸》项目突飞猛进。
Jesse负责网络通信。而暴雪联合创始人Mike Morhaime则负责复合调制解调器的驱动。
Allen Adham曾希望通过赢得《战锤》的注册品牌来提升收入。《战锤》原本是《魔兽争霸》的画风源泉,但是和DC Comics在《Death and Return of Superman》等项目的不愉快合作使我们尽量避免在新游戏上遇到类似的麻烦。
毋庸置疑的是,如果没能把握住《魔兽争霸》的知识产权,暴雪就不可能成为今日游戏产业的霸主之一。
《魔兽争霸》发布之后,我爸在旅行时为我带回了一套《战锤》手办。他同时提醒我应该成立保护知识产权的法律部门。多么有先见之明的老爹啊!
游戏开发中的阻碍
正在创作《魔兽争霸》这款能够用调制解调器或者局域网进行联网对战的游戏时,我们惊奇地发现:我们的办公室没有网络!因为我们此前制作的都是装在软盘中的单机游戏,工作中不需要用到网络。所以,我们只能用软盘互相传递源代码和图片。但是由于整合失误,代码经常弄丢,而被修正的Bug会一再出现……那时,我们只能控制代码来源,避免这类失误。
随着程序员、设计师和美工的增加,我们又遇到了更大的困难:游戏原先搭建在DOS的即时模式中,所以总内存只有640K,而操作系统的可用内存更是不到120K。(那时的电脑真是太渣了!)而当美工开始创作游戏单位、背景和用户界面时,我们很快就耗尽了所有内存并开始寻找新的内存资源。我们首先尝试了EMS页面内存来贴图并储存数据。但是,EMS太难用了。后来,Watcom公司发布的C编译程序允许我们在DOS的保护模式中写入程序,获得线性的32-bit内存。虽然升级源代码需要几天时间,但这个方案还是为我们赢得了更多内存。
之前,我介绍了《魔兽争霸》的开端、它如何为暴雪打响品牌,并使其成为全球最著名、最受爱戴的游戏公司之一。
《魔兽争霸》如何从一个创意发展为一款完整的游戏?要知道,从构思到发布的过程可不是一番风顺的。其间需要经历多次设计变更和创意讨论、检验、再讨论、修改、又讨论、又检验……甚至是推倒重建。但不断的讨论并不是一件坏事:虽然有时会伤感情,但只要事后和解,争论还是能够保证创意得到不断完善。
即使意见不同,我们还是在努力创作的过程中培养出同事间的感情。我们一起工作,一起玩,一起狂欢,甚至同居:我和3个暴雪同事就开创了同事合租宿舍的先河。
最初的提案
魔兽争霸1:90年代的作品,略显老气
《魔兽争霸》项目刚开始时,暴雪正同时制作另外4个项目。可全公司只有20个人,所以大家都忙得不可开交。美工、程序员和设计师们往往要同时负责2、3个项目。当然,我们唯一的音乐/音效工程师Glenn Stafford 需要包办所有项目。即使这样,我们还是能挤出时间,经常开会讨论公司的发展策略。
而暴雪主席兼联合创始人Allen Adham 在一次讨论会议上的发言更是促进了《魔兽争霸》项目的启动——他想制作一系列包装一致、副标题不同的战争游戏,例如罗马帝国或者越南战争等。这样,我们不仅能够在游戏货架上用少量空间就吸引新玩家们的眼球,也方便老玩家在琳琅满目的游戏商店里找到续作。
不过,公司早期的两位美工Ron Millar和Sam Didier对此并不感冒。他们喜欢《战锤》那样的奇幻游戏。所以,他们在接下来的一次会议中提出:应该将游戏设定为兽人和人族之间的战争,避免受到真实历史的束缚。于是,该系列的第一款游戏被定名为《魔兽争霸:兽人vs人族》(Warcraft: Orcs and Humans)。
最初的游戏设计
魔兽争霸一恶魔:此图则是基尔加丹的原型
许多人认为游戏设计师只负责构思创意或者确定游戏设计。而对于有些开发团队来说,设计师确实需要拥有高超的创意和独立实现游戏功能的能力。但更重要的是,他们需要接纳别人的创意,不然开发团队中的其他成员会缺乏创作热情。最要命的是,谁都不知道下一个绝妙的设计想法将从何而来,所以设计师需要善于倾听。
《魔兽争霸》开发初期不正规的设计过程反而相当高效。无数次走廊、餐厅、吸烟室里或者加班时的讨论使公司上下的每个人都得以贡献出自己的想法。而摆脱了正式审批和呆板的设计文案之后,游戏设计每个月都在进化。
原来担任美工的Ron那时就是暴雪公司的点子王。虽然正忙于另一款游戏的制作,他还是会挤出时间,为《魔兽争霸》献计献策。
Stu Rose是暴雪初期的另一位美工。他在个性上和Ron截然相反,所以他的想法经常和Ron的发生冲突。可是,一旦他们达成一致,这个想法就板上钉钉了。最后,他们独自负责《魔兽争霸》的文化和背景故事,定义游戏单位,确定游戏机制,设计魔法效果,制作游戏任务以及其他相关细节。
如今,我们已无法确定究竟是谁提出了哪些想法(那时我们就搞不清楚。所以,《魔兽争霸:兽人vs人族》包装盒上的“游戏设计”一栏中印着“暴雪娱乐全体职工”)。
不得不承认,在编程前确定设计文档会很方便。但在游戏打基础阶段,尚未确定的设计并不是件坏事,特别是在我们的设计大量借鉴了《沙丘2》的时候。
砍掉了什么
兽人苦工:那个年月兽人的形象还没有完全的定性,姑且认为是劣等兽人吧
兽人苦工
虽然我们现在还能玩到《魔兽争霸1》,但它和之后的即时战略游戏相比并不够有趣。对老游戏的崇拜所积累起的期待将在320×200的渣画面之前瞬间崩溃,而粗糙的游戏界面和糟糕的游戏平衡性则会让玩家彻底绝望。
但是,《魔兽争霸1》确实是经过多重淘汰后的优秀创意的总结。在许多方面,后来的续作都和《魔兽争霸1》保持高度一致。
今天的玩家们都很熟悉《魔兽争霸》中的兵营、市政厅、伐木场和金矿等经典建筑单位。这些标志性单位都在随后的众多续作中都得以保留,因为它们的名字和功能都能轻易地与现实世界接轨。不过,当初的设计文档中还有很多创意都没有被最终实施。有些是因为开发时间不足(我们必须赶在1994年圣诞节前发布游戏,而且差点没赶上),有些是因为缺乏技术支持,而另一些则是因为其整合过程太过费时、费钱或者太过无趣。
被弃用的创意包括:石匠大厅(用来建造石质建筑)、矮人酒馆(提升石头产量)、精灵箭匠(升级弓箭手)、税收大厅和啤酒屋等。这些都是二级建筑,有些甚至需要和其他建筑进行组合。后来,我们将它们(例如矮人酒馆和精灵箭匠)的功能添加到已有的建筑中,而不是分离出各种功能单一的建筑。
我们认为不应该引入石头这第三种资源(过于繁琐),所以砍掉了石匠大厅。在《魔兽争霸2》的设计过程中,我们重新探讨了这个创意。但在反复试验之后,我们最终还是决定砍掉它。
设计啤酒屋原本是为了提升士兵和金子的生成速度。但是由于个中理由过于牵强,我们最终决定砍掉它(为什么醉了反而会提升生产力?)。
蜥蜴人、小妖和半兽人等NPC种族最终也都被留在了草稿上。原因很简单,美工忙不过来。
游戏开发讲究平衡,优秀的游戏也不需要面面俱到,只需要有几个过人之处就行。
阵型
人类盗贼
人类牧师
另一个久经考验但最终被砍掉的创意是“阵型”——让几个单位在战场上团结在一起。由于太难实现,我们最终只能砍掉它。原因包括:部分单位过于缓慢,无法和大部队保持阵型;阵型需要相互转换,玩家需要改变前军和后军位置……这大大增加了界面复杂性;如果时间充足,我们一定能实现这个特性,但是我们那时更需要将时间用于实现更多基本功能。
取而代之的是小队编号功能:选定几个单位之后,玩家可以按住Ctrl 加上数字键(1-4),将它们编为一个小队并附加编号。然后,玩家只要按数字键(1-4)就能快速选择相应的小队而小队中的每个单位还都能独立活动。
战场上的玩家角色
还有一个久经考验但最终被砍掉的创意是用一个单位在游戏地图上代表玩家——一个通过完成任务不断升级、成长的角色。越常使用,这个角色就越强;而如果不用,它就一直是软脚虾。
让一个单位执行一个接一个任务增加了调整游戏任务平衡性的难度:优秀的玩家能通过任务让角色变得非常强大,使之后的任务变得相当简单,缺乏挑战性;而技术不好的玩家则无法提升角色的能力,使之后的任务难如登天,令人沮丧。在这两种情况下,玩家都会选择放弃游戏,因为只有少数玩家愿意回到之前的关卡从新修炼人物。
另一家公司在《魔兽争霸》首发的几年之后推出了一款名为“War Wind”的游戏,其中就有类似的单位。他们的设计师允许最多4个单位接连执行各个任务,而且调整了游戏平衡性,保证这些单位不会强大到影响游戏进程。但这和英雄角色的特性背道而驰。
《魔兽争霸》中的英雄
我们还曾打算在《魔兽争霸1》中增加英雄单位。它们拥有幻影神偷、野蛮人、女猎手、判官等酷炫的名字,而且个个身怀绝技。最后,由于时间不足,我们忍痛砍掉了这些单位。
作为一个和《魔兽争霸3》没有太多瓜葛的人,我欣喜地看到英雄终于被引入了这个游戏系列,尽管它们的创意并非来自《魔兽争霸1》的设计文档。
简而言之,《魔兽争霸3》的英雄摆脱了正统的即时战略游戏,首先出现在“英雄争霸”模式中,以小队战术对决游戏的形式独立存在于《魔兽争霸》的世界里。而随着开发团队领导的变更,这个游戏又被整合入传统的即时战略游戏中。
魔兽争霸一伤员:暴雪当时并不知道魔兽系列会给他们带来如此的辉煌
幅图像展示了强大的被称为“艾泽拉斯之雄狮”的安度因·洛萨爵士,他是在快到魔兽争霸剧情结局时才被创造出
魔兽争霸的鲜明色彩
魔兽争霸游戏画面
研究过《魔兽争霸》画风的人都会发现,它的颜色比《暗黑破坏神》要鲜艳得多。明亮的卡通画风和同时代PC平台上的其他战争游戏所采用的写实画风大相径庭。
这也许是因为我们的美工曾经创作过超级任天堂和世嘉Genesis的游戏有关:那时的电视在色彩呈现方面远不如电脑显示器,所以游戏需要更动感的色彩。而低解析度和低色域的电视主机游戏也更需要高对比度的画面。
而Allen也是原因之一。他不仅要求所有美工都使用亮色作画,而且经常打开所有的灯和百叶窗,逼迫他们进行调整。他认为大多数人都在明亮的房间里玩电子游戏,所以我们的游戏画风需要适应这种环境。他觉得在不受外界光线干扰的暗室中能够识别任何画面,但电脑美工则需要和亮光环境对抗。
现在大家都知道为什么《魔兽争霸》要使用糖果色了吧?
全球首款多人连线游戏《魔兽争霸》是大胜利、是惨败也是平局。这怎么可能?说来话长,其中包括游戏AI、经济、黑雾等多方面因素。接下来将逐一分解:
从1993年9月起,经历了6个月的开发之后,第一款成品《魔兽争霸:兽族vs人族》终于问世。
几个月以来,我一直是开发团队中唯一的全职雇员,所以这个项目进度缓慢。幸好还有Ron Millar、Stu Rose等其人负责设计,以及几个美工抽空负责原画。人手不足主要因为开发经费来自为Interplay和SunSoft做外包的几家公司的自家腰包。而且,我们那时还同时负责4款16-bit家用主机游戏:《The Lost Vikings 2》、《Blackthorne》、《Justice League Task Force》和《Return of Superman》。我们只能从这些项目中挤出《魔兽争霸》的项目启动经费。
游戏开发经济
魔兽争霸3游戏截图
在游戏业发展史中,独立游戏制作室一般通过和发行公司签订合约来获得项目资金。游戏发行商可能会“预付”一定的开发款,并负责发行、营销、制作、运输和客户支持等。
90年代初期的游戏发行商数量比现在多得多,但不断高涨的开发费用导致破产和兼并频发。所以,现在的零售游戏发行商只剩下动视暴雪、EA或者育碧等大厂。
与其它产业一样,合同总是对出钱的人有利。在理论上,这些条款保证游戏开发者在游戏大卖后获得奖励。与音乐和电影业界中大部分利润归发行商所有一样,游戏开发者得到的分成只够撑到下一次签约。
之前提到的“预付款”其实算是“预付版税”,也就是游戏的销售提成。开发者之后还要还上这笔账。“开发游戏,然后每卖出一份就有提成”这听起来不错,但大多数游戏根本无法获得足够的版税,用来还债。于是,开发小组不得不放弃本作或者续作的版权。这一点在合同中尤为显著。
为了获得更有利的条款,游戏制作室通常选择自费开发游戏原型,然后用原型招商引资。而自费开发时间越长,合同条款越有利于游戏开发者。
以Valve Software为例,Gabe Newell用自己在微软累积的财富自费开发《半条命》并控制了游戏发布时间(发布高素质游戏,而不是赶工发布半成品,以增加游戏发行商Sierra Entertainment的季度收入)。更重要的是,Gabe的资金使Valve在网络发行方兴未艾时就获得了《半条命》的在线发行权。这确保了该制作室日后的巨大成功。
另一方面,自费开发就要冒着没有发行商愿意签约的风险。而这经常导致游戏制作室的倒闭。
我们公司那时名叫“Silicon and Synapse”。我们自费开发《魔兽争霸》和另一款名叫《Games People Play》的拼字游戏。两款游戏的受众截然不同,而公司老板这么做是为了扩大盈利面,避免将所有资源压到核心娱乐市场的高风险。
当然,分开投注也有风险:如果玩家不满意这些游戏,公司品牌将大为受损。因为之前的暴雪游戏广受好评,所以现在的玩家们才会毫不犹豫地相信我们,选择我们的最新游戏。同时发布低预算休闲游戏和高预算AAA级游戏的公司将很难建立良好的声誉。挣扎求生却最终倒闭的Sierra Entertainment 就是最佳例证。
不管怎样,《Games People Play》都是败笔。因为它令首席程序员频频受挫并最终成为烂尾项目。但这也许并不是一件坏事,因为同时开发《魔兽争霸》和《Games People Play》让当时全球第二大的教育软件公司Davidson & Associates下定决心收购Silicon & Synapse。
新老板
暴雪logo
由Jan Davidson创建的Davidson & Associates凭借《Math Blaster》茁壮成长。寓教于乐确实是一招好棋,而该公司也借此上位。
明智而激进的领导使Davidson & Associates将业务拓展至游戏制作业、游戏发行业和送货到校的学习材料发行业务。他们看到了进军娱乐业的机会,但最初的失败使他们下决心收购更有经验的游戏制作室,而不是继续摸索。
收购使《魔兽争霸》开发团队的资金问题迎刃而解。倚靠Davidson这位大老板之后,Silicon & Synapse(也就是日后的暴雪)得以专心制作自己的游戏,而不是追逐其他游戏发行商丢出的蝇头小利。那些利润真的微不足道。因为即使在1993年推出了两款顶级大作并被称为“当年游戏开发者中的任天堂”,我们公司依然没能获得任何版税。
后来,Silicon & Synapse用收购得来的大笔资金雇佣了新员工并使老员工全身心投入工作。这使《魔兽争霸》的开发进度突飞猛进。
设计“过程”
魔兽争霸一人族步兵:和魔兽3中的人类士兵装备有出入
暴雪早年设计、创作游戏的过程堪称“井井有条”。正式设计讨论会极为混乱,这使得大厅中和会餐时的频繁讨论显得更为重要。
有些游戏特性来自设计文本,另一些则由程序员们随意添加;有些游戏画面早有安排,但另一些则由美工们在深夜即兴绘制或者凭借灵光一现来修改;其他元素全靠即兴发挥——《魔兽争霸》的剧情和背景故事直到游戏首发前几个月才仓促整合完毕。
魔兽争霸一亡灵骷髅不是“普通”的人类,而是作为亡灵从地底复活,这部分出自魔兽争霸。兽人& 人类游戏指
虽然设计过程无法预测,但结果相当不错。因为我们创作团队全由电脑游戏狂人组成。我们的游戏在开发过程中不断进化并最终成为让玩家爱不释手的佳作。我们为IBM个人电脑开发的首款原创游戏《魔兽争霸》是最佳(有时最差)创作过程的典范,而最终的游戏成品则被(至少是当时的)无数人效仿。
《魔兽争霸》的单位生成系统如何成型
魔兽争霸1游戏截图
进化过程出错将导致整棵进化树的毁灭。我们的游戏也是如此。我们没有前者可以效仿,必须试验并得出最佳方案。但在很多情况下,成果来自于意外、争论和个人冲突。
开发初期,因为其他用户界面还没完成,我们需要用“作弊码”来将战斗单位投入游戏。于是,我们想出了许多生成战斗单位的方法。
美工Ron Millar建议游戏应该模仿《Populous》,让玩家先建设农场小屋,然后从中生成工作单位,用来采矿、建设。但是,这些单位并不擅长战斗。而不忙的工作单位可以在兵营中被训练为战士,但是它们会暂时从地图中消失。其他建筑物则能训练出更高级的战斗单位,如投石车或者法师等。
这个设计没有被完全实施,因为其中缺乏创意。所以游戏设计团队在编程前又对其进行了多次修改。而在此之前,当Ron和公司主席Allen Adham一起出差的时候,一个事件彻底改变了《魔兽争霸》系列的设计方向:另一位元老级美工兼程序员Stu Rose认为Ron的单位生成机制过于复杂,而且违反即时战略游戏的特性。此类游戏需要凸显玩家的重要性,不应让玩家长时间分神。因为玩家还需权衡其他各种因素,如:建造、采矿、生成单位、安排建筑物、探索地图、控制战斗和微操等。玩家的注意力是最有限的资源,而繁琐的单位生成将使玩家分心并增加游戏难度。
我同意他的观点。《魔兽争霸》的设计原型《沙丘2》就拥有更加简洁的单位生成机制:建造工厂后单位就会随后自动生成。虽然不是原创,但它确实有效。于是,在随后的几天中,我加班赶出了游戏界面和单位生成的代码,让这种设计变成既成事实。等Ron他们出差回来,游戏的单人模式已经基本完成,只差繁琐的AI调整。那时,《魔兽争霸》已经是一款简单可玩而且有趣的游戏,所以我们不再返工。
《魔兽争霸》的首局连线游戏
魔兽争霸3游戏截图
1994年6月,经过10个月的开发,游戏的多人连线引擎基本完成。当我忙于核心游戏逻辑的编程时,其他程序员则忙于其他相关元素:Jesse McReynolds正根据《Quake》的开源代码改编发送IPX包的低级网络架构。虽然只有几百行代码,但它关系到游戏和网卡驱动联系并向其他玩家发送信息是否顺畅;Bob Fitch则负责创建比赛和加入其它玩家的界面。
我和Bob的办公室仅一墙之隔,这便于将他的逻辑整合入我的游戏事件结构中。当我将最新的客户端与网络相连之后,奇迹发生了:我们可以开始《魔兽争霸》的第一局连线游戏了!在游戏中,我感到了前所未有的兴奋。这不仅因为我参与了代码的编写,更重要的是,我创造了两种非常恐怖的因素:和人类玩家对抗以及隐藏了对方活动的黑雾。
黑雾
黑雾模仿了战场上的信息不充分性。而17年前的回合制策略游戏《Empire》就采用了这种机制。这迫使玩家在游戏早期就需要探明地图。
敌人动向的不明确性创造了心理上的恐惧。这使即时战略游戏的乐趣倍增。
电脑AI
魔兽争霸一蜘蛛:魔兽争霸的成功之处在于在即时战略游戏中加入了野怪设定
玩家们都知道,策略游戏的AI都很弱。因为玩家能轻易找出程序中的薄弱环节,所以AI通常具备兵力、地形优势。《魔兽争霸》也是如此,我们甚至降低的AI的金矿衰减率,让金矿“更耐用”。
这种不平等令游戏变得更有趣:首先,它能避免玩家采用龟缩战术,坚守不出。其次,这能鼓励玩家去占领AI尚未采完的金矿,加快游戏进程。
更不公平的是,AI能够无视黑雾,对玩家的动态了如指掌。但在实际操作中,这只能避免AI过多地做蠢事而已。
有趣的是,长寿的《星际争霸》的AI并不作弊。程序员们通过一种名为“BWAPI ”的代码,将指令直接输入游戏引擎中。他们让各种AI互相比拼。这样,人类玩家很难战胜其中最优秀的AI。
和人类玩家对抗
开发《魔兽争霸》之前,我玩过很多策略游戏。我非常清楚AI的局限性。虽然和AI对战很有趣、令人激动也富有挑战性,但其过程从不可怕。和人类玩家对抗则不然。在首局《魔兽争霸》联网对战中,我的对手具有高超的技战术素养,而且输入指令的速度又快。黑雾创造的未知感更让人感到不安和激动。所以,我必须提高采矿和建造的速度,探索地图并试图尽快击溃对手。这不仅是一场测试,更是争夺首胜的比赛。当我们短兵相接时,战况更加激烈。最后,程序崩溃了……
程序员们都知道,新代码一次成功的几率几乎为零,所以我并不在意。我冲到Bob那边,和他争论到底谁快赢了。后来,我们发现程序不仅存在Bug,而且游戏过程不同步。
《象棋》等游戏的信息通讯量不大,而在《魔兽争霸》中,多达600个单位可能同时活动。而在那时的网络中传送如此大量的信息是不可能的。所以,我只让客户端交换玩家们的指令并在各自的机器上同时执行这些命令。不幸的是,程序员无法对电脑下达正确的指令,所以产生了Bug。如果两台电脑对相同的问题得出了不同的答案就会产生同步问题。小问题的不断累积就会使游戏脱节。我在电脑上对敌人发动攻击,而对方可能无视攻击并且前往别处。如果不能及时发现并纠正这种错误,两台电脑上的游戏过程将大相径庭。
所以,第一场《魔兽争霸》对抗赛以平局告终。但双方都赢得了很多(乐趣)。一旦尝试过联机对抗,其他游戏都是浮云。虽然游戏经常崩溃,我们知道自己已经走上正轨。
我们只需完成游戏
悲剧的是,我们后来发现导致不同步的Bug有很多。所以我们需要逐一研究并在游戏发售前创建出能够发现并纠正不同步的系统。任重(微博)而道远啊!