达达尼昂 | 游戏开发[资料] | 2011-12-18AI系统【转】
谈到人工智能(AI),这个话题就太大了;大学里有《人工智能教程》专门讲这方面的知识,什么大名鼎鼎的人工神经网络、遗传算法等等均可一窥究竟,这里如赘述似乎有些班门弄斧,我们暂且丢它一边去吧。
本节,我的主要目的是与大家共同探讨AI在RPG游戏中的应用。看过之前教程的朋友一定不会陌生,A*算法就是其中的一个重要组成部分;而本系列Demo中则使用了更为高级的改进型A*算法,不仅优化了性能,同时也大幅提升了玩家的操控体验。除此之外,AI更常见于RPG游戏中的角色,接下来我将引领大家循着AI的足迹,逐步探寻Silverlight网页游戏中的AI系统设计与Demo实现。
以一份网上见到的AI系统设计文档作为开始,我们不妨首先分析下它的主体思路,大可断定其为直观的解析当前国内即时类MMORPG主流角色AI设计:以古老而传统的有限状态机FSM(Finite State Machine)固定决策树AI为原型,简单而直接。当然,为了让游戏体验更加有趣且不至于显得一成不变,我会考虑引入基于Random的各类概率机制,即使用随机性和灵活性更强一些的模糊状态机FuSM(Fuzzy State Machine)。所有非控角色的行为完全无规律可循难道不会更吸引人吗?
有了大体思路后,接下来我们要做的就是将复杂而庞大的AI系统简化,使之更好理解并最终转化成Silverlight游戏程序代码。纵横剖析,我更青睐于按照策略AI (tactic)与行为AI (action)两部分予以划分。所谓“策略AI”即角色何时采取何种决策,而“行为AI”则为角色按决策执行何种行动。
基于以上方案,我首先在角色控件的内部添加一个计时器用于AI逻辑循环,其中策略AI间隔3秒执行一次,用于敌对角色的搜捕(索敌);行为AI与角色动作切帧率同步,根据实时情判断应该执行警戒/追击/攻击/转向/逃逸/或其他等行动;而这两种AI在角色控件中分别对应两个事件,对于主角来说,玩家的操作已相当于主角的策略,因此主角只需注册行为AI事件,而其他非控角色则需要同时兼具两者以具备完整的AI能力:
/// 动作(帧)切换时触发
/// </summary>
public event EventHandler ActionTrigger;/// <summary>
/// 以1秒为基础单位的时间间隔触发器
/// </summary>
public event EventHandler<IntervalTriggerArgs> IntervalTrigger;/// <summary>
/// 间隔触发器参数
/// </summary>
public class IntervalTriggerArgs : EventArgs {
public int Count { get; set; }
}
int tickCount = 0;
IntervalTriggerArgs intervalTriggerArgs = new IntervalTriggerArgs();
void intervalTrigger_Tick(object sender, EventArgs e) {
intervalTriggerArgs.Count = tickCount;
if (IntervalTrigger != null) { IntervalTrigger(this, intervalTriggerArgs); }
tickCount = tickCount == Int32.MaxValue ? 0 : tickCount + 1;
}
接下来又是一个难题,我们该如何编写这两类AI?困惑时不妨借鉴一下前辈们的经验,尝试回忆一下小时候玩过的那些RPG游戏:有的游戏喜欢以复杂程度来定义怪物的AI,打个比方:
简单AI:角色搜索目标 -> 攻击 -> 频死时回血、逃跑
中级AI:寻找最近目标 -> 攻击 -> 半血逃逸,呼叫同伴协助
高级AI:检索周围状况 -> 寻找最弱目标 -> 呼叫同伴,集体攻击
以上仅仅是一个粗略的AI流程图,然而却生动而有趣的比拟了目前网游大同小异的AI设计规律。或许其中的一些环节仍可被细分成若干枝节,同时有的还会根据游戏本身功能不断的进行拓展;万变不离其宗,性能与趣味性兼具的AI设计总是倍受玩家们迷恋。
又如《博德之门》、《冰风谷》等龙与地下城类型经典游戏,其中的角色在创建时会根据善恶与种族的选择决定性格,而性格往往就用于确定角色在游戏中的策略AI与行为AI。
到此,角色AI逻辑编写的切入点已清晰显露。综合以上所有,相信您的思维也一样会变得豁然开朗。接下来在本系列教程Demo的基础上进行代码编写便是非常轻松的事:
/// 策略AI
/// </summary>
public enum TacticAIs {
/// <summary>
/// 目标主角
/// </summary>
GoalLeader = 0,
/// <summary>
/// 自由战斗
/// </summary>
FreeFighting = 1,
/// <summary>
/// 小组作战
/// </summary>
TeamAttack = 2,
/// <summary>
/// 门派对阵
/// </summary>
MartialBattle = 3
}/// <summary>
/// 行为AI
/// </summary>
public enum ActionAIs {
/// <summary>
/// 简单
/// </summary>
Simple = 0,
/// <summary>
/// 机敏
/// </summary>
Alertness = 1,
/// <summary>
/// 固执
/// </summary>
Persistent = 2,
/// <summary>
/// 怯懦
/// </summary>
Cowardice = 3,
}/// <summary>
/// 角色策略判定
/// </summary>
void role_TacticDecide(object sender, IntervalTriggerArgs e) {
//每间隔3秒执行一次策略检索
if (e.Count % 3 == 0) {
RoleBase role = sender as RoleBase;
//异步判断角色是否处于屏幕显示区域中,是的话且无目标则进行索敌判断:在视线范围内则追击,否则警戒
this.Dispatcher.BeginInvoke(() => {
space.SetSpriteVisible(role, role.InSight(leader));
if (role.Target == null && role.IsVisible) {
bool targetFound = false;
switch (role.TacticAI) {
case TacticAIs.GoalLeader:
if (role.Target == null && role.IsVisible) {
if (role.IsHostileTo(leader) && leader.InCircle(role.Position, role.SightRange)) {
role.Target = leader;
targetFound = true;
}
}
break;
case TacticAIs.FreeFighting:
int count = 0;
int roleNum = space.AllRoles().Count;
while (count < roleNum) {
RoleBase target = space.AllRoles()[ObjectBase.RandomSeed.Next(roleNum)];
if (role.IsHostileTo(target) && target.InCircle(role.Position, role.SightRange)) {
role.Target = target;
targetFound = true;
break;
}
count++;
}
break;
case TacticAIs.TeamAttack:
for (int i = space.AllRoles().Count - 1; i >= 0; i--) {
RoleBase target = space.AllRoles()[i];
if (role.IsHostileTo(target) && target.InCircle(role.Position, role.SightRange)) {
role.Target = target;
targetFound = true;
break;
}
}
break;
case TacticAIs.MartialBattle:
count = 0;
roleNum = space.AllRoles().Count;
while (count < roleNum) {
RoleBase target = space.AllRoles()[ObjectBase.RandomSeed.Next(roleNum)];
if (role.IsHostileTo(target) && role.Profession != target.Profession && target.InCircle(role.Position, role.SightRange)) {
role.Target = target;
targetFound = true;
break;
}
count++;
}
break;
}
if (!targetFound) { role.Guard(role.Position); }
}
});
}
}
/// <summary>
/// 角色行为执行
/// </summary>
void role_ActionDecide(object sender, EventArgs e) {
RoleBase attacker = sender as RoleBase;
RoleBase target = attacker.Target;
if (attacker.IsHostileTo(target) && attacker.IsVisible) {
//怯懦行为简单表现为不主动追击,发现被攻击时立刻逃跑
if (target.ActionAI == ActionAIs.Cowardice) {
target.Target = null;
target.MoveTo(new Point(ObjectBase.RandomSeed.Next((int)(target.Position.X - target.SightRange), (int)(target.Position.X + target.SightRange)), ObjectBase.RandomSeed.Next((int)(target.Position.Y - target.SightRange), (int)(target.Position.Y + target.SightRange))));
}
if (target.InCircle(attacker.Position, attacker.AttackRange)) {
attacker.TurnTowardsTo(target.Position);
attacker.Attack();
//机智行为简单表现为受到攻击时会反击,受到两个以上敌人同时攻击时将会试图逃离现场
if (target != leader) {
if (target.ActionAI == ActionAIs.Alertness) {
if (target.Target != null) {
target.Target = null;
target.MoveTo(new Point(ObjectBase.RandomSeed.Next((int)(target.Position.X - attacker.SightRange), (int)(target.Position.X + attacker.SightRange)), ObjectBase.RandomSeed.Next((int)(target.Position.Y - attacker.SightRange), (int)(target.Position.Y + attacker.SightRange))));
} else {
target.Target = attacker;
}
}
}
} else if (target.InCircle(attacker.Position, attacker.SightRange) || attacker.ActionAI == ActionAIs.Persistent) {
//固执行为简单表现为抓住一个目标一直追击,直至自己或目标死亡为止
attacker.MoveTo(new Point(ObjectBase.RandomSeed.Next((int)(target.Position.X - attacker.AttackRange), (int)(target.Position.X + attacker.AttackRange)), ObjectBase.RandomSeed.Next((int)(target.Position.Y - attacker.AttackRange), (int)(target.Position.Y + attacker.AttackRange))));
} else {
attacker.Target = null;
attacker.Stop();
}
}
}
随手写下数十行代码,非常非常简单,外行人都能看得出不外乎if/else/switch/case/random,然而却实现了4种策略 + 4种行为,外带上角色职业与参数的不同将产生至少20多种不同的AI组合搭配,更重要的是非常易于新功能的拓展与维护。没错,Silverlight开发游戏就是这样简单~,让我们一同来领略下Silverlight为网游开发所带来的革命性奇迹吧(在线演示地址http://silverfuture.cn/)!
当然,这些所有的效果也仅仅算作是AI的入门;类似仿真技术的角色AI最早出现于欧美网游大作中,比如基于仇恨系统的角色索敌AI,经典代表作便是大家耳熟能详的《无尽的任务》(EQ)。这类游戏的AI系统设计通常以“仇恨值”最高的敌对阵营角色确定为攻击对象,所有角色的仇恨值都储存于一个动态表/库中随时检索。仇恨值的程度又与很多因素相关联,比如距离远近、等级差距、所剩生命值多少、是否在施展“嘲讽”等挑衅技能、当前行为状态(冥想/步行/跑动)、是否正在屠杀同族、时间流逝等等,且每个要素的权重值也不同,国内网游通常都喜欢将距离远近定为最高权重。当AI启动时会对同一区域内所有对象进行以上数据的统和,仇恨值得分最高的角色将被视为最有价值攻击对象,且仇恨值往往会被持续累积,直到角色死亡或施展特殊技能比如假死后方回到原点。当然,仇恨值的累积也并非都是简单的1+1,对同一怪物连续施展3次火球术将会彻底将其惹毛,没错,你太小看它了,它真的很生气;是的,游戏技术一直以来都在模仿真实的人类世界,试想下如果你被某人不小心踩上一脚相比被其连续踩上三脚我相信这样的愤怒不仅仅是简单的3倍加成吧?当你把生活中的类似环境置位到游戏中的角色AI时,你会觉得其实游戏设计原来是件多么有趣的事情。
追求高仿真虚拟现实的大型游戏甚至愿意花费超过20%的CPU以处理逼真的角色AI逻辑,其中往往包含着复杂的人工神经网络和遗传算法;当然对于更强调操控与实战效果的网游来说,AI不需要太复杂,但是性效比该如何取舍也必定是一个值得仔细斟酌考量的环节。Silverlight 5即将发布了~,带着超强大的功能与无限喜悦,我由衷期待!!
本节源码请到目录中下载
在线演示地址:http://silverfuture.cn
达达尼昂 | 游戏设计[资料] | 2011-11-07Robo 5制作人访谈【推介】
按:《Robo 5》是一款近日在APP STORE上发行的动作益智类游戏,并收获了不少好评。游戏讲述了一个孤独、无助的小机器人如何逃出冰冷的实验室,并从中找到自我的故事。今天我们请来了执导《Robo 5》开发工作的徐步诣老师,让他来分享创造这款秀逸的IOS平台游戏的点点滴滴。
《Robo5》
徐步诣老师曾先后在KONAMI上海分公司,皿鎏软件有限公司,上海火彩网络有限公司担任程序开发。参与制作了包括《幻想水浒传2》,《正当防卫》,《侠道金刚》等多款国内外大作。现创建宇果软件,专门从事移动平台的开发。其第一款作品《iGoBeat》已获10W下载量。
飞盒:首先我注意到你们对游戏的简介里用了一句尼采的名言:当你凝视深渊时,深渊也在凝视你。是不是它促成你构思游戏的创意?
徐步诣:不是,只是我们的团队其中的一员比较喜欢这个名言,而且游戏中最后Robo5也是在宇宙中的,所以就采用了这个名言。游戏的创意主要还是来自于PS3上的一个游戏,叫凯瑟琳。
飞盒:嗯,我也注意到了,这款游戏与凯瑟琳很像,你觉得它们两者主要的区别是什么?
徐步诣:游戏的整体风格和游戏的玩法吧。凯瑟琳除了核心玩法外,最主要的一个亮点是有点成人向的故事和描述,在关卡设计上也是采用了比较紧张刺激的方式。Robo5保留了核心玩法,但是在故事描述,场景感觉来说,更加的大众化,女孩子也能接受。而在关卡设计上,我们没有采用紧迫式的游戏方式,而是以思考解谜为主。
《凯瑟琳》
飞盒:也就是说,因为平台的不同,你们选择了更为舒缓和休闲的节奏。
徐步诣:嗯,可以这么说,其实我们首要考虑的并不是平台本身,而是使用平台的人群。iOS平台和console最大的区别在于后者hardcore玩家多,而前者有大量的light user。另外我们做的最大的一个改动是把凯瑟琳的操作方式做了彻底的革新。从用摇杆的方式变成了完全触摸的方式 。
飞盒:因为我也玩过凯瑟琳,感觉你们的操作方式的转换很自然。
徐步诣:这个我们可是花了大功夫的,前期用了一个月的时间做原型调整,在后期制作的过程中对按上去的时间,箱子的提示,箭头的提示全部做了微调。
飞盒:原来在玩家不会特地注意的部分才是最花功夫的,但大家玩的时候会感到很舒适。
徐步诣:嗯。不过还是没有做到最好,现在反馈下来老美的手太大,在iphone上还是容易误操作。
飞盒:在开发过程中,你们碰到的最困难的事是什么?是否让你们放弃了一些原先的构思?
徐步诣:其实开发过程中我们最困难的是觉得时间不够,因为小公司,预算有限,本来是计划4个月完成的项目拖到了6个月,因此我们放弃了很多本来想在游戏中加入的元素。比如开放编辑器,供玩家自己创建关卡;2人连线合作模式;更多种类的箱子等等。
《Robo5》游戏截图
飞盒:如果你想做第二部作品的话,会将这些内容重新考虑做进去么?
徐步诣:嗯,我们有在考虑,更新版本的时候会陆续加入这些功能。
飞盒:为什么你会选择IOS平台,它相比其它移动平台有些什么优势?
徐步诣:其实我们是全平台的,现在手上也有windows, mac, web, 和android版本呢。
飞盒:你觉得目前手游市场的前景如何?
徐步诣:目前手游市场很火,而且以后会越来越火,但是对于小型游戏厂商来说,要怎么赚钱,还是一个需要摸索的过程。现在的手游市场和原来的pc市场非常像,特别是在ios这块。原来的pc市场一开始是单机,后面发展到网游,网游后面又有itemsales。目前iOS市场单机贡献的付费比例每年都在下降,而iap,sns这类的付费比例却越来越高。
飞盒:是因为移动网络越来越便捷么?
徐步诣:主要有两方面,一个是智能手机越来越强(机能),原来很多只能在电脑上做的事情,现在手机都可以做。第二个是网络环境,现在的无线接入速度越来越快,流量越来越大,但是价格却越来越便宜,按照这样的发展,以后在外永远在线不是问题。加上手机本身的便捷性,用户花在手机上的时间也会越来越多。
飞盒:也就是说,手游将会在未来成为主流。
徐步诣:应该说是两者并存,由于手机的便携性的需求,还不能达到pc的屏幕尺寸,另外操作方式上也有不同,这个是他和pc上在游戏制作上主要的不同,因此游戏的感受也会不同,不过可以肯定的是,用户在手机上的时间一定会越来越多,倒不是说会大量挤兑传统的桌面游戏时间,因为手机可以在碎片时间拿来用,原来等车坐地铁的时间,有可以手游,加起来还是和客观的。
飞盒:嗯,我想差不多了,最后请你向有志于开发手游的从业新人或学生说几句话吧。
徐步诣:其实不论手游还是游戏,要做好游戏还是需要有一颗想做游戏的心,然后再结合手机的特点,(移动,碎片,网络)加上自己的想法和坚持,就能出好作品。
飞盒:谢谢徐老师接受这次采访。相信你的经验会给他们带来不少信心和期望。
徐步诣:也谢谢飞盒游戏 :) 。
达达尼昂 | 游戏设计[资料] | 2011-06-07动作冒险游戏关卡设计(三)【转】
[文章翻译来自Gamasutra,作者Toby Gard,原文这里,翻译Beret Ren 转载注明出处:kongberet.blog.163.com]
第三部分,作者描述了设计流程在游戏步调,结构和情感方面应该如何来综合考虑。
通过第二部分—利用故事创建关卡的过程,你基本上会得到纸上设计,故事,详细流程图,美术概念图,甚至初步的3D空间,这些都取决于团队想如何展现设计。这些关卡会以意想不到的方式成型,原先我们想象中应该是动作向的关卡,最后可能变成益智型,很多关卡会出现超出当前游戏机制的创意。
总体评估
要总体评估,创意负责人需要批准所有相关的关卡设计。因为关卡可能非常复杂,那么为整个游戏的所有设计建立单一的展现方式将非常有用,这样你才可以掌控游戏体验的步调和玩家情感的连贯性。
提取游戏机制
第一步要做的是确定所有关卡团队设计师提出的特殊的交互机制和创意,这些必然是游戏中最酷的部分:
KK从30层楼落下,要想生还他必须在空中干掉一堆僵尸以形成足够厚的肉垫。
这听起来相当不错,但战斗系统不能简单的与坠落融合而变成“坠落战斗系统”,所以关卡团队建议把它做成过场动画。
在一些其他的关卡里,KK必须破坏很多墙壁,关卡团队则必须提出很多不同的机制允许他这么做,比如触发一个便捷的,不稳定的重物来破坏墙壁。
很多类似的好主意都能做出精巧而独特的游戏机制从而把你的项目与别的区别开来。通过提升那些有足够弹性可以扩展成核心机制的创意,我们可以做出更加富有粘性的游戏体验。
比如,如何让破坏墙壁的机制变成可重复利用的呢?它需要某种消耗品吗?或者它是一个很容易使用的能力吗?不同的变种需要多少纹理呢?可以与其他玩家的能力配合使用吗?
我们这么做吧,把墙壁破坏机制与一种新幸存者的类型整合在一起,叫他炸药专家,他可以有很多不同的用法,但如果被僵尸攻击自身会爆炸—并杀死附近的一大堆幸存者。这是一种有趣的冒险/奖励机制,并通过一些标准的可以被炸的障碍/或敌人应用到不同的关卡中。
也许“坠落战斗机制”可以被应用在不同的关卡中,但它更像是一个迷你游戏而不是新游戏机制。尽管这个主意不错,但问题是你能让这个玩点产生3到4种“坠落战斗”变化以产生足够的深度吗?它相对于能获得的效果来说投资太大了。当然如果真的能做的,那也很酷。
这些机制都不错,因为他们从一个初步想法到最终确定并不是被勉强设计的,而是经过了对自身独特的题材和对游戏世界的深度探索后,原创形成的。一旦我们整合了这些新机制,就可以让角色更加适应这个被清晰定义的世界,并给关卡团队收集更多关键信息。
玩法类型
大部分游戏基本上都是某些元素的有机混合体。比如一个FPS游戏可能有70%的徒步射击和30%的驾驶射击。如果每个关卡中元素的混合比例都完全一样,那玩家很快就会疲劳。但如果游戏中有些关卡完全是徒步的,还有些关卡里有很棒的载具可以驾驶,那么这些内容就像调味品一样,不断的让游戏体验产生变化来满足玩家的新鲜感。
通过检查游戏过程中玩法的混合情况,你可以找出哪些地方游戏体验过于平淡。持续的保持玩家兴趣的典型游戏是半条命2,几乎所有的关卡都有一个中心主题,比如新武器,新载具或者新型敌人,你的体验每隔30分钟左右就会戏剧性的变化一次。
实例:功夫僵尸杀手
让我们根据我上一篇文章“评估游戏机制的深度”继续讨论下“功夫僵尸杀手”的深度问题。设计中游戏玩点的变化主要集中在幸存者的类型上。
医生:可以设计一个目标是治愈受伤幸存者的关卡
卡车司机:可以设计一个目标是运送一些重装备的关卡
工程师:可以设计一个具有传统经典益智元素的关卡
士兵:可以设计大部分过程由幸存者为你战斗的关卡。
等等
假设以下就是我们为关卡设计的一些场所:柔道训练馆,医院,建筑工地,军事基地,电力站,警察局,超市,市中心,大学校园,歌剧院,电视台,办公大楼。
从故事中我们得知游戏必须要从KK的柔道训练馆开始,在救了jenna126xyz后结束。
设计的目标是80%的战斗,20%的解密,细节请看下图:

