《游戏设计师修炼之道:数据驱动的游戏设计》一1 1游戏玩法和游戏数据

1.1游戏玩法和游戏数据

玩家在玩游戏期间执行的动作构成了游戏玩法。每种游戏类型都有它自己的一组动作,尽管许多游戏共享公共的动作,比如,在屏幕上四处移动物体。简单的游戏要求玩家执行的动作较少,而复杂的游戏可能具有许多动作。例如,在经典的街机游戏《Pong》中,玩家只需在屏幕上向上和向下移动控制手柄,以拦截一个移动的球,并把它弹回给另一位玩家(参见图11)。在第一人称射击游戏中,主要关注的是通过游戏世界移动一个角色,并向AI(人工智能)控制的敌人(在有的死亡模式中有时是其他玩家)射击。可能有多种不同类型的运动方式,比如奔跑、行走、跳跃、倚靠、蜷伏等。还有许多种不同的武器,玩家可以在玩游戏期间收集和使用它们。

《游戏设计师修炼之道:数据驱动的游戏设计》一1 1游戏玩法和游戏数据

随着游戏变得越来越复杂,涉及的动作也变得越来越复杂。例如,在角色扮演游戏中,玩家要执行许多活动——从探索世界到交战,到与非玩家控制的角色(NonPlayer Character,NPC)交谈,到在商店中购买和销售物品,再到求解谜题。一些模拟游戏可以让玩家想象他们在驾驭飞行器或者开着赛车,而其他游戏则允许玩家建造金融帝国。在这样复杂的游戏中,玩家要做大量的工作,并且要做出许多决策。玩家可以反复地玩这些复杂的游戏,这是由于游戏世界中发生事件的多样性而导致每个结局都与上次玩游戏时不同。

1.1.1简单的设计和复杂的设计

在所有情况下,无论是在简单的游戏中还是在复杂的游戏中,确定游戏玩法的工作原理都是设计师的职责。在简单的游戏中,设计师经常直接与程序员打交道,以决定事件在游戏中是如何发生的——从乒乓球移过屏幕的速度,到球拍在与球接触时施加了多大的力等。简单的游戏通常依靠随机性防止游戏变得非常容易预测,除了指定事件发生的概率之外,设计师很少能够控制机会因素。
在更复杂的游戏(例如,第一人称射击游戏和实时战略游戏)中,设计师通常需要提供关于游戏世界以及其中包含什么内容的相当多的信息。例如,如果游戏中有武器,设计师就不得不考虑诸如射击速率、造成的伤害、每次装填的弹药量等之类的事情。在非常复杂的游戏(例如,角色扮演游戏和战争游戏)中,信息量非常庞大,并且可能要花很长的时间来进行平衡,以确保任何一支部队都不会过于强大,并且没有哪种玩法总会取得成功。
在简单的游戏中,通常没有太多的信息(或数据)需要设计师处理,因此把所有的一切都硬编码进游戏引擎中。更改代码以改进玩法通常不是太困难。不过,在更复杂的游戏中,将会有多得多的数据,最好保持将数据与游戏引擎分隔开。这样做将允许设计师在测试期间根据需要调整值,而无需重新编译代码,因此可以在游戏中执行更改并对其进行测试。重新编译代码需要花费时间,并且会使程序员和设计师在这个过程中都无所事事。因此,对于更复杂的游戏,将把数据保存在单独的文件中,设计师无需重新编译代码即可访问和更改它们。一旦准备好交付游戏,就可以把最终的数据直接纳入游戏引擎代码中,使得阴险狡诈的玩家不能操纵它。

1.1.2游戏数据

本书重点关注的是设计数据密集型游戏,并且讨论设计师在生产期间必须创建和维护的不同类型的数据。对于设计师来说,游戏数据可以分为4大类:图表和表格、关卡/地图布局、脚本以及对话。

  • 图表和表格(chart and table)是指关于游戏中的物体(例如,武器、怪物、财宝、制作、角色生成等)的值及其他信息的列表。表格特指在其中操纵图表数据以执行游戏动作(例如,战斗决议、魔法攻击、买卖物品等)的方法。
  • 关卡/地图布局(level/map layout)是指如何在二维或三维空间中创建游戏场地,以及如何在它们上面放置物体以使玩家与之交互。
  • 脚本(script)是指用于改变游戏世界的状态、构造对话以及触发遭遇的方法。
  • 对话(dialogue)当然是指游戏世界里的角色所说的话,它也指在玩游戏期间出现的其他文本字符串(例如,当玩家高亮显示某个物品时出现的关于它的描述)。

创建所有这些数据可能是一项具有重大意义的任务,并且保持定期更新设计文档,使得整个团队知道他们正在负责相同的设计是设计人员义不容辞的责任。

上一篇:设计师如何玩数据


下一篇:《Unity着色器和屏幕特效》——第2章 创建自定义着色器 2.1 打开程序项目