前言

前言

关于本书

2011 年 1 月,苹果公司 App Store 的应用程序下载量超过了 100 亿次 1。此外,谷歌公司的 Android Market、Chrome Web Store 以及 Amazon Appstore(亚马逊公司的 Android 应用商店,2011 年 3 月 22 日上线)、Facebook Credits 虚拟货币系统、游戏领域的网络游戏平台维尔福软件公司的 Steam 平台等,无论是面向通用操作系统的应用商店还是支付系统、游戏通信机制等都大量涌现,整个行业迎来了爆发式增长。

12013 年的最新统计,App Store 应用累计下载次数超过 600 亿。——译者注

在每个应用商店,下载量最大的分类都是游戏,占到了总下载量的一半以上。Facebook 平台上甚至绝大多数销售额都由游戏贡献。现在,特别是智能手机和 PC 平台、画面精美的 3D 游戏,以及有玩法多样的对战游戏一般都在 10 美元以下,已经非常便宜了。再过几年,那些(开发成本)几百亿到上千亿日元的游戏应该也能很容易下载到。游戏是一种非常廉价的娱乐方式,可以满足人们放松心情这一基本需求,是一种主流的娱乐活动。

几乎所有的游戏都在增加联网的功能,让游戏向更实时、画面更加精美、利用更大的数据库、算法更加智能的方向发展。

随着市场规模的扩大,各种游戏的开发方式受到了更多的关注。虽说都是游戏,但将纸团扔进垃圾桶的 iPhone 游戏 Paper Toss 和即时通信大规模在线用户《魔兽世界》,在开发技术上是截然不同的。如果将它们比作交通工具,则一个是自行车,一个是新干线。它们在开发成本和销售额上有几万倍的差距,需要的技术也完全不同。只有拥有大量人才和资金的企业才有能力开发并且运营大型实时网络游戏。但如果换成 Web 服务的话,即使承载了数十万的用户,开发者一人也能够胜任开发和维护工作。两者之所以有这样的差别,我想其中一个原因就是开发网络游戏所需要的知识并没有得到充分的共享。

本书以实时通信、大数据量通信的多人网络游戏开发为中心,详细介绍了普通开发者如何在不使用昂贵的中间件或者特殊开发环境的基础上,独自从零开始实现有趣的多人网络游戏系统,并讲解了 C/S MMO 游戏和 P2P MO 游戏这两个典型的开发案例。此外还从游戏运营和基础设施架构等角度,向读者展现了支持网络游戏技术的全貌。本书的内容主要面向游戏开发技术人员,但无论是对游戏制作人还是运营者,本书都非常具有参考价值。

希望不仅仅是大企业,今后更多的独立开发者或者小企业也能够开发网络游戏,为玩家提供更多的充满创意的产品。

2011 年 2 月 中嶋谦互

网络游戏的开发技术每天都在不断进步。

如果对本书有什么疑问或者建议可以通过 Twitter 和 @ringo 联系,欢迎提问。

本书结构

本书的结构如下。要理解书中与编程相关的章节(第 0 章、第 4 章、第 5 章),需要具备一定的 C 或者 Java 等一般编程语言基础知识。其他章节(第 1~3 章、第 6~8 章)的内容不需要编程知识也可以理解。


第 0 章 [ 快速入门 ] 网络游戏编程

     网络和游戏编程的技术基础

本章详细介绍专业的网络游戏开发者和其他行业的开发者(Web 开发者或者企业应用开发者等)在技术上的不同点。


第 1 章 网络游戏的历史和演化

     游戏进入了网络世界

第 2 章 网络游戏到底是什么

     网络游戏面面观

第 3 章 网络游戏的架构

     挑战游戏的可玩性和技术限制

总结了网络游戏的历史、背景、商业模式、不同分类的区别以及架构等背景知识。


第 4 章 [ 实践 ]CS MMO 游戏开发

     长期运行的游戏服务器

第 5 章 [ 实践 ]P2P MO 游戏开发

     没有专用服务器的动作类游戏的实现

介绍了可以涵盖大部分网络游戏的两种实现方式,通过案例游戏和实际代码带领读者体验开发流程。


第 6 章 网络游戏的辅助系统

     完善游戏服务的必要机制

第 7 章 支持网络游戏运营的基础设施

     构筑、负荷测试、开始运营

第 8 章 网络游戏的开发体制

     团队管理的挑战

介绍了对于网络游戏非常重要的运营相关的辅助技术和思维方式。


关于本书的结构:

同类书籍一般会首先针对网络游戏这个主题介绍相关的定义,说明背景,提出课题,简要地说明解决方法,然后通过案例程序具体介绍开发技术。本书也基本上沿用了这个方式,但是在书的开始部分增加了第 0 章,用来简要介绍开发网络游戏时的网络编程和游戏编程知识,方便读者快速学习。

第 0 章尽可能涵盖了全书的专业词汇,只需要快速浏览即可了解实际开发中需要用到的技术。如果在接下来的章节遇到了不太理解的内容,也可以回到第 0 章查阅以加深理解。

如果读者对第 0 章介绍的技术都非常熟悉,那一定可以在任何一家网络游戏开发公司成为核心开发人员。如果对这些知识都不太了解也不用担心,第 0 章之后会详细解释为什么需要用到这些技术,可以反复查阅相关内容进行学习,这样一定可以加深理解。

案例游戏和视频录像

由于篇幅所限,书中所附案例采用了一部分伪代码。同时我们为大家准备了可以实际运行的案例游戏(包括 C/S MMO 和 P2P MO 两种类型)作为参考。下载地址请参见稍后的本书附加信息。源代码仅仅是为了便于读者理解编程方法,请作为游戏运行情况和书中代码案例的参考。

除此之外,我们还为大家准备了以上两种案例游戏实际运行时的视频录像,请参见稍后的本书附加信息。

案例游戏的运行环境

为了正常运行本书的案例游戏,需要确保具备以下软件环境。使用时请确认拥有合适的软件授权。

※ 详细清单请参考压缩包中的 readme.txt 文件。

关于通信中间件 VCE

史克威尔艾尼克斯公司拥有通信中间件 VCE 的著作权和知识产权。因为本书旨在提高行业的技术水平,所以在本书规定的范围内(包含附属规定)可以授权使用该软件。

购买本书的读者,可以访问稍后的本书附加信息中的 URL,接受技术评论社网站的附属规定后可以得到授权使用 VCE(技术评论社授权版)。

另外,本书案例游戏的压缩包中所含的 VCE 程序为试用版,在启动最多一小时后会无法继续通信。史克威尔艾尼克斯公司、原书作者、技术评论社、人民邮电出版社以及译者不承担任何因为使用 VCE 所造成的损失。

使用须知 ※ 请仔细阅读 ※

  • 案例游戏的压缩包中附带的数据和程序只是作为本书正文相关内容的参考和辅助材料。请不要用作其他目的。

  • 史克威尔艾尼克斯公司、程序或者数据的作者、开发者 / 提供者、原书作者、技术评论社、人民邮电出版社以及译者不承担任何因为使用本书案例游戏程序或数据所造成的损失。请读者自行承担相应责任。

  • 使用关于本书所收录的软件、程序前请注意,对于相关软件的信息和使用方法,我们不接受包括电话在内的任何方式的技术支持。

  • 书中的案例游戏的程序代码是完全开源的,可以不经任何许可自由使用。

  • 其他的注意事项请参考案例游戏压缩包内的 readme.txt 文件。

本书附加信息

本书的附加信息包含了案例游戏的下载地址和视频下载地址,如下所示。

※ 请注意,上述下载地址可能会有突然中断访问的情况。

致谢

本书内容基于笔者到目前为止从参与的网络游戏开发项目中获得的经验。项目很多,在此就不一一列举了,我之所以获得如此多宝贵的经验,离不开各个项目组的同仁们的帮助。

此外还要感谢史克威尔艾尼克斯公司秉承提高业界技术水平的宗旨,为本书无偿提供通信中间件 VCE。

最后,在本书写作的近两年的时间中,我放弃了新年假期,减少了陪伴孩子的时间,给家里增添了许多负担。特别感谢妻子能够给与充分的理解和支持。

目录

  • 版权声明
  • 前言
  • 专业术语
  • 第 0 章 [ 快速入门 ] 网络游戏编程:网络和游戏编程的技术基础
  • 第 1 章 网络游戏的历史和演化:游戏进入了网络世界
  • 第 2 章 何为网络游戏:网络游戏面面观
  • 第 3 章 网络游戏的架构:挑战游戏的可玩性和技术限制
  • 第 4 章 [ 实践 ] C/S MMO 游戏开发:长期运行的游戏服务器
  • 第 5 章 [ 实践 ] P2P MO 游戏开发:没有专用服务器的动作类游戏的实现
  • 第 6 章 网络游戏的辅助系统:完善游戏服务的必要机制
  • 第 7 章 支持网络游戏运营的基础设施:架构、负荷测试和运营
  • 第 8 章 网络游戏的开发体制:团队管理的挑战