但设计过程中又发生了两件事情(其实发生了一大堆事情,只是这里把他们简单化)
第一,有些人提出了另一种相当酷的幸存者,老师。他可以通过演讲把僵尸催眠,这引入了更多的解密元素,改变了大学里的玩法组合。第二,一些人提出将电影院变成电影拍摄基地,在那里僵尸和幸存者可以基于比如荒野的西部或者哥斯拉电影来设计。大家对这个创意以及由此产生的疯狂的机制非常兴奋,并决定把它分成两关。
结果整个设计看上去有点失去平衡,比原计划多了一个关卡:

我们找到了足够多的点子可以让每个关卡都多一个新的机制。通过裁掉超市,并把电站提前,我们调整出了拥有更好的游戏节奏的关卡:

这个图表依然有提升的空间,比如为市中心设计新的幸存者类型或者把它换成更富想象力的元素。
情绪线
游戏过程的背后,你肯定想要玩家产生某些情感。游戏主角可能经历比如无私的爱情,复仇,悲痛或生气等等。有些情感事件可能挺重要的,但都不如你想让玩家经历的整体情感基调重要。
情绪,就是能够传递给目标用户的基本情感,像恐慌,害怕,颤抖,敬畏以及兴奋等都是情绪,而像复仇,嫉妒或极端主义等高度概念化的情感则不是。
制作情绪线有两个目的。它不但用来评估关卡顺序和内容是否妨碍玩家的情感历程,而且更是用来保证整个开发团队创建统一游戏体验的关键工具。比如,让我们假设KK的故事这样发展:KK经过战斗终于到了救他爱人的那一刻,但他花的时间太长了以至于他的爱人被僵尸咬伤并变成了僵尸。
如果我这样定义情绪线:令人敬畏的打斗――滑稽的混乱――踏上成功之路――黑色幽默,则
· 美术会设计明亮的色调
· 动画倾向于高动作与残暴风格
· 音乐和音效倾向于快节奏与戏剧性
· 设计师在决定UI时越重口味越好
随着时间流逝,通过定义独特的情绪线你会更准确的引领整个团队,甚至超过你的想象。比如“踏上成功之路”暗示游戏更加艰巨。这就要求音乐更加激烈,关卡的结束动画更加残暴,类似的所有元素在每个关卡都要紧闭结合。
也许你会假定游戏的基调为“滑稽”,那么它渐渐的对整个游戏的开发又会产生戏剧性的影响。比如,如果我将游戏的情绪线定义成这样:惊慌――恐怖――越来越颤抖――悲剧,游戏的所有方面都会完全被它改变:
· 美术会创建黑暗肮脏的空间,用闪烁的光线和恼人的故事布置关卡
· 动画会倾向于现实并尽量避免搞笑的动作
· 音乐和音效听起来异常烦人
· 设计师会让UI和其他设计元素保持现实风格
就算游戏设计完全相同,两种不同的情绪线会产生完全不同的游戏体验。只要整个团队接受了这条情绪线并坚持不懈地应用在所有资源和创意设定中,既定的情绪就一定会慢慢传递到玩家身上。
通常会发生的是,每个团队成员对游戏要创造什么样的情绪线在理解上都稍微有些不同,以及游戏中玩家在哪个点要经历什么样的情感都有不同的主意。因开发团队不能达成共识而导致大部分游戏不能成功的打动玩家,这不足为奇。情绪线可以像上述4阶段过程一样简单,或者也可以非常详细,比如在每个关卡放置多个情绪模块。记住,不以故事为基础的游戏只有一种情绪。就算是恐怖游戏的情绪线也是在紧张与完全恐怖之间震荡。
一旦你确定了玩法布局和情绪线,就可以看出当前关卡之间是如何相互结合的。

