Perforce Helix Core 在游戏行业的应用

2 在虚幻4中使用Helix Core。1)可以在编辑器中直接连接 Perforce 服务器,只需点击 工具栏 的 版本控制 按钮:

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

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

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

1、游戏开发的基本流程

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

Perforce Helix Core 在游戏行业的应用

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

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

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

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

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

需求

预备阶段

原型阶段

发布阶段

迭代阶段

版本管理

权限管理

多个团队素材的构建

协同开发

分支管理

大文件的管理

预备阶段,参与的人员较少,文档也比较少,配置管理只需要考虑文件的版本管理和权限管理就可以(Perforce Helix Core、SVN、Git等都可以满足需求)。原型阶段,策划、美工、开发等多团队同时进行工作,需要考虑不同团队的素材的取得及构建(Perforce Helix Core可以很好的管理多个团队的工作)。

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

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

2.1 版本管理

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

2.2 权限管理

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

  • 可以设定目录的权限
  • 可以为单个文件设定权限
  • 可以将目录的权限管理或者用户组的权限委托给非管理员用户
  • 可以限定访问的客户端的IP地址范围
  • 可以以组为单位设定权限,并支持子组

2.3 组装模块和分支管理

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

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

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

Perforce Helix Core 在游戏行业的应用


2.4 协同开发

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

多区域服务器架构示例:

Perforce Helix Core 在游戏行业的应用

内部访问:

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

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

外部访问:

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

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

2.5 大批量、大文件的管理

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

2.5.1共享存储方式节约存储空间

若素材体积较大,超出了经济的客户机存储配置,则可以考虑将只读的大量素材下载(p4 sync)到一个共享文件存储器上(NFS等),Client机器仅在修改文件时才需要将涉及到的部分数据复制到本地,这种复制可以根据文件路径直接从p4服务器上sync,也可以从share storage上复制(复制后通知p4 服务器)。客户机本地修改后直接提交到p4 server上,之后share storage可以从p4 server上增量sync到最新修改。Helix core的workspace特性允许灵活的定义服务器上文件与本地文件的映射关系,这使得这种部署方式易于实现。

Perforce Helix Core 在游戏行业的应用

2.5.2 stream切换方式节约存储空间

若项目有多个分支,且每个分支较大(如:每个分支有数百G数据),而客户端可能需要在几个分支上工作,若将每个分支都保存在本地,则存储空间可能存在瓶颈。这种场景下,可以在同一工作区上使用切换分支功能来节约存储空间(p4 switch 命令)。

Perforce Helix Core 在游戏行业的应用

如上图所示:客户端机器仅使用一个工作区,不同时刻可以对应于不同的stream(分支),则工作区的存储空间仅需占用一个分支的大小。

说明:

1.切换分支时需要从服务器上获取两分支间文件的差异部分,两分支间的差异越大,则切换时消耗的时间可能越多。

2.切换到新分支前,需要对当前分支的修改需要提交,或者放弃,或者暂存。

2.5.3 对比测试

以下是Helix Core 和SVN的大数据量测试对比:

Perforce Helix Core 在游戏行业的应用

Perforce Helix Core 在游戏行业的应用

3、使用Stream来管理游戏开发


我们通过开发1个2D的空战小游戏来演示怎么利用Stream来开发1款游戏。

3.1游戏开发需要的资源

下面是1个简单的游戏需求的资源(部分)的列表,主要包括引擎、美术、音频及程序等。

1)引擎及框架

  • 2D引擎 代表:Cocos 2D等
  • 3D引擎 代表:Unity 3D、虚幻引擎、Cry Engine 3、Egret等

2)美术/音频资源

  • 静态图片
  • 动画
  • 模型
  • 资源包
  • 音频编辑器

3)程序资源

  • 代码另外,游戏开发中,也有策划人员、架构师、设计人员、开发人员、测试人员等各种角色。

3.2游戏开发的Stream构成

首先策划人员提出需求后,架构师根据需求选定cocos2d作为开发引擎。

引擎、资源、程序开发分别用不同Main Stream来管理。

程序开发Stream通过import设定引用引擎Stream和资源Stream的内容。

Perforce Helix Core 在游戏行业的应用

3.3 预备阶段

策划人员前期做游戏的策划,并将策划文档放在Main Stream

Perforce Helix Core 在游戏行业的应用

Perforce Helix Core 在游戏行业的应用

3.4 原型阶段

3.4.1创建引擎的Main Stream

给架构师创建引擎及框架用Main Stream。

注:引擎Stream只管理和引擎相关的资源。

Perforce Helix Core 在游戏行业的应用

导入引擎的相关资源

