如何开发一款游戏:游戏开发流程及所需工具-程序员宅基地

技术标签: 游戏引擎  编程语言  游戏  游戏开发  

本文来自作者 goto先生  GitChat 上分享 「如何开发一款游戏:游戏开发流程及所需工具」

编辑 | 哈比

游戏作为娱乐生活的一个方面,参与其中的人越来越多,而大部分参与其中的人都是以玩家的身份。

他们热爱一款游戏,或是被游戏的故事情节、炫丽的场景、动听的音乐所艳羡,亦或是被游戏中角色扮演、炫酷的技能、有趣的任务所吸引,然而他们中的大多数可能并不了解如此一款好玩的游戏是如何打造出来的。

对于想来这个行业尝试的新人们,先对游戏开发制作有个整体的了解也是非常必要的。

接下来我将从几个方面来分别进行阐述。

基础知识

游戏,说白了就是一个程序,这个程序或在 PC 上或在移动设备上运行,玩家通过与这个程序交互来达到娱乐性的目的。我们先了解一下游戏中用到的各种引擎以及游戏相关术语。

游戏引擎

游戏引擎是游戏研发的主程序接口,它为开发者提供了各种开发游戏的的工具,即可编辑游戏系统和实时图像系统的核心组件,其目的就在于让开发者可以快速的做出游戏而不必从零开始。

游戏引擎包含渲染引擎、物理引擎、碰撞检测系统、网络引擎、音效引擎、脚本引擎、动画及场景管理等。

  • 渲染引擎:是对游戏中的对象和场景起到渲染的效果,游戏中的角色都是通过渲染引擎将它的模型、动画、光影、特效等所有效果实时计算出来并展示到屏幕;

  • 物理引擎:让对象运动遵循特定的规律,比如当角色跳起的时候,系统内定的重力值将决定它弹跳的高度及下落的速率;

  • 碰撞检测系统:可以探测各物体的边缘,当两个 3D 物体在一起的时候,系统可以防止它们相互穿过;

  • 网络引擎:是负责玩家与设备间的通信,处理来自键盘、鼠标及其它外设信号。若游戏联网,它也用来管理客户端与服务器间的通信;

  • Lua 引擎:是 Lua 的服务器引擎,lua 是一种轻量级的嵌入式脚本语言,在网游开发中应用广泛。

总的来说,一个游戏是引擎和资源组成的,资源包括图象、声音、动画等,游戏引擎就像一个发动机,控制着游戏的运行,它按游戏设计规则依次调用游戏资源。

游戏名词

  • CD-key:游戏的序列号或防盗密码;

  • BugFree:测试管理平台,是一款基于 Web 的开源错误追踪工具;

  • Ping:从客户端发送数据到服务器到接收到服务器反馈数据的时间,以 ms 计,若 Ping 值高会感觉延迟;

  • Proxy Server:代理服务器,代理网络用户去取得网络信息;

  • PU:付费用户;

  • RU:注册用户;

  • AU:活跃用户;

  • DAU:平均每日活跃用户;

  • CCU:同时在线人数;

  • PCU:最高同时在线人数;

  • ACU:平均同时在线人数;

  • ARPPU:付费玩家平均收入;

  • 封测:限定用户数量的游戏测试,用来对技术和游戏产品进行初步的验证,用户规模较小;

  • 内测:面向一定数量用户进行的内部游戏测试,多用于检测游戏压力和功能有无漏洞;

  • 公测:对所有用户公开的开放性的网络游戏测试。

游戏的种类

游戏的分类方法很多,可以按终端、内容、摄像类型、玩家格斗对象、玩家人数等来分,其中按内容来分最直观,它可以根据游戏的元素迅速锚定游戏范围。

  • 按终端分:主机游戏 (电视机游戏)、客户端游戏、网页游戏、手机游戏;

  • 按摄影类型分:2D 游戏、2.5 游戏、3D 游戏;

  • 按格斗对象分:PVE:PlayerVsEnvironment、PVP:PlayerVsPlayer;

  • 按玩家人数分:单机游戏(Singe-Player Game)、多人游戏(Muti-Player Game)、大型多人在线(Massive Multiplayer Online Game)。

     

我们可以看一下 AppStore 中游戏的分类,非常鲜明,如下图所示。

游戏的开发流程

游戏开发从狭义上讲就是程序部门进行相关游戏程序的编写,从广义上讲,是整个游戏制作过程,这其中包括多个部门的人员配备。下图是一个一般性的游戏开发团队。