在这个实例中我们在游戏结尾设计了解密元素,很明显这会降低游戏节奏,但在那里我们却希望玩家经历“踏上成功之路”这个情绪阶段,这完全不合适。通过重新整理关卡,或在关卡间互换玩点,我们可以更好的达到既定的情感目标。

幸运的是这个游戏的关卡顺序非常有弹性,但大部分游戏却不是。在大部分案例中要做到这一点的方法是,为每一个独立关卡的设计团队提供反馈,尽量达到预期的情绪和玩点组合。就算上述这个例子很可能没有最好的关卡顺序,或者甚至没有最好的情绪线,但这次练习的目的是尽量强迫自己检查整体规划,这样每个关卡在整个体验过程中的位置才会恰到好处。
块模型与原型(关卡编辑器中先用简单的方块模型制作原型)
下一步就是在3D环境中创建关卡了。如果你想要可信而有趣的空间的话,我要反对那种不要设计师,认为美术就是最好人选的做法。无论关卡能否像计划的那样适合技术和产品限制,要证明它是否足够精彩,使用块模型就可以了。因为这些关卡只是原型,与规划的相比肯定有些许不同之处,设计师会基于美术让它更适合设计图,所以在块模型和原型阶段,负责人必须持续更新游戏节奏图表,并让关卡适合情绪线的前后关系。通过在块模型阶段持续的产生新机制并保证关卡顺序可以重新排布,你就可以在不限制关卡建造者创意的情况下,继续获得平衡性更好的游戏设计。
总结
· 所有通过创建块模型而获得的信息应该可以让游戏设计更进一步。
· 最终的情绪线能够表达所有创建的资源。
· 新机制能够被定义并插进相关关卡中
· 关卡能够重新排序并产生预期的节奏和情绪
· 预算一定要管用
· 不好的关卡要被裁掉
· 玩家能力一定要做成原型才会被最终确定
一旦所有关卡都被制成原型并且有一个关卡作为标杆被精雕完毕,产品开发就有了牢固的基础。
达达尼昂 | 游戏设计[资料] | 动作冒险游戏关卡设计(二)【转】
[文章翻译来自Gamasutra,作者Toby Gard,原文这里,翻译Beret Ren 转载注明出处:kongberet.blog.163.com]
第二篇以游戏:Kung Fu Zombie Killer为例,描述了如何把关卡从框架扩展成详细的设计。在这个阶段,设计师,美术和程序员会交叉工作,他们将一起合作把简洁的流程图扩展成完善细致的关卡规划。
团队合作注意事项
授权与团队合作在当前主机游戏开发中非常重要。没有这些,核心人员会遇到瓶颈,并降低开发进度,消耗开发激情。当前比较流行敏捷开发方式,每一次的scrum为每一个具体问题分配一个所有人。这比老式的瀑布开发方式有很多优点,但对级别平等的人员来讲有一个不可忽视的缺点,如果这类人聚在一起要做一个设计方面的决定,那么这个决定不会是每个人都喜欢的,而是每个人都不那么讨厌的。
过程可能是这样的:
1。X提出一个他认为可能的新创意。当然这个点子还不完全成熟,但他相信这最起码会让玩点独一无二。
2。Y 和Z以前从来没想过类似的点子,然后很快指出了这个点子的所有缺点。
3。X,他依然在酝酿他的点子,会进行反击,并快速提出不成熟的解决方案,但其他人还是不喜欢。
4。然后这个点子被枪毙了,讨论继续。如果X坚持己见,其他人会认为他在钻牛角尖。
5。然后,Y提出一个别的游戏里用过的一个方案。
6。X 和Z都记得这个游戏,并且知道这个方案还行,风险也低。
7。所有人达成一致,将这个被用滥的机制写在白板上。
8。重复以上过程。
同级别队员之间的讨论很少能得到新东西,除非他们已经合作很久了,并心有灵犀。对这种状况有两个解决方案:
1。头脑风暴和决策会议分开进行
2。应用我曾试过的“thunderdome”方法(Mr. Ron Rosenburg提出)
Thunderdome!
Thunderdome为关卡设计团队设定一个时间期限,用于为整个设计难题提出一个完整的,独立的方案。一旦时间到了,整个关卡团队就聚集在一起展示各自的方案,然后每个人以互相尊重的态度来讨论对每个方案是赞成还是反对。然后团队主管从中挑选最好的一些主意并将他们融合进关卡制作规划中。
这与强制某个体进行水平思考技巧的效果是一致的。人们一般总是通过头脑风暴来寻找解决问题的方法,直到发现一个管用的,然后大家就会不再想这个问题了。而水平思考则是让我们不要仅仅局限于一个方法,而是提出三到五个,然后再看哪一个更好。
第二步,通过故事建造关卡
关卡流程图完成后,下一步就是填充细节了。
这也是研究关卡故事的时刻,因为只有从故事中,关卡多姿多彩的部分才能展现出来。不管游戏要讲的是什么,每个关卡都有潜力从多个层次来讲述游戏背景故事。比如一个空旷的办公室,它可以通过巧妙的添加建筑工具,家具,用过的杯子以及废弃的垃圾等来表现一个小故事。但关卡故事真正的力量与装饰无关,而是故事里与上下文相关的游戏设定。要让玩家感受真实的关卡,首先你自己必须能感受到关卡的真实才行。
提示:收集与研究参考资料
完全吸引玩家的注意力,拥有让玩家沉浸的力量,是成功游戏的共同特性。
收集并研究资料对于创造沉浸感非常重要,整个团队都应该这样做,而不单单是美术人员。每个人的头脑都会简化并存储现实世界的构造。这些构造的映像定义了我们的世界观。而我们则通过自己的世界观来认知和描述我们的经历。
反过来也会通过美术的形式来重新塑造我们的世界观。因为没有任何两个人会用完全相同的手法,所以每个人的作品透过自己的世界观后都是独一无二的。世界观可以让我们快速处理每天经历过的所有事情,它会忽视掉不适合它的数据,完全不处理这部分内容。因为我们每时每刻都依赖它,所以潜意识里完全信任它。
但事实是任何两个人的世界观都不完全相同,这意味着没有谁是最正确的,我们不应该完全信任它。当我们创造游戏世界的时候,只有能够让玩家觉得这个世界是可信的,才可能产生沉浸感。如果屏幕上显示的特征与玩家的世界观不匹配,就会失败。
因此,对游戏制作者来讲我们必须拥有能够说服不同玩家的相当精细的世界观。如果设计师或美术总是依赖自己常规的世界观来评判自己的设定,那就会导致其他人也会以他们自己的世界观来评价这些设定。比如,当一个国家的人想在游戏中制作另一个国家的某个地方的时候,这点就显得异常重要。
巴黎或法国的某条街道写着芝加哥街道的名字对某些开发者来讲可以接受,因为这些地方太偏远了,与他们的世界观不太冲突。但这对非常熟悉那里的人来讲就相当不合适了。
如果游戏是全球发行的,那很难评估未经考究的关卡对庞大用户群在沉浸感或理解方面的有多大的损害。记住,这事关你在全球的名誉。
案例研究:功夫僵尸杀手
在僵尸横行的世界里,街霸遇上皮克敏
· 概述:当僵尸毁坏了武术教练KenKong的武馆之后,他必须要用拳打,脚踢等动作消灭僵尸,同时拯救幸存者。
·风格:70年代电影视觉主题加日本动画式的励志风格。海量的动作,非真实物理,以及有趣的设定组成了这个现实风格的游戏。
·游戏支柱
使用环境元素施展功夫:像成龙一样,KK可以拿起周围任何物品来击退僵尸。不管是把门踢到他们脸上还是撕掉一个僵尸的胳膊砸死另外一个,KK同时攻击多个目标的能力,有节奏的打斗系统会将战斗转化成尸块横飞的血腥风暴。
保护幸存者:KK从僵尸手中救出的每一个幸存者都会变成跟随他的群体的一员。不同类型的幸存者可以赋予KK不同能力或者提供任务:
警察:射击任何靠近的僵尸
护士:恢复KK的体力
艺术家:增加幸存者的欢乐度
工人:维修
宅男:破解
市民:喝彩(增加KK的伤害值)并建造防御工事
其他。
幸存者的种类越多,群体的能力越强。所有幸存者都是聚集在一起的并能够听从KK的命令,但他们必须受到很好的保护否则就会被感染。
保护每一个关卡:KK必须带领幸存者到一个安全的地方,这里可以被用来加固以防御僵尸。这意味着要保护整个关卡,或者关卡的某个部分。幸存者自己会加强防御,封住门和窗,越多的幸存者,维修的速度也越快。这个地方本来就接近僵尸的出生点,所以KK必须先尽量阻挡僵尸流的进攻,防御工事才会渐渐加固,否则幸存者就会被僵尸吃掉。
· 主题:电影“恐怖星球”成功复制了70年代恐怖电影的感觉,这让恐怖成为游戏好的开始,同时游戏也兼具红侠乔伊式的爽快。
· 动机:KK爱上了YouTube上一个叫jenna126xyz的视频博客作者。其实,他是jenna126xyz唯一的粉丝。通过游戏,KK强制要求每个他拯救的人注册成为jenna126xyz的粉丝,以赢得芳心。通过这个滑稽的设定,游戏第一眼看起来好像在深度或者讲述故事方面太过随便,但我认为还有其他原因,就算一个世界的设定再多么愚蠢,只要努力去实现它,也会产生共鸣。
关卡实例:医院第二层
在看了jenna126xyz声泪俱下的视频后,KK来到了被僵尸淹没的医院里拯救jenna126xyz的祖母。

