游戏核心编程之一 概述

第一节.                                    概述
随着计算机技术的发展,计算机从高技术的神坛上走下来,走进我们的家庭,走进我们


的娱乐生活中。在家用计算机的使用中,作为游戏机的使用率是很高的。同时对于游戏


迷来说现有的游戏中总有很多不足之处,让人想一试身手作出一套更好的游戏(不过,


这可不容易)。作为和亲爱的用户您一样的游戏迷,我也有相同的想法。这样便产生了这


套游戏编程基础的教学软件。
这套软件主要是面对有一定编程基础的用户,但考虑到很多游戏迷在Windows编程方面还


是个新手,所以这套软件中还增添了一章“Windows编程基础”。在基于Windows的游戏大


部分都是支持Directx的,故我用了较大篇副讨论了Directx 5.0,并使用基于Directx 


5.0的例程来讲解游戏编程的思想和实现。由于,Directx 6.0中的很多在功能只支持VC


,而且在诸多高级语言中C是最适合游戏编程的,所以这套软件中的例程及讲解都是基于


VC的。相信,用户通过这套软件的学习将能有信心编出使自己满意的游戏来。
自己满意的游戏是否是大部分人都喜欢的呢?是否能成为市场上成功的游戏呢?为此在


本章的下面几节中我们将讨论一些非技术的关于游戏总体设计的话题。


第二节                 电脑游戏的发展史
60年代早期
使用最原始的大型计算机,一小部分程序员开发游戏而其他人认为他们在做研究。在MIT


的实验室里开发了Space War和其它早期的游戏。
1973年到1975年
Nolan  Bushnell建立了Syxygy。在市场上出售SpaceWar的“Arcade”版,但失败了。在


1975年下半年,推出了Pong,并使之成为一个非常流行的游戏,之后,他重新命名公司


为Atarh他们始创了我们今天所熟知的游戏工业。
1960年后期到1970年早期
更多的程序员使用大型计算机开发游戏;WilliamCrowther开发了流行游戏Adventure。
1976年
Rushnell以$2,600万将Atari出售给WarnerCommunications。
1980年其它游戏系统依次登台,象Pllillins的Oddessy和Mattel的Intellivision,目标


都是希望取代Atari。一些小的个人计算机开始出现,但视频游戏仍处于领先位置。
1977年
Atari推出了Atari2600VCS,家庭视频游戏行业兴起!一个名叫Apple的小公司出售一种


计算机Apple  l,但没能引起人们的注意。
1979年
Atari公司的一些项尖的程序开发员从对Atari的意见不一致发展到公开的不满,成立了


自己的公司Activision,其它“第三方”开发公司相应出现。
1981年
IBM推出了IBM PC。
1982年
Atari开始滑坡,视频游戏市场处于大萧条状态。Atari的主席Ray  Kassar宣布销售已下


跌了50%。个人计算机应时出现,许多新型计算机游戏开发者纷纷出现,其中有些成为


了专业开发队伍,新出现的知名公司包括Sierra  On-Line 、 Broder-bund、Synapse


、Sirius及Strategic  Simulations。
Electronic  Arts成立,并成为现代游戏公司的楷模。
1984年
Apple推出新型计算机产品Macintosh,但该系统缺点是启动馒,此时该系统的购买者和


软件开发者的主要目的不是开发游戏。
1983年伟大的视频游戏跌至最低点,Mattel宣布其Intellivision产品损失$22,500万



1985年
Nintendo由于投入一种新的视频游戏产品—任天堂娱乐系统,而重新繁荣了家庭视膝游


戏市场。16位的计算机的革命继续,Atari的产品Atari  ST投入市场是对CommodOre一个


沉重的打击。
1986年
CommodOre极力宣传并推出Amiga计算机,该计算机是由Atari硬件设计师Jay Miner设计


的,最初是想作为下一代的视频游戏系统,但由Commodore投资的这种机型却成为机器


Commodore64的继承者。不幸的是,巨大的市场打击和其它的开发埋没了该系统的远大前


程。
Sega推出了Sega Master系统,在技术上要优于Nintendo  Enter。tainment系统。由于


Sega忽视第三方开发者,没有征集足够多的软件支持该系统,所以没有取得足够大的市


场支持而失败。
1988年
计算机行业从8位计算机转向16位系统,新出现的视频游戏控制台引起了新的合并,Cine


。maware、Epyx等公司处于困难时期。
1987年
游戏变得更复杂了,更多的公司转向集体开发,Electronic  Arts推出了第一个集体开


发产品“Skate or Die1"
IBM PC系列,由于具有了好的图形适配器,开始成为可采用的计算机游戏平台。
1989年
新的16位系统初次登台,最值得注意的是Sega的Genesis。当Sega由于广告宣传和大量的


EA运动游戏,占据控制台市场的领先地位时,任天堂(Nintendo)觉悟已晚,损失惨重



1990年
Amiga和ST在市场上基本灭迹,PC系列和控制台成为主要的游戏开发平台。Electromc  


Arts开始成为主要的游戏开发和发行者。
1992年
PC游戏开始流行,在它迅速发展的几年里,其它一些计算机游戏平台被淘汰,把PC游戏


市场推向一个新高度。
1991年
Nintendo的产品Super一NES首次推向市场,16位之战的全面爆发促进了许多控制台系统


的销售。
1993年Pentium芯片出现,Microsoft预先展示了它的新产品Windows操作系统,代码名为


Chicago。尽管PC迅速发展,Sega和Ninter1do继续处于领先位置,控制台系统占领了世


界游戏市场的80%。
1994年
Panasonic推出了Real-3Do游戏机,预示着32位控制台系统的出现。
Atati推出Jaguar 32位游戏机。但这两个产品(尤其是3DO)都不很成功。
Id  Software推出了Doom,使人们意识到可以使用共享软件发行方法。
1995年
Sega生产了Sega 32位控制台系统。Sony推出了Sony Playstation  32位控制台系统。
Microsoft推出了Windows 95和windows Game SDK,使得大量的游戏开发转向Windows乎


台。
Internet和Word Wide Web流行,大量的用户上网。
1996年
Nintendo推出了UItra64。大范围的多人游戏已经出现。多媒体、3D和虚拟现实等取代