整个团队包含四个部门,即策划、美术、程序、制作人,各个部门负责不同的工作,协调完成整个游戏的开发。

策划是团队的灵魂,也分执行策划、数据策划、表现策划、资源策划等,他们主要对游戏剧情、背景进行分析设计,对游戏中的各种规则进行描述及公式确定,对各种资料表格进行维护,对游戏中的特效、动作等进行收集并提出需求,进行 UI 设计及模型相关配置等。

程序是团队的骨肉,也可细分为主程序、客户端引擎、服务器引擎、3D 程序、AI 程序、脚本程序、数据库程序等,他们主要负责确定程序的数据结构,确定策划方案的完成方法,将策划提出的各种需求用程序来实现,并为游戏开发过程提供良好的编辑工具。

美术是团队的皮肤,可细分为人物原画、人物建模、材质贴图、人物动作、场景动画等,他们主要负责整个游戏的视觉风格,以及人物模型动作等的设计等。

制作人主要进行游戏的外部统筹,市场调研、游戏开发进度、游戏版权、游戏宣传、游戏发布及音乐音效素材的管理都是制作人工作的范畴。

下图是某国外游戏研发团队的组织架构图,可以参考了解一下。

游戏开发的各个时期

对于游戏制作人来说,每个游戏从产生要消亡要经历各个阶段,下面是普遍适用的典型范例,但并不是每个游戏都要经历所有的时期。

  • 概念时期:就是整个游戏概念的确定,要做什么样的游戏,主题线索是什么;

  • 原型开发时期:这个时期要制作游戏的原型,用来体验游戏的设计概念,从而纠正和改善不足的地方;

  • 推广时期:此时是游戏开发方向出版方推广产品,向投资方展示游戏的设计概念、主要卖点、产品如何适应市场的需求、产品开发的可行性及具体的实现方案;

  • 准备时期:这个时期主要处理游戏项目所涉及的商务及法律方面的事务,比如游戏专利、剧本版权、品牌商标等,从而组织开发团队制作大致的方案,确定游戏开发所需要的工具及其它细节问题;

  • 制作时期: 这个时期是游戏制作的主体时期,完成 3D 模型的制作,场景制作,过场动画、画面渲染及音效录制等,游戏引擎和资源在此时期将被完全整合到一起。

  • 质量保证时期:这个时期是游戏的 QA 或测试时期,主要用来保证游戏的各项功能是否完好,从而发现和修复各种 Bug 和错误;

  • 母盘生成时期:这个时期是将游戏存盘交由平台厂商测试检测的时期,每个平台厂商的测试标准不尽相同,这个时期中也需要不断地测试改进游戏,修复 Bug,准备市场投放。

  • 运营维护时期:这个时期是游戏发布后持续运营,在运营过程中发现问题,修复并更新升级的过程,这是一个长期的过程。

项目流程

一部游戏完整的开发过程,归纳起来可分为五步,如下图所示。

市场调研可以分为三个小部分,

1)调研前进行 “头脑风暴”,让尽量多的人想出尽量多的创意点子并做好记录,从而在市场调研过程中一一确认,不符合的排除;

2)撰写策划草案,从而让项目小组中的每一个成员对开发的项目有一个大体的认识,并且对目标明确;

3)对每一个草案都进行市场调研和分析,决定是否要开发这个游戏。市场调研主要从两个方面入手,即目标客户(玩家)和开发成本。

需求分析主要是撰写需求分析书,这主要包括三个方面:

1)策划需求

  • 策划的分工:包括剧本、数值、界面、执行等方面;

  • 进度控制:要时刻注意时间和开发进度的控制,需要写一个专门的项目进度汇总表。

