游戏设计理论(一):游戏玩法和游戏数据

参考书籍:《Basics of Game Design》——Michael E. Moore

  玩家在游戏中的一系列操作构成了游戏的玩法,不同的游戏会有不同的操作方式,但大部分游戏会拥有相似的操作内容,比如在画面中移动。玩法复杂的游戏相比于玩法简单的游戏会拥有更多的操作内容。

  在经典游戏《乒乓》中,玩家唯一能做的就是控制自己的球拍上下移动将对面打过来的球打回去。
  在游玩第一人称射击游戏(FPS)时,玩家需要控制自己的角色移动并射击那些由AI控制的敌人(或者与同是玩家的对手进行比赛),玩家常常拥有多种移动手段(行走,奔跑,跳跃,依靠,蹲下等),并且拥有多种类型的武器供玩家使用。
  随着游戏变得越来越复杂,可供玩家进行游玩的玩法越来越多,比如说在角色扮演游戏(RPG)中,玩家拥有多种多样的选择——探索世界,与角色(NPC)交流,在商店购买与出售物品,解开各种谜题。一些模拟游戏甚至可以让玩家想象他们在建立帝国的同时开着飞行载具飞向天空。这些复杂游戏往往拥有很高的耐玩性因为能让玩家每次都能体验到不同的东西。

简单设计与复杂设计

  在上述的所有例子中,决定一个游戏玩法的便是游戏设计师(GameDesigner)的工作,在一个玩法较为简单的游戏中,设计师往往与程序员直接沟通,决定游戏中的事件如何发生,比如决定球拍的移动速度,球拍给球施加多大的力,球飞出去的速度等。简单游戏往往会附带一定的随机性为了使游戏具有不可预测性,设计师除了事件发生的概率之外,几乎没有对随机事件的控制权。
  在更加复杂的游戏中,设计师需要决定大量的关于游戏内部和游戏本身的信息,比如说要是游戏中有枪支系统,设计师需要考虑枪支的装弹量、射速、伤害等等的信息。对于非常复杂的游戏(比如角色扮演游戏以及战争游戏)来说,里面包含的巨量数据使得设计师不得不需要花大量的时间进行平衡以保证游戏中不会有哪个单位过于强力或是哪一方更容易取得胜利。
  对于简单游戏来说,游戏中通常没有太多的数据,所以游戏的数据可以直接放入游戏引擎当中,即使要修改数据也可以直接在代码中进行修改。然而对于拥有更多数据的复杂游戏来说,最好将数据与游戏引擎进行分离,这样设计师在修改数据时不需要对代码进行重新编译,以便能在游戏中对数据进行测试,重新编译代码需要大量的时间,这些闲置时间会让程序员与设计师白白等待浪费效率。此外,复杂游戏常常会将数据集中放置在一个可以让程序员进行解析的文件中,而不需要直接修改代码。一旦游戏开发完成,再将这些数据部署到游戏引擎中为了让玩家不能轻易修改。

游戏数据

  在本文中将专注于数据量大的复杂游戏进行分析,对于设计师来说,在游戏制作的过程中必须要进行创建和维护的数据有以下四种——图表/表格、关卡/地图布局、脚本和对话。

图表/表格

是指将游戏中的各种数值和信息汇总起来的一张列表,比如武器,怪物,角色属性等。而表格将如何操纵游戏中数据的方法汇总了起来,比如战斗指令,魔法系统,物品价格等。

关卡/地图布局

是指在三维或二维空间中如何生成物体的信息,以及物体该怎样在地图中生成以及玩家与生成的物体进行互动的方式。

脚本

是指可以随着游戏运行让游戏产生变化,让对话可以在游戏中正常进行,各种事件可以被正常触发的方法,可以分为代码和无代码的方式。

对话

顾名思义,当然是指角色在游戏中说了什么,也指游戏中的其他文本内容(比如旁白,物品描述等)。

  设计这些数据是一项艰巨的任务,设计师有义务负责这些设计文档的更新,以便让开发团队中的其他人员明白他们是在为同一份数据工作(避免出现不同的人手上拥有不同版本数据的情况)。