WWW而成为热点,主要的新技术和产品包括Java 1 ShockWare、JavaScript、Netscape 2


等等。
1997年至今
Iintel推出MMX技术,并基于此推出Pentium MMX和PentiumⅡ处理器。AMD和Cyrix也基于


MMX技术推出了K6和M2处理器。游戏开始大量使用MMX技术。PC与其他的控制台系统在性


能上已相差不大了。
AMD推出3D-NOW技术,使其基于3D-NOW的处理器K6-3D在图象处理的方面超过PentiumⅡ。


第三节 游戏的组成要素
游戏设计涉及一个置于所有其它要素的中心的东西——这就是交互性,使游戏从其它的


创造性的媒介(如艺术、电影、音乐和书等)中分离出来的这一要素可以在游戏者同游


戏的交互中体现,对于游戏这种媒介的驱动力量来自于游戏者的决策,换句括说,是游


戏者的行为,而不是媒介本身。你不要仅仅看或仅仅听一个游戏——你应该控制它。设


计者必须创造一个诱使人们去玩的产品,同时还要提供故事线索、情绪感染、真实的声


音和其它创造性的媒介给予的特性。这是比较高的要求,但是这就是使游戏开发如此有


趣的一个原因。
玩游戏就意味着决策。因此,我们的游戏需要创造让游戏者不得不决定做什么的情境,


这样,他或者她才能执行所要求的行为。在一些情况下,决策越具有挑战性,这个游戏


就越具有感染力。此外,游戏者越能够影响游戏的结果,这个游戏就越能够吸引他们参


与。
当坐下来设计一个游戏的时候,要努力创造有趣的交互,还要努力在创设的情坎中为游


戏牙提供作出决策的容易的方式。然后,提供将进步引出新情境的有趣结果。这个完整


的过程要一进一遍地进行,直到取得最终的结果。
1.影响结果
交互性的一个最重要方面就是游戏者能够影响游戏的结果,并对结果具有最终的控制权


,一个游戏者坐下来玩游戏时希望能够在过程中有所进步,或者能够挽救世界,或者能


够达到最高的等级水平,因此,在设计一个游戏时,你必须一开始就让游戏者明白,他


或者她能够对结果改变到什么程度。当然,你不需要预先告诉游戏者他们能够改变什么


结果,或者他们怎样改变它;你只需让他们知道:他们的确能够影响结果。游戏设计者


用于创建好的游戏的一个重要概念叫做多重结果。多年以前,大部分游戏只提供两种结


果——成功和失败,游戏者结束了这个游戏就是成功者,否则游戏者被消灭。然而,许


多现在的游戏,尤其是交互式故事或者RPGs,就可以有几个完全不同的结果,这些不同


的结果可能让游戏者进入完全不同的新的冒险,或者进入新的交互式故事。例如,如果


你正在玩一个战争游戏,而且,你在某一场战斗中成功了,你将可能获得军衔的提升,


到上尉、少将或将军。


注意:在设计游戏时,给予游戏者通过他控制游戏来决定的各种各样的结果是十分关键


的,只有这样才能让人们花时间去玩。
2.成就的角色。
玩任何游戏的根本目标都是获得什么东西,不管怎样设计,在任何游戏中成就是一个基


本要素,当然,成就有许多不同的形式。可以简单到是打败一个对手、得高分或达到较


高的等级水平。当你在游戏中设计成就因素时,可以在许多不同的水平上进行,你可以


提供多重的成就目标;你也可以提供渐进的成就水平,例如你可以在每隔三个等级之后


的等级结尾以不同的“主要怪物”作为特殊对手,在整个游戏的结尾则以“最大的物”


,作为对手。
不管你的游戏提供了什么形式的成就,成就是游戏过程最主要的转折点。当然,成就并


不一定意味着赢,还应该是一个游戏逐渐走向最终结果的自然的前进,一些游戏提供了


实际的结束作为成就,还有一些游戏成就是绝对的成功(特别是体育游戏),如赢得一


场比赛或获得一个冠军。但它们也可以有不同的成就等级。
重要的是游戏中成就的获得不应该有大的跳跃,而应该是进行一定的时间后发生的渐进


的过程。另外,我觉得一个游戏应该有3/4的潜在游戏者能够获得100%的成就水平,毕


竟,游戏不能因为太难而被认为违反一般潮流,游戏者喜欢的挑战是那些可以征服的挑


战。
人类的本性就是希望获得成就,如果人们去做一些不能获得成就感的事情,这是不符合


人类本性的。这就是说,不要设计一个游戏,而又故意过早发布提供线索的资料。
3.失败的角色。
“游戏结束(Game  over)”大概是计算机游戏带来的最不好的一个短语,在这以前,


基于竞争成绩或者简单成就的游戏都包含有各种各样的失败程度。
4.改变情景
许多游戏允许游戏者控制或改变玩的情景或者参数。游戏者经常喜欢或需要修正游戏的


可玩性,这不仅包括简单地改变他们能够拥有的“生命(lives)”的数量,而且包括改


变一个战争游戏中的所有数字、参数。
通过改变情景,设计者应该提供游戏者如下特性:
 
a.修正游戏难度的能力
b. 改变玩的环境的能力
c. 修正等级水平或游戏角色的能力
 5.问题解决。
 我们已经花了一些时间讨论成就和失败,这些原则的具体例子可以在问题解决中发现,


而问题解决又经常与“智力难题类游戏(puzzles)”相联系,而且也是其它类游戏包括


冒险游戏、RPG、策略游戏中的关键要素。
问题解决是给游戏者清晰定义一些挑战,然后通过解决问题的方式来进行交流。这佯,


游戏设计的一个主要工作就是创建一些有趣的和富有挑战性的问题,这些问题具有符合


逻辑的解决方法,使游戏者能够最终通过玩游戏解决问题。如果方法太简单,游戏者将


迅速完成,然后再去玩其它的一些游戏(也许,这些游戏还是你的主要竞争者)。另一


方面,如果解决问题的方法太难,游戏者可能由于挫折而放弃。
这听起来容易,但是,事实上许多游戏对于游戏者仍就具有一些不合逻辑的方法,或者


