找手机游戏就上融易行 专业手游媒体门户网站!

游戏更新 | 安卓游戏 | 苹果游戏 | 推荐游戏 | 软件更新 | 文章更新 | 热门文章 | 推荐文章

游戏程序开发(游戏程序开发包含哪些技术模块-)

时间:2023-11-04 20:41:01    编辑:azu

游戏程序开发

本文来自作者goto先生在GitChat上分享的《如何开发一款游戏:游戏开发流程及必备工具》。

编辑|哈比卜

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

他们热爱一款游戏,或者被它的故事情节、炫目的场景、优美的音乐所羡慕,或者被它的角色扮演、炫酷的技能、有趣的任务所吸引。然而,他们中的大多数人可能不知道这样一个有趣的游戏是如何创建的。

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

游戏程序开发

接下来我从几个方面来阐述一下。基础知识

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

游戏引擎

游戏引擎是游戏研发的主要程序接口,为开发者提供开发游戏的各种工具,即编辑游戏系统和实时图像系统的核心组件。它的目的是让开发者不用从头开始就能快速制作游戏。

游戏引擎包括渲染引擎、物理引擎、碰撞检测系统、网络引擎、声音引擎、脚本引擎、动画和场景管理。

渲染引擎:用于渲染游戏中的物体和场景。游戏中的角色实时计算出它的模型、动画、光影、特效等等所有的效果并显示到屏幕上。

物理引擎:让物体的运动遵循特定的规律,比如角色跳跃时,系统中设置的重力值会决定其跳跃高度和下落速度;

碰撞检测系统:可以检测物体的边缘,当两个3D物体在一起时,系统可以防止它们相互交叉;

网络引擎:负责播放器与设备之间的通信,处理来自键盘、鼠标等外设的信号。如果游戏是联网的,也是用来管理客户端和服务器的通信;

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

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

游戏名词

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

游戏程序开发

BugFree:测试管理平台,基于Web的开源错误跟踪工具;

Ping:从客户端向服务器发送数据到收到服务器反馈数据的时间,以ms为单位,如果Ping值高,会感觉有延迟;

ProxyServer:代理服务器,代理网络用户获取网络信息;

PU:付费用户;

RU:注册用户;

AU:活跃用户;

DAU:日均活跃用户;

CCU:同时在线的人数;

PCU:同时在线人数最高;

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

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

封测:用户数量有限的游戏测试,用于初步验证技术和游戏产品,用户规模较小;

内测:针对一定数量用户的内部游戏测试,多用于检测游戏压力和功能是否存在漏洞;

公开测试版:面向所有用户的开放在线游戏测试。

游戏类型

游戏的分类方式有很多种,可以根据终端、内容、相机类型、玩家的战斗对象、玩家人数等进行分类。其中按内容分类最直观,可以根据游戏的要素快速锚定游戏范围。

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

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

根据战斗对象:PVE:PlayerVsEnvironment,PVP:playervs player;;

按玩家数量分:Singe-PlayerGame、multi-player game、MassiveMultiplayerOnlineGame。

我们可以看看AppStore里的游戏分类,非常生动,如下图所示。

游戏开发流程

狭义的游戏开发是程序部门对相关游戏程序的编写。广义上是整个游戏制作过程,包括多个部门的人员配备。下图是一个一般的游戏开发团队。

整个团队由策划、美术、节目、制作四个部门组成。每个部门负责不同的任务,协调整个游戏的发展。

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

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

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

制作人主要从事游戏的对外协调工作,市场调研、游戏开发进度、游戏版权、游戏推广、游戏发布以及音乐和声音素材的管理都是制作人工作的范畴。

下图是一个外国游戏R&D团队的组织结构。可以参考一下。

游戏发展的各个时期

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

概念期:是整个游戏概念的确定,玩什么样的游戏,有哪些主题线索;

原型开发期:在此期间,要制作游戏原型,体验游戏的设计理念,从而修正和改进不足之处;

