zoukankan      html  css  js  c++  java
  • Patrick Wyatt:魔兽争霸的制作过程

    转自:http://blog.jobbole.com/30352/

    摘要:说到DOS下的RTS(Real-Time Strategy)游戏,不得不提起Warcraft!它被认为是现代RTS的鼻祖之一,本文由魔兽之父Patrick Wyatt亲自操刀,重现当年Warcraft开发的日子,并阐述Warcraft开发所遵守的理念。

    导读:回到那个PC游戏还是运行在DOS系统的时代,DOOM、极品飞车和波斯王子等游戏影响了一代人,当然也有国产的仙剑奇侠传等经典之作流传下来。但是说到DOS下的RTS(Real-Time Strategy)游戏,不得不提起Warcraft!它被认为是现代RTS的鼻祖之一(虽然魔兽之父Patrick Wyatt更推崇Dune2才是现代RTS的始祖),本文由Patrick亲自操刀,重现当年Warcraft开发的日子,并阐述Warcraft开发所遵循的理念。

    Patrick Wyatt:魔兽争霸的制作过程(1)

    我是项目组长!

    虽然我已经参与开发过很多PC、Mac游戏甚至为超级任天堂和世嘉开发过7个电视游戏。但是一直以来都是以一个初学者的身份参与这些项目,或者只是简单地将游戏移植到其它平台。

    我主要参与两项工作:以制作人(作者注:游戏行业术语,通常是指项目管理员、设计师、传道人和 cat herder)的身份领导开发团队以及作为首席程序员来编写主要代码。相比于现在两百来人的大团队,以前只有一二十人的小团队更让我放心。

    Warcraft的起源

    我所在创业公司——当时叫做Silicon & Synapse,后来因为我们狂暴的开发方式改名为Blizzard(暴雪公司)——的开发人员在休息时间玩了很多优秀的游戏,正是从那些游戏中碰撞出创造Warcraft的火花!

    我们开发Warcraft的灵感来自于Westwood Studio(西木工作室)的Dune(沙丘)2。虽然颇有争议,但Dune2通常被认为是第一个现代实时战略游戏(RTS),有一个滚动的世界地图、实时的单位建设和运动以及个体单位战斗。它和现代RTS比如星际争霸2相比,除了规模和图形效果外并没有什么实际区别。

    它和它的前身Dune1——一个非常有价值的游戏——共享了一些相同的元素,但Dune1的半实时单位战斗被包裹在了冒险游戏里,Dune2则摒弃了之前的角色扮演的路线,专注于RTS架构:开采资源、建立基地、开采更多的资源、建立军队并且最终找到并消灭敌人。

    和其他Blizzard的员工一样,我最终也沉迷于Dune2,并且已有空闲时间就研究三个种族的优劣,一起在公司里讨论游戏风格、展示和战略。

    虽然这款游戏很有趣,但它有几个很明显的缺陷急待修复。最明显的是当我和朋友只能一起和计算机战斗,很明显这种游戏更适合多人对战。不同于回合制游戏,实时战斗需要允许多人同时下命令、迅速做出反应并且支持长远的战略计划。

    带着这一非凡的思想,Warcraft的设计变得简单多了,只需要评估技术要求、建立计划和员工开销即可。回到Blizzard后,我们经常在午餐时间在餐巾上制定计划,我们把它叫做“今日事物计划”,这也是我们的标准操作方法。

    初步发展

    在开发的初级阶段,我们甚至缺少艺术家团队,在我不得不需要一两个艺术家帮忙之前,我一直在使用Dune2的屏幕截图,艺术家总是没有时间分心,我们一直时间紧迫。

    我早期的游戏引擎开发的努力包括一个基于拼图的滚动地图渲染器、一个用来绘制游戏单位和其他位图的图元渲染器、一个图元排序器保证游戏单位动起来还有一个时间调度器传递鼠标和键盘事件、一个游戏调度器控制单位动作以及大量的用户界面代码控制应用程序的行为。随着项目最初几个礼拜工作的完工,它已经可以当做单人游戏“玩”了,尽管还没有实现后来的单位建设等功能,在早期阶段需要输入命令来在屏幕上制造单位。

    之后每天我都在改进之前的工作。没有任何时间表和里程碑,也没有项目外部驱动器,我可以随心所欲地决定接下来建设什么特性,这让我非常有动力。我非常享受这样的开发,就像毒品一样让我入迷,即使现在,我进入游戏产业22年之后,我仍然喜欢编程的创造性。

    第一个特色:多单位选择

    最令我自豪的特色就在于单位选择,和Dune2不一样,开始多单位战斗不再需要疯狂地点击鼠标,玩家可以在其中多选单位来加速战斗部署,能够明显地提升游戏战斗。

    在进入游戏产业之前,我曾经接触过几个低端计算机辅助设计(CAD)程序,比如MacDraw和MacDraft来为我父亲的酒窖商务设计酒窖设计,使用拖拽来选择长方形区域显得非常自然,这要比使用命令来操作单位方便多了。

    我相信Warcraft指第一个使用这种操作模式的,当我第一次实现这一特色功能,从此可以同时选择和控制大量单位,选择单位的数目并没有限制。

    但同时选择和控制100个单位也暴露出它致命的缺点——我的简单路计算法。当我得到了基本的算法成功后,我仍然花了数小时来选择单位并把它们派遣到地图的各个角落,而不是编写更多的代码,这是我在编程生涯中最伟大的创造!

    后来在和团队成员对此讨论设计问题后,我们决定允许玩家一次最多仅可选择4个单位,以保证玩家注重战略部署而不是简单的拖动一群暴民打一次性群架。后来,我们在Warcraft II里把这个限制增加到9。命令与征服,Dune2的精神继承者,并没有在单位选择的数量上加限制,这也是个很值得思考和讨论的设计分歧。

    这一阶段的Warcraft,除了多单位控制之外,简直就是Dune2的“阉割版”,就像我保护性地开玩笑道:Warcraft本来就是受Dune2的启发而制作,但他们是完全不同的游戏——我们的雷达地图在屏幕的右上角,而他们的在右下角。

    团队的建立

    1994年早期,我加入了由Ron Millar, Sam Didier, Stu Rose, Bob Fitch, Jesse McReynolds, Mike Morhaime, Mickey Nielsen等人组成的团队,他们中许多人在我们公司被Davidson & Associates于1994年2月收购后开始加入游戏的开发。

    Warcraft的艺术

    Allen Adham希望能够得到Warhammer(战锤)世界观的授权,借助品牌知名度来增加销量。Warhammer是Warcraft艺术形式的灵感来源之一,除了很少有事务团队的参与之外,几乎开发团队的所有人员都参与了“我们的世界”的设计。我们有和DC Comics共事“超人的死亡与归来”以及“正义联盟特遣部队”的糟糕经历,我们希望在自己的游戏中避免类似这样的问题。

    现在想想,Blizzard没有去控制Warcraft世界观的知识产权真是不可思议——这很不像暴雪在现在游戏产业中主导者所做的事。

    Warcraft推出多年以后,我的父亲在从亚洲之旅回来的途中给我带来了一个礼物:一套Warhammer骷髅战车和战马的微缩模型,附带着一句话:“我在旅行的途中发现了这个东西跟你的游戏很像,我觉得你可以让法律部门去联系他们,因为他们在抄袭你。”(⊙o⊙)…

    游戏开发过程中的阻力

    在早期开发过程中我们遇到了一件有趣的事,在我在创建一个能够通过调制解调器或者局域网玩的游戏时,发现公司竟然没有一个办公室局域网!我们使用控制台标题,可以很方便地使用软盘传输,所以局域网并不是必须的,尽管它能简化备份。

    所以在我开始与其他艺术家、程序员合作的时候,我们使用了“sneaker network”——在办公室之间传递软盘来提交代码和插图。

    Bob Fitch是这个项目的第二个程序员,我和他经常互相传递软盘来合并代码变化,但是经常会因此产生错误。我们跟踪合并步骤,发现经常是在合并新代码的时候重写了修复bug的代码,于是我们又不得不回忆一遍之前是怎么修复这个bug的。

    这种事经常发生,因为我们开发的疯狂以及我们缺少处理代码合并的步骤,只是通过记忆来判断自己曾对哪些文件做过更改。很幸运的是,我是代码合并系统的中心,所以我做的更改很少会丢失。现在我们有很多源代码控制工具,而那时候我们都不知道它是什么。

    随着程序员、设计师和艺术家的大量增加,我们也发现了我们的工作的大的阻碍——游戏最初被设计在DOS “Real Mode”下开发,这意味着只有640K内存可以使用,操作系统本身就用了近120K,你能想想当时的计算机有多恶心吗?

    随着艺术团队开始创建游戏单元、背景和用户界面,我们迅速烧掉了所有的内存,并开始寻找替代品。第一个尝试是EMS“paged memory”,超越640K内存障碍映射和存储数据。

    老程序员会告诉你EMS的故事,就像老人们说他们曾经为了爬山上学不得不光着脚穿越雪地一样,但是EMS实际上比这更可怕。

    在所有的情况下EMS都没有成功,但幸运的是有更好的解决方案。一个叫Watcom和公司发布了一个C编译器,包括一个DOS-mode的扩展器,允许写在保护模式下,通过进入线性32-bit内存——这一现在的程序员在写32-bit(甚至64-bit)应用时认为是理所当然的东西。但是它需要花一两天来更新源代码,DOS-mode扩展器运行地很完美,我们又可以在更大的内存环境下工作了!

    Warcraft究竟是怎样从一个想法进化为一个完整的游戏的?我来告诉你:这个概念的实现绝对不是一条直线!和其它游戏一样,魔兽争霸的设计随着时间的推移也是一直在演变着,设计过程中,不停地有想法的提出、测试、论证、修改、复检或者丢弃。虽然一直有很多的讨论,但这并不总是坏事。虽然有时候甚至会演变成人身攻击,不满和道歉一直贯穿着始末,但这一切保证了最终想法的质量。正所谓“不打不成交”,这一切共同的努力也是我们友谊的见证——我们一起工作、一起玩乐、一起开Party。

    Patrick Wyatt:魔兽争霸的制作过程(2)

    最初的提议

    我刚开始Warcraft的开发时,Blizzard当时至少还同时进行着其它4个项目,公司只给我们配了20个员工来保证开发的进程,每个人都不得不保持辛苦地劳动。艺术家、程序员以及设计师同时工作于两三个项目是非常正常的,我们唯一的音乐家/声效工程师Glenn Stafford不得不参与所有的项目。

    我们经常找时间进行头脑风暴来来讨论公司战略,我们把自己的努力叫做“商业巨谈”。

    我之前已经说过,我们的目的是以后来的DuneⅡ为蓝本开发一个RTS游戏,这里我还要再提一下另一个我们游戏设计的主要灵感。

    另外一个游戏开发的动力来自我们的总裁及公司联合创始人——Allen Adham,他在一次头脑风暴中提到,希望能有一系列相同白色盒装游戏,使用Warcraft作横幅标语,副标题用来描述每一个子游戏的历史背景,比如 :罗马帝国时代、越南战争等。

    这么做是为了占领零售架的一大块地方,让玩家在拥挤的零售店里能够一眼就看到我们的产品,类似于SSI的龙与地下城金盒子系列,后者是20世纪80年代末的巨作。新玩家会被吸引到零售店的“魔兽地带”,而享受过我们游戏的老玩家自然知道新作会出现在哪儿。当然,零售店和现在的App Store或者Amazon相比确实有点古老了。

    Ron Millar和Sam Didier,公司早期的两个艺术家,对历史仿真游戏并不感兴趣,他们更喜欢Warhammer或者龙与地下城这样的奇幻游戏。只要你看过Sam的艺术作品,就会知道他对奇幻游戏究竟有多少热情了!

    所以在之后的会议中,他们提议应该开发Orcs and Humans这样的高幻想成分的游戏,这样他们就更有机会去创作游戏作品,而不是花费时间去核对历史真实度。我们采纳了这个想法,于是有了Warcraft I:Orcs and Humans。

    最初的设计

    许多人认为,一个游戏设计师应该全权负责所有的思想、观念的设计,实际上也就是“创建游戏构思”,这可能是某些开发团队的真实写照。设计师确实需要极富创造性,并亲自为游戏中的元素赋予生命力。

    但接受别人的想法也同样重要,团队其他成员如果不加入游戏的设计很难会有动力做出最大努力。比这更重要的是,你永远不知道下一个杰出的设计和构思是谁提出的。我们没有正式的过程,也没有既定的设计文档,但每个月游戏的设计都在演变着。

    Ron,他本是一个游戏艺术家,就在那时成了我们Bilizzard游戏设计的核心成员。虽然他完成了任天堂的Blackthrone这款滑动射击游戏,但他每天都会专门花时间来思考游戏的设计。

    Stu Rose是我们的另一位艺术家,也是Blizzard早期员工之一。从个性上来看,他和Ron在很多方面截然相反,作为设计组的一部分,难免经常和Ron发生观念冲突,但毋庸置疑的是,他们的“冲突”是我们游戏发展的极大推动力。

    他们两个共同完成了整个设计流程,就像书的首尾页一样,他们独自构建游戏的世界观和剧情框架、定义游戏单位、设计游戏细节、构思魔法的使用形式、设置游戏任务、选择场景名、还要补充其它细节,当然最重要的是把游戏带入生活中来。

    可惜现在已经太晚了,很难再整理出到底是谁设计的游戏的某个细节。回到更久远的时候,我们曾困惑于如何描述游戏设计的分配,最终我们选择了最美妙的、最公平的方式——在Warcraft I:Orcs and Humans的包装盒上写上“Game designed by Blizzard Entertainment”。顺便提一句,Warcraft I的Moby Game credit完全被毁掉是因为他们把后来Macintosh、1998年的版本跟1994年的最初版本完全弄混淆了,所以很多人都没计入credit。

    我记不清具体的时间了,但最近我看到了一个早期的设计文档,上面写着“混沌工作室”,这说明它是在1994年早些时候、公司更名为Blizzard之前整理的。1994年2月的时候,我们有一组经过几次迭代的粗糙的文档,上面记着游戏的关键理念。

    不可否认的是,在我在1993年9月开始编程之前有一个到位的设计会更好。但在游戏真正的功能性部分开发完之前有太多的基质需要处理,缺乏设计在那个阶段并不是明显拖慢开发的因素,特别是因为我们已经从Dune II中借鉴了很多游戏元素。

    删减的内容

    虽然直到现在还有人在玩Warcraft I,但它跟后来的RTS游戏比起来要逊色不少。虽然备受期待,但并没有实现在现代计算机上运行,因为游戏的分辨率只有320×240像素——只有现在高清显示屏二十分之一的清晰度,也大不如我们后来的游戏在图形界面以及游戏平衡性方面的努力。

    但是,玩Warcraft I你也只能看到它的最终发行版中保留下来的想法,实际上,Warcraft I跟这个系列后来的游戏在很多方面都大不相同。

    现在的Warcraft游戏玩家对很多经典的单位都很熟悉,比如:兵营、大厅、伐木场和金矿,这一系列在Warcraft系列中一直延续下来了。这些标志性的游戏单位相比于Azeroth来说,现实社会中的人类更容易理解。

    但也有很多早期的设计没有被保留下来。很多是因为那残酷的截止日期——我们必须站在1994年圣诞前完成它,我们最终勉强完成了。有些功能被删减通常是因为有更好的替代品,或者没有大力拥护它的人,或者是太费时间来实现,或者是内存的限制,又或者只是因为不够有趣。

    我知道你们可能想知道那些被删掉的设计,就像Mason’s Hall [需要“石材建筑”技能]、 Dwarven Inn [需要“高级石材建筑”技能]、 Elven Fletcher [升级弓箭手]、Tax House以及and Ale House。

    上面的这些建筑都需要“二本科技”,有的甚至需要多种科技组合。我们并没有单独设置方法建造新的建筑,比如Dwarven Inn 和 Elven Fletcher,而是在旧建筑上升级。

    Mason’s Hall被删去是因为我们认为没必要增加石头作为黄金和木材外的第三种原料,这只是在无意义地增加游戏复杂性。在Warcraft II里我们又重新审视了这个想法,但在编程实现阶段又再次将其丢弃。

    Ale House的作用在于加快士兵采集木头和黄金的速度,但在那次在现实世界的酗酒后我不再认同这一想法,也许在Azeroth有着特殊的魔法法则吧:)这似乎就是我们删去Ale House的缘故。

    类似蜥蜴人、妖怪、半人等NPC角色最终也只是停留在画板上,因为使用DPaint绘制和增加动画的难度。

    游戏开发也是一种权衡——优秀的游戏并不会包揽一切,但它把要表现的东西都表现得很好。

    阵型

    阵型是另外一个一直未被实现的功能。阵型控制战场上的单位在战场上以特定的形式排列在一起,这实在是难以实现,所以在最终的说明书上我们也没有加上它。

    阵型实现的难处在于:阵型中的所有单位需要以速度最慢的单位的单位的移动速度前进,以保证速度慢的单位不会掉队——这增加了编程的复杂度。阵型需要旋转的功能——或者说是转动——这样一个向北进军的步兵在前、弓箭手在后的军团在遭遇东边来的敌军分遣队时能够保证良好的阵型——弓箭手在步兵的后面——这大大增加了用户界面的复杂度。给我们足够的时间我们能完成这些特性,但我们更需要时间完成基本的功能。

    作为替代,我实现了“数字编队”功能。玩家可以选择多个单位,使用Ctrl+数字键(1-4)组合来进行编队,这样在之后按数字键(1-4)的时候就会自动选择之前确定的队伍,但这些单位仍然会单独移动而不是整体地。

    战场上的玩家化身

    我们也曾想过在游戏地图上增加一个玩家的替身单位:一个会在战争中持续进化的化身,最终也没有实现。

    玩家在游戏中的化身会在游戏中通过多次战役由弱变强,当然这个化身需要,不断地在前线奋斗,一个不被用的化身是不会变强的,想要变强只能不断地奔赴前线去战斗。

    最终这个想法因为会影响游戏的平衡性而被否决掉了。一个优秀的玩家会让它的化身变强地很快,这样之后的游戏就变得太过简单了;而技术差点的玩家因为无法将化身变强,可能无法完成任务。这两个问题可能会导致玩家放弃这个游戏——因为缺乏挑战或者遭受过大的挫折。

    在Warcraft允许单位在任务之间进化的几年后出现了一个叫War Wind的及竞争对手的产品;这个游戏设计师允许转移4个单位,同时通过限制这些单位的能力来保证游戏的平衡性,某种意义上和英雄有点相似。

    英雄——在Warcraft I中

    在Warcraft I中我们也考虑到了英雄这一概念,他们有名字,比如:Illusion Thief、Barbarian(野蛮人)、Huntress(女猎手)以及Juggernaut(剑圣),每一个都拥有独特的技能。最终我们大幅削减了游戏单位的名单,也许是因为没有足够的时间来完成设计和动画创作。

    有的人只是有限地参与了Warcraft III,但这个系列最终实现了英雄这个想法确实很有趣,尽管英雄的设计原型并不相同——这是说,它并不是把Warcraft I的设计文档中的想法回炉重铸。

    简单地说,Warcraft III起源于Heroes of Warcraft这款游戏,不同于我们之前开发的5款RTS游戏(W1, W2:ToD, W2:BtDP, SC, SC:BW),它是一个一个基于Warcraft世界观的战略性游戏。Heroes of Warcraft最后因为项目领导的变动而重新变形为传统的——但保留了“英雄”元素的——RTS游戏。

    Warcraft的亮度调色板

    如果你回想一下Warcraft系列的艺术作品,你会发现它令人惊奇地比Diablo——这款只有在昏暗的屋子中才能欣赏其美丽的作品要明亮得多。它明亮的卡通化的艺术形式和其它同类PC战争游戏大不相同,这得益于我们更逼真的调色板。

    这样的差异可以部分的解释为我们的艺术家过去的经验,他们曾经为超级任天堂和世嘉创世纪开发过几个电视游戏,在那上面游戏需要更高的动态颜色,因为那个时代的电视比PC显示器显示颜色的能力还要差很多,更低的分辨率和颜色溢出,也因此需要更高对比度的插画才能显示好。

    另一个原因是得益于Allen的要求,他让所有的艺术家在亮光环境下工作。他经常走过去打开Blizzard大厅的电灯、并打开百叶窗。

    他的观点是,大多数人都在明亮的房间玩游戏,所以我们的艺术家也应该在相同的环境下工作。它强调:不考虑外面强光的影响,作出能在黑暗的房间里阅读的作品很简单,但是当计算机显示器遇到强光时就会出现很多问题,而其中荧光灯是最糟糕的——它发出忽隐忽现的冷光的光管会让人眼更容易疲惫而看不清颜色!

    所以艺术间的灯永远是开着的,来强制艺术家们考虑到这糟糕的光线因素并做出光差补偿。这种强制性的工作环境激怒了艺术团队的一些(全部?)人,但最终确实让Warcraft的插图在那个时代脱颖而出。

    现在你知道为什么Warcraft的插画为什么那么诱人了吧!

    在本系列的第一篇文章中,我答应在这篇文章中罗列多个话题,但最近又在另一篇长文中花费了太多的时间,所以只能到此为止了。我打算在未来的几篇里继续向后讲述这一系列的故事,但是请给我一点时间,因为我最近沉迷于DayZ,我需要更多的游戏时间!

  • 相关阅读:
    springsecurity-微服务-springsecurity工具类封装
    springsecurity-微服务-认证授权的过程
    springsecurity-CSRF
    springsecurity-自动登录实现
    Vulnhub-靶机-DC: 9
    Xss-labs-level3-6
    靶机-生成自有账户和密码提权
    靶机-敲击相关方式汇总
    Vulnhub-靶机-DIGITALWORLD.LOCAL: BRAVERY
    Xss-labs-level1-2
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/2893490.html
Copyright © 2011-2022 走看看