问题太难,游戏中间题解决直接与游戏的成功或失败相联系,人们不介意失败的危险(


这是挑战的一部分),但是,如果不可能获得成功或者根本就不可行,这个问题就是无


法解决的,也就不再成为问题,而是一个绊脚石。
在游戏中一个与呈现问题相关的有趣的事情是创设问题情境。你创设的问题应该让游戏


者把已有的知识运用到问题解决中来。许多游戏的问题解决知识仅仅限于游戏本身的知


识,对于大多数游戏来说这是不错的。
然而,还有许多游戏,尤其是冒险游戏或者“交互式故事”,你可以表现真实世界中的


智力难题,一个简单例子是这样一个古老的智力难题,一个拿着一块木板和一块石头的


人被陷在一个巨大的坑里,还有一股水流向坑里,然后流到排水管里。游戏可以拿着石


头来堵上排水管,当水填满坑以后就可以用木板漂上来。这是一个非常简单的例子,但


是当你设计游戏时,尤其是你想对那些并不是劲头十足的游戏者构成挑战,就应该考虑


运用这类智力难题。
不论什么时候,都要努力把游戏者变成问题解决过程所不可或缺的部分,这样才难把游


戏者吸引在你的游戏上面。这方面做得较好的一个例子是slmCity。
角色扮演和进入其他世界
大概计算机和视频游戏的最基本的感染力就是能够逃避现实。大部分游戏是角色扮演游


戏,把游戏者置身于一个想象的世界或情境中。玩游戏的人具有与看电影和看书的人一


样的原因:人类具有想象,而且大部分的人需要给他们的想象以刺激。电影和书这么做


了,而游戏又更进一步,允许游戏者实际地参与。
以游戏设计为立足点来看,这就意味着你的一个重要的职责就是要给游戏者传达一个思


想,通过它游戏者能够进入另一个世界。在这方面游戏设计就需要创造不同的气氛。不


论它就仅枪战游戏那样简单,还是和Broderbund的新的法庭素材的产品那样复杂,最为


重要的是,其中的一个目标就是创造一个世界,游戏者被假设为里面的一个角色。
6.幻觉状态(Suspension  of  Disbelief)
我们刚刚讨论了进入另一个世界和人的想象力的独特本质,这种思想的最终体现就是在


游戏界常听的一个术语“幻觉状态”。当游戏设计者谈到“幻觉状态”时,他们描述的


是一种“想象的状态”这是指游戏者的意识融人到游戏世界中,这样,他或者她就不是


在玩游戏,而实际上在体验另一个世界。
7.个人经验
游戏设计的另一个核心因素是游戏者通过游戏所获得的个人经验。通过试验,我主要注


意到游戏者在玩游戏时的三个核心的个人经验成分。
1.有趣
“有趣”是一种主观体验,只有试着玩了以后才能决定产品是不是真的有趣。而且,游


戏只是对于将要玩的人是有趣的,如果你专门为女士设计了一游戏,就不必要增加一些


对年轻男孩子来说有趣的因素。
2.学习
我想并不是所有的游戏都必须是:纯教育意义上的一个完整的学习经验。相反,我想所


有好的游戏都要求你去学习以征服这个游戏,包括在游戏中学习对手的弱点和寻找智力


难题解答案。在这两种倩况下都需要你有计划地设计好这些活动。如果想让游戏者学习


计算机的弱点,你就应该有意地计划这些弱点是什么。
3.探索
超越有趣的最重要的因素是探索:现实的个人经验。我们去看电影或读小说的一个主要


原因是:逃避现实。游戏通过把令人震惊的图形、人工智能、立体声音和狂野的想象一


起融合在游戏的交互要素中,最终给人们提供了逃避现实的机会。我认为其中最重要的


是探索原则。这就是游戏,当你玩它时,就逃离了你存在的世界,而假设一个生命在探


索新世界。探索是一个关键的要素。最为重要的是,当你建构一个游戏时,在本质上你


就在探索一个新世界。”
8。还有什么
除了这些基本概念,游戏设计还有更多的东西。游戏设计是非常主观的,到现在,你仅


仅了解了游戏设计思想的一部分。就像任了何好学生一样,你应该一直寻找和探索以扩


展你的知识。
此外,还应该懂得所有的游戏开发的材料并不仅仅来自于阅读有关游戏设计的书和玩其


它的游戏,前面我所提到的许多开发者都往往从其它方面吸收新东西。
游戏设计是信息时代的复兴艺术,一个真正的复兴艺术家是一些万能博士,他们从不同


的渠道获得大量的思想,超越了少量特定的游戏设计材料来寻找有关游戏的设计思想和


灵感。




第四节 游戏的细节设计
定是截然不同的。我所要求的那些内容可能与人们所的喜欢玩的内容不一致,从而导致


人们认为 这个产品没有娱乐价值。
当然,其中一些是市场决策,你必须尽早决定你想达到的市场方面的参数。并且应该提


前考虑技术和实现的问题。生产一个要让我喜欢的竞选游戏,需要先进行大量的研究并


整理大量的统计数据。
在设计你的游戏时,你必须预先确切地决定要用多少细节。一些游戏设计者把细节放在


最需要的地方。例如,考虑一个潜水艇模拟,如果你想使一个区域非常详细,该是哪个


区域呢?当然是“用鱼雷袭击的部分”,你可以把潜水艇在搜索攻击目标时的运动设计


得简单,但是,一旦你发现了船只,游戏应该能够允许你最大限度地参与鱼雷攻击的过


程,因为这正是潜水艇游戏的焦点。·
1.什么时候一个任务会变得象日常琐事?
在一些情况下,如果一个游戏变得相当真实,就可能导致游戏中的任务成为一些日常琐


事。我记得的有这么一个游戏,这是一个令人难以置信的模拟游戏,让你驾驶F—16战斗


机。这个模拟是如此真实,甚至要求游戏者去完成一个真正的飞行员在起飞之前要作的


许多任务,这些任务是如此之烦琐,致使游戏的娱乐性大大减少。这方面的缺点在一些