Perforce Helix Core 在游戏行业的应用

3.4.2 发布引擎的1.0版本

确认没有问题后,可以从引擎的Main Stream发布引擎的1.0版本(framework-1.0)

Perforce Helix Core 在游戏行业的应用

3.4.3 创建资源的Main Stream

给美工团队(开发人员、测试人员)创建资源的Main Stream,美工团队就在资源的Stream里工作。

注:资源Stream只管理和美术/音频等相关的资源。

Perforce Helix Core 在游戏行业的应用

3.4.4 在游戏开发Stream里引用其它Stream

在游戏的开发Stream里只要有代码的部分,引擎资源和美术/音频资源可以通过Stream的设定来引用。

Perforce Helix Core 在游戏行业的应用

Perforce Helix Core 在游戏行业的应用

主分支定义好以后,从主分支创建的测试分支、开发分支以及发布分支都可以继承主分支的目录结构,还可以指定需要的版本。如以下的flightfight_dev Stream里指定了资源数据取资源包里的changelist 号90的内容

Perforce Helix Core 在游戏行业的应用

Perforce Helix Core 在游戏行业的应用

3.4.5 使用游戏开发Stream的工作区

开发人员/测试人员在使用flightfight_main Stream的工作区里可以将引擎和资源的内容同步到本地硬盘。

Perforce Helix Core 在游戏行业的应用

Perforce Helix Core 在游戏行业的应用

通过引用,不同的团队可以并行开发,而且可以指定引用的具体版本。

3.4.6 发布Alpha版

原型验证没有问题后,可以发布游戏的Alpha版。

Perforce Helix Core 在游戏行业的应用

3.5 发布阶段

3.5.1 创建引擎的测试Stream和开发Stream

为测试人员创建引擎的测试Stream:

framework_test

为开发人员创建引擎的开发Stream:

framework_dev

开发人员完成开发后将最新代码从开发Stream更新到测试Stream。

Perforce Helix Core 在游戏行业的应用

3.5.2 创建资源相关的Stream

给美工团队(开发人员、测试人员)创建资源的Main Stream及测试Stream、开发Stream,经开发、测试后发布资源的1.0版(resource-1.0)

Perforce Helix Core 在游戏行业的应用

3.5.3 创建程序开发相关的Stream

同样,我们给程序开发团队创建程序开发用测试Stream及开发Stream。

Perforce Helix Core 在游戏行业的应用

当开发/测试完成后,可以发布游戏开发的Beta版。

Perforce Helix Core 在游戏行业的应用

4总结

随着游戏开发的团队规模变大,程序也越来越复杂,不同的团队开发不同的模块(引擎、美术资源、音频资源、程序等),推荐使用Helix Core的Stream来做整体的游戏开发管理。

不同模块创建独立的Main Stream,团队只负责本团队的开发、测试并发布版本,并可根据需要引用其它团队的发布版本,甚至可以是测试中的版本。实现并行开发,提高整体的开发效率。

开发人员只在开发Stream上工作,测试人员只在测试Stream上工作,项目经理可以在所有Stream上工作,发布Stream只管理稳定的发布版,可以确保不同人员只操作自己相关的内容,确保安全性。

5参考

5.1 在Unity中使用Helix Core

1) 先把项目拖入到工作空间,在打开项目选择Edit->projectSetting->Editor选择之后看右边属性栏选择Perforce

Perforce Helix Core 在游戏行业的应用

2)填入user数据,点击连接

Perforce Helix Core 在游戏行业的应用

3)此处出现红点,证明连接成功(服务器上没有数据,所以出现红点是提示更新)

Perforce Helix Core 在游戏行业的应用

5.2 在虚幻4中使用Helix Core

1)可以在编辑器中直接连接 Perforce 服务器,只需点击 工具栏版本控制 按钮:

Perforce Helix Core 在游戏行业的应用

2)打开后,选择 Perforce 作为软件版本管理软件的提供商,并输入登录验证信息。

Perforce Helix Core 在游戏行业的应用

注意:对于有些服务器,也包括很多云端的服务,可能会需要手动输入主机和密码信息才能在编辑器中访问 Depot,在 Perforce 的登录对话框中打开高级选项即能看到:

Perforce Helix Core 在游戏行业的应用

Perforce公司也关注到我们国内开发人员的需求,在国内也部署了其技术服务网点—上海龙智数码,可以为我们国内企业在 Helix Core 和 Helix Swarm 的使用及技术支持上提供帮助。

点击文末“了解更多”可进入龙智官网,欢迎咨询相关产品。更多DevOps解决方案可关注微信公众号「龙智数码」。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/84844.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信