调制解调器在个人电脑上的出现使得文本模式的多人游戏得以发展。计算机游戏业也将由此 进入兴旺期。 随后,因特网时代到来了。 大型多人在线游戏的诞生 上世纪90年代,随着AOL(美国在线)以及类似服务的流行,在线游戏变得更为成熟, 但是以我们的标准来看,当时的在线游戏还非常原始。AOL使得成千上万的玩家可以一起进 行游戏;但是那些游戏通常是运行在文本界面或者是粗糙的图形界面上的。虽然用现在的标 准来衡量,这些游戏不是很吸引人,并且这些游戏产品从技术上来说也不如当时其他商业软 件产品,但它们还是获得了一些狂热的追随者。随着处理器速度、图形技术、声音技术以及 存储设备不断变得更快、更好、更大、更便宜,到了上世纪90年代中期,我和同事们已经开 始制作世界上第一个成功地采用主流技术的大型多人在线角色扮演游戏了。 自那时起发布了很多更新、更好、更成功的大型多人在线角色扮演游戏。这是为什么? 是因为它们有趣,人们喜欢它们。越来越多的人投入到大型多人在线游戏的开发中去,因特 网为玩家提供了其他类型的计算机游戏所不能提供的东西——社会化的能力。我们不仅可以 和在同一城市里的朋友们一起进行游戏,还可以在大型多人在线游戏中遇到不同国家和地区 的玩家。如果好好想象一下,你会觉得这非常的刺激 作为游戏开发人员,我们有责任让玩家能够持续感到有趣并且保证游戏不断地发展。做 到这点不仅意味着我们必须提供创意和内容,还意味着每个开发人员或者是开发团队每天都 必须面对一些新的挑战。 游戏开发中的问题 虽然在大型多人在线游戏开发过程中会遇到很多问题和挑战,但最关键的一点就是有能 力编写稳健的代码。这意味着我们必须进行良好的设计而不是随意地堆砌代码,这意味着我 们必须在代码中加入足够的注释以方便支持和扩展,这意味着我们必须为每个游戏要素给出 详细的文档以使得未来的开发人员可以理解这个游戏究竟是什么。并且,它最好尽可能“没 有错误”。 虽然任意一段大型的代码都不可能完全没有错误,但是在为大型多人在线游戏定义编码 和开发标准的时候,我们必须使用比传统单机游戏更高的标准。如果成千上万玩家中的某 个让服务器崩溃了,这个服务器上所有的玩家都不能继续进行游戏。并且,随着我们不断加 入新的游戏功能,这些问题代码在内存中的位置会不断改变并且出现不同形式的崩溃,这会 掩盖原先代码中的崩溃性错误
创造性上的挑战 大型多人在线游戏开发中的另一个巨大挑战,是怎样才能让我们的游戏成为最好的。我 相信在一个大型在线多人游戏中对单人游戏和多人游戏部分进行正确的组合可以制造出非常 有趣的游戏。 我们应该尊重单机游戏,它们能有今天的成功并不是没有原因的。单机游戏最大的优点 在于,游戏中每一个细节都被刻意设计得让玩家觉得他自己是游戏中的“救世主”;另一个优 点是玩家并不会感觉到每一个拥有这个游戏的人都是“救世主”单机游戏的缺点在于玩家不 能和别人分享快乐,不能和朋友们一起进行游戏 目前大型多人在线游戏的优缺点恰恰与单机游戏相反:玩家可以和朋友一起在游戏中历 险,但不是每一个人都认为他是那惟一的“救世主”。因此,从统计学的角度出发,大型多人 在线游戏中的每一个玩家都是均等的,没有一个人是特殊的,没有一个人是“救世主”。那些 喜欢通过自己的奋斗解决问题或征服世界并以此获得荣誉的人可以从中感到快乐,然而那些 希望自己与众不同或者是成为救世主的人可能并不会感到有趣 所以在我们的设计中存在着挑战:怎样把单机游戏和大型多人在线游戏的优点结合起来, 虽然这两者的本质并不相同。我们( NCsoft公司的开发人员)已经摸索出一套自己的方案 我也期待着别人能够在这方面有所创新 使大型多人在线游戏在外观和使用上达到单机游 戏一样的效果 开发人员必须始终牢记目标市场对我们的技术需求。开始一个大型多人在线游戏比开始 个单机游戏要难得多。要在家用游戏机上开始游戏,我们只需要插入游戏盘,而单机游戏 则需要我们放入光盘,安装游戏以后才能开始游戏。在我们开始享受大型多人在线游戏的乐 趣之前需要更多的准备工作:放入光盘、安装游戏、建立账号、学习应该做什么,以及为什 么要这样做,学习和别人交流,然后才能真正地开始游戏。 人们会觉得这些安装和进行大型多人在线游戏的步骤很麻烦而且非常无聊,甚至因此而 放弃游戏。我们必须在用户界面,安装程序和游戏指南上花很多精力来保证玩家不会因为它 们而感到麻烦或灰心。直到目前为止,这个问题还是为很多开发人员所忽视。 大型多人在线游戏开发人员所面对的另一个有趣的技术挑战是在游戏的图形表示方面 的。通常,大型多人在线游戏的图像和界面不如单机游戏。造成这个现象的原因是,在开 发大型多人在线游戏的过程中,我们需要面对很多其他方面的挑战,因此花费在图形和界 面上的精力相对较小,因此历史上大型多人在线游戏在图像上的丰富程度上不如游戏机和
单机游戏。 从未有人成功地开发出优雅并且用户友好的界面,尤其是在最尖端的图形环境下。我希 望可以在下一代大型多人在线游戏中看到这方面的突破。事实上,我在这点上向所有的开发 人员发出挑战! 展望 在开发大型多人在线游戏的过程中,我们需要考虑多方面的问题。每一天我们都会面临 新的挑战,国际化、排名、技术发展以及诸如此类的问题。随着这个产业的不断发展,挑战 的数量将会成指数级增长。然而怎样在完成一个伟大而具有革命性的游戏的同时使得它稳定、 可支持、可扩展并且易于使用永远是开发人员最根本的追求。 目前为止,在大型多人在线游戏的开发中我们只有一个共同的模式。无论是制作组、游 戏公司还是开发人员都遵循冋样的开发理念:创造大型的虚拟游戏世界。我希望能够看到这 个产业在此基础上更进一步。过去20年来,我们已经达到了目前的成就;我相信除了传统的 奇幻游戏和科学幻想游戏以外,还有其他类型的大型多人游戏可以获得成功。我希望这个产 业中现在或将来的开发人员有朝一日可以给全球的游戏开发人员展示一个不同类型的革命性 的虚拟世界!
关于本书 Thor Alexander. Hard Coded Games thor@hardcodegames.com 欢迎进入《大型多人在线游戏开发》之旅!这是一本全面而深入的 文集,其作者都是MMP游戏开发人员,正是他们开发了那些最成功或是 最让人期待的MMP游戏,包括《创世纪在线》( Ultima Online)、《无冬 城之夜》( Neverwinter Nights)、《模拟人生在线》( The Sims Online)、《卡 通城在线》( Toontown Online)、《星球大战:帝国分裂》( Star Wars Galaxies) 等。阅读本书时,读者可以获得大量独特而宝贵的知识,它们都是由在 线游戏产业中最优秀、最聪明的开发人员在进行MMP和在线游戏开发时 积累的。 目标读者—并不仅仅是程序员 虽然本书在形式上和《游戏编程精粹》( Game Programming Gems)这 成功的图书系列相类似,但是本书致力于面向更广泛的读者。不仅程序 员可以在阅读木书时获得大量技术知识,设计人员和制作人也能够读懂很 多章节并且获得有用的信息,因为这些章节中并不像大多数编程书籍那样 使用了大量的技术术语。客户服务人员也会发现本书中不少文章是无价的 资源,因为他们很难从其他地方获得类似的知识。读者可以参考下面的表 格来获知哪些文章对他们来说是最有用的。 前言表格 章次及其目标读者 名 设计人员 程序员制作人客户服务人员 MMP设计技术 MMP架构 服务端开发 客户端开发 数据库技术 游戏系统
2 各部分慨览 下面这些简短的概览有助于读者浏览本书的各个部分,发现最感兴趣的文章 第一章:MMP设计技术 第一章对总体设计过程进行深入介绍,适合设计人员和制作人员阅读。本章将介绍《卡 通城在线》开发团队在为大众市场制作在线游戏时所获得的经验;同时,收录《星球大战: 帝国分裂》设计人员 Ben hanson关于MMP游戏中游戏平衡技术的文章;在最后一篇文章中, 前《创世纪在线》主设计师 Paul Sage对在线客户支持中的常见问题进行了分析。 第二章:MMP架构 这一章将详细讨论怎样运用面向对象技术以及极限编程方法来创建稳健的MMP框架和 架构。虽然这一章主要面向程序员,但是它也同样适用于那些想要知道MMP中各个部分是 怎样一起工作的设计人员。本章收录了由 Twisted框架之父 Glyph Lefkowitz撰写的关于 Twisted开源框架的概览以及 Matt Walker撰写的《大型多人游戏中的单元测试》。 第三章:服务端开发 这一章将对在线游戏开发中的服务端部分进行详尽讨论:服务端专家 Jason Beardsley的 文章将详细介绍无缝服务器的优缺点,《模拟人生在线》主程序员 Bill dalton的文章则会告诉 我们应该怎样进行服务端的开发和维护, David Fox将向我们介绍把MMP游戏引入无线设备 相关的先进技术,而 Jay Lee撰写的《在MMP游戏中实现移动和物理模块的注意事项》则是 每个开发人员都必读的 第四章:客户端编程 对于任何MMP开发人员来说,解决移动预测问题都是一个很大的挑战, Bioware的Mark Brockington和X- Box Live的 Jay Patterson通过两篇互补的文章对其进行了讨论。角色定制是 很多在线游戏的一个核心功能, NCsoft的 Todd Hayes在文章《使用贴图定制三维角色》中对 其进行了详细的讨论。章末是 John Olsen的一篇优秀文章《游戏机平台上MMP游戏的独特 挑战》。 第五章:数据库技术 在游戏产业中,很少有开发人员可以真正掌握数据库编程和管理这一“妖术( black art)”。 为了改变这种状况,数据库专家 Jay Lee为这一章撰写了两篇文章。第一篇是针对初学者的 数据库基础简介,它适合于所有的开发人员,包括设计人员和制作人;第二篇文章对于在在 线游戏中如何使用数据库以及怎样避免对数据库的误用进行了独到的剖析。 第六章:游戏系统 最后一章将讨论MMP游戏的核心游戏系统最精彩的部分莫过于由 Artie Rogers提供的