关键字

关卡的创意在于,你几乎立即就可以看到祖母的所在地,但没有院长的钥匙救不了她。而贪生怕死的院长则在底楼,除非整个医院都安全了,否则他不会从办公室出来的。在你能够打开门之前,这就给了你一个次要目标,拯救医院的幸存者。Boss战在祖母的房间里触发,一旦干掉Boss关卡就结束了,这是一个典型的入虎穴式流程。我们要关注的片断是第二楼层,就是上述流程图中红色高亮的部分。
医院的设施通常很标准,很难进行原创加工。而医院也是僵尸类游戏必选的发生地:寂静岭,生化危机,求生之路以及恐怖星球只是应用它的冰山一角。因此设计难度显而易见,那就是如何在利用它的同时让玩家感到很新鲜。其实答案的关键就在你身边。
准备:基于现实进行设计
当决定开始医院的关卡设计后,很容易会想到要从参考其他游戏的设计开始,当你弄清楚这些游戏的医院设定后,会发现他们对我们要设计原创内容而言毫无用处。在你头脑中可能已经有了一张医院相关区域的列表,从等待区,休息室到手术室和小卖部等等,而其中印象最深的莫过于恐怖的看起来没有尽头长廊。但当你真的走进一家医院,会发现其实有更多的区域,比如礼品店,图书馆,厨房,拥有健身器材和足球场的恢复区域。还有礼堂,小孩游乐区,门卫储藏室,电梯以及相关的维护区域,有后院,屋顶花园,地下停车场,有锁柜和淋浴的更衣室等等。你还会发现比公共区域更多的禁止进入的区域,有些甚至有门禁系统,需要相关钥匙才得进入。这些锁住的门通向档案室,办公室,药品与器械储藏室,以及其他各种各样的行政区域。这些门不是密封就是有小的钢化玻璃窗户。
这就意味着很多地方可能有幸存者,对我们而言可以设计很多玩家可以通过的地方。从书,电影以及网络上可以查到很多相关的细节,但这些都不如你亲自去看一下。当然并不是每个人都可以到金字塔的顶端或者废弃的太空站去(除非你是Richard Garriott,他自费参与俄国联盟TMA-13号前往国际太空站的任务,成为世界上第六位太空游客),但大多人还是可以参观自己周围废弃的或毁坏的场所,这一定程度上会激发一点类似的灵感和神秘感。
关键就是你一定亲身要去看,才能激发灵感。
盲目设计的缺陷
设计师在为玩家设计游戏世界的时候,没有比盲目的设计建筑结构更业余的了。不管是某个城市的街道还是古代废墟,设计师的工作就是在设计空间的时候,不但要以游戏玩点,还要以虚构故事为设计目的。当玩家进入一个寺庙,但里面并没有祭祀的地方,或进入一个古墓,里面也没有棺材,在不说明背后为什么这么设计的情况下,玩家很难感到他们是在探索一个真实存在的地方。最差的情况莫过于关卡中有一系列没什么意义的物件摆在走廊上,仅仅为了某个游戏玩点而设计,这种方式更像是电脑随机生成的。
身临其境获取灵感会将真实建筑结构的物理规则印入你的脑海,并给你的作品带来真实感和你从来没想过的新创意。
就算你要创建一个室外空间,研究地图来查看真实世界的拓扑结构以及到真实地点去走一圈会让一个高度概念化的地图转化成真实可信的室外空间。毕竟高度概括的地图与具有真实天气的空间之间的差异是巨大的。

