perforce在行业中的运用

配置管理工具Perforce Helix Core在游戏行业的应用

        如今的游戏,界面越来越精美,音效越来越好,参与开发一个游戏的人员也越来越多,这对游戏的开发、更新过程的管理提出了更高的要求。

        Perforce Helix Core不仅可以运用在源代码管理上,对3D制作、音频文件,以及多团队之间交叉使用的大型二进制文件都有非常好的支持,任何规模的游戏开发团队都能轻松地将Helix Core导入到他们原本的开发工作中。

        Helix Core提供的Stream可以方便地管理不同团队间的代码和二进制文件,下面我们通过一个简单的示例说明怎么使用Helix Core的Stream功能来做游戏开发管理。 

一、游戏开发的基本流程

开发游戏时,通常会分以下几个阶段:

预备阶段

确定项目的基本方向

原型阶段

实现一个游戏原型,发布Alpha测试版。

迭代阶段

上线后按迭代周期,持续开发和调优游戏。

发布阶段

发布游戏的Beta测试版本,做内部封闭测试。

预备阶段:游戏一开始只是一个创意或想法,需要具体用图片和文字展现出来,形成最初的概念设计,同时确认项目使用什么引擎和框架。这个阶段,要形成大家认可的原型设计。

原型阶段:本阶段主要目的是验证游戏的基本面问题:题材和玩法的融合是否合适,美术风格和技术实现层面是否能达到策划的初始目标,有没有难以解决的基本障碍。

发布阶段:项目经理随时应对不同的策划案,组织大家建立流程标准,在Alpha版的基础上完善游戏。另外需要准备发布工作,包括宣传资料,测试环境,运维工具等,也需要花费时间。 

迭代阶段:游戏一般会有功能的持续更新,根据策划确定每个迭代的内容,按照流程标准不停的做相应的持续开发,调优游戏。

二、各阶段的配置管理需求

需求
预备阶段
原型阶段
发布阶段
迭代阶段
版本管理
权限管理
多个团队素材的构建
协同开发
分支管理
大文件的管理

        预备阶段,参与的人员较少,文档也比较少,配置管理只需要考虑文件的版本管理和权限管理就可以(Perforce Helix Core、SVN、Git等都可以满足需求)。

        原型阶段,策划、美工、开发等多团队同时进行工作,需要考虑不同团队的素材的取得及构建(Perforce Helix Core可以很好的管理多个团队的工作)。

        发布阶段,随着游戏的不断开发(文件数量增加、大的美术资源增加),团队规模也会扩大,有不同地域的团队同时协作,甚至还有外包人员参与开发,这时需要有很好的协同开发管理、分支管理、大批量、大文件的管理需求(Perforce Helix Core可以很好的满足这些需求)。

        迭代阶段,需要考虑bug的及时对应(分支管理需求),新功能的迭代开发,也需要有很好地协同开发管理、分支管理、大批量、大文件的管理需求(Perforce Helix Core可以很好的满足这些需求)。 

1、版本管理

        日常开发过程中,需要对各种文件做版本管理,版本管理工具有很多,常见的Perforce Helix Core,SVN,Git都可以满足小规模开发、小团队的日常版本管理的需求。

2、权限管理

        现在用户对知识产权的保护意识在逐渐增强,Git的权限只能设定到库,而且必须将所有内容都clone到本地,存在一定的泄露风险;SVN的权限也只能设定到目录。Helix Core的权限管理可以很好的满足客户的需求:

  • 可以设定目录的权限

  • 可以为单个文件设定权限

  • 可以将目录的权限管理或者用户组的权限委托给非管理员用户

  • 可以限定访问的客户端的IP地址范围

  • 可以以组为单位设定权限,并支持子组

3、组装模块和分支管理

        现在游戏开发会有多个团队协同工作,在构建时需要组装多个团队的模块做构建。Perforce中有工作区和Stream等概念,易于灵活地将服务器端文件(文件夹)映射到本地,实现模块组装和分支管理功能。

工作区:定义如何将服务器端文件获取到本地,可以将不同仓库的任意个文件夹映射到本地,并可以调整文件夹获取到本地后的目录结构。不需要像Git,SVN那样使用隐藏文件夹来管理文件状态,减少磁盘空间浪费。从服务器端获取文件,可以按需进行,不需要像Git一样要clone整个repo。

Stream:开发过程中可能应对不同需求会有多个开发分支,Stream就是Helix Core中的一种分支。这种分支除了维护最基础的分支映射关系以外,还提供了分支类型,分支合并方向,模块引用(或排除)等支持。为了易于观察分支之间的关系和差别,还提供了一个分支视图(Stream Graph)。通过引入Stream功能,Helix Core的分支管理功能更加强大。下图是一个分支视图的截图,其中每个长方形都代表一个分支,不同颜色代表了分支不同的分支类型,单向或双向箭头指示了预定义分支并方向,绿色线代表可合并。

news 243 1

4、协同开发

        现在游戏开发团队在逐渐增大,甚至有多个团队或外包在不同地域进行开发,如何有效协调不同地域的团队的开发,成为开发管理的需求之一。Helix Core支持多种多服务器架构,可以很好的支持不同团队的跨区域协同开发,通过Proxy缓存服务器,Edge服务器、Replica复制服务器提高异地的工作效率。

多区域服务器架构示例:

news 243diaode

内部访问:

1、为提高数据的安全性,Commit服务器和Edge服务器分别有一台Replica备份服务器用于备份。

2、Commit服务器和Edge服务器间用专线连接。

外部访问:

1、当访问人数不多时,可以根据地点不同直接访问A城的Commit服务器或B城的Edge服务器。

2、如果某地的访问人数较多时,可以考虑在当地搭建Proxy服务器,提高效能。 

5、大批量、大文件的管理

        现在的游戏越来越大,包含的文件越来越多,二进制文件也越来越大,Helix core可以支持大批量文件、图像、音频等格式的文件,而SVN和Git已经不能很好的满足这些需求。

5.1、共享存储方式节约存储空间

······