最后来谈谈运行部分和优化部分。关卡设计中,最重要的部分就是跟运行有关的:人工智能与触发器。这两部分一般统一称为Script,是关卡设计师们最头疼的部分。

  先说人工智能。游戏中敌人所体现出的人工智能,实际上和计算机科学中所说的“人工智能”是两个完全不同的概念。计算机科学的人工智能牵涉到许多符号分析、模糊处理等,而游戏中的人工智能目前还主要采用状态机这样简单的实现方式。目前,3D游戏中主流的实现方式是用一套或者几套基础的Default人工智能程序,加上关卡设计师们的个别处理来实现“拟真”的人工智能。例如,一个敌人的Default AI或许只是会寻找玩家、会躲避、会攻击;但加上个别的Scripted AI之后,他就会在玩家关掉电视开关的时候感到暴怒,并到墙角去拿起枪……这些让玩家感觉到“AI很高”的东西,大多是关卡设计师们根据环境设计好的。另外,对于有重要BOSS的游戏,BOSSAI也必须要特制,以便让玩家能够体会到BOSS和一般的敌人不同——BOSS不能只是血长而已。

  另外一个重要的需要关卡设计师手写的部分就是触发器。触发器范围很广泛,从最简单的电灯开关、警报器到复杂的增援判定、敌人行动判定都有。一个完成的关卡中,充满了各式各样用来作地点、时间判定的VolumeTriggerSpot……根据游戏的复杂性,触发器的要求也有所不同。最简单的触发器,仅仅是为了优化起见而将敌人分为波次Spawn出来而已;比较复杂的触发器往往和一些比较复杂的游戏任务或者逻辑相关,这些东西也是最容易出大Bug的。如果你看编辑器中的地图,会发觉多出了许多游戏中看不到的东西,这些就是保证游戏运行得更好的“秘密”Actor了。

  作为一名关卡设计师,还有一样东西是必须时刻牢记的:那就是优化。我在之前的文章中也屡次提到了优化——因为这确实是一个十分重要的部分。优化得好与不好,直接影响到一个游戏的执行效率。如果是一个游戏机上的3D游戏,优化更是关系到游戏是否能够确实顺利在机能有限的游戏机平台上执行。

  关卡设计方面的优化,首先是控制分区。根据现阶段所有3D引擎的原理,只要是“有可能”被玩家看到的东西,就全部都要预先绘制出来;而绘制的东西太多,就会严重影响引擎的工作效率。而在进行这个计算的时候,只要没有被BSP挡住,就会全部计算在“会被看到”的范畴内。因此,设计师们就需要把“明显不会被玩家看到”的不同部分分成不同的区。只要分在不同的区内,就只有透过“窗口”(Patrol)的部分会被引擎计算。然后,是要控制敌人的出现数量。同时出现20个敌人用枪扫射听起来很爽,但却是所有关卡设计师都要尽力避免的。每个NPC需要大量的绘制,还需要大量的动画;开枪的时候还需要耗用粒子,还带来了大量的AI计算……好的关卡设计师,总是尽可能用足够少的敌人达成足够理想的效果,让4个敌人达到20个敌人的效果。如果你感兴趣的话,可以仔细观察每个3D游戏中的人数分配和门、拐角等。人的数量是否一直控制得很好?关卡的拐角和门是否很多?仔细观察关卡设计的细节,有时候也是一种乐趣。

  这篇文章,只是对关卡设计工作的简单一瞥而已。真正的关卡设计,是一件辛苦而重要的工作。随着游戏3D化的势头越来越迅猛,关卡设计师这个职业也会逐渐被人们越来越多地提到。希望这篇文章能够让大家对“Level Designer”这个3D时代的游戏分工产生兴趣——并不是所有游戏设计人员都是被称作“策划”的。