· 起始点:建筑平面图
我将用一所医院平面布局图的一部分来展示关卡的这个楼层是如何搭建的,它来自一所真实医院的公共区域。首先你会发现就算地图中大部分区域并不是公共区域,要想到达这些地方还是很容易的。比如就算有两扇门在锁着,从等候室爬过前台的桌子依然可以到达管理区。始终保持关闭的房间只有工作室,档案室和储藏室,有钥匙卡或号码锁密码的相关员工才可以出入,病人禁止入内。而检查室好像在僵尸入侵的时候才关闭的,护士室,经理办公室和卫生间也可能被幸存者反锁以躲避僵尸。
· 红色与蓝色钥匙
游戏中有数不清的钥匙卡谜题,几乎和损坏的电梯一样多。所以设计中最难的挑战就是在隐藏钥匙和锁的时候如何避免陈词滥调。而现实是如果没有独特的创意,很少有设计方案是没被其他游戏用滥了的,所有标准的玩点已经被彻底的探索或重制过了,以致今天很多游戏只是简单的选择抛弃他们。像GTA这样的游戏,你几乎可以到任何地方,从任何角度做出攻击。他们的方式超越了大部分游戏的方式–任务开始和结束的地方,才有新区域解锁。他们不会将力气耗费在通过故事情节来隐藏游戏世界—他们直接让整个世界呈现在玩家眼前。我这里并不是在讨论那种方式更好,任何一种方式都可能做的很好或很糟。在这个游戏里,我会将NPC看作钥匙,可以被僵尸吃掉的钥匙。如果你的钥匙死掉,很多目标就达不成。
· NPC与物品
现在我们已经对这个地点有了充分的理解,是时候决定哪种设定更适合这个关卡了。这个游戏的NPC同时也是游戏的帮助系统,物品,升级工具,提供任务者,任务道具,成就,秘密物品,陷阱以及谜题。从玩点的角度看他们的设计弹性十足,更重要的是,他们为游戏增添了生命力和故事感。
我们想为关卡设置以下内容:
需要救助的NPC:
保安-能够朝僵尸开枪并有门禁通行证
2个医生:治疗幸存者并降低他们的感染几率。
4个护士:增加KK的体力
18个市民:通过欢呼增加KK的伤害力
可以使用的物品:马桶,开信刀,水槽,很重的彩灯,解剖用具,台灯,窗户,花瓶,木椅子,一人高的玻璃橱柜门
要消灭的僵尸:成千上万
· 设计游戏路线
Kung Fu Zombie Killer 是一个打斗类动作游戏,大部分房间和楼层都比较小,不适合打斗。当然可以适当的放大房间但不能太过分,要注意的是随着游戏的进展,越来越多具有真实感的空间会展现出来,而要应付这些狭小的空间,更好的镜头和动画就必不可少。
要处理具有真实感的空间,第一件要做的事情就是弄清楚到底有多少房间之间的物理路线需要修改,这取决于你的关卡是单线的还是开放的。这里,我们要缩小玩家的行动路线。

