登录社区:用户名: 密码: 忘记密码 网页功能:加入收藏 设为首页 网站搜索  

文档

下载

图书

论坛

安全

源码

硬件

游戏
首页 信息 空间 VB VC Delphi Java Flash 补丁 控件 安全 黑客 电子书 笔记本 手机 MP3 杀毒 QQ群 产品库 分类信息 编程网站
  立华软件园 - 安全技术中心 - 技术文档 - 入门基础 技术文章 | 相关下载 | 电子图书 | 攻防录像 | 安全网站 | 在线论坛 | QQ群组 | 搜索   
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
 其他安全技术资源
  · 攻防演示动画
  · 电子图书
  · QQ群组讨论区
  · 其他网站资源
最新招聘信息

游戏开发基础(1)
发表日期:2007-01-16作者:[转贴] 出处:  

第一节. 概述
  随着计算机技术的发展,计算机从高技术的神坛上走下来,走进我们的家庭,走进我们的娱乐生活中。在家用计算机的使用中,作为游戏机的使用率是很高的。同时对于游戏迷来说现有的游戏中总有很多不足之处,让人想一试身手作出一套更好的游戏(不过,这可不容易)。作为和亲爱的用户您一样的游戏迷,我也有相同的想法。这样便产生了这套游戏编程基础的教学软件。

  这套软件主要是面对有一定编程基础的用户,但考虑到很多游戏迷在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游戏听起来很好,但是你还要考虑实现技术、时间和投资的限制。

我来说两句】 【发送给朋友】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 游戏开发基础(1)

 ■ [欢迎对本文发表评论]
用  户:  匿名发出:
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。

最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放 / 友情链接  
Copyright ©2001-2006 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00218