推广期:此时是游戏开发商向发行商推广产品的时间,向投资人展示设计理念、主要卖点、产品如何满足市场需求、产品开发的可行性以及游戏的具体实施方案;

准备期:这个时期主要处理游戏项目所涉及的商务和法律事务,如游戏专利、剧本版权、品牌商标等。,从而组织开发团队进行总体规划,确定游戏开发所需的工具等细节;

制作期:这一时期是游戏制作的主要时期,在此期间完成3D模型制作、场景制作、剪辑动画、画面渲染、声音录制,游戏引擎和资源将完全整合。

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

精通期:这个时期是游戏被平台厂商保存和测试的时期,每个平台厂商的测试标准都不一样。在此期间,还需要不断测试和改进游戏,修复bug,为市场推出做准备。

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

项目流程

一款游戏的完整开发过程可以总结为五个步骤,如下图所示。

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

1)调研前“头脑风暴”,让尽可能多的人想出尽可能多的创意,并做好记录,以便在市场调研的过程中逐一确认,排除不符合项;

2)撰写计划草案,让项目组每个成员对开发的项目有一个大致的了解,有一个明确的目标;

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

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

1)规划要求

规划的划分:包括脚本、值、接口、执行等。

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

2)艺术需求

场景:包括游戏地图和小场景;

人物:包括玩家角色、重要NPC(玩家队友、提供任务的NPC、主剧情中的NPC等。)、未成年NPC(路人、村民等。),怪物,BOSS等。

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

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

全身像:角色的全身像;

静画&CG:游戏中可能出现的静画和CG的需求,如果没必要写;

人像:制作人物肖像的需求,包括人物的表情,包括喜、怒、悲、喜、悲;

界面:界面需求,包括主界面、子界面、屏幕界面、打开界面、结束界面、保存和加载界面等。

动态物体:包括游戏中可能出现的火把、光影;

滚动条:也称为滚动条。根据游戏的情况来确定具体的需求;

移图:根据游戏开发的具体情况决定是否有此需要;

编辑器像素:各种编辑器的像素要求,比如关卡编辑器、地图编辑器等等;

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

海报:包括海报的制作要求以及游戏的其他方面;

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

说明和插图:游戏说明中插图的制作要求;

光盘绘本:游戏客户端光盘上绘本的制作要求;

官网:游戏官网的制作要求。

3)计划要求

地图编辑器:包括编辑器的功能需求,各种数据的要求等。

粒子编辑器:关于粒子编辑器的要求;

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

功能:包括各种程序功能、技术参数、数据、碰撞检测、AI等的需求。那可能出现在游戏里;

系统需求:包括升级系统、道具系统、移动系统等系统导入者的需求。

项目开发步骤是通过引擎组织整个游戏项目的资源,充分整合游戏的结构、功能、逻辑模块。

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

测试发布过程主要包括两个大规模的正式测试,即Alpha测试和Beta测试,其中前者意味着游戏的功能和流程都是完整的,QA会为游戏定制测试计划,测试人员会将发现的bug提交给数据库,开发者和设计师会修复相应的错误。

后者是指游戏中的各种资源已经完成,产品已经定型,后期只修复bug。经过这两次测试和修复,就获得了要发布的发布版本。

GoldRelease流程主要是开发游戏的各种补丁包,游戏的升级版本,以及官方包和插件。游戏开发中使用的工具

选择合适的工具可以为游戏项目节省资金,提高工作质量,降低项目风险,让整个项目团队成员集中精力,从而让游戏变得有趣。

程序工具软件

OpenGL——OpenGL早已成为业界2D/3D图形高质量性能的标准,适用于各种设备。OpenGLES提供软件应用和软件镜像引擎之间的底层API接口;

incredibuild——这个开发工具大大提高了VS/VC的编译和版本生成速度,有效减少了增量构造所需的时间。主要采用分布式编译技术,可以调用公司内网其他计算机的资源进行快速编译。这是开发者不可多得的好工具;

VS 2013-微软的VS集成开发环境多年来一直是游戏制作的基础软件,界面友好,功能齐全,可以大大提高编码速度和工作流程;

