游戏制作简介

游戏如同一般的软件开发一样,简单来说都是“先设计,再编码实现”的过程。就一般而言,游戏可能比普通软件更为复杂,本文无法简单一两句讲清楚游戏是如何制作的,与传统软件的差别到底有多大,只能先从一些简单基础的人员结构和模块内容上描述一下游戏制作过程中有哪些主要的工作内容。一个游戏,从立项到开发,到最后发布上线,整个过程较为详细的介绍,请查看游戏项目开发流程


人员结构

策划:策划除了负责“提需求”,也就是提供设计方案外,还要负责填写游戏里的数值和文案内容,主要就是配置表部分;当然有些能力强的策划也会写脚本,画美术资源。主策划重点把控的是整体的产品方向,协调各个系统功能之间的关联影响,具体到每个具体的功能会再由其他策划负责跟进。当然,策划本身还会进一部分细分,有专门负责设计系统的,有专门负责数值计算的,还有专门负责设计界面交互的。

程序:程序主要也是分为客户端程序和服务端程序,也就是我们常说的前端和后端。首先,客户端方面,根据运行的系统平台来分,其实有很多,比如最常见的端游《魔兽世界》,橙光页游,还有就是目前数量最多,用户基数最大的手游,如《阴阳师》、《王者荣耀》等,手游运行的平台主要是Android和iOS这两个。还有国内不常做的主机、掌机类游戏,例如索尼的PS,微软的Xbox,任天堂的Switch等,游戏厅里的街机,赌场里的老虎机等。本书中介绍的主要内容都是围绕手机游戏进行的,所以客户端相关的测试用例也都是围绕移动设备特性来写的。服务端方面,除了单机游戏,大多数的联网游戏都是需要有一组或几组服务器来承载玩家联网数据的。对于玩家来说,服务端的结构一般都是不可见的,我们这里先简单将服务端理解成一个整体的事物。网络游戏,每次登陆,就是一次连接服务端的行为,绝大部分的游戏数据(如你的账号信息,角色信息)都是存储在服务端的,这样可以保证你在不同的设备上登录同一个账号都可以继续进行游戏。从主要功能来说,客户端主要是进行显示的,而服务端是用于数据存储和计算的

美术:美术包含的内容很广,有场景、角色、特效、音乐音效、界面UE等,场景就是我们常说的游戏地图以及地图上的建筑物件等,角色包括了主角、NPC、怪物等形象,从制作流程上,场景、角色又分为原画和建模两个环节,一般也是分别由专人完成。特效就是我们在游戏中常看到的各种色彩缤纷、酷炫闪亮的光影效果,音乐音效就主要是背景音乐和各种触发音效(如点个按钮),界面UE就是功能与玩家交互的控制页面。所以游戏制作中,美术成本的投入往往是占据很大的比例。

测试:前三个工种都是直接与游戏制作相关的,决定着游戏产品最初的形态。而测试在这个过程中验证的主要目标不是产品的“正确性”,而是“程序实现与策划设计的符合程度”;其次才是作为第一个“用户代表”对游戏的完成度和体验情况做出评价,提出问题,帮助完善产品内容。测试主要也分为功能测试、性能测试,其中性能测试需要有测试开发的能力,能自己开发或利用工具软件对产品性能进行验证。自动化测试也是一种常见的测试手段,但在游戏领域很难被广泛使用,具体原因参考这篇游戏自动化测试的尝试

运营:如果说测试是“个体用户的代表”,那么运营思考的就是“群体用户的反应”。一般决定着产品上线的时机,宣传的方式,以及根据市场反馈提出对产品的改进意见。


模块内容

程序体:其实就是游戏的客户端或服务端可以运行的基本框架,它就像建房子的地基和支柱一样,主要是一些最基础的功能,比如客户端/服务端如何启动,客户端服务端之间如何通过网络建立连接等。这一部分完全是由程序猿同学来实现。当然,目前手机游戏的客户端通常使用Unity引擎进行开发,这就为客户端程序体的搭建节省了不少功夫。服务端方面:除了一些单机小游戏,所有的联网游戏都需要有一组或多组服务器来承载玩家的联网数据。有多组服务器时,客户端在开始游戏之前就需要先进行区服的选择。对于玩家来说,服务端几乎是不可见的,我们这里先简单将其理解为一个独立完整的事物,具体的测试内容说到与服务器有关的内容(跨服分线和服务端性能测试)时会再进行详细说明。我们只需要先明白,联网游戏,每次登录,就是一次进入服务端的行为,你的绝大部分游戏数据都是存储在服务端,这样保证你在不同的设备上登录同一个账号都可以继续进行游戏。其他玩家在游戏中的行为,也是在服务端运行计算,然后同步显示到你的客户端的,所以我们先记住服务端的两个重要功能:存储计算数据。

脚本:脚本主要是用于实现游戏内的玩法逻辑的,其实游戏的所有内容都可以用程序体来实现,完全不使用脚本,但脚本能带来极大的好处,例如编写简单,易于修改,更容易满足游戏玩法的多变性和多样性需求,甚至可以在游戏运行的时候,更新脚本文件来修改游戏逻辑或修复bug。如果说程序体决定着这个房子的结构是高楼大厦,还是洋房别墅,脚本就决定着这个房子的功能究竟是用于办公还是居住。脚本一般也是由程序猿同学来实现的,基本决定了游戏的玩法内容,当然程序猿同学也会制作一些工具编辑器给游戏策划同学使用,通过填写配置生成一些简单的脚本,如关卡编辑器。

配置表:配置表一般是用来填写数值、文字等内容的,主要是丰富游戏细节,增强游戏体验的。例如一件武器的攻击力应该是多少,剧情文字要说些什么,主要是由策划同学负责设计和填写的。一般策划使用excel表进行编辑,然后会导出成xml文件,或写脚本工具导成指定的文件格式,如json,这样可以比excel少占用很大的空间,而且方便对配置表文件进行加密。

美术资源:美术资源就是游戏里所有可见的场景地图、角色模型、界面图片、音乐音效等内容,是影响最终游戏表现的重要内容,等同于建造房子最后的修饰装潢。一般由美术同学制作,然后由策划同学用配置表决定放置在什么位置。

上述所说的四个部分内容,除了程序体,脚本、配置表和美术资源基本都是可以在游戏运行时进行更新修改的,我们一般称之为热更新或补丁更新,补丁更新包一般采用的是“ab模式”,意思是文件是二进制(b)的,然后更新时是在原来文件的基础上追加(a),不是直接修改原来的文件,所以测试客户端补丁更新时,一定要尽量遍历到所有文件类型在更新后是否正确生效。而程序体的更新一定需要先关闭客户端或服务端的运行,然后进行替换才能更新的,我们一般称之为覆盖安装或覆盖更新。还有,服务端是不需要有美术资源文件的,所以美术资源一般只需要放在客户端中,但脚本和配置表需要客户端与服务端对应一致,否则服务端说添加一个道具A,去到客户端显示的可能是个道具B。服务端的脚本、配置表、程序体的更新方式,一般都是覆盖替换,不会采用“ab模式”。

results matching ""

    No results matching ""