我会用两种技巧来改变场景:永久封闭的门以及墙上的洞,第一种是已经完成的防御工事,而墙上的洞则是因为有太多的僵尸蜂拥而入。布局的这两种变化戏剧性的改变了玩家在真实空间中穿梭的路线。设计的第一步是定义主要游戏路线。我已经将玩家路线限制在了从入口开始一直到储藏室周围的一个大的圆圈中,保安和一个护士躲藏在那里。东边墙上的门是通往楼梯和出口的唯一通路,而要打开这扇门就必须先找到保安。
十字路口附近的路障可以被任何幸存者拆除。设置防御工事的点也是僵尸的出生点,KK必须不停的战斗以确保幸存者成功修筑防御工事,当然他要在最后一刻跳进工事内。越多的幸存者被KK找到,防御工事的修建速度也越快,但玩家必须确保其内部没有僵尸存活,因为幸存者在修建的时候是非常脆弱的。其他的设计应该一目了然了,在玩家救完保安和护士的后撤过程中可以在经理办公室找到4个市民和一个护士,可以杀死很多僵尸,还有一个次要的路障,拆了它可以打开一条捷径。
· 关卡修饰
关卡中讲述故事最简单的方法是通过美术加工来表现:墙上的血手印,遗弃的玩具,翻转的桌子和椅子等。这些并不影响游戏玩法,但却可以让关卡更加丰富,产生情感。通过扩展,还可以让角色产生从没有过的使命感。比如,你可能会发现墙上某人用血写的遗书,某房间里一张桌子顶着门的把手,一个胖胖的僵尸心满意足的坐在一滩血泊里。讲述一个类似的小故事有时候也会让玩家产生共鸣。
关卡因为这些细节而让玩家充满了责任感,他们完全可以跳出背景故事。通过修饰关卡来讲述故事的游戏,最出色的就是辐射3。它里面的每个区域都在讲述着自身如何从堕落变成精神错乱。
· 背景故事
完成想要的游戏路线后,我接着提出背景故事:
僵尸首先从楼梯间来到了等候室,保安开始与他们战斗并永久性的关闭了楼梯间的门。同时两个病人逃到了卫生间并反锁了门。接着僵尸开始穿过入口。医院工作人员将每个人从等候室疏散出去并设置了路障以保护行政区。而此时楼梯间的僵尸毁坏了墙壁并来到了检查室。另一个永久性的路障被成功设立,为以防万一,一个保安锁掉了下一个检查室的门。
到这里,僵尸已经开始爬过了前台桌子并破坏了右手边的通往行政区的门。除了一个胆小的医生藏在了桌子底下,所有人都退回到了办公室。一个护士依然藏在经理办公室里,当僵尸进攻到行政区的时候她也让4个病人躲了进来。剩下的幸存者涌向天井,但一堆僵尸破坏了通向天井的门,他们被包围了,情急之下他们快速的躲进了就近的房间并反锁起来,而一些倒霉的来不及进来的人被锁到了门外的走廊里。
这个故事里几乎所有的内容,外加那些没有幸存的倒霉蛋,都可以通过美术加工加进关卡里。使用这种方式的结果是游戏过程中当只有一条路可走的时候,依然能有一种真实的感觉。就算玩家根本没有捕捉到这些细节的一半,也会感觉到真实的存在。这比那种倾向于自由风格的游戏更能吸引玩家。
你问的问题越多,暗示的故事也越多:
为什么那个保安和那个特定的护士在一起而不是其他护士?
为什么有个护士已经被安全的锁进了经理的办公室?
是谁关闭了东北边工作间的门,把一群僵尸和一群护士(刚死亡)关在了一起?
· Thunderdome Part 2
现在,假设我是关卡设计团队的一员,上面我所创造的关卡布局以及相应的背景故事就要展示给其他人看:团队中的每一个人。那些制定了关卡流程图的人因为有更深刻的想法,所以会给出更苛刻的评价。所有的设计都是唯一的,也都会被增加和减少。没有一个设计会比其他人的在所有方面都完美,我也相信在某个方面会有比我的更好的设计,因为和我一起工作的都是很有天赋的人。当然也许我的设计里会有很多被挑选进最终的设计中,最终设计肯定要比团队中任何一个人单独的设计都更好。
总结:
· 彻底的调查,如果不调查,很多人会感觉到设计的不真实
· 一定要到真实的地方寻找灵感
· 一定要从建筑平面图开始
· 用发生在玩家到达之前的事件来雕琢关卡空间
· 为整个设计定义能够相互连贯的背景故事
· 写下背景故事以便在实现设计的时候其他部门能够从美术,动画以及声音方面去刻画它。
达达尼昂 | 游戏设计[资料] | 动作冒险游戏关卡设计(一)【转】
[文章来自Gamasutra,作者Toby Gard,原文这里,翻译Beret Ren 转载注明出处:kongberet.blog.163.com]
前言—委派职责
不同的人在委派设计任务上,有不同的工作方式。
我曾遇到过这样的创意总监,他并没有自己的主意,只是负责过滤团队提出的各种方案,显然这大大限制了整个团队的发挥。也有这样的,他自己头脑中还只有一个非常粗浅的主意,就把它含糊的传达给了团队,然后不可避免的,团队又一次不能“准确”的实现他的想法。并不是所有的设计师都有读心术,能猜透项目负责人的心思,所以对负责人来讲清楚地表达他的意图以及设计自由度就是最好的工作方式,这样团队才可能明确主次,不会迷失方向。我相信当一个明确的核心理念(基于团队的反复尝试和反馈)传达给团队的时候平衡就达成了,而团队内的职责也就清楚了。
这篇文章第一部分所描述的方法是我认为的最管用的方法。这个方法尝试平衡团队的设计自由度和任务所有人,同时通过定义哪些细节是工作的首要任务,与团队沟通以及定义哪些部分最好按照成熟的标准惯例来实施等手段,来保持设计意图始终在正确的开发方向上。无论要做的关卡是什么,这个方法的所有步骤对某个单独的设计师也是非常有用的。
因为每一个项目都有自己独特的需求和团队结构,所以可能它并不能完全适合你,但无论如何,里面涉及的很多概念适合任何一个以故事为中心的游戏。
第一部分:关卡流程图
明确的沟通好关卡设计意图的第一步就是给出关卡流程图。好的关卡设计规划包括四部分内容:
o 动机:我正在做什么?
正如一本书中好的场景或章节一样,游戏关卡中的矛盾与结局应该也是源于主角的动机,这就是为什么对玩家来讲它始终应该非常清楚的原因,否则玩家肯定会迷失或迷路。这些动机可以转化成游戏任务比如“找到杀死爱人的凶手”或简单一点,“杀死敌人头目”。其中最好的是那些故事角色与玩家的动机合二为一的任务。当然仅仅是合二为一并不够,如果想让玩家更好地投入,你必须得让这些任务对玩家而言有一定的意义。
比如,通过视频的方式来表现故事主角憎恨某敌人头目,同时让玩家知道他必须杀死这个头目,这种做法比直接给玩家一个憎恨的理由更没效果。假如那个头目在玩家曾经信任他之后却背叛了玩家,或它从玩家那里夺去了什么东西(比如杀死某个玩家比较在乎的NPC),这样玩家和故事角色都有一个非常真实的理由来憎恨这个头目。
在过场动画中为玩家设置动机所花的时间长短是很难让两者同步的原因。通常除了在一开始就设置角色动机以外,没有更好的选择。而在这种情况下,玩家在情感上还不能与故事角色产生共鸣。为了加强共鸣,“我必须把女朋友救回来”的动机必须与“杀死主谋”的任务紧密联系起来。如果某些任务与动机并没有直接关联(比如,如果大部分游戏时间都是在应付不停刷出的老鼠),那么玩家就会渐渐忘记这些过程背后的意义并会消磨掉故事主角的动机与玩家的兴趣。
o 情感/经历的主题
这是关卡设计过程中第一阶段就要决定的内容,他们来自于团队在头脑风暴阶段提出的大量的强而有趣的设定与情感事件。你必须得在关卡设计的后续过程中,始终先考虑这个问题。它将决定你的游戏在玩家脑海中的位置并对玩家是否愿意支持并愿意感受你的故事产生关键作用。
这些设定可以只是一些概念化的动作向的创意,比如“逃离燃烧的建筑物”或者“发现并解除四个炸弹”。对一个重动作向的游戏来说这些设定是基本的关卡建造元素,就像在动作电影里一样。
而情感事件则是游戏的心脏—比如在废墟里搜寻生还者,在市政厅寻找他们悲惨命运的答案。如果处理的好,情感事件可能比某个设定更容易被玩家记住。但是他们也需要玩家与故事角色之间能产生共鸣,从而让玩家不能自拔。
o 支柱元素
支柱元素定义了玩家在游戏里能做的基本事情,结合设定与情感事件,这些元素必须与玩家的能力兼容否则他们会感到不真实。
在关卡流程图完成前,如果支柱元素没有最终确定,设计自由度就会相当的大。只有在挑选玩家到底应该经历哪些事情的过程中,你才会知道玩家的能力到底应该是什么以及设计自由度应该是多大。比如,如果游戏是关于滑雪的,那么赛马服明显是不适合的设定。非要这么做的话就必须依赖过场动画或视频,甚至需要设定特殊的操作,界面以及能力。除了因为这些新能力导致的开发效率低下外,玩家也会觉得游戏过程没有循序渐进,除非你再添加赛马和服饰选择等内容。而这种情况下,这些新的能力必须在支柱元素列表的首要位置。
o 故事
无论你做多么小的游戏,里面都有一个与主角同等重要的故事。不管玩家经历的是外星人入侵,还是解决神秘的谋杀案,让玩家沉浸于关卡的力量几乎完全依靠对故事的叙述。
关卡设计中最普遍的错误是,创建的挑战没有严格的基于设定的参数,只是勉强让他看起来像而已。这就不可避免的导致关卡不自然,乏味并容易被遗忘。
尽管很多设计师都认为故事向游戏大大限制了他们的发挥,但事实是当你重新关注关卡中所发生故事的时候,就会发现设计空间和创意会出乎玩家甚至是你自己的意料。
我会在本系列的第二部分“通过故事建造关卡”来详细叙述,但现在,我们所需要的是保证整个关卡流程在故事上保持前后一致。毕竟月球上没有滑翔运动—尽管在月球上设计一项滑翔运动的主意听起来非常棒。
关卡流程元素
很多人一开始就做完整的关卡流程图,但我倾向于最大限度的简化关卡基本布局。 我更喜欢那种类似原理图与乐谱混合的关卡流程。这样做的目的并不是要给出详尽细节,而是定义关卡的骨架,也就是关卡核心。以我的经验,我发现在最后确定的关卡设计里有一半以上内容实际上是被团队在下一个开发阶段另外增加的,所以保持简洁非常重要,因为关卡的复杂度最终会翻一倍。如果开始的设计不太合适,最终的关卡有可能会很臃肿。不同游戏的关卡元素类型也各不相同,但目标是一致的:保持简洁。
在这个例子中,我会用以下的技巧:
o 关卡元素
我用它们吸引玩家在某个区域前行。这些元素主要是不同的场所,也可以是关键信息或脚本事件。
o 玩家反映
玩家做的事情。通常它们是游戏传达给玩家的任务目标。
o 锁
锁的作用是控制难度,限制或阻碍玩家在关卡中的前进过程,直到完成某个条件为止。
o 钥匙
钥匙能够在某个地方打开“锁”从而改变世界或者玩家角色的状态。
实例—光环:最后一战,战役2
下面示意图实际上描述了2个关卡(一场战役),大约花费1小时。

