如何开发⼀款游戏:游戏开发流程及所需⼯具
游戏作为娱乐⽣活的⼀个⽅⾯,参与其中的⼈越来越多,⽽⼤部分参与其中的⼈都是以玩家的⾝份。
他们热爱⼀款游戏,或是被游戏的故事情节、炫丽的场景、动听的⾳乐所艳羡,亦或是被游戏中⾓⾊扮演、炫酷的技能、有趣的任务所吸引,然⽽他们中的⼤多数可能并不了解如此⼀款好玩的游戏是如何打造出来的。
对于想来这个⾏业尝试的新⼈们,先对游戏开发制作有个整体的了解也是⾮常必要的。
接下来我将从⼏个⽅⾯来分别进⾏阐述。
基础知识
游戏,说⽩了就是⼀个程序,这个程序或在 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 就是你最佳的选择。
好了,关于游戏开发的相关知识,我就介绍到这⾥。游戏开发涉及的知识太多太多,我在这⾥只是概括性的做了⼀个引⼊,希望对您有些许的帮助,⽂章内容不免有很多不⾜之处,还请各位⼤侠多多指教。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论