MMORPG游戏开发入门【转】

Posted: 六月 26th, 2009 | Author: 达达尼昂 | Filed under: 资料收藏 | Tags: , , | No Comments »

MMORPG游戏开发入门

原著:Radu Privantu
翻译:pAnic

  
  译者序:这是一篇讲解如何开发一款MMORPG的入门文章,作者本人也是一款游戏的开发者,文中的内容源于实践,有很高的参考价值。很多人都想拥有自 己的游戏,这篇文章对那些想自己开发游戏的人来说可能是一纸福音,也可能是一盆冷水。无论如何,开发游戏都不是一件简单的事情。以下是翻译正文:
  

  文章的中心是如何起步开发你自己的大型多人在线角色扮演游戏( 原文:Massive Multiplayer Online Role Playing Games) (MMORPG)(译者注:俗称:网络游戏,网游)。针对的读者是经验和资源有限的开发者。 读完文章之后,你应该懂得如何起步, 还有一些关于什么是应该做的和不应该做的忠告。第一步是评估你的能力和资源。你必须对自己诚实,因为做你力不从心的事情会浪费你的时间并让你心灰意冷。
  
  第一步:评估你的能力
  
必须的技能:
  
  1、懂至少一种编程语言。 迄今为止, C++因为性能和效率的优越性成为游戏开发者的首选。 Visual Basic, Java 或者 C# 可能也是不错的选择;

  2、熟悉一种图形库。通常的选择是SDL, OpenGL, 或者DX/D3D。(译者注:网上也有很多免费/付费引擎下载和出售);

  3、选择一种网络通讯库。 你可以从WinSock, SDL_net, 或DirectPlay中选择。(译者注:很多人喜欢开发自己独特的网络库,这并不复杂,似乎ACE也是一种选择);

  4、对游戏开发有大体的经验。例如,事件循环,多线程,GUI 设计,等等。
  
强烈推荐的技能:
  
  1、C/S结构通讯;
  
  2、多平台开发。 你可能希望设计一个MMORPG, 尤其是服务器能运行在多种操作系统。为此,我推荐使用SDL, OpenGL 和SDL_net;

  3、网站开发。如果你想让用户通过网站查看玩家统计,服务器信息和其他信息,这是必须的。(译者注:其实网站可以交给其他人开发,如果有必要的话);

  4、安全管理。你当然不想因为有人攻击你的服务器而浪费时间!

  6、团队组织能力。 你需要一个你能成功领导和管理的团队;
  
  第二步:初步规划
  
  我注意到很多人在不同的论坛发帖子寻找团队开发MMORPG。他们中的大部分是这样:“我们成立了一个公司/游戏工作室,需要3个美工,两个程序,1个音乐制作,等等。为了创新,不要看过去的MMORPG,你有全部的自由用来创造你想要的世界,等等。 我们会在项目完成并赚到钱的时候付给你酬劳,等等”。不幸的是,以现有的技术和带宽,你无法拥有一个动态的世界。 朝向无法到达的目标前进只会导致失败。正确的做法是拿出一些小规模的,功能性强的,可扩展的设计和构架。,
  
基本软件构架
  
  首先,尝试创建一个简单的C/S模型,有如下功能:
  
  1、创建一个新角色;
  2、保存那个角色(服务器端);
  3、用那个角色登陆;
  4、能够和其他人交谈;
  5、能在3D空间游览;
  
  保存角色看起来简单,其实不然。 例如,有两种方式保存角色:使用数据库服务或者使用文件。两者有各自的优缺点:

  数据库 文件