根据这个图表你可以看到每个元素背后的设计意图并可根据他们参考前述四种资源。(这是成功设计过关条件的方法)
o 动机
撕毁盟约。人类和敌人在战役1中同归于尽给了玩家足够的仇恨理由并可加深盟约撕毁在游戏中的价值。
o 支柱
包括:第一次给玩家介绍需3人驾驶的疣猪战车,以及与AI队员合作。
o 主题
参考电影和其他游戏是确定主题的好方法。Starship Troopers可能是比较好的例子,它通过士兵们竭力对抗蜂拥而至的外星人来唤起情感。
o 故事
关卡通过讲述战争中的主线故事或小的支线来产生情感:伴随着太空战舰在头顶上粉成碎片,大量毁坏的逃生仓和未能幸运逃生的伙伴的尸体遍布四野。每一个坠落的逃生仓都在述说着一个揭斯底里的逃命故事,而Master Chief就出现在这里。
结束语
就算关卡流程图做完了,你离下一个开发阶段—将设计移交到团队,依然很远。要评估一个关卡流程图的好坏,你必须清楚的知道整个游戏的价值所在。只有把他们一一列举出来你才能看到他们是否相互融合,以及游戏玩点在开始与结束的过程中能否达到跌宕起伏效果。
你要将它们订到墙上,这样才可以看到在哪里玩家能够被引入正轨,在哪里不同顺序的事件序列可以有更好的节奏感,以及在哪里某个情感事件发生的过早以至于玩家与故事角色不能同步。要创造一个基于游戏的好故事的秘诀就是,让玩家的行动来驱动故事。
ICO与“旺达与巨像”就是TV游戏中讲述故事的佼佼者,尽管有些人说里面的故事元素屈指可数,那是浅见,其实里面的故事到处都是,因为玩家乐于其中。ICO是关于逃离与保护的。每一次成功保护Yorda逃离城堡,一个为自由而抗争的故事就会上演。在旺达与巨像的游戏过程中,为了拯救自己的爱人,我们的英雄不仅仅在慢慢的消耗自己的生命,还在牺牲每个巨像的生命。保护一个女孩以及杀死巨像,玩家行动本身就在塑造故事,从而把叙述故事从过场动画中超脱出来,并让故事对玩家而言更有意义。
总结
关卡流程图是团队间交流关卡设计的第一个关键要素。
创建关卡流程图从以下几个方面入手:
o 角色动机
o 情感与体验设定
o 游戏支柱元素中定义的玩家动作
o 用环境讲故事
o 要用最少的元素来绘制流程图,只展示最主要的事件
o 流程图不超过一页
o 确保你正通过玩家的动作来驱动故事。
注意:
我并没有说光晕的关卡就是按照这个方法做的,我也不知道Bungie工作室是如何建造关卡的。我用光晕做例子只是因为它设计的很棒而且广为人知。