VisualAssistX——这是一个插件,引入了强大的编辑功能,完全集成在C++IDE环境中,可以极大的改善开发人员的工作流程,但是有些IDE环境已经集成了这个插件,不需要手动安装。

DirectX-它是微软在过去建立的许多行业标准之一。是一种windows技术,可以让你在玩游戏或者看视频的时候,图像和音效有更高的质量。它包含许多支持组件,如Direct3D、DirectSound、DirectPlay和DirectInput。

艺术生产工具

美术制作工具远不止程序软件,所以在游戏开发过程中,选择美术软件时要慎重考虑,以利于项目的顺利进行。

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

比如建模、动画、渲染、电影特效等。但其缺点是其多边形建模工具不理想;

3D Studio Max-it是游戏开发中3D程序开发的主流指南,其多边形建模工具是所有3D程序中最好的工具,开发效率特别高;

Photoshop CS——该软件在游戏制作中应用广泛,是游戏制作必不可少的软件。它将用于游戏开发的所有阶段,包括前期制作、最终完成和营销。美工用它来设定游戏环境和角色,策划人员也用它来绘制关卡策划和界面示意图;

face gen Modeler——这是一款3D头脸创建工具,可以为游戏制作多个角色,从而快速制作角色的脸和头模型,形状非常逼真;

zbrush——这个工具的特点是让艺术模型呈现传统艺术创作的过程。它可以帮助制作者制作逼真的多边环境模型,是绘制场景地图的优秀工具。

奶奶——可以作为游戏的批量输出工具,可以完成所有的美术素材,包括模型、效果图、过场动画。它可以生成法线和纹理图,也是一个引擎解释工具。

游戏组件工具

游戏组件是指游戏的基础环境架构,如描述、场景和几何配置构造等,也称为中间件。

havok——这是目前比较先进的物理引擎,可以让游戏模拟现实,让游戏非常逼真;

这是一个可以帮助开发者快速制作原型的工具。它功能强大且稳定,是一个很好的3D实时图形引擎。其强大的渲染引擎和运动处理系统使其在商业上获得巨大成功。

quazal-它属于网络架构中间件,主要用于制作大型多人网络游戏。其他类似的中间件包括BigWorld。

音效工具

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

场景构建工具:

虚幻引擎——这是一个相对完整的游戏开发引擎,它提供了更加通用的关卡编辑器、过场动画系统、3D图形和AI;

来源-这个引擎为角色动画提供了一个新的技术。高级AI、光影渲染和实景图像都非常出色,引擎还包括一个高级物理引擎。日常管理工具

游戏开发过程中涉及的事务很多,内容也比较复杂。使用日常管理工具可以有效提高工作效率。以下是一些使用较多的工具:

微软Excel——用它来管理开发进度,开发者可以轻松跟踪管理多个游戏开发部门的进度,开发者必须对它非常熟悉才能得心应手;

每日工作进度报告——项目成功的关键是使用每日工作进度报告。在这个过程中,每个团队成员每天都要提交一份自己当天个人工作完成情况的清单。这种进度报告方法可以简洁、方便、有效地跟踪项目进度;

源码控制报告和版本控制报告——目前项目研发使用的版本控制工具大多是SVN、Perforce、Git等。游戏开发者在使用版本控制软件之前,熟悉软件的功能和用法是非常重要的,否则会犯一些不必要的错误,导致工作效率下降;

使用WiKi——它是一个协作文档,一个自由讨论和创造的工具,也是管理设计文档的最佳方式。当团队无法建立内部局域网来管理各种录音和设计流程或者建立局域网的工作量太大的时候,wiki是你最好的选择。

好了,关于游戏开发的知识就讲到这里吧。游戏开发涉及的知识太多了。我在这里只是做了一个大概的介绍,希望能对你有一点帮助。文章内容难免有很多不足之处,请大家指教。

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

游戏设计导论:理解玩家的思维

最新游戏

玩家评论