游戏邦在:
杂志专栏:
gamerboom.com订阅到鲜果订阅到抓虾google reader订阅到有道订阅到QQ邮箱订阅到帮看

关卡设计师分享游戏关卡的制作过程

发布时间:2013-05-21 17:06:53 Tags:,,,

作者:Szymon Barchan

当有人问我做什么工作时,我就会简单地说:“我设计关卡,也就是砌墙、放置敌人等。”听我这么一说,对方通常会羡慕道:“哇!真是好工作啊,你天天都在玩还能拿钱。”无论是我的回答还是对方的惊叹,都没有揭示关卡设计师这一工作的真相。

人们总是认为制作关卡是小菜一碟的事。堆几堵墙、放几个敌人、加几句对话、剪几段过场动画如巨龙骑雪橇,能有多困难?一整天就做这些事!我一边喝啤酒,一边摆弄我的关卡,愉快地想象着玩家玩这些关卡的情景。老实说,这离真相更加遥远了……

不要误解我。我爱我的工作,除了设计关卡,我什么也不会,但我敢跟你保证,这是一件吃力不讨好的工作,不是你想象中的样子。你想知道为什么吗?请往下读。

玩家眼中的游戏(from gamedev)

玩家眼中的游戏(from gamedev)

设计师眼中的游戏(from gamedev.net)

设计师眼中的游戏(from gamedev.net)

这个过程只有最开始的部分是你能想像得到的。首先是画关卡的草图,基本上就是安排从头到尾会出现的所有事件。这是有趣的部分,也是关卡制作中最重要的环节。但那未必是因为你正在计划事件链,更可能是因为那是你必须提前几个月就思考和分析的玩法、技术和内存问题——这个如何影响那个、是否可行、结果与计划是否相符等等。如果你想避免日后出大乱子并且做出有趣精巧的关卡,这些都是必须考虑的。

你必须什么都知道。这个空间要做什么?这个顺序如何?这里要放多少敌人?敌人从哪里出现?如何把这个战斗区域与其他12个区别开?你必须能够把你的设想展示给其他人看,一边向他们展示某个灰色的块状物的移动,一边解释你把它想象成一个半车半猴的突变外星人宝宝。

但是,你的设想必须是程序员可以编写的、建模师可以建模的以及你的主管、制作人和最重要的创意总监认可的。经过几次讨论、几番修改、几种实验等,你最终完成你的草图……你以为剩下的都很简单……那你就错了。你的工作还没开始呢。你必须开始制作更复杂的几何体和脚本。

草图(from gamedev.net)

关卡设计师的想象——战斗区域的纸上草图(from gamedev.net)

工作这才正式展开。我们要给一个简单的情节编写脚本:玩家角色和他的朋友(助手)从某建筑中走到街上;他说了3句台词;他们向前走了几步之后,与一群Skull打起来;之后,他们又在角落与Creep干上了。听起来很简单吧?好吧,我们再看看脚本。

编辑器中的草图(from gamedev.net)

这是在编辑器中制作的草样(from gamedev.net)

当玩家进入指定区域,你必须刷出四个Skull,不能让玩家看见并且在玩家消灭它们之后再补充两个。这很容易做出脚本。现在你必须布置这个区域,但是,仅仅放四个板条箱作为敌人的掩蔽物可不够。你要花很多时间实验、确认不同的敌人类型、放置各种掩蔽物,才能让一个简单的区域变得有趣。

除了敌人,你还需要确认玩家的助手是否做出恰当的行为,不会干扰玩家。不要忘了助手也需要掩蔽物,但不同于玩家所使用的。如果你希望某些掩蔽物能被破坏,你必须记得脚本敌人和助手不要使用已经被破坏的掩蔽物。当玩家躲在一个地方太久了,你希望敌人能从侧面攻击他?这也要编写脚本。

流程图(from gamedev)

一个简单东西的脚本(from gamedev)

几乎任何一点发生在你的关卡中的小细节,你都必须自己写好脚本。这可不像给敌人一个“从侧面进攻”的命令那么简单,敌人要知道所有他们必须做的事。你必须决定敌人的移动路径、躲在哪里、在哪里停下来、什么时候开始射击。如果玩家偷偷射击他们,会怎么样呢?他们应该怎么做?反击、掩护还是无视?如果玩家套住其中一个敌人,他还继续朝目的地前进吗?这不科学,对吧?

如果玩家冲上前杀掉Skull,在战斗区域的尽头看到在离他三米远的地方凭空刷出两个新Skull,会怎么样呢?如果他没有杀死任何一个Skull,而是跑到下一个刷出6个Skull的区域,又会怎么样?一次面对10个敌人?玩家能应付吗?可能吧。内存呢?可能运算量太大,游戏会崩溃。是的,我们需要更多脚本……

变得更复杂了(from gamedev.net)

更复杂一点的脚本(from gamedev.net)

也许玩家没有往前冲,而是跑回上街之间呆的房间。最简单的事情是当玩家走进房间时关上门,但你是不是忘了助手还在外面呢?脚本,脚本,脚本……