RPG游戏中也可以发现,与他们在真实生活中的所作所为相比,其中游戏者可能发现他或


者她花更多的时间在为别人跑腿。当然这并不是说这些游戏不好,上面谈到的游戏就是


一个非常让人吃惊的精确的模拟,许多模拟游戏迷们都喜欢这些精确的细节。但是,应


该明白许多游戏在写实方面做得太过火了。
对我来说最大的问题是什么时候“任务”变成了日常琐事。尽管我能够看到这些细节对


游戏写实的贡献,但是,在我看来,它们更多地是玩游戏的障碍。所以说,这就是一个


娱乐性和写实主义之间的难问题。最优秀的游戏处理这个问题是通过增加一些可控的设


置来让人们控制这些写实主义的因素,设置的值越高,则游戏就变得越真实。
在游戏开发的过程中测试模拟游戏是十分重要的,要看人们对于你设置的任务的反应,


如果你的任务太简单或者太复杂,你可以在测试阶段不断地进行调整。
2.“任务瓶颈”
在你的游戏中寻找“任务瓶颈”。任务瓶颈包括两种类型:必须的和隐藏的。必须的任


务瓶颈是最糟糕的一种类型,它们是这样一些活动:游戏要求你一遍又一遍地执行以取


得进步,这种类型的一个例子可以在冒险游戏中发现,其中增加了一些赌博的因素作为


一种让游戏者增加钱财的方式,在这种情况下,你可能花一整天去玩各种各样的愚蠢的


赌博比赛,其唯一目的就是赚钱。这确切他说还不是娱乐,因而对于游戏的真正目廊来


说就是一个瓶颈。
隐藏的任务瓶颈是那些允许游戏者花大量的时间重复地作些事情以获得策略性优势的程


序流程,甚至有时设计者并不是有意这么做。
最后一关是评测产品,看看在什么地方游戏者发现了他们不喜欢的重复性任务或者发现


其他各种各样的问题。大部分问题都比较好解决,以避免让游戏成为一系列“日常琐事


式的”重复性任务。
3.在游戏设计中运用市场研究的结果
 许多情况下,你的设计需要进行适当的改变以满足市场走向。当你设计一个商品化的游


戏时,重要的是要记住你必须最大限度地满足市场,而不是为了取悦于你自己或者参与


游戏开发工作的其他人。你自己不去购买你自己的游戏,而是其它人购买,他们对你的


游戏有和你不同的期望和要求。
当把市场因素综合到你的设计中时,第一步是了解你面对的市场,这是一个本质问题:


“谁是这个游戏的一般购买者?”然后,努力确保你充分考虑他们的要求。例如,让我


们设计一个深海潜水游戏并考虑相关的市场因素:
 游戏概要:深海潜水:这是一个关于深海潜水和去寻找埋葬的金银财宝的游戏。目标是


在水下的冤死鬼抓住你之前发现你能够找到的所有金钱。
市场:喜欢潜水的人;喜欢冒险游戏的人;喜欢海洋的人。
这里我作了一般性的假设,例如,这个游戏对于喜欢冒险游戏的人具有吸引力。这样这


个游戏需要一个详细的故事——一些冒险游戏的爱好者的基本要求。对于吸引喜欢潜水


的人,我们最好确保给他们一个有关深海潜水的令人心眼的模拟,因为既然喜欢潜水,


可能就是这方面的专家,不会轻易被愚弄的。
这里的意思是:在你设计游戏和推断你的潜在对象的大概情况时,要按照他们的要求来


调整你的思想和设计,这将不时地把你的游戏引向不同的方向。也许你最初的设计不能


算是一个故事,只是一个潜水的模拟,然而,冒险游戏的市场总体上却是很大的,因此


,你将发现你自己被迫增加了一些详细的神秘而有趣的故事。
在今天竞争激烈的游戏市场,许多游戏公司都在努力创作一些能够让更多的人们想玩的


游戏。他们肯定都正在把市场研究和市场驱动的设计整合进来,用以帮助创建人们想要


的软件。
5.满足“铁杆儿”游戏者——正面和反面的意见
在你设计游戏时,你应该特别考虑一个最重要的游戏群体——铁杆儿游戏者。高技术市


场学说告诉我们,一个最重要的规则就是满足那些游戏高手,他们也会反过来产生帮助


销售产品的热情,他们可能把产品推荐给其他游戏者,并促进他们的购买决策。
当然也要明白一点:你为游戏高手制作的游戏很可能对于哪些偶然玩游戏的人或不是高


手的人来说很没意思。例如,人们可能不喜欢一个花400小时才能完成或者拥有100多种


坦克的战争游戏,相反,他们可能喜欢一个真正好的、线性定向的游戏故事,或者一个


关于人们之间友谊的游戏。当然也有折衷的办法,但是越来越多的开发者却在作在铁杆


儿游戏者要求以外的很多事情,实际大部分游戏都这么做。
这里没有真正正确或错误的方法,在你设计一个游戏时,你应该描述谁是潜在对像,对


于这个问题从两方面考虑是很重要的。如果你与其他喜欢游戏制作的人一样,就不太好


办了,因为99%的热爱制作游戏的人他们本身就是铁杆儿游戏迷。因此,对于许多游戏


设计者来说,必须有意识地考虑这些问题才不致于使他们按照习惯去设计制作游戏。
如果你想真的突破铁杆儿游戏者所喜欢的游戏类型,就不要在游戏中加入一些会让铁杆


儿游戏者和评论者注意到的一些关键特征。当支持调制解调器(Modem)fo网络的游戏在


市场上屈指可数时,有较大影响的评论家和铁杆儿游戏者会特别注意这类游戏的出现,


这些人的挑剔和批评可能让你的游戏变得一钱不值,而如果不让他们注意到,你的游戏


说不定会流行。
总之,你应该懂得如何满足游戏专家所喜欢的基本要素和特征,然后,有目的地决定在


哪些地方实施这些特征。这里的关键是“有目的地”,不要猜想和假设,决定特殊的需


要是什么,然后你就尽你所能去创建能够满足铁杆儿游戏者的游戏,也许同时能够吸引


