- 网页游戏开发秘笈
- (美)Evan Burchard
- 1758字
- 2021-03-27 06:32:16
第2章 文字冒险游戏
文字冒险游戏的代表作有《魔域》(Zork)和《惊险岔路口》(Choose Your Own Adventure Books)。
现在流行的游戏基本上是MMORPG 、实时的第一人称射击游戏,以及逼真的体育类游戏,这种游戏几乎能模拟出真实的球场氛围来。如果是玩着这些游戏长大的,那估计你可能不太熟悉早期的电子游戏,那时候的游戏不像现在这样,它们没法利用今天这些功能强大的硬件和软件。有种游戏叫做“文字冒险游戏” ,它们和《Choose Your Own Adventure》系列 的“游戏书”(gamebook)很像,玩家在玩这类游戏时,需要点击游戏中的相关元素,以控制情节走向。而像《魔域》,则要算是文字冒险类游戏中的创新之作了,它向玩家呈现了一片广阔的游戏场景,玩家可在命令行中输入许多交互式命令,在完成游戏任务的过程中,还会发现大量道具,玩家可以捡起、探查或吃掉这些道具。
在玩NES平台 上的《暗影之门》(Shadowgate)与《疯狂大楼》(Maniac Mansion)这类“点击型文字冒险游戏”(point-and-click adventure)时,玩家会历经许多恐怖或幽默的场景,并沉浸在游戏所营造的这个充满互动的氛围里,考虑到彼时的技术限制,能做出这样的游戏实属不易。顺便说一句,无论你是《疯狂大楼》这款游戏的粉丝,还是JavaScript语言爱好者,也不管你是喜欢玩所有类型的电子游戏,还是只对文字冒险类游戏情有独钟,你都应该读读Douglas Crockford写的这篇文章(www.crockford.com/wrrrld/maniac.html),文中回顾了他将该游戏移植到NES时所遇到的种种轶事。没听过这个人吗?他就是《JavaScript:The Good Parts》一书的作者,同时还是JSLint这款开发工具的编写者,而且,Crockford先生也是JavaScript开发者社区中的一位全才。
这类游戏虽然看起来似乎有些过时,但在有些情况下还是大有可为的。比如,《猴岛小英雄》(Monkey Island)与《疯狂大楼》的设计者,在2012年曾为其新作《Double Fine Adventure》筹集到将近350万美元的开发资金。而日本的恋爱冒险游戏(dating sims)也曾风靡一时,其他类型的游戏甚至都受其影响,比如,SNES平台 上的《牧场物语》(Harvest Moon)本来应该是个RPG游戏,结果,玩家在实现管理农场这个主目标的同时,居然还可以去谈恋爱。笔者在这里提醒大家,游戏中如果包含“追求女孩”或“英雄救美”之类的内容,那么很多玩家都会觉得非常老套,甚至对其厌烦。策划游戏时要考虑各类玩家的接受程度,尤其在制作这种一不小心就容易开罪玩家的游戏时,更要提前做足功课。从技术角度与题材角度来看,当今开发游戏时可选的方案要比从前广泛许多,所以最好花些时间来仔细研究并考量一下各种方案。在设计这种类型的游戏时,有很多地方值得研究,比如,你是打算叫玩家按其想法自由操控游戏,还是打算将其限定在预设的情节里?又比如,你是想为游戏设定一种颇为阴郁的基调,还是想设计得古灵精怪一些,抑或介于两者之间?
我们使用impress.js来制作本章范例游戏,此程序库本来是用于创建幻灯片的。它所绘制出的界面很像一本普通的故事书,要一页一页按着顺序来看。但是,通过标准的网页导航技术,我们很容易就能实现“直接翻到第45页”这样的跳转功能,从而把它做得和一本游戏书一样。制作游戏的过程中,我们会接触到切换(transition)、缩放(scaling)和旋转(rotation)等CSS3特性,我们无须自己编写代码来实现这些效果,只需通过CSS3来指定即可。为了做得和《疯狂大楼》这种游戏更加接近,我们还会在游戏中加入道具及道具栏(inventory),令玩家可以使用道具栏中的道具,而这套界面,我们则打算采用原生的HTML5拖放接口来实现。一个真正富有表现力的文字冒险类游戏引擎应该能够理解任意动词与一两个名词搭配出来的短语含义,然而想构建这种引擎却是相当复杂的。甚至连引擎所使用的脚本也不是那么轻易就能写出来的。于是,我们在这里采用一种简单的办法,也就是把特定的物件直接绑定到一起,这样的话,每一种交互操作的结果都是固定的。此特性使得游戏玩起来有点像《Minecraft》 ,只不过我们是“以分镜头的形式”将其展示出来而已。