关卡设计师必须分析玩家的每一个可能的活动、确认所有情形,保证一切尽在他的掌握之中,不会出现意料之外或偶然发生的情况。这有一点儿像扮演上帝的角色,但玩家不能看见你的指指点点,否则他就会觉得自己被愚弄了。如果玩家走过一扇被毁坏的门,转身却看到一扇全新的金属门出现了,因为你想挡住他的回头路,那会怎么样呢?玩家还处于想象着自己是一名战士的状态,而你的所作所为却提醒他现在正在玩一款蹩脚的游戏!

编辑器视图(from gamedev.net)

编辑器视图(from gamedev.net)

关卡设计师必须记住,总会有出错的可能,你必须有所准备。例如,当助手卡在房间的某个地方,走不出房门,而玩家又想关上门,那会怎么样?如果这时候有一扇通向另一座建筑的门必须由助手打开,怎么办?现在助手不能去开门了。你需要某些精心脚本好的瞬间传送机制,但注意,不要让玩家注意到“上帝的指指点点”。

在你的设计中,在战斗开始以前,玩家角色说了3句关于古典芭蕾的台词。如果他开始战斗时,芭蕾的聊天还若无其事地播放着,会怎么样?你在草图阶段没有好好考虑,这是你的错。现在你要怎么解决?你可以让他说到一半就打住,但听起来很不自然。你要在停止后加上一句“妈的!是Skull!”,但不一定次次管用。你必须想一些其他解决方法。

在战斗开始前,你需要播放不同于打斗中的音乐。渐渐地,你的脚本越来越像缠绕成一团的藤蔓。你希望Skull在注意到玩家以前正喝着酒、聊着天,当他们看到玩家时,他们会四下散开,一把掀掉桌子,把椅子扔向玩家,你希望助手把第一把椅子踢到左边?好吧,现在你的脚本工作量大得惊人了。除了制作物品、动画、声音、特效……

复杂事件的最终脚本(from gamedev.net)

复杂事件的最终脚本(from gamedev.net)

你认为从头到尾制作一个关卡需要多少时间?我说的是一个长度为45分钟的普通关卡,只有正常的射击活动,不需玩家坐上飞机、坦克、轮船对付大金刚。答案是:几个月。玩家完成上文描述的情节大约只需要1分钟30秒。但制作这个玩法脚本仍然需要43分钟30秒。因为我们同时制作3个关卡,所以时间不多。

随着变体和情节增加,你的脚本也会越来越复杂,漏洞也随之出现。你必须认真地处理一切元素、测试、完善,最重要的是,让关卡玩起来有意思。你不只想点子,还要负责做出并做好它们。脚本只是关卡设计师工作的一部分,还有其他很多工作。希望通过本文,读者能对关卡设计师的工作有所了解。