一些游戏高手之外的玩家。


 第五节 对手智能设计
人工智能是个错误的名称,特别是与游戏联系起来时。我们真正的目的是要使用一些技


术在游戏中加入“人”或类似智能的特征。这种技术越聪明越自然,它就越会被游戏者


承认。我想对于这种技术更好的名字是“模拟智能” 大多数的游戏不需要非常前沿的技


术,如神经网络。(而少数使用此种技术的游戏也都是AI专家们感兴趣的那类,如国际


象棋等等。你从没有见到哪个打斗类游戏使用“神经网络”技术。)对于游戏中的AI我


比较喜欢这个定义:
一个非游戏者控制的对象在基于各种复杂因素时的决策行为就象时由真正的人作出的,


这是通过使用  一个决策算法来完成的,这个决策算法根据设计者确定的规则和提供给


程序的信息进行处理。
这定义中,使用了三个需要进一步解释的术语:
1.决策
一个“智能的”对象通过抉择来决定它的行动而不是随机地动作。你可以把随机性作为


强调某一个特定的决策的权重,但最终的决策是在至少两个可能的结果中抉择产生的。


对游戏者行为预测得越准确(包括更深层次的反应),对游戏者来说这个游戏就越具有


智能。因而重要的是决策必须模拟人的本能反应。它一般由可观察的信息组成,这些信


息包括外部、内部的信息,例如敌人的数量、角色的肚子是否饿了等等。
2.多因素
作为人类,你知道对一件事作出决策需要考虑许多因素。举个例子来说,到哪儿去吃饭


就是一个颇费周折的问题,你是开车去还是走着去?是和别人一起去吗?想吃什么菜?


花多少钱合适?如果时间紧张,是否去吃快餐呢?要不要预订?……
使一个物体具有智能也要考虑很多因素并能迅速作出决策。这些因素决定对不同的情况


有不同的反应。你的算法能支持(或处理)的因素越多,你创建一个真实的环境的可能


性就越大。例如,你要定义一个战争游戏中敌军将领的决策行为,你可以让他们根据军


中坦克、飞机、舰船的数量来做出生产军备力量的决策。另一方面,你应该引进其它因


素。例如,这些敌军应该考虑一些军事基地建在岛屿上,所以要多生产舰船,少生产坦


克,他们也要决定是进攻还是防守。你也应该加入一些感情因素。例如,一个好战的将


军会在处于劣势时仍旧进攻,并生产进攻型武器:飞机,而实际上埋智的决策是应该防


守并生产防守型武器,如坦克等,记住,一个“智能的”决策没有必要是最好的、最具


有理性的决策。
所以当你试图模拟智能时,先确定用于做决策的信息(多因素)。同样要考虑决策者评


估信息时所具有的个性。
3.规则
你也要确定在什么情况和规则下,一个对象可以获取作出决策所需要的信息。例如,在


战争游戏中,计算机控制的对手是否可以观察全局,或只能得到本地信息?如果允许对


手观察全局而不允许游戏者这做,那计算机就在作弊。但由于人类玩家实在太聪明了,


就扯平了。
19.1.3重要的是表现在游戏者面前的是什么
当然,AI的目的不是创建一个在“作弊”方面表现良好的系统。但在游戏中,用“作弊


”是使一个对手具有挑战性是最好的方法。不过这样做要小心,因为一旦游戏者发现计


算机在“作弊”,他很可能再也不玩这个游戏了。
对于大多数AI游戏开发者来说,他们的目的是创造出一个最好的计算机对手,这样做的


结果就是:他们创造出的敌人太强大了、太聪明了。这就引发了一些矛盾。首先,游戏


应该让大多数游戏者能成为胜昔。Al开发者可能在努力创造一些能打败游戏高手的游戏


敌人,但是我作为一个游戏者时,我不喜欢这样的游戏。我只希望我的计算机对手在我


不认真玩的时候打败我,只要我全神贯注地玩,我就应该能赢。
第二,一个太智能化、复杂化的游戏会显得不真实。例如,在战争游戏中,一个AI开发


者会坚持把计算机对手做成世界上最伟大的将军,这就很不真实。让计算机对手时不时


犯点错误或者让它模拟现实存在的某位将军的风格才能使游戏更为真实。AI理论趋向于


创造一个理想化的情景,而不是真实世界。
所以,你需要做的只是让计算机对手具有真实的外在形象和性格特怔,而不是创遣一个


世界上第一强大的对手。你可以用AI技术为游戏者表现游戏世界中的深度、挑战性,模


拟异类世界的情形。
不管你使用什么技术,最重要的是使用后的效果。如果有人对你说:“在你的游戏中加


点人工智能吧”,他们很可能是让你加一些真实画面和角色,而不是什么神经网络之类


的技术。


第六节 游戏的界面设计
 著名的游戏开发者BilI  Volk,曾经对游戏设计写下了一个等式“界面+产品要素=游


戏”。这个等式与著名的程序设计语言的设计者Nicholas  Wirth的经典等式“算法十数


据结构=程序”是相似的。很明显,BilI  Volk的目标不是说建构游戏就是简单的加法


,而是强调在游戏设计中界面的重要性。他的观点基本上是这样的:你的游戏就是你的


界面。
界面是游戏中所有交互的门户。不论你是用简单的游戏杆,还是运用具有多种输入设备


的全窗口化的界面,你的界面是联系产品要素和游戏者的纽带。
创建一个好的界面都需要什么素和技术呢?下面我们将讨论一些建构有效的游戏界面时


可能有用的一些基本问题。
1.内务管理问题
内务管理问题是指当一个人玩游戏时所必须的安装、准备等任务。这些问题包括初始安


装、调用和保存游戏、游戏设置和在线指导或者一般文档。
2.游戏者介人的问题
游戏者介入的问题大概是与界面有关的最重要的因素。从根本上说,它将影响游戏者玩


游戏的方法,是通过键盘、游戏杆、鼠标或者是这几种的结合?或者还运用其它类型的


输入设备?
在设计界面时,应该了解游戏输入设备的范围。还要充分考虑灵活性和能够能够运用到