2)美术需求

  • 场景:包括游戏地图、小场景等方面;

  • 人物:包括玩家角色、重要 NPC(玩家队友、提供任务的 NPC、主线剧情 NPC 等)、次要 NPC(路人、村民等)、怪物、BOSS 等;    

  • 动画:动画方面估计每个公司的需求都不尽相同。如果公司能力有限,动画的制作可以考虑外包的方式;

  • 道具:主要需要考虑是否采取纸娃娃系统;

  • 全身像:人物的全身像方面;

  • 静画 &CG:游戏中可能出现的静画和 CG 的需求,没有则不需要写;

  • 人物头像:人物的头像制作需求,其中包括人物的表情方面,包括喜、怒、哀、乐和悲等多种表情;

  • 界面:界面的需求,包括主界面、各项子界面、屏幕界面、开头界面、END 界面、保存和载入界面等方面;

  • 动态物件:包括游戏中可能出现的火把、光影等方面;

  • 卷轴:又称为滚动条。根据游戏的情况来定具体的需求;

  • 招式图:根据游戏开发的具体情况决定是否有此需求;

  • 编辑器图素:各种编辑器的图素需求,例如关卡编辑器、地图编辑器等方面;

  • 粒子特效:3D 粒子特效的需求;

  • 宣传画:包括游戏的宣传画、海报等方面的制作需求;

  • 游戏包装:游戏客户端的封面包装的制作;

  • 说明书插图:游戏说明书内附插图的制作需求;

  • 盘片图鉴:游戏客户端盘片上的图鉴的制作需求;

  • 官方网站:游戏官方网站的制作需求。

3)程序需求

  • 地图编辑器:包括编辑器的功能需求、各种数据的需求等;

  • 粒子编辑器:关于粒子编辑器的需求;

  • 内镶小游戏:包括游戏内部各种小游戏的需求;

  • 功能函数:包括游戏中可能会出现的各种程序功能、技术参数、数据、碰撞检测、AI 等方面的需求;

  • 系统需求:包括升级系统、道具系统、招式系统等系统导入器的需求。

     

项目开发步骤就是将整个游戏项目的资源通过引擎组织起来,对游戏的架构、功能及各逻辑模块进行充分的整合。

这就要明确游戏开发的日程和进度安排,这也是充分利用各种开发工具让开发效率大大提升的根本所在。

测试发布流程主要包括两次大型正规的测试,即 Alpha 测试和 Beta 测试,其中前者意味着游戏的功能和流程完整,QA 会为游戏定制测试计划,测试人员将发现的 Bug 提交到数据库,开发和设计人员对相应的错误进行修复。

后者意味着游戏中的各种资源已完成,产品已定型,后期只是修复 Bug。在这两次测试修复后,得到待发布的 Release 版。

Gold Release 流程主要是开发游戏的各种补丁包、游戏的升级版本,以及官方的各种礼包和插件等。

游戏开发所用的工具

选择正确的工具,可以为游戏项目节省开支,提高工作质量,降低项目风险,让整个项目团队成员集中注意力,从而把游戏做得好玩。

程序工具软件

  • OpenGL ES——OpenGL 长期以来都是行业内 2D/3D 图形高质表现的标准,它适用于各种设备。OpenGL ES 提供了在软件应用程序和软件图像引擎间的底层 API 接口;

  • IncrediBuild——这个开发工具极大的提升了 VS/VC 的编译和版本生成速度,有效降低增量构建所需要花费的时间,它主要是采用分布式编译技术,在公司内网可以调用其它计算机的资源进行快速编译。这是开发人员不可多得的一款好工具;

  • VS2013——微软的 VS 集成开发环境多年来都是游戏制作的基本软件,界面友好,功能齐全,可以极大的提升编码速度和工作流;

  • Visual Assist X——这是一个插件,引入了强大的编辑功能,完全整合在 C++IDE 环境中,可以极大的提升开发人员的工作进程,不过有的 IDE 环境已经整合了这款插件,自己不用手动安装了;

  • Direct X——它是微软在过去建立的众多行业标准之一,它是一种视窗技术,可以让你在玩游戏或观看视频过程中图像和音效有更高的品质,它包含多个配套组件,如 Direct3D、DirectSound、DirectPlay、DirectInput 等。

美术制作工具

美术制作工具要远多于程序软件,因此在游戏开发过程中,选择美术软件时要慎重考虑,以方便项目的顺利进展。

  • Maya——它是行业内首选的 3D 动画制作软件之一,它功能十分强大,可用于高端电脑构图,可以处理几乎所有的 3D 制作工作。

    比如模型构建、动画制作、描绘渲染、电影特效等。但其缺点也在于其多边形建模工具不太理想;

  • 3D Studio Max——它是游戏开发中 3D 程序开发的主流引导者,其多边形建模工具是所有 3D 程序中最棒的工具,用它进行开发效率也特别高;

  • PhotoShop CS——该软件在游戏制作中被广泛应用,是游戏制作的必备软件,它在游戏开发的各个时期都会用到,包括前期制作到最终完成并市场推广。美术人员用它来做出游戏环境和角色的设定,策划也用它来画关卡规划和界面示意图;

  • FaceGen Modeller——这是一款 3D 头脸创作工具,它可以为游戏制作多个角色,从而快速做出人物脸部及头部模型,形态非常逼真;

  • Zbrush——这款工具的特点在于使艺术模型呈现传统艺术创作的过程,它可以辅助制作人员做出逼真的环境多边模型,是地图场景的绝佳工具;

  • Granny——可以作为游戏的一个批量输出工具,它能够完成所有艺术素材,包括模型、渲染和过场动画的植入。它可以生成法线和纹理贴图,更是一款引擎解释工具。