优点
  • 添加新域或者修改现有的都很简单。
  • 更新玩家统计数据非常简单(从游戏外)。
  • 你可以通过SQL查询方便的获取不同种类的统计结果。
  • 无需自行完成I/O操作,数据库会替你做好。
  • 易于更新/恢复。
  • 高速操作(读/写)。
  • 实现简单。
  • 无需额外的库。
  • 不依赖数据库服务器。因此你不必担心数据库升级或安全问题。
  • 缺点
  • 容易出错。 例如,做一个更新查询的时候遗漏了”where”子句。会导致惨痛的损失,尤其是你没有备份的时候。
  • 数据库会比打开/写入一个玩家档案文件慢。你查询一些数据的时候会耗费几个毫秒,尤其是大量玩家同时登入/登出的时候。
  • 需要额外的代码进行游戏和数据库间的数据转换。
  • 需要操作数据库和SQL的经验。并且需要一个程序和数据库之间的接口库。
  • 如果因为某些原因数据库文件损坏,那算你倒霉,你可能会丢失所有的玩家数据(尤其是短期内没有备份的时候)。
  • 很难添加新的域,除非一开始就很小心的设计了文件的格式/结构。
  • 没法做全体玩家的查询。(这可以通过每天晚上用程序把重要字段添加进一个数据库间接实现)。
  • 如果你想更新/检查玩家状态,你必须额外写代码。
  • 更新和还原比较复杂。
  •   现在你决定了如何存储角色,你还得选择C/S通讯的网络协议:TCP 还是 UDP?,我们都知道TCP速度慢,但是更准确,并且需要额外带宽。我实际使用TCP并没有遇到什么问题。 如果你有充足的带宽,TCP是个好选择,至少对初学者是这样。 UDP 会很麻烦,尤其是对新手。 记住,游戏或引擎的初步测试会在你的局域网进行,所有的包都会按顺序依次抵达。在Internet上无法保证这一点。虽然包会按顺序到达,但是有时候会丢包,这通常是个麻烦事。 当然,你可以设计你的协议使得C/S能够从丢包中恢复。但这对初学者来说很痛苦,不值得推荐。

    第三步:选择数据传输协议
      
      又是看起来很简单,其实不然。你不能只是发送’’\0’’结尾的串。因为你需要一个通用的协议,能同时适用字符串和二进制数据。用0(或其他字符)做 结束符是不明智的,因为那个结束符可能是你要发送的数据的一部分。此外,如果你发送20字节,然后再20字节,服务器极有可能收不到两个20字节的包。取 而代之的是,它会一次性收到40字节,为了避免浪费带宽在不必要的头上。 而且,你可以发送1KB的包,但服务器会以两个小包的形式收到它。所以你必须知道哪里是一个包的开始,哪里是结束。在 “永恒大陆”(译者注:原文: Eternal Lands,本文的作者正在开发的一款MMORPG)中,我们用如下的方法:
      
      ·Offset 0: 1 字节 表示传输的命令;
      ·Offset 1: 2 字节,传输的数据长度;
      ·Offset 3: 变长,消息内容;

      这种方法有一致的优点:所有的数据传输有统一的标准。缺点是有些命令有固定已知的长度,浪费了一些带宽。以后我们会改成混合的方法。
      
      下一件事是决定服务器模型: “非阻塞soket,不使用线程”,或者“阻塞soket,使用线程”。两种方法(使用线程 vs 不使用线程)各有优缺点。
      
      线程:
      
      1、服务器响应会更加平滑,因为如果一个玩家需要大量时间(例如从数据库中读取数据),这会在它自己的线程中完成,不会影响其他人。(译者注:也许作者的意思是每个玩家都有独立的线程,但这对MMORPG不太现实);

      2、难以恰当的实现和调试:你可能需要大量同步,并且一个小疏忽就会导致灾难性的后果( 服务器瘫痪,物品复制,等等);

      3、可以利用多处理器;

      无线程:
      
      1、实现和调试更简单;

      2、响应速度慢;

      在我的公司,我们使用无线程的方法,因为我没有足够的资源和人力处理线程模式。
      
      第四步:客户端

      
      你打算做2D还是3D游戏?有些人认为2D游戏做起来简单。我两者都做过,并且我倾向于3D游戏更简单。容我解释。

      2D下,你通常有一个帧缓冲,也就是一个巨大的象素点数组。象素点的格式会因显卡的不同而不同。 有些是RGB模式,另一些是BGR模式,等等。每种颜色的bit数也会不同。只有在16bpp模式才有这个问题。8-bit和24-bit模式简单一些, 但有他们各自的问题(8-bit颜色数太少(256),而24-bit速度更慢)。同时,你需要制作你的精灵动画程序,不得不自己排序所有对象,以便他们 以正确的顺序绘制。 当然,你可以用OpenGL或者D3D制作2D游戏,但通常这并不值得。并不是所有人都有3D加速卡,所以使用3D库开发2D游戏一般会带给你两者的缺 点:不是所有人都能玩,你也不能旋转摄像机,拥有漂亮的阴影,和3D游戏炫目的效果。

      (译者注,目前绝大部分显卡都支持565的16bpp格式,这个也成为目前16位色的业界通用格式,有不少文章和代码都是讲述这一格式下图像处理的,尤其是使用MMX技术)

      3D的途径,正如我所说,更简单。但是需要一些数学(尤其是三角)的知识。现代的图形库很强大,免费提供了基本的操作(你不需要从后到前排列对象,改 变物体的色彩和/或帖图都十分简单,对象的光照会按照光源和它的位置计算(只要你为它们计算了法向量),还有更多)。并且。3D给了你的创作和运动更多的 自由度,缺点就是不是所有人都能玩你的游戏(没有3D卡的人数可能会让你大吃一惊的),并且,预渲染的图片总是比实时渲染的更漂亮。

      (译者注:市面上想买不支持3D的显卡目前很困难,只是高性能的3D卡价格也不低)

    第五步:安全
      
      显然,不能相信用户。任何时候都不能假设用户无法破解你精巧的加密算法(如果你使用了的话)或者协议,用户发送的任何信息都要通过验证。极有可能,在 你的服务器上,你有固定的缓冲区。例如,通常有一个小(可能是4k)缓冲区用来接收数据(从soket)。恶意用户会发送超长数据。如果不检查,这会导致 缓冲区溢出,引起服务器瘫痪,或者更坏的,这个用户可以hack你的服务器,执行非法代码。每个单独的消息都必须检查:缓冲区是否溢出,数据是否合法(例 如用户发送“进入那扇门”,即使门在地图的另一端,或者“使用治疗药水”尽管用户没有那种药水,等等)。 我再次强调,验证所有数据非常重要。一旦有非法数据,把它和用户名,IP,时间和日期,和非法的原因记录下来。偶尔检查一下那个记录。如果你发现少量的非 法数据,并且来自于大量用户,这通常是客户端的bug或者网络问题。然而,如果你发现从一个用户或者IP发现大量非法数据,这是明显的迹象表明有人正在欺 骗服务器,试图hack服务器,或者运行宏/脚本。同时,决不要在客户端存储数据。客户端应该从服务器接收数据。换句话说,不能发送这样的消息“OK,这 是我得物品列表”或者“我的力量是10,魔法是200,生命值是2000/2000”。 而且,客户端不应收到它不需要的数据。例如:客户端不应该知道其他玩家的位置,除非他们在附近。 这是常识,给每个人发送所有玩家会占用大量带宽,并且有些玩家会破解客户端从中获取不公平的利益(像在地图上显示特定玩家的位置)
      
      (译者注:就像传奇的免蜡烛外挂)。所有这些似乎都是常识,但,再次,你会惊奇的发现有多少人不知道这些我们认为的常识。
        
      另一个要考虑的问题,当涉及到安全:玩家走动的速度必须在服务器计算,而不是客户端。
      
      (译者注:这是重要的原则,但是会耗费大量服务器资源。魔兽世界没有这样做,它采用类似其他玩家揭发的形式掩盖这个事实,导致加速外挂可以用,但是在有其他玩家的时候会暴露)。
      
      服务器应该跟踪时间(以ms为单位)当客户最后一次移动的时候,并且,移动的请求如果比通常的极限更快到来,这个请求应该被抛弃。不要记录这类虚假请求,因为这可能是因为网络延迟(也就是玩家延迟,过去的10秒内发送的数据同时到达了)。
        
      检查距离。如果一个玩家试图和100亿公里以外的玩家交易(或者甚至在另一张地图上),记录下来。如果一个玩家试图查看,或者使用一个遥远的地图对 象,记录它。小心假的ID。例如,正常情况下每个玩家都会分配一个ID(ID在登陆的时候分配,可以是持久的(唯一ID)。 如果ID在玩家登陆的时候赋予9或怪物被创建的时候),显然可以用玩家数组(保存玩家)的位置(索引)作为ID。
        
      所以第一个登陆的玩家ID是0,第二个是1,依此类推。现在,通常你会有一个限制,比如说2000个索引在玩家列表里。所以如果一个客户端发送一条命 令类似:“查看ID200000的角色”,这会使服务器当机,如果没有防备的话,因为服务器会访问非法的内存区域。所以,一定要检查,就像这样: “if actor id<0 or if actor id> max players 然后记录非法操作并且断开玩家。如果你使用C或者C++,注意或者定义索引为’’unsigned int’’ 并且检查上限,或因为某些原因定义为int(int,默认是有符号的),记得检查 <0 and >max 。没有做这些会严重挫伤你和其他用户。类似的,要检查超出地图坐标。如果你的服务器有某种寻路算法,并且客户端通过点击地面来移动,确保他们不要点击在地 图外部。
      
      第六步:获得一个团队
      
      制作游戏需要大量的工作(除非是个Pong and Tetris游戏)。尤其是MMORPG。你无法单靠自己。理论上,一个完整的团队组成是这样:
      
      ·至少3 个程序员: 1 个做服务器,两个客户端(或者一个客户端,一个负责工具,例如美术插件,世界编辑器,等等)。有6个程序员是最好的,更多就没必要了。这取决于你的领导能 力。最少一个美工,2到3个更合适。如果这是个3D游戏,你需要一个3D美工,一个2D美工(制作帖图,界面,等等),一个动画师,和一个美术部负责人。 美术部应该由有经验的人组织和安排,除非你就是个艺术家。
      
      ·少数世界构建者:创建所有地图是个漫长的过程, 并且直接关系到游戏的成败。再次,你需要一个世界构建部的负责人。你的世界需要协调一致,所以不能只有一个意气用事的人。
      
      ·一个 网站管理员是必须的,除非你精通网站设计,并且愿意花时间做网站。音效和音乐不是必须的,但是有音效和音乐的游戏比没有的会更吸引人。
      
      ·一个游戏经济系统 设计师.。你也许觉得那很简单,可以自己来做,但事实上那是最复杂的工作之一。如果经济系统设计不良(比如物品没有平衡,资源在地图上随意放置,等等。) 玩家会觉得无聊并且退出游戏。我们早期的进展存在很大的问题,尤其是因为经济系统主要是由我(一个程序员)设计的,它没有被恰当的计划。 于是,我们花费了两个月来重新思考和建立一整个新的经济系统。这需要一次完全的物品清除。我告诉你,玩家会很不乐意你删除他们的物品。幸运的是,大部分玩 家赞同这个想法,但是这么多小时的争论,妥协,解释和时间的浪费还是让我们丧气。以后会更多。
      
      如前所说,你需要一个10~15人的团队,不包括协调员和管理者。这10~15人必须是有经验的。如果都是新手就不值得,因为你需要花大量时间解释要做什么,怎样做,为什么他现在的做法不好,等等。
      
      一开始就凑齐10~15人几乎是不可能的。不管你在不同的论坛发多少帖,你也无法找到合适的团队成员。毕竟,如果一个人熟练于他/她的领域,为什么在 你无法拿出任何东西的时候他/她要加入你的团队?很多人有远大的想法,但是实现它们需要大量时间和努力,所以他们宁可从事自己的工作也不会加入你。那如果 你需要10~15人,但是无法让他们加入你的团队,你如何才能制作一款MMORPG呢? 好,事实上,你一开始不需要所有人都到位。你真正需要的是一个程序员和一个美工。如果你是个程序员,只要找个美工就可以了。请求懂美术的朋友帮忙,花钱请 大学生/朋友做一些美术或者其他工作。
      
      现在你有了一个美工,你期待的游戏的样子,现在可以开始实现了。一旦你有了可以运行的C/S引擎,一些用来展示的截图(或者更好,玩家可以登陆你的世 界,四处走动,聊天),更多的人会愿意加入你的团队。更恰当的是,除非你使用独有的技术,否则你的客户端可以开源。许多程序员会加入(作为志愿者)一个开 源工程而不是非开源项目。而服务器不应该开源(除非你打算做一款完全开源的MMORPG)。
        
      其他一些忠告:在有东西可展示之前,不要夸大你的游戏。最惹人烦的事情之一就是一个新手发一个“需要帮助”的请求,要求一个巨大的团队加入他的游戏制 作,解释这个游戏到底有多酷。一旦你拥有了网站广告(通常是在一个免费主机),你会看到一个吸引人的导航条,包含“下载”,“截图”,“ 原画”(译者注,原文:Concept art,概念艺术,在游戏应该指美工的原始设计),“论坛”。你点击下载链接,然后看到美妙的“建设中”页面(或者更糟糕,一个404错误)。然后你点击 截图,得到同样的结果。如果你没有东西给人下载,就不要放下载链接。如果没有截图展示,不要放截图链接。然而更好的是,在工程进展10%(程序和美工)之 前,不要浪费时间在网站上。

    第七步:打破某些神话
      
      1、你无法制作MMORPG, 只有大公司才可以。
      
      我不同意。虽然制作一款像魔兽世界(World of Warcraft),无尽任务2(Ever Quest 2),亚瑟王的召唤2(Asheron’’s Call 2),血统2(Lineage 2),和其他一些游戏对一个小的自发团队是不可能的,但是做一款像样的游戏还是可以的,只要你有经验,动机,和时间。,你需要1000小时的编程来制作一 个可运行的测试版,大概10~15k小时完成几乎完整的客户端和服务器。。但是作为团队领导者,你不能只编程。保持团队团结,解决争执,维护公共关系 (PR),技术支持,架设服务器,惩罚捣乱分子,自由讨论,等等都是你的职责。你可能会被非编程的任务淹没。你很可能需要上班/上学,这减少了你花费在项 目上的时间。我们很幸运,没有成员离开团队,但是如果这种事情发生,那的确是大问题。假设你的美工半途离开。或者更糟糕,他/她没有给你使用他/她作品的 许可。当然这可以通过和他们签订合同来解决,但找另外一个美工仍然很麻烦。一个工程中有两种不同的美术风格也是问题。
      
      2、需要大笔金钱(通常 4-6 位数) 用来架设一个 MMORPG 服务器.
      
      当然,这不是真的。我见过专业服务器,1000GB/月,不到100美元/月(2~300美元的初装费)。除非你的数据传输协议设计非常不合理, 1000GB/月对一个1000玩家在线(平均)的服务器来说足够了。当然,你还需要另一个服务器做网站和客户端下载(客户端下载会占用大量流量,当游戏 变得流行的时候)。我们的客户端有22MB,有时候会有400GB/月的传输量。而我们还没有很流行(仍然)。另一件事,我们不需要另一台专用服务器开启 这个工程。ADSL/cable服务器可以胜任,直到你的同时在线人数达到20~30。然后要么找一个友好的主机公司,用广告交换免费主机,要么就只能自 己掏腰包了。
      
      3、制作一个MMORPG很有趣。
      
      这不是真的。你可能认为每个人都会赏识你,玩家会支持你,你标新立异,并且,当然,很多玩家都玩你的游戏。玩家可能让人讨厌。即使是完全免费的游戏, 他们也能找到理由抱怨。更糟糕的是人们经常会抱怨矛盾的事。战士会抱怨升级太难,商人会对战士掠夺大量钱财很失望。如果你减少怪物掉落物品,有些玩家就会 威胁说要退出游戏。如果你增加,同样的一群人会不满新手能更简单赚钱的事实。 真是左右为难。改革和改进是必须的。如果你决定改变某些东西,例如给加工物品增加挑战性,有些人会说太难了。如果你不做,他们又会说太简单无味。你会发现 满意的玩家通常不会说什么并且感到满意,同时破坏者会怨声载道。
        
      MMORPG的经济比单机版难以平衡的多。在单机游戏,你可以逐渐改良武器,只要玩家进展,他/她可以使用更好的装备,丢弃(或者卖掉)旧的。另一方 面,在多人游戏里,这种观点不成立,因为每个人都试图得到最好的武器,而跳过低等级武器。大部分玩家宁可空手省钱,直到他们能买游戏中最好的武器。经济系 统设计要参考相关的文章。
        
      迄今为止我列举的所有事情,加上额外的工作和挑战,足以让你在决定涉足这个工程之前三思而行。你必须知道你的决定意味着什么。
      
      总结
      
      希望这篇文章能给你足够的知识。我的下一篇文章将介绍如何建立一个经济系统(更明确的,要避免哪些错误),还有一些调试服务器和客户端的信息。
      
      关于作者

      
      这篇文章作者是 Radu Privantu, 永恒大陆(Eternal Lands) www.eternal-lands.com的主程序和项目规划, 永恒大陆是一款免费,客户端开源的MMORPG。

     

    来源:http://job.17173.com/content/2009-06-25/20090625163128782,4.shtml


    《我所了解的游戏策划》视频

    Posted: 六月 1st, 2009 | Author: 达达尼昂 | Filed under: 资料收藏 | Tags: , , , , | 6 Comments »

    《我所了解的游戏策划》视频

    作者 cdhe@live.cn 来源 游戏魂

     

    《我所了解的游戏策划》视频【上】
    游戏行业以及游戏制作流程
    http://www.tudou.com/programs/view/FJPomPznTfU/

     

    《我所了解的游戏策划》视频【下】
    游戏策划软件演示
    http://www.tudou.com/programs/view/roDu4A4Ep8c/


    3大顶级设计大师谈关卡设计 【转】

    Posted: 三月 25th, 2009 | Author: 达达尼昂 | Filed under: 游戏策划 | Tags: , , , , | No Comments »

     Paul Jaquays是一个多面手

        Paul Jaquays是一个多面手,他在id Software里为QuakeⅡ设计关卡,并为QuakeⅢ做游戏和关卡设计。现在,还有谁不愿用他的东西呢?当Jaquays了解到Saqes的秘决后,他想出版一个关卡设计规则方面的文集,如战图设计方面的一些建议等,我们无须多费工夫,直接去看看他的设计集锦吧。

    Jaquays的二十六个关卡设计技巧:

        首先在你进行关卡设计之前你应该弄清楚要做些什么。不要指望SP战图能轻易用作MP战图,但是DM战图能有效地转化为SP战图。

        草拟战图框架作为整个设计的初始向导。你最好不要从大项目开始做起,尽量安排一些有趣的地方。如果可能的话,在你的关卡里暗藏一些机关——游戏玩家要记住的地方。过去用过一些较有名气的机关有设置风洞,设计多个入口,采用熔岩地图,陷阱战图,水战地图,危机四伏的地图以及太空地图等。对于每个设计都尽量采用一些新鲜点子,做一些你以前没见到别人做过的事情。在你把机关,陷阱和圈套做进游戏之前,你需要对这些东西进行测试。

        在你建立游戏里的建筑风格之前,须要对建筑设计和结构设计做些研究,并努力在游戏中保持这种风格。

        开始,Jaquays为QuakeⅡ那复杂的、充满困惑和陷阱的地图构画了框架,这其中包括Laboratory的模块化的、移动式的监狱单元。这个想法最终没能在游戏里得到实现。后来,Jaquays开始了QuakeⅢ(arena)的第一张地图的设计,粗略勾画出游戏的主要特色以及他们之间的关系,Arena的最终版本把他的最初几个想法都贯穿里面了,虽然后来某些地图的布局和形状作了些改动。(所采用的两张图片都得到id Saftware公司版权许可)。

        通过大块大块的几何体粗略勾划出你要设计的关卡。考虑一下你在游戏里要用到的建筑物的样子,但重点集中在游戏玩家是怎样通过这个关卡的。在这个阶段,我尽量保持我地图上的栅格大些(在QuakeⅡ和QuakeⅢ中,这些栅格都是64)。这个时候要避免过于繁锁的细节,避免把整张地图安排得过于密集。在进一步开发阶段,尽量做到在满足游戏允许的栅格数时游戏的速度尽可能快。(对于QuakeⅡ,我们目标是在任何视觉下都最多只有500个建筑三角形单元)。最好能做到栅格数不及大的屋子在最差视角时总的多边形数目的三分之一。

        这个六十四人地图取自QuakeⅡDM Pack:Extremities expansion CD。Jaquays提醒关卡设计师要确保大一些的地图各自都有让人回味的地方。本文使用得到Activision的许可。

        一旦确立了开发流程,你就可以开始进行一些建筑物的细节设计,逐步推敲大厅和房屋的合适形状。

        在做关卡中设计时最好采用模块化设计,做一些很容易拼装在一块形成你的关卡模块,对一些具有很多细节的建筑物(如门框、复杂的屋檐,或者家具等),预先做些装饰块,并且不要把它们直接添加到地图里,如在战图里某个地方需要时只须复制一下就可以了。

        设计建筑物部件时,你要先对现实世界做一番研究,努力再现那些给人深刻印象的建筑作品的外貌和感受,但是尽量使用不太复杂的几何体,站在这个角度挑战自我。

        当你在做建筑物细节设计时,在使用真实几何体和三维结构时要权衡利弊。对那些看起来像3D结构的要小心使用,当从某个距离看过来时,这些3D结构可能会让人误认为建筑几何造型比它实际结构更加复杂。但是从近一些距离看时就可以完全清除3D尺寸给人的假像了。

        修补地图要经常编辑,直到所有东西都恰如其分地放到它应该放置的位置上(不要亡羊补牢,等发现漏洞时再修改)。

        在向战图上添加其它东西和项目之前,先完成战图几何尺寸的设计。

    设计SP战图时

        设计SP战图时,不要把地图的每一个特点都集中到关卡设计上。把地图上所有可能出现的怪物都放在关卡里,这是一件让游戏爱好者瞠目结舌的作法。一般来说,能同时看到所有怪物只可能是在AI程序师检测关卡的时候。

        这同样适合于那些决窍、陷阱、武器、电力等的设计。除非你的战图有为QuakeⅡ制作的64人DM战图那么大,否则你就要限制放在地图上不同项目个数。对有些东西要灵活使用,不要过于死板。对小地图而言在各处都可以相近设计,但对一些大的地图就应该有些与众不同的,给从深刻印象的地方以便玩家能够明确自己在战图上的方位。Gty64是QuakeⅡ里的一张大地图,它有很多特色,如有一个巨大的峡谷区,一个很大有外国特色的庙宇,很多水下山洞,在底部装有水的大且深的容器认及很多转变抹角的走廊,这些走廊虽然很相似,但是走廊尽头却都有各自不同的大的战场。

        对于DM战图,要让玩家能经常有机会躲避追踪和寻求掩护。没有出口的过道这种设计不差,要尽量避免玩家需费很大力气才能到达目的地。

        △安排灯光以达到戏剧效果。如果你在灯光暗地方和灯光明亮地方作出选择,不要错误地认为另外一边一定是一片黑暗,不要从一个极端走向另外一个极端。黑暗关卡虽然看起来很好,但是玩家在过关时却要跌跌闯闯,四处摸索。

        △不要忽视声音的作用,声音在游戏里是个很重要的线索。如果可能的话,对那些难关尽量设计多种过关方案。你要把最好的奖励留给设计者认为用最好的方式解决问题的玩家。

        △在每个战图都给玩家一些不同的经历和挑战。否则所有的战斗激情和酷感都会很快消退。

        △对你的玩家尽可能宽容一点,不要过多设置不必要障碍。利用环境合理安排陷阱,使得游戏变得更为紧张刺激。每走三步就掉进熔岩或者烂泥里,或者迅速转过身却被重物砸死,这些都将使得游戏玩家沮丧。

        △好好研究你喜欢的地图,并且当你进行战图设计时再现它,甚至努力去改进战图里的环境和设置。

        △对你的初稿进行润色和加工处理。

        △正如很多程序设计员,艺术家、漫画家、音乐家,以及关卡设计师所说过的一样,这最后一点,也就是对一个工程加工润色而不是重新开始十个新的工程是很基本的工夫,而且对一个入门者很不容易。

    Paul对游戏设计的一些建议

        Jaquays通过他在游戏界的经历,积累了很多关于游戏设计方面的经验,他在前面

        介绍地图制作时省掉了很多个人见解,下面一些细节是他关于游戏设计方面的重要见解,这都来自他个人的设计经历。

    不要因循守旧。

        在游戏界,我开始是设计冒险游戏《Dungeon8&Dragons》,后来是设计游戏《Everquest》。那时我被认为是这个领域里最好的冒险作家。我不再设计角色扮演夹游戏的一个原因是因为我发现我开始在走老套路,一遍又遍地重复以前的故事,我不再有新的灵感。幸运的是,在游戏界我还有另外一个可以从事的职业。但是,问题是:怎样使你的思想新奇而且充满活力?

    在游戏设计里有个趋势

        在游戏设计里有个趋势就是总是采用那些和标准相似的,经过事实证明是优秀的设计方法。在《Golden Age of Video Games》游戏的后一部里,几乎每个基于某个英雄人物或电影游戏的设计方案都是在原有基础上某个部分的改进。我呆在原公司时,我们很少有机会开发新路的游戏,我们很多工作是分析和翻译字幕,游戏《War Games》给我们一个机会来打破这模式。传统的方法是作些改进——比如解决遗留问题,找到一些潜在优点,同时避免缺陷,直到最后你把这些都搬上计算机。在这点上,游戏设计需要你从头开始做起,直到最后最难的一关。看过电影《War Games》的预览版后,我发现电影结尾处计算机模拟了好些情节,但是结果却总是一样的:核战争,并且随之世界完全毁灭。我被导弹接近目标时的轨迹曲线吸引住了。如果我敢肯定的话,这个电影的简短情节就是我们游戏所需要的,真实游戏就来自这个相关的想法。游戏玩家的目标是阻止炸弹、潜水艇以及导弹的攻击(导弹在空中直接飞行,从今天这8位模式的游戏系统看来已经没有任何技巧)。从某种意义上说,它有点像流行的游戏《Missile Command 》。在《Missile Command》游戏中,游戏玩家发射反弹道导弹阻击以屏幕上空下来的进攻导弹。这个游戏和《Missile Command》不同之处在于游戏同时发生在六个独立的地图上。好比变戏法的人能保证很多盘子能在一根细根上迅速地旋转一样,游戏玩家的注意力要经常来回于显示整个美国的雷达地图和显示最近目标军事设施的六个子地图。游戏玩家要能利用现有装备(导弹,栏截战斗机,以及进攻性潜艇等)迅速地反击敌人进攻,然后再切换到其它地图做这同样事情。如果玩家有合适的装备,并且能合理地加以运用,那么他(她)就可能战胜敌人。

        有些流行食品把一些味儿不相近甚至相反的调料放在一个调味包里。酸甜可口的中国盘装菜以及芝加哥式热狗就是两个典型例子。这些东西和游戏设计有什么关系呢?我最引以为豪的作品是《Central Casting》书集。这个作品的目的是为角色扮演类游戏创作一些生动的故事和经功。我为三种不同典型的游戏各自看了一本书:虚幻类、科幻小说类(或者称之为“未来派”),以及20世纪游戏。游戏制作者通过掷骰子或者通过一系列表格进行比较,挑选出适合他们游戏里角色的事件和人物。一般来说,几种选择结果不太可能凑合在一块儿来,但是稍有一些创造性思维的话这些独立事件就可能被凑合在一块儿,这就好比芝加哥热狗里的各种味道。

    尽量使游戏看起来真实些。

        假若你计划把你的游戏设计得非常离奇——也就是说,这都是你在现实世界里从事没见过的东西——那么你就要努力使你的游戏看起来很有真实感。这就是我作为一个虚幻类游戏图解者,也就是灰游戏设计封面时体会到的。使封面图画具有自信性的方法是在封面上添加一些现实存在的东西。这就建立了一个环境,让人觉得这真的存在于某个地方。你在绘制图画上的虚幻部分时要多下点工夫,尽量使它们能“分享”一些图画上其它部分的真实性。在设计3D游戏关卡时这样做同样有道理,在游戏里给玩家一个或多或少他熟悉的东西,通过和这些真实的部分相对照,游戏里不真实的东西看起来就要真实些,或者一个更好的解释就是他们看起来更具可行性。同时,和现实相比较,他们又显得有些幻想和离奇。

    John Romero说

        John Romero说“关卡设计师是个很重要的工作,因为战图就是整个游戏的发生地”。John Romero是游戏设计员,ION Storm的主席和创始人。他已经开发出很多3D游戏,如《Wolfenstein3D》,《DoomⅡ》,《Heretic》、《Hexen》以及《Quake》等,Romero有很多关于关卡设计方面的想法与大家分享。

        Romero认为游戏分割时不可避免的责任分割破坏了整个游戏的灵感。Romero说:“有些公司制作分期战图”,使用不同的人处理不同的任务——建筑物设计,结构安排,物体布置,但是这样做使得游戏少了几分“酷”。

        虽然Romero的很多关于关卡设计方面的建议都很平常(比如,在地图上给玩家一些标记以体现某个性,努力使游戏玩家完全沉迷入虚幻的边界里,等等),但是Romero也提出一个有趣的规则。“游戏玩家必须一直处于恐怖紧张之中”,Romero坚信:“保证游戏玩家在玩游戏时一直处于紧张状态下对游戏设计者而言是相当重要的,设置大量陷阱使得游戏玩家一直处于对死的恐怖之中。

        提示:对一个精心设计地图而言,地图标记上的具有双重作用,他们能为玩家提供

        方面指导,帮助游戏玩家搞清楚他们在这一点里所处的方位。

        Romero举了几个特别的例子,比如《Quake’s E2M5》(“Wizard’s Manse”),在这个游戏里,游戏玩家被封锁在一个笼子里,并且缓慢地沉入水中,同时却又无路可走。另一个例子是《Quake map》,E2M6(“Dismal Dublette”),在这里同样是缓慢地垂直下沉,这是《Disney world’s Haunted House》里的“升降术”激发的灵感所至。“游戏玩家被困在屋子里面感到非常惊慌,当笼子最终停下来的时候,一束强光照进屋子,一排钉子跟着射出,然后就是和一个魔鬼交手,最后就是喝庆功酒了。这就做到了一个事件接着一个事件。”Romero微笑着说:“这在一个好的关卡设计里非常关键”。

        Romero完全可以在Daikatana中炫耀他这些给人很大帮助的见解。

    Cliff Bleszinski ,Epic MegaGames

        虽然Cliff只有24岁,但是他作为获得了PC游戏冠军的《Jazz Jackrabbit and Unreal》的设计和关卡制人员在游戏界很有名气。虽然Cliff赞同John Romero关于恐怖紧张是游戏的很重要环节的说法,但是Cliff认为这只不过是一个成功关卡设计的一个因素。Bleszinski解释说:“适合平静缓和也许更重要,如果游戏玩家一直处于恐怖之中,他就会对恐怖感到麻木了,如果游戏玩家一直都感到惊讶迷感,那么你那设计思想就要逐渐失效,不再起作用了。他接着说:

        在关卡里面惊吓玩家的关键是要搞清楚在什么时候,什么地方,隔多长时间让玩家惊讶一次。比如说,给玩家五分钟时间和一个友好和气的外侨交谈,这时,门开了,一个深身是血,大嚷大叫的怪物摇摇晃晃地闯了进来,保证这时玩家的两条腿都在发抖。这就是为什么好的恐怖电影并不是给观众的一个恐怖场景接一个恐怖场景,因为这样做起不到好效果。适当的放松对关卡设计里的每部分设计都是一个技巧。放慢作的怪兽出场节奏,既要有些地方给玩家时刻都有要被吞食的危险,但是同时也要给玩家一些偏僻安全的地方。要懂得经常奖励玩家一些东西或补血品等。不要让整个关卡都是条条块块,也就是说,当玩家杀死怪兽,把门打开或者到达另外一层关卡时,给玩家一些奖品。

        虽然为了游戏增加的趣味性而使玩家经常被致命的Skaarj所追赶,但是他却警告说,为了打破游戏平缓节奏的“恐怖”尽量少用一些。(上文采用得到Epic Megamees的许可)。

        Bleszinski认为关卡设计除了“恐怖成分”和“适当节奏”之外还有很多其它手段,所以他又为我们提供了他自己在做关卡设计时的五个突破口。准备好笔了吗?让我们继续下去……
    建筑和结构设计

        首先,你需要构造游戏环境。较理想的是结构工艺师在关卡设计师之前开始工作,所以关卡设计师知道在什么地方布置建筑。关卡设计师可以告诉结构工艺师:“我需要一个32’128的带有三个没有生锈的螺钉的梁,请把它放在结构螺里。

        Parcho Eekles是CL升Bleszinki的同事,也是一个关卡设计师,他在设计时努力使得屋子明亮些,但同时又很时尚和花悄,这取自《Unreal Tournment》。(上文使用得到Cliff Bleszinski的许可)。

        恰当的灯光可以使场景更加优美,不合适的灯光可能破坏场景的和谐。昏暗灯光可以使怪兽显得更加逼真,明亮的灯光可以适当减少在黑暗里摸索。关卡设计师要会创造性地使用灯光,比如,当“玩家”陷入火山里时,灯光就应该变得“热”些,并且陷得越深光线就越来越强,变得越来越桔红,假如你让“玩家”进入沼泽区,那就要使用那种阴沉的色调,比如绿色和灰色。

        《Unreal》或《Quake》在光线控制上的惊人效果给关卡设计师效果带来很大启示。建筑物在阳光下一定会造成一块阴暗处;天空下段的立柱也会在地面上成萌,壁炉里的火焰能在对面墙上形成一个耀眼的影子。

    技巧圈套等的设置

        不要让你的玩家总是处在死神的威胁之中,尽力给他们冲破难关的机会,而不是总刁难他们。要记住,玩游戏的人只是为了取乐,而不是在工作。如果你想设计从印加庙的地底下弹出一些刀片,那么你要保证在这个机关附近添置一些血迹或尸体碎片,这样就可使那些细心的玩家幸免于难。假若“玩家”被杀死了,那他想的是“哦,我真蠢,居然连这些警示都没注意到!”而不是“这个游戏在骗人,我怎么知道这里有个陷阱呢?”如果游戏的主要要求是杀死或者快速杀死对手,那么不要用一些让人讨厌的小麻烦来妨碍玩家。有时候游戏玩家通过一关需要三个回合才能,另外还有些时候在三关之后,玩家需要十二个回合才能通过一关,并且每个回合都设置有一些用纸和笔才能记住的密码。

    怪兽,弹药,以及“命”的设计安排

        在《Unreal》的开发过程中,我一直琢磨在关卡设计里怎样使得性兽在某个地区巡辑,或者从黑暗里面窜出来,甚至是毁坏玻璃扑向玩家。如果玩家走进一间屋子时他发现屋子里面正好有怪兽在等着他,那么他肯定会认为这样太离谱了。但是,假如他走进一个屋子时他的敌人正好从他旁边过去,那么这个“特写”恰恰能增加游戏的真实性。在关卡设计中弹药设计要做到恰到好处,太多弹药可能使玩家不费力地就通过了这一关,弹药太少又可能使玩家四处逃窜,躲避对手,同时还想着怎样作弊去获取弹药。最好做到当玩家想着“我现在急需弹药”的时候,突然他发现他面前有一箱弹药在等着他,这此规则同样适用于“命”的设计。

    剧情编排

        在《Unreal》里,我们尽量创造处于一个敌对国家的情形。游戏的真实性很大程度上取决于我所说的“剧情”。所有发生在门窗紧锁的巷子里的故事,看到一个恶毒的外国人正在拷打曾帮助过自己对自己非常友好的另一个外国人,亲眼看到一个同志被谋杀,这些都发生在游戏里,这当中有很多地方玩家可亲自参与。好的剧情可以深刻地印在玩家脑海里而不会轻易忘记。

        那么,关卡设计的主要性到底怎样?为什么关卡设计是游戏设计里如此重要的一个部分呢?“关卡设计是关系到游戏是否成功的前提”,这句话是几年前id software的首席执行官Jay Wrbur在和Cliff Bleszinski电话交谈时说的。这句话成了Cliff的“座右铭”,他这样比喻说:

        游戏开始好比是制造一部汽车。你把所有这些有才干的人创造出来的部件——程序设计,建模,声音制作以及工艺制作——从某种意义上说,好比是汽车的重要部件,但装在一块,而同时,汽车轮胎的好坏又是一辆车好不好的关键。对一个游戏来说,每个人的工作都是通过关卡联系在一起,所以游戏开发商要在关卡设计上多下些工夫,否则可能整个游戏设计功亏一篑。

    来源:17173