你的游戏中的设备的类型。
3.让游戏者尽快开始游戏
什么时候当你拿到一个新游戏后,在开始游戏之前一页又一页地阅读用户手册?如果你


与大部分的游戏者一佯,你大概是直接开始玩,井努力去了解如何通过用户界面进行交


互,游戏者并不是典型的软件用户,他们没有兴趣学习大量新特征——他们只是简单地


想玩!所以,当你设计你的用户界面时,应该使它容易让人理解和接受。你的第一个目


标应该是让游戏及其界面尽可能地符合直觉。当然,你可以提供一个手册,但是不要期


望你的所有用户都去读它。
下面让我们看看帮助你设计界面,以便于让用户能够正确入门的一些基本原则:
1.降低计算机的影响
降低计算机的影响是交互性中比较抽像的一个概念,但又是“幻觉状态中的一个成分。


当然,在我们坐下来用计算机时,我们意识到我们正在运用计算机。然而在设计一个游


戏特别是设计界面时,应该尽量让游戏者忘记他们正在使用计算机,这样会让他们感觉


更好一些。尽量使你的游戏开始得又快又容易。游戏者进入一个游戏花的时间越长,越


会意识到这是个游戏。
2.在你的游戏中加入帮助
尽量把你的手册结合到游戏当中,避免把游戏者拉开屏幕让他们去看书面的文字口这方


面通过优秀的设计是可以解决的,如果需要的话,把文本世结合到游戏中。
例如,如果你有一幅让游戏者使用的地图,就不要让它成为文档的一部分,应该把它做


成屏幕上的图形。
3.避免运用标准的界面
对于大部分在Windows环境下设计的游戏都别去运用常规的Windows界面。如果你这么做


的话,你就又在提醒他们正在运用计算机。应该运用其他的对像作为按钮井重新定制对


话框,尽量避免菜单等可能提醒他们正在运用计算机的对象。
4,综合集成界面
界面上关键的信息要简化。因为对于许多产品,界面绝对是产品特征的门户。对于游戏


来说,目标就是要让界面越来越深入到游戏本身的结构中去。对于大量的游戏者来说,


其中只有少部分人具有计算机经验,因而,界面问题就更加重要。


第七节 基于可玩性的考虑之一
    可玩性不仅是测量游戏有趣程度或是图像如何“酷”的量度,它也是一个游戏的有


趣程度,难易程度和坚固性等性能的总和,此外还包括音响效果、模拟图像等等。可玩


性的关钟是为你的游戏的每个方面努力奋斗。虽说只有开发完毕后才能看出游戏的最终


可玩性,而且开发期间的测试和调整也会起很大的作用。但是,每个细节的优化都可能


大大提高可玩性。
1.最终的可玩性不到最后不会表现出来。
在游戏完成之前你不会知道你的游戏如何好玩。首先,你要确定你能完成你的游戏,除


非测试游戏的人“都”说你的游戏真的差劲。在完成所有的声音、图像等工作以前,你


不会确切知道你的游戏到底怎样。其次,最终结果常常表明每个小细节都很重要。游戏


者会注意到游戏的方方面面,从简介中错位的像点到不合适的音效。每个小的失误都会


带来不良的影响,破坏了游戏者的整体游戏体验和游戏的可玩性。
2.早期测试和经常测试——中期调整
当你的想法还停留在纸面上的时候,它可能看起来很神奇,但一旦你开始实现它,事情


往往就变了,并且经常是变得很糟!因此,每个较大的游戏程序都需要很长的测试过程



当在屏幕上的某些东西不是你最初想象的那样,或是你自认为设计很好的动画速度太慢


或很难看。有时你的测试者会说:你的游戏太简单、太弱智、太烦人。所以即使你花几


个月的时间停留在纸面设计上,你也不必感到沮丧。
准备好根据意见反馈来改变你的游戏设计计划。有时批评会有帮助,他们可以给你实际


的建议并帮助你,使你的游戏更具可玩性。但有时他们也没什么帮助,你还得自己作出


判断。必须明白,你应该在开发过程中不断测试你的游戏的可玩性,而不要等到开发完


毕,那时就来不及作重大调整了。
3.设计内容:了解你的特定顾客
增加游戏可玩性的最好办法是:确定游戏是面向特定顾客而设计的。由于年龄、性别和


教育背景等原因,对某一个游戏者来说好玩的游戏不一定让另一个游戏者喜欢。因此,


在设计成功的游戏中,一个最重要的行动是调查研究需求和其它关于特定顾客的需要。
第八节 基于可玩性的考虑之二
让我们来看一下,如何针对不同年龄、性别来设计游戏。
游戏的市场是非常广阔的。你可以为2-4岁的孩子、受过大学教育的成人或在此两者之


间的任何年龄层的人设计游戏。
1.年龄段:
(1)学龄前早期阶段(2-4岁):这一年龄段的孩子在控制鼠标、单独使用键盘或其他


复杂的输入设备方面存在一定困难。因此,成人使用的标准游戏设备不适用于他们。他


们不能打字也不能阅读文字。那么应如何为他们设计游戏呢了
学前儿童可以使用光标键。他们能在键盘上找出单个的字母键。如果你设计的热区有较


大的区域,那么使用鼠标也是可以的。事实上,热区应不小于屏幕的1/12。然而,语音


最适合早期学前儿童游戏。下面是使用语音的一些规则:
a.你的游戏应简单到不需要介绍,儿童立刻可以开始玩游戏。但是千万别用语音指导替


代简单易懂的界面,可以使用简单的短语指导儿童玩游戏。。
b.当游戏中有一段时间没有用户输入时,播放一段短语告知儿童应该做什么,如“点一


下猫”或“按A键”。
c.把语音作为奖励使用。在儿童完成一个任务后可以说:“很好”或“干得好”等。
d.讲故事采用播放语音的方式。
e.让你游戏中的人物说话。小孩子特别喜欢天真可爱的声音和单词。
f.小孩子喜欢明亮的颜色和简单的图形,但不幸的是,出版商喜欢细化的、高解析度的


图形。因为他们的成人口味与孩子很不相同。成年人趋向于认为产品越复杂,质量就会