游戏组件工具

游戏组件是指游戏的基本环境架构,比如描绘、场景和几何构型的构建,也称为中间件。

  • Havok——这是目前比较先进的物理引擎,它能让游戏模拟现实,可以将游戏做出非常逼真的效果;

  • Gamebryo——这是一款能够帮助开发人员快速制作原型版的工具,功能强大,运行稳定,是比较好的 3D 实时图形引擎,其强大的渲染引擎和动作处理系统使其在商业上获得巨大的成功;

  • Quazal——它属于网络建筑中间件,主要用于制作大型多人在线游戏,其它类似的中间件有 Big World。

音效工具

音效作为游戏里的重要组成部分,选择合适的工具也非常重要。作为游戏开发人员,关键要了解各种工具的使用限制,有很多的专业音效制作工具,包括 Nuendo、Vegas、Logic、ProTools、Peak、GameCODA、SoundForge 等。

场景构建工具:

  • Unreal Engine——这是一款比较完型的游戏开发引擎,它提供了比较全能的关卡编辑器、过场动画系统、3D 图形及 AI;

  • Source——这款引擎为人物角色动画提供了新技术,先进的 AI、光影渲染、实景图象都非常棒,引擎也包含了先进的物理引擎。

日常管理工具

游戏开发过程中所涉及的事务比较多,内容也比较繁杂,用好日常管理工具可以有效提升工作效率。下面是几个用得比较多的工具:

  • MicroSoft Excel——利用它进行开发进度管理,开发人员可以非常轻松地跟踪管理多个游戏开发部门的进度,开发人员必须要对其十分熟悉,才能用的得心应手;

  • 日常工作增量进程报告 (daily delta reports)——一个项目成功的关键就是运用日常工作进程报告,在这个过程中,每一名团队成员每天上交一份个人当日工作完成情况清单。这种进程报告的方式可以简明扼要、方便有效地跟踪项目进程;

  • 源码控制报告和版本控制报告——目前大部分项目研发用的版本控件工具是 SVN、Perforce、Git 等,在使用版本控制软件前,一定要花一定的时间来熟悉软件的功能和使用方法,这对于游戏研发人员非常关键,否则就会犯些不必要的错误,从而导致工作效率下降;

  • 运用 WiKi——它是协作性文档,是自由讨论和创造性工具,是最佳管理设计性文档的方法,当团队无法建立一个内部局域网来管理各种记录和设计进程或建立局域网工作量过大时,WiKi 就是你最佳的选择。

好了,关于游戏开发的相关知识,我就介绍到这里。游戏开发涉及的知识太多太多,我在这里只是概括性的做了一个引入,希望对您有些许的帮助,文章内容不免有很多不足之处,还请各位大侠多多指教。

 

推荐书籍

《游戏开发 世嘉新人培训教材》

《游戏设计入门:理解玩家思维》

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/GitChat/article/details/78957555

智能推荐

Docker 快速上手学习入门教程_docker菜鸟教程-程序员宅基地

文章浏览阅读2.5w次,点赞6次,收藏50次。官方解释是,docker 容器是机器上的沙盒进程,它与主机上的所有其他进程隔离。所以容器只是操作系统中被隔离开来的一个进程,所谓的容器化,其实也只是对操作系统进行欺骗的一种语法糖。_docker菜鸟教程

电脑技巧:Windows系统原版纯净软件必备的两个网站_msdn我告诉你-程序员宅基地

文章浏览阅读5.7k次,点赞3次,收藏14次。该如何避免的,今天小编给大家推荐两个下载Windows系统官方软件的资源网站,可以杜绝软件捆绑等行为。该站提供了丰富的Windows官方技术资源,比较重要的有MSDN技术资源文档库、官方工具和资源、应用程序、开发人员工具(Visual Studio 、SQLServer等等)、系统镜像、设计人员工具等。总的来说,这两个都是非常优秀的Windows系统镜像资源站,提供了丰富的Windows系统镜像资源,并且保证了资源的纯净和安全性,有需要的朋友可以去了解一下。这个非常实用的资源网站的创建者是国内的一个网友。_msdn我告诉你

vue2封装对话框el-dialog组件_<el-dialog 封装成组件 vue2-程序员宅基地

文章浏览阅读1.2k次。vue2封装对话框el-dialog组件_

MFC 文本框换行_c++ mfc同一框内输入二行怎么换行-程序员宅基地

文章浏览阅读4.7k次,点赞5次,收藏6次。MFC 文本框换行 标签: it mfc 文本框1.将Multiline属性设置为True2.换行是使用"\r\n" (宽字符串为L"\r\n")3.如果需要编辑并且按Enter键换行,还要将 Want Return 设置为 True4.如果需要垂直滚动条的话将Vertical Scroll属性设置为True,需要水平滚动条的话将Horizontal Scroll属性设_c++ mfc同一框内输入二行怎么换行

redis-desktop-manager无法连接redis-server的解决方法_redis-server doesn't support auth command or ismis-程序员宅基地

文章浏览阅读832次。检查Linux是否是否开启所需端口,默认为6379,若未打开,将其开启:以root用户执行iptables -I INPUT -p tcp --dport 6379 -j ACCEPT如果还是未能解决,修改redis.conf,修改主机地址:bind 192.168.85.**;然后使用该配置文件,重新启动Redis服务./redis-server redis.conf..._redis-server doesn't support auth command or ismisconfigured. try

实验四 数据选择器及其应用-程序员宅基地

文章浏览阅读4.9k次。济大数电实验报告_数据选择器及其应用

随便推点

灰色预测模型matlab_MATLAB实战|基于灰色预测河南省社会消费品零售总额预测-程序员宅基地

文章浏览阅读236次。1研究内容消费在生产中占据十分重要的地位,是生产的最终目的和动力,是保持省内经济稳定快速发展的核心要素。预测河南省社会消费品零售总额,是进行宏观经济调控和消费体制改变创新的基础,是河南省内人民对美好的全面和谐社会的追求的要求,保持河南省经济稳定和可持续发展具有重要意义。本文建立灰色预测模型,利用MATLAB软件,预测出2019年~2023年河南省社会消费品零售总额预测值分别为21881...._灰色预测模型用什么软件

log4qt-程序员宅基地

文章浏览阅读1.2k次。12.4-在Qt中使用Log4Qt输出Log文件,看这一篇就足够了一、为啥要使用第三方Log库,而不用平台自带的Log库二、Log4j系列库的功能介绍与基本概念三、Log4Qt库的基本介绍四、将Log4qt组装成为一个单独模块五、使用配置文件的方式配置Log4Qt六、使用代码的方式配置Log4Qt七、在Qt工程中引入Log4Qt库模块的方法八、获取示例中的源代码一、为啥要使用第三方Log库,而不用平台自带的Log库首先要说明的是,在平时开发和调试中开发平台自带的“打印输出”已经足够了。但_log4qt

100种思维模型之全局观思维模型-67_计算机中对于全局观的-程序员宅基地

文章浏览阅读786次。全局观思维模型,一个教我们由点到线,由线到面,再由面到体,不断的放大格局去思考问题的思维模型。_计算机中对于全局观的

线程间控制之CountDownLatch和CyclicBarrier使用介绍_countdownluach于cyclicbarrier的用法-程序员宅基地

文章浏览阅读330次。一、CountDownLatch介绍CountDownLatch采用减法计算;是一个同步辅助工具类和CyclicBarrier类功能类似,允许一个或多个线程等待,直到在其他线程中执行的一组操作完成。二、CountDownLatch俩种应用场景: 场景一:所有线程在等待开始信号(startSignal.await()),主流程发出开始信号通知,既执行startSignal.countDown()方法后;所有线程才开始执行;每个线程执行完发出做完信号,既执行do..._countdownluach于cyclicbarrier的用法

自动化监控系统Prometheus&Grafana_-自动化监控系统prometheus&grafana实战-程序员宅基地

文章浏览阅读508次。Prometheus 算是一个全能型选手,原生支持容器监控,当然监控传统应用也不是吃干饭的,所以就是容器和非容器他都支持,所有的监控系统都具备这个流程,_-自动化监控系统prometheus&grafana实战

React 组件封装之 Search 搜索_react search-程序员宅基地

文章浏览阅读4.7k次。输入关键字,可以通过键盘的搜索按钮完成搜索功能。_react search