关卡设计的基本理论

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 300x250, 创建于 08-6-1csdntxwd */ google_ad_slot = "8368410909"; google_ad_width = 300; google_ad_height = 250; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
很多朋友喜欢某类游戏的话,都希望自己能制作关卡。 但是往往用游戏自带的关卡编辑器却又因为不知如何下手而止步。

    怎样才能制作出合格的关卡呢?

    1 逻辑无误     一般制作之前就已经对关卡的逻辑了如指掌。这是最基本的,如果逻辑有失误,常常会导致无法通过的情况。这是玩家最不能容忍的, 除了技术上的BUG外,这个算是最严重了。以前我们总发现某某游戏公司刚发行的游戏有一个无法通过的大BUG,那么这款游戏100%不会成功。臭名在外在先即使之后发行补丁也无济于事。

    2 难度合理     做游戏究竟让别人玩还是自己玩这个就决定了关卡的基本素质。也许你认为很具有挑战性的关卡,别人则认为不可能通过。 如果把你的关卡难度降低一下,看是否有趣,如果是否,则表示你的关卡的可玩性是高难度的结果。如果是,则你的关卡有Core向,并不是每个人都是高手的。很多人遇到不能克服的难度很可能会完全放弃的。     具体难度设定一般有两种方法,一种是纵向的,也就是说,这个可以用参数大小来调节。 比如,在动作游戏里把跨越的障碍增加宽度或者是高度, 或者是用其他难度较大的物件替代难度较小的物件等等方法。     另外一种是横向的。我们的关卡一般由多种元素构成,如果添加或者减少元素可能会对关卡难度有所改变。这样就不是纯粹的参数加减了。在关卡中,一般难度总体上是逐渐递加的过程,因为玩家逐渐熟悉基本组件后,水平会得到提高。在这个基础上合适的提高游戏的难度才是合理的。

    3 趣味性     趣味性虽然看起来很简单,但其实并不简单。趣味性是靠难度来达到的吗?     肯定不是,难度只是趣味性的一部分。 首先游戏的系统是决定这个游戏是否有趣的最根本的东西。 这个我们决定不了,因为系统本身就已经定型,而系统的趣味性最终体现在变化 上, 变化是系统设计的最根本,这个我们以后再谈。现在我们谈关卡的趣味性。     a 首先是体感--流程的感觉 , 一般关卡的趣味性由整个过程 决定。如果玩家在过程中一直显得比较痛苦,这个就有问题了,如果过分的压抑,则必须释放。 在一个难度较大的关卡通过后,适当的对玩家给与补偿,或者用一种轻松的方式犒劳一下这是必要的,比如现在单机游戏一般都有动画,而过一个小关后,一般都有动画出现,玩家会放下操作,悠闲的欣赏动画与音乐,或者在通过难度较高的关卡后,出现低难度的一段流程,而且带有一些合理的奖励。这对此时的玩家继续游戏的心理是个大大的鼓励,因为他知道后面将有大难度的关卡在等着他。 总之,体感就是一种心 理过程, 如果这个过程玩家不爽,那么肯定就是这个地方出问题了。这是指一个大的过程。而大过程也是由小的过程组成。     b 关卡基本小块。 什么是基本小块 如果说物质是由分子构成,而分子又是由原子和电子构成,一直这样细分下去。 那么多个基本小块构成了整个关卡流程的整体感觉。     关卡是系统的表现形式。那么关卡每个小部分都是系统的一种使用方法, ,系统则是一种固定存在。 我们拿平台动作游戏为例,以便说明。 超级玛丽中的跳跃带一种滑动的属性。这是模拟真实世界里的动量守恒定律。因为移动则产生惯性,但是有摩擦力阻止,所以停下来。就这个特性,我们可以利用这个特性,在关卡设置一个跨越平台,因为角色惯性,所产生的移动让角色发生玩家无法控制的位移。这样产生的危机让玩家对移动操作的要求提高了。     这样的各种元素组合成为一个个分子关卡,然后构成一个整体。     c 可变性     同一种元素在同一个关卡重复出现则会让玩家产生腻味的感觉。但是由于系统的可变性 让同样的元素在不同的情况下产生趣味感。因为系统元素是有限的,我们不要指望系统会在提供给我们其他的东西。而关卡则要充分利用系统可变性的基础,让其变得优秀。游戏的最根本要诀就是动 ,非动非游戏也。动则变,物变则。玩家的维行为跟着变。这被称为交互性,而交互又分人机和人机人的模式。 但是不管怎样, 所谓游戏最根本就是这样一个变化过程。(具体请参考俄罗斯方块, 街霸或者棋牌类游戏) 。

    超级玛丽为例,有之前提到的移动特性,这个属性,关卡一般都会用到。     另外还有移动云,火球,龟等,这些都是动 的代表,而龟在系统内的延伸程度又比移动云 火球等浅变化更胜一筹。(龟的各种相关变化具体请自己分析)     有人问超级玛丽中的金币有何作用?     这个问题就是下面我要讲解的。金币本身没有用,但是100个金币奖一个人,那么金币就变得有用,而且又能奖分,一举两得,最重要的是金币奖人。     奖人不是有绿蘑菇吗?是,是有这个东西。但是因为平衡性这个东西不能一直占据整个关卡,我们用金币分散这个东西, 然后细分到流程中,让玩家去收集。你看几乎所有平台关卡都有类似的东西存在。除了关卡通过外,这个应该也是关卡的基本目的之一了。 具体怎样使用金币来设计流程,我想不用再说了吧。     当然与绿蘑菇和金币在关卡中数量有关。

    4 增强关卡的耐玩性     常用方法是分枝与隐藏。     a 首先谈论分支。 分支是多线程的一种,但往往分支只能算是固定设计好的过程,与真正的多线程还是差了一点。真正的多线程可能会有无数种可能性,这个由系统决定。这是由触发机制构成的关卡,这个也没有固定性,在某种条件达成情况触发某类事件。 由于这类过于自由的过程会导致很多不可预测的可能性,那么,一般都采取分枝来模拟这种感觉。     分支的逻辑性。首先分支也是流程。也就是说,主流程和一个或者多个分支都是同时逻辑无误的,这样要求逻辑强度比一般的单线程要大得多。具体怎么去做呢 由于各个分支也是基本流程,同一张图可用的元素有限。所以我们要复用最基本的元素。一般是需要共享某一段环节,而这段环节保证各个分支都可用,但可用功能则不同。比如某一个怪物在某一分枝是敌人,而在另外分支则是你的朋友。 如果各个分支的情况太过于一样,则代表分支设计过于笨拙。     b 隐藏就是是干什么用的。     一般"隐藏"给予玩家两中心理状态。     意外惊喜和意外伤害。但是固定的隐藏物件,则只有初期有用,而一旦玩家熟悉,则会无用了。隐藏物体还是位置的模糊性,因为玩家知道了隐藏物体的大概位置,但是不能确定具体点位置的话,则对某个区域有个模糊认识。

    5 视觉效果     对于视觉效果我说这几点。     a 含义     首先关卡不能看起来混乱。比如星际争霸有名的地图 Lost Temp就是对称的完美例子。对称会让你得视觉产生整体的观感享受,这让人尝试这个关卡的冲动。 另外一种方式是示意,比如用关卡组成某种物体,比如“国旗" 之类来宣扬爱国精神。     色彩与物体搭配合理。(涉及美术方面的知识,略)

    6 玩家指导     一般关卡在后面出现某类设定,必须在前面有提示。 因为玩你得关卡的人根本不知道有这个东西。比如银河战士里在前面一般会有不能打开的门或者有非常矮的通道,在后面玩家 拿到道具后,就会想之前没有通过的地方。所以说,信息是否足够,是对关卡基本流程的最基本考验。比如超级玛丽里面有隐藏的蘑菇, 如果即使这个蘑菇与基本流程有关的话,也必须作为第二选择,也就是说基本流程绝对不能隐藏在这个不易找到的蘑菇上。有人又问,不是可以通过某种方式告诉玩家吗 这个当然可以,不过这样的话,就没有必要用隐藏的了。 隐藏是增加关卡耐玩度的一种方式而已。

    7 创意     并不是创意人人有就等于谁都能熟练的运用。创意多,而好的创意又极其少,所以创意显得有些珍贵了。往往人受某种启发 则制作出令人叫绝的东西来,这些的确不可强求。如果要让创意源源不断涌入你大脑, 还是先充电吧,让创意蕴酿一段时间,然后全身心投入设计中。

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 300x250, 创建于 08-6-1csdntxwd */ google_ad_slot = "8368410909"; google_ad_width = 300; google_ad_height = 250; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 网络技术
上一篇SMT基础问答集
下一篇IIS运行不了ASP.NET的解决办法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