越好。你作为一个游戏开发者应努力平衡这两方面的需求。
不要让界面显得太杂乱。学前儿童的大脑还没有那么多经验来体验复杂的详细图片。使


用醒目的提示方式如弹出式菜单、随机动画等等。记住你的游戏者是儿童。尽量避免令


人害怕的图像。这个年龄段的儿童还处于没有准备接受诸如伤害、死亡、分裂、暴力、


怪物、女巫和坏家伙等概念的阶段。事实上,大部分不友好的东西都应该避免。
(2)学龄前阶段(4-6岁):适用于早期学前儿童的定律同样适用于这个年龄组。这些


儿童能认出单词。他们中的一些人成为使用游戏俸的专家,并能更好地控制鼠标。除游


戏俸和鼠标之外,提供一个支持键盘的界面不失为一个好主意。
(3)小学早期阶段(5-8岁):在这个年龄段,儿童可能喜欢怪物和其他坏家   伙,


只要这些敌人是“安全的”。在游戏中敌人应当是友好而幽默的。暴力、伤害和流血仍


然应该避免。
(4)小学/中学过渡阶段(7-11岁):这些儿童已达到“理性的年龄”,他们开始发


展自己的“同辈文化(Peer  CuIture)”,并开始思考他们自己。在这个年龄段,孩子


们开始注意到比他们大的群体。作为设计者,你一定小心不要用太“孩子气”的材料。


你的游戏表现的特点应比这个年龄层稍大一点。。
这个年龄层的儿童能阅读文章,尽管有时并不流利。在使用恰好在儿童记忆范围内的词


汇表还是范围稍大一点的词汇表方面是有争论的,你应该自己拿主意。
(5)青少年阶段(12岁以上):这个年龄层的儿童被认为是最难以对付的顾客。针对他


们的父母的市场策略是,非传统的教育题材的游戏可能最有发展前途。
“酷”是这些孩子追求的终极目标。男孩子疯狂地玩像Doom和真人快打这样的游戏,因


为在那里他们满足自己的强烈欲望。女孩子更感兴趣的是社会活动,坐在计算机面前并


不总出现在她们的时间表里。这些十几岁的孩子从能力和脑力上讲已经是成人了。实际


上他们可能比大人更会玩计算机。包含合作/对抗玩法的游戏在这里可能最有市场。没


错,用怪物、鲜血和暴力你一定可以取得成功!想想看,要是真人快打中没有这些它还


会是什么?多人游戏和联机游戏同样也是很好的。
(6)成人阶段(17岁以上):这些游戏者大多是受到良好教育的成人,他们那种欣赏、


处理复杂事物的能力允许你使用一些性、暴力成分较多的题材(在法律和道德的范围以


内)。
2.确定性别特征
(1)游戏应该让男性和女性都作主角,而不是只让男性表现得特殊。有时可以允许游戏


者选择不同性别的角色进行游戏。
(2)不要把鲜血和暴力特别表现出来。
(3)也不要特别表现打斗的场面。
(4)避免传统的性别习惯。男性不应总是领导者,女性也不应总是被描绘成漂亮的陪衬


角色。
(5)可以试试加点幽默,但可不是黄色的幽默。


第九节 基于商品性的考虑
这些当你设计游戏的时候,你需要考虑哪些主要因素呢?它们当中有许多是与市场销售


有关。例如:
对象是谁?
让你的游戏与众不同的话,需要做什么?”
你的游戏在哪儿和怎样被销售?
你的游戏属于哪一类?这是很重要的,因为它决定了你的游戏在零售渠道中怎样被分
和销售。
竞争和需求的情况如?。
你需要用3D图形和交互技术(真实3D景像、虚拟现实等)来吸引顾客吗?
你的游戏价格将会是多少?你会不断地升级吗?
为了有可能甘展游戏市场,你为游戏增加了一些什么特点?
你能在你的游戏中设计一些附加的成分,如附加的等级水平、场景和故事吗(例如,你


创建了一个模拟类的游戏,如飞行模拟器,你可以创设一些其他的地形地貌,让游戏者


去探索。这些附加的内容可以单独包装销售。)?
你的游戏能不能成能够被移植到其它环境(尤其是没有键盘的控制台环境),而且付出


代价不大?
你能不能为你的游戏中独有的特点办理许可证或者进行名称认证?
你的游戏是不是具有国际性的感染力?
在设计游戏时,是否有办法让你的游戏保持尽可能长的生命力?
如果游戏销售状况良好的话,是不是可以有续集?。
这个游戏仅仅是一个娱乐性的产品还是可以作为教育的工具?
你的游戏是不是可以作为多人游戏?能够在网络上运行吗?
其中有些问题在后面的设计过程中将会被解决,但是你仍然需要一开始设计就考虑这些


问题,否则的话在后面你会后悔的。无论你自信你的游戏会多么火爆,这些最终与市场


相关的问题都是很重要的。毕竟,不管你的游戏设计得多么好,如果最终没有卖出去的


话,所有艰苦的劳动都是徒劳。。
你的问题清单应该包括上面提到的这些问题和一些与你的特定开发情境有关的问题。当
然,你应该回答的问题还不止这些,但这些是我觉得应该强调的问题。有的开发者认为


最大的问题是:“我能筹集足够的资金制作这个产品吗?”,这个问题的答案应该考虑


以下三个主要方面:
生产这个游戏的成本,与之相关的还有开发这个游戏要花的时间。
游戏销售能力和销售利润。
开发者的能力,他们能否在进行主要投资之前对这些问题知道尽可能多的答案。
当你考虑这些问题以后,你将会发现这些问题可以分为两组:
强调成本和市场要素的问题。
强调创造性要素的问题。
下面让我们更详细地考虑一些更重要的与市场相关的问题。
1.你要设计什么类型的游戏?
这是你要回答的最为重要的问题,而且你要在创建设计文件以前回答这个问题。从本质


上说,可以归结为这个问题:“做完以后要得到什么结果?”


如果在一定程度上你能够把你的最终结果可视化,你就能更好地回答我在上面提到的那


些详细问题。
大部分开发者决定他们要开发什么类型的游戏主要从两方面来考虑,一方面是选择他们