底线是,关卡设计师做的1001件事是一般玩家永远注意不到的!即使有时候很困难,很费时间,我也不会换工作,因为我从关卡设计中得到满足感不是以前的任何工作能给的。(本文为游戏邦/gamerboom.com编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦

Life of a Level Designer

By Szymon Barchan

When somebody asks me what I do, I try to explain it in a few simple sentences. “I design levels, I place walls, enemies etc”. In return I usually hear “Wow! That’s a great job, you are playing for a whole day and you get paid for it“. Ehhh… both statements don’t represent how it really is.

It’s easy to imagine that making a level is a piece of cake. What’s difficult about putting in a few walls, placing some enemies, adding dialogues, cutscenes or an event like a dragon riding a sledge? A day’s work and tadam! I’m drinking beer, playing my super mega marvelous level, delighted how it came out, knowing players will be exited when they play it. Honestly, it’s a shame that this couldn’t be further from the truth…

Don’t get me wrong. I love my job and I don’t see myself anywhere else, but I assure you it’s no picnic and nothing like you imagine. You want to know why? Read on.

This is what you see in game

This is how it looks behind the scenes

Only the very beginning of the process is how you might imagine it. It involves making a sketch of a level, basically planning all the cool events from start to finish. This is the nice part. It’s also the most important phase of level creation. But that’s not necessarily because you’re planning the chain of events. It’s because it’s the time when you have to think a few months up front and analyze gameplay problems, technicalities and memory issues – how this will affect that, is this doable, will this work just as you planned etc. All this is necessary if you want to avoid huge problems in the future and have a fun and well-done level.

You need to know everything. What is this room? How will this sequence look like? How many enemies do you plan to have here? Where are they going to walk out from? What will distinguish this fighting arena from the next 12 arenas? You have to be able to present it to others, show them a huge gray block moving and explain that you imagine this as a half-car half-monkey mutated alien baby…

But also this must be achievable for programmers, meshers and be certified by your lead, production and most important of all – the Creative Director. After couple of suggestions, a few changes, trying several different approaches, scenarios, correcting this, changing that, after another and another round of meetings, corrections etc you can finally finish your sketch… uff. You think: now for the easy part… You couldn’t be more wrong. You didn’t even start your work yet. You need to start making more complex geometry and script everything.

The LD’s vision – paper sketch of great fighting arenas

Let’s get to work. We have a simple situation to script: player’s character and his friend (sidekick) walks out on the street from a building, he says 3 sentences and after few steps forward they fight with Skull gang members. After that, around the corner they fight against Creeps. Sounds simple? Ok then let’s get to the scripting you have to do.

This is a sketch made in the editor, try to explain others what do you see…

When the player enters the area you need to spawn four Skulls, hidden from the player’s view and additional two when player kills any of the living ones. Scripting this is simple. Now you have to organize the arena, but placing four crates and marking cover places for the enemies isn’t good enough. It takes a lot of time, a lot of playthroughs, checking different enemy types, and various cover changes to make a single arena really interesting and fun.

Besides enemies, you also need to check if a player’s sidekick behaves properly and doesn’t disturb the player. Don’t forget he also needs places to take cover, other than the ones the player is using. If you want some piece of the cover to be destructible, you need to remember to script the enemies and sidekicks not to use that cover after it’s been destroyed. You want enemies to flank a player if he stays in one particular area for too long? You have to script it.

Example of scripting something easy

Nearly every little detail you want to be happening on your level, you have to script yourself. This is not as easy as giving enemies a “flanking” command and they know everything they need to do. You have to determine a path they will be moving on, you need to tell them where to take cover, where to stop and when to start shooting. What about a situation in which the player shoots them during the maneuver? What should they do? Shoot him back, take cover, ignore? If he leashes one of them should he get up and still run to the destination point? That wouldn’t make much sense, would it?

What if the player rushes forward and kills Skulls at the end of the arena and sees your two additional Skulls spawning out of thin air three meters away from him? What if he doesn’t kill any of them and rushes even further into next arena where you spawn 6 Creeps? 10 enemies at a time? Will the player make it? Maybe. What about the memory? It may be too much and the game will crash. Yes, yes we need more scripting…

Things get a little more complex

Maybe the player won’t charge, and instead he goes back to the room he was in before going out on the street. The simplest thing to do is to close the door when player walks through it, but did you forget that the sidekick needs to do it as well? Script, script, script…

The level designer needs to analyze the player’s every possible move, check every scenario and be sure he controls everything, there is no place for leaving some unpredicted situation unsecured or taking chances. It’s a little like playing god, but above all the player cannot see your fingers, because he will feel cheated. How would it look like if player walked out through a destroyed door, turned around and saw a brand new metal door materializing, just because you wanted to block his way back? He was feeling the mood, he believed he was a soldier and you just reminded him that this is just a crappy made game. Look, no hands! Pure magic!

Editor view – this is where you spend 90% of your time

When you are working as an LD you need to remember that there is always a small chance that something will go wrong and you need to be ready for it. For example what if a sidekick got stuck somewhere and won’t ever walk out that door which you wanted to close so badly? What if a sidekick was supposed to open a door to the next building? He won’t do it now. You need some scripted safety teleport mechanism, but again watch your fingers so the player can’t notice them.

You planned in your sketch that Gray was suppose to say 3 sentences about classical ballet before the fight starts. What if he rushes into battle and the ballet chit-chat is still playing like nothing happens? You didn’t think about that during sketch phase – your bad. Now how will you fix it? You could just stop him in the middle of a sentence, but this sounds unnatural. You are adding extra “WTF? Skulls!” after the stop, but it doesn’t always fit. You have to think of some other way to solve that problem.

You need one music track before battle, a different one for the fight. Slowly your scripting grows like a tangle of vines. You want the Skulls to drink beer and have a chit-chat before they notice the player, then to scatter, push over tables, make covers out of benches and you want the sidekick to kick the first one on the left? Ok, now you’ve got a jungle you need to script yourself. Besides there is a case of making objects, animations, sounds, particles… but that’s something I’ll write about another time.

The final scripting of a complicated longer event

How much do you think it takes to make one level from the beginning till the final version? A 45 minute level, nothing special, no player in aircraft-tank-boat facing King Kong, just a normal bit of shooting. The answer is: months of hard work. This piece of gameplay I just described above would take about 1min 30sec for the player to pass it. But there is still 43min and 30 sec of gameplay scripting to do and we work on 3 levels at the same time, so there isn’t much time.

The more you script the more variables and scenarios you get, the more complicated your scripting is and the probability of bugs rises. You need to take care of everything, test it, polish it and make it unbreakable, safe and most importantly – fun and interesting to play. You are not only coming up with ideas, but also you are the one that needs to make them work and work well. Scripting is just a part of a level designers work. There is more, but hopefully this gives you have a better idea of what we really do.

The bottom line is a Level Designer does 1001 things that an average player won’t ever notice! Even if at times it is hard and time consuming I wouldn’t change it for anything else, because it gives me satisfaction like no other job before.(source:gamedev)


上一篇:

下一篇: