一、游戏开发入门

在相对较短的时间内,电子游戏已经成为我们文化的重要组成部分。随着许多发达国家引入游戏开发税计划,该行业也正在发展成为许多现代经济的主要支柱。与此同时,在一段时间内,向商业市场发布游戏变得前所未有的容易。在过去的二十年里,游戏开发团队需要资金支持和一定水平的专业知识,才能通过平台持有者的严格测试,从而获准使用他们的开发硬件。今天,任何人只要有一部手机或一台平板电脑和一台电脑,甚至一台笔记本电脑,就可以制作一款游戏并出售,只需要最少的时间和资金支持。这并不意味着每个游戏都是成功的:对制作游戏所涉及的技术方面以及设计人们想要玩的游戏所涉及的考虑因素有很好的理解仍然是至关重要的。有时候,发展这种知识的最好方法是从头开始,所以我们会看一些视频游戏的历史。

电子游戏简史

最早的视频游戏之一被广泛认为是太空战!太空战!由麻省理工学院的斯蒂芬·拉塞尔创建,于 1962 年发布,作为最近发布的 PDP-1 计算机系统的功能演示。游戏如太空战!然而并没有达到大众批判的诉求。

商业上成功的电子游戏时代可以说始于 1972 年 Russell 在诺兰·布什内尔斯坦福大学的一名学生和他的合伙人 Ted Dabney 成立 Atari。雅达利负责发布了大量流行和商业上成功的游戏,如 Pong小行星Breakout 。在两个主要竞争对手进入之前,雅达利仍将是视频游戏行业最大的玩家之一。

任天堂和世嘉都在 1983 年凭借任天堂娱乐系统和世嘉 SG-1000(以及后来的 Master 系统)进入视频游戏业务。这些公司在 90 年代末成为视频游戏行业的主要玩家,并催生了大量游戏系列,如马里奥塞尔达传说刺猬索尼克世嘉拉力赛

几乎同样重要的是,任天堂和世嘉将推广手持游戏的概念。通过 Game Boy、Game Gear 到任天堂 3DS 等平台,以及目前来自索尼 Playstation Vita、任天堂和世嘉的竞争,证明人们有在移动中玩游戏的欲望。

自从手机开始拥有处理器和图形能力来运行我们可以识别为游戏的程序以来,游戏的这一分支就一直在与手机平台融合。九十年代末,诺基亚手机发布了一款非常流行的游戏贪吃蛇。高通在 2001 年发布了 BREW(无线二进制运行时环境)平台。诺基亚试图开发一个基于手机的游戏平台,名为 NGage,并于 2003 年发布。这两个平台都展示了移动电话平台最终的能力。

2008 年,苹果公司在手机游戏领域取得了第一次突破性的成功,当时他们在 iPhone 3GS 上发布了他们的应用商店。此后不久,谷歌于 2008 年 9 月推出了 Android Market(目前的 Google Play)。这些商店第一次允许任何公司或个人注册成为开发者,并直接向公众销售游戏,从而使游戏机游戏开发民主化。到目前为止,视频游戏控制台要求开发者注册并支付相当多的费用来获得他们所针对的硬件的开发版本。现在,任何人都可以用自己的家用电脑和手机制作应用和游戏。

随着手机硬件的快速发展,App Store 和 Google Play 越来越强大。在过去的四年里,移动平台已经从没有硬件浮点支持的单核处理器发展到多核设置,可以说多核设置的能力不亚于低端台式机 CPU。同样,可用的 GPU 已经从支持固定流水线 OpenGL ES 1.1 的部分发展到至少支持 OpenGL ES 2.0 的现代芯片,以及一些支持 3.0 版本的最新 GPU。

对于游戏开发领域的新手来说,其中一些术语听起来仍然令人生畏,这可能会成为进入的障碍。许多人在这一点上可能会被吓跑,所以消除这些感觉并看看谁可以和应该制作游戏是很重要的。

谁做游戏?

正如我在上一节中提到的,随着手机上现代应用平台的出现,传统的由知名公司与大型游戏发布社签署发行协议的模式不再是发布视频游戏的最常见方法。

目前在这些移动平台上有各种各样的开发者。一些最大的公司仍然是传统公司,如电子艺界,他们制作非常受欢迎和成功的游戏。然而,有越来越多的独立开发者正在创造有意义的游戏体验,这也带来了大量的下载量和可观的收入。一个很好的例子是寺庙经营神庙逃亡 由 Imangi 工作室开发,这是一个夫妻团队,他们增加了一名额外的成员来为他们的游戏创作艺术。

我认为 Jesse Schell 在他的书《游戏设计的艺术》中,在讨论谁可以成为游戏设计师时,说得最好。在他的第一章中,他提出了一个问题来说明如何成为一名游戏设计师:

“如何成为一名游戏设计师?”

他的回答是:

“设计游戏。现在就开始!别等了!甚至不要结束这次谈话!就开始设计吧!走吧。现在!”

当你完成这本书的时候,你已经从零开始做了一个游戏,并且准备好从你自己的设计开始开发你自己的游戏。

同样值得注意的是,游戏并不总是电子游戏。历史上许多最受欢迎的游戏都是棋盘游戏,比如国际象棋和大富翁马上就会出现在脑海中。那么是什么让电子游戏与众不同呢?

电脑游戏和桌游的区别

传统游戏已经存在了几千年,但现代视频游戏有一种吸引力,使它们有别于那些游戏。传统游戏有一个正式的结构。他们通常有一套规则,一个随机元素,一个玩家要实现的冲突目标,以及一个获胜条件。

垄断就是一个例子。游戏的目标是每个玩家都是最后一个有钱的人。你可以通过开发你自己的财产方块来减少别人的钱数,游戏规则规定了你如何以及何时可以进行这种开发。通过掷骰子来决定你的棋子落在哪个属性方格上,这个游戏增加了一点随机性。

尽管在玩像“大富翁”这样的游戏时会出现无穷无尽的变化,但规则和动作的范围仍然相当有限。这些游戏仍然依赖于玩家记住如何玩游戏才能成功。电子游戏的优势在于电脑可以模拟游戏,而不需要玩家记住游戏的状态。

因此,视频游戏可能是比传统游戏复杂得多的系统。今天的游戏机和 PC 游戏是这种复杂性的完美例子。像微软的《光晕 4》这样的游戏有一套庞大的规则,这些规则都是实时执行的。每种武器都有不同的特点;有车辆和敌人,每个都有一个独特的调整在他们的人工智能来代表不同的个性。对许多人来说,从表面上看,它似乎很像许多其他第一人称射击游戏,但不同游戏规则之间的相互作用是视频游戏与传统游戏的区别,也是好游戏与伟大游戏的区别。伟大的游戏几乎无缝地将复杂的规则、人工智能和玩家互动融合到一个可信的世界和故事中。

既然我们已经了解了桌游和主机游戏之间的区别,我们就来看看是什么让为移动设备设计的游戏不同于为家用主机设计的游戏。

将手机比作游戏机

这可能令人惊讶,但实际上目前的 Android 手机与传统游戏平台(如微软 Xbox 360、索尼 Playstation 3 和任天堂的 Wii U)之间几乎没有什么区别。

每个系统都有自己的权衡和潜在的独特控制器接口,但在表面下,每个系统都符合一些既定的标准。

  • 它们都有一个执行游戏代码的 CPU。
  • 每个都有一个渲染游戏几何图形的 GPU。
  • 每个都有不同分辨率和宽高比的显示屏。
  • 它们都输出声音。
  • 它们都接受用户输入。

从用户的角度来看,主要的区别因素是输入方面。传统上,PC 游戏使用键盘和鼠标,主机游戏使用控制器,现代手机游戏使用触摸屏。这就要求对游戏进行不同的设计,以最适合目标系统的输入设备。

从发展的角度来看,手机目前比游戏机弱,比 PC 弱很多。尽管支持顶点和片段着色器等现代功能,但与 PC 或控制台相比,手机上可以处理的顶点数量和可以绘制的像素数量有限。手机内存和 GPU 之间的内存带宽也有更严格的限制,这使得只发送 GPU 可以用来渲染当前帧的相关信息变得很重要。

这些限制会在游戏实现的最底层影响游戏,游戏程序员已经能够熟练地设计他们的技术来适应这些差异。许多挑战对所有手机游戏来说都是共同的,分享一个项目取得的进步只会有助于后续的游戏。为此,游戏引擎已经成为在主机上开发游戏的基础部分,在移动平台上也越来越多。

游戏引擎概述

在 20 世纪 80 年代,每一款游戏都是从头开始编写的,项目之间很少重用代码,这种情况并不罕见。随着 20 世纪 90 年代初至中期游戏引擎的出现,这种情况开始改变。随着 3D 加速器的出现,游戏代码的复杂性迅速增加。理解大量与游戏开发相关的主题变得很有必要,比如音频、物理、人工智能和图形编程。随着复杂性的增加,开发游戏所需的团队规模和资金也在增加。没过多久,游戏开发中就出现了双轨发展。有技术团队编写游戏运行的系统,也有游戏编程团队自己开发游戏。

由此诞生了游戏引擎的概念。底层系统是以抽象的方式编写的,因此游戏可以在顶层开发。当时引擎市场的一个关键参与者是 Id Software,它将其 Id Tech 引擎授权给其他开发者。诞生在 Id 游戏引擎上的一个值得注意的专营权是半衰期,它是使用雷神之锤引擎创建的。Id 自己的雷神之锤 3 ,发布于 1999 年,是他们当时最大的发布,是基于他们的 Id Tech 3 引擎开发的。这个引擎也获得了许可,最著名的例子是 Infinity Ward 使用这个引擎创作了使命召唤

从那时起,Unreal 已经成为一个非常成功的引擎,被来自美国、欧洲和日本的许多游戏团队授权来创建当代一些最大的主机游戏,Unity 引擎目前在 Android 和 iOS 上的许多游戏中使用。

从个人的角度来看,重要的是要认识到什么使游戏引擎成为一个有吸引力的前景的核心概念,无论是通过许可另一个开发者的技术,还是以类似引擎的方式编写自己的代码。使用这种技术允许您在项目之间重用大部分代码。这降低了开发游戏的财务成本,并通过允许您在游戏功能上花费越来越多的时间而在引擎上花费更少的时间来提高您的生产力。实际上,事情从来没有这么简单,但是尽可能多地将引擎代码和游戏逻辑代码分开是很重要的。这是我们在阅读本书的过程中要努力实现的目标:从开始到结束,我们一定会关注可重用引擎代码和游戏逻辑的分离,这是特定于单个应用的。

摘要

这就结束了对视频游戏开发的旋风式介绍,从其根源一直到现代开发的当前状态。这些主题中的每一个都可以在它们自己的书中深入讨论,但是我们在这里建立的基础应该对本书的其余部分有所帮助。

我们将介绍一个游戏的开发过程,从在 Eclipse 中建立一个游戏项目,设计一个小游戏,实现一个游戏引擎,一直到在 Google Play 中发布我们的第一个游戏。

我们开始吧。