感兴趣的,另一方面是选择销售量可能大的。如果你喜欢战争游戏,你会说:“我要开


发一个战争游戏”。这种情况下,你的目标是最终期望的结果。下一步就要求详细地考


虑如何达到目标。
a.你的对像的年龄范围和性别特征是什么?
随着越来越多的人们购买计算机和控制台,就越来越要求游戏适合不同的年龄范围。游


戏工业也就不仅仅以男孩子为特定对像。最近大量的讨论是关于生产适合女性购买和娱


乐的游戏。你需要预先考虑和确认你的游戏的确切对像,千万不要落人这样的思维陷井


:“我的游戏是如此火爆,以致于每一个人都想买去玩”。尽管生产一个具有较宽年龄


范围的游戏是可能的,但是大量成功的游戏都是指向一个特定的年龄段,这是很重要的


,因为,如果你的游戏对于一个特定的年龄段太具挑战性(或者没有什么挑战性),你


的游戏都将不会被经常玩。


在这一方面,设计一个游戏和写一本书是没有区别的。如果你写一本关于在另一个星系


上生活的科幻小说,你最好对你的读者有一个清晰的概念。如果你是给青年人写的书,


就应该保证运用比较短的句予并详细解释在你的故丰中比较重要的技术概念。
b.你的游戏允许玩多少小时?
如果你的游戏是一个消遣游戏,即能够在办公休息的间隙用20分钟就能很快结束(我希


望没有人在工作时间玩游戏被抓住。)?或者你的游戏是一个能够持续长达100小时的冒


险游戏?或者你的游戏是一个技巧性游戏(Arcade)或体育游戏,即要求一小时又一小


时反复地玩?


玩的时间在某些方式上决定于消费者,首先,价值是要考虑的,也就是说每玩一小时游


戏投入的成本是多少?有些消费者不希望花太长的时间玩游戏。其次,你需要决定的游


戏在哪里中断。
c.你的游戏将在什么系统上运行?
你的游戏是一个单一平台的游戏,还是一个能移植到其他平台上的游戏?这个决定在很


大程度上将影响以后的技术决策。一个仅仅为Windows平台开发的游戏比设计一个多平台


的游戏更具技术上的自由度
d.你打算让你的游戏满足什么样的价格水平?
你采用的游戏平台和对价格水平的选择,对技术都有影响。当然,一个低价的产品只需


要较少的投资,这里最大利润不是问题,而什么样的投资对你选择的价格水平能生产最


好的游戏才是一个问题。价格是消费者考虑的主要问题,当他们看到游戏的价格达到70


或80美元时,许多人就变成“望价兴叹”者。如果你想销售量大,就应该努力创建一些


低成本的娱乐产品。这些事实将使你的游戏价位成为一个主要决策,这当然会影响你的


设计。
5.你对你的游戏将来用什么样的销售方式?
在游戏商业中,销售就是一切。如果没有充分考虑与游戏本身相适应的销售计划,即使


最好的产品化的游戏也将可能面对失败。应该预先尽你所能投入时间和资源,以确保你


计划开发的游戏能够充分利用手头的资源去销售。你应该主要考虑的三种销售系统是:


零售、共享和直销,或者它们的任意组合。
如果你计划运用共享的方式,你的游戏设计应该与主要是零售的产品不同。应该探索不


同的销售方式中产品之间的差异,并调整你的设计,以最大限度地满足人们的需求。对


于每一个寻找新鲜花佯的消费者,有许多不同的销售方式。


6.你的游戏具有足够的交互性吗?
这听起来似乎奇怪,但是,我确实看到大量的游戏只具有低水平的交互性。如果你的游


戏不能让游戏者与环境进行充分的交互,这是很麻烦的。例如,如果你在一个有人的城


市,而游戏者又不能与这些人交谈,这就限制了交互性。由此再进一步说,如果,你有


一个许多人居住的城市,但是,你只能与其中很少的几个人交谈,这实际上仍然限制了


交互性,因此,在你设计你的游戏和附加的游戏组件时,应该确保它们能够有助于游戏


交互的本质。你可能没有意识到,实际上在游戏中这种只具有低水平交互性的例子是很


多的,如果你在游戏设计开发的一些环节上没有很好地注意这一向题的话,这就更不可


避免了。
2.举一个例子
就像我前面所说的,你应该从具有最大创造性的问题出发:“我到底想做什么?”然后


充实一些你的思想。最后,你将面对成本和市场问题,这些问题将对你最终的创造性决


策产生影响。上我们再来看看这方面的问题。
例如,假设你将制作一个篮球游戏,你最初的目标可能是创造一个分场景的、五人对五


人的动作游戏,每一个场景包括一些漂亮的扣篮动作的视频片断。然后你应该考虑成本


和市场间的问题,对像是谁?你能否买得起或者获得这些视频信息的使用许可权?你能


否用得起“魔术师”Johnson或者Charles  Barkley配音?你将用什么平台?要回答这些


问题你应该进行一些创造性的思考,以决定它的成本是多少,要花多少时间制作,有什


么样的技术障碍等等。
对于这一产品进行了许多讨论以后,特别是考虑了市场和成本因素,你最后决定Windows


平台,将游戏设计成三人对三人的比赛,而不是设计五人对五人(为了节省时间和资金


)。这样你就又设定了一些参数,进一步的创造性设计要考虑到这些参数,这样你才能


在这些参数的制约下规范你最初的思想。
设计和计划是共存的:它们互相依存。设计一个游戏,尤其是一个主要的商业化产品,


要求比较好的平衡。真正设计的创造性也正体现在一个由成本和其他技术参数制约的现


实的框架内,创立一个富有艺术性和感染力的游戏。创造性的设计并不是不受任何制约


性。
至此,我们已经讨论了各种各样的游戏设计的思想、困难和问题,也逐渐明白了应用这


些思想的背景条件。当然,这也并不是说在设计一个实际的游戏时都要运用这些思想,


设计一个具有3000个角色(而且每一个角色都有非常酷的个性和独有的对话引擎)的RPG


游戏听起来很好,但是你还要考虑实现技术、时间和投资的限制。

你可能感兴趣的:(游戏,编程,指针)