游戏开发者必看:Perforce Helix Core 的功能特点及游戏开发中的常用工具、典型用例介绍

news2024/11/15 4:13:47

「不出海,即出局」随着全球化的加速发展,企业出海已成燎原之势。日前,2024 亚马逊云科技出海全球化论坛在深圳成功举办。龙智携手 Perforce 亮相游戏行业展区,展示了Perforce Helix Core如何与主流游戏开发引擎高效集成,以及如何助力分布式团队协作,为游戏开发者提供强大支持。

此外,龙智客户服务总监李培受邀出席游戏出海分论坛,并发表「Perforce Helix Core 如何利用亚马逊云科技支持跨地域游戏开发」的主题演讲,分享 Perforce Helix Core 的功能特点、游戏开发中常用的工具及典型用例,以及进入云时代后,在游戏出海方面可提供的支持与服务等。

在这里插入图片描述

以下为演讲内容回顾(部分有删减):

Perforce Helix Core 概述

提及 Helix Core,大家可能会稍微有些陌生,但其实对游戏从业者来说,他们已习惯称其为 Perforce 或者 P4,这是在细分行业里一个非常耳熟能详的软件。作为 Perforce 旗下的一款高性能的版本控制软件,Helix Core 在游戏和芯片行业拥有广泛的用户群体,为什么在这两个行业有广泛应用呢?主要因为游戏和芯片行业面临着比较大的版本管理的挑战,其他行业使用的 Git 或 SVN 在这两个行业的某些场景下是难以胜任的,而 Perforce Helix Core 可以为其提供有力的版本管理的支撑。

高度可伸缩性

对于 Perforce Helix Core 的特点,首先是部署极为简单,初始安装仅需要 5 分钟,在当前软件爆炸的时代,Perforce Helix Core 其实是一款比较精巧、简单而强大的一个工具。只有两个文件就可以完成非常强大的任务。其次是原生支持分布式部署,有些版本控制工具,比如 Git 发行版,若想支持分布式部署可能需要购买许可,而不是免费的。另外,Perforce Helix Core 非常容易扩展,从小团队到大团队,可以实现平滑过渡。

高速存取
第二个特点可能是很多客户选择 Perforce Helix Core 的初心,特别对于一些 3A 游戏,一个分支可能就上百 G,加上历史版本,数据可能超过 T 类级别。此时就需要一个强大的版本管理工具来完成版本管理的任务。

Perforce Helix Core 首先可以高速存取,支持多线程的上传下载。它还可以按需获取,我们知道 Git 是是按整库取下来的,而 Perforce Helix Core 可以按文件获取,即需要哪个文件就获取哪个文件。另外它没有本地的管理目录,这是它和 SVN、Git 的不同之处。当工作区的数据较多时,隐藏的管理目录实际上也会占据很多空间,使用 Perforce Helix Core 则没有这种问题。另外 Perforce Helix Core 支持大数据量,可以支持客户上百 TB 的数据。此外也原生支持大文件,对于单个特别大的文件,比如上传一个几十 G 的视频文件,Perforce Helix Core 都可以轻松应对。

文件级粒度权限管理

文件级的粒度权限管理也是 Perforce Helix Core 与其他产品的显著区别。相较而言,Git 通常是项目级,SVN 也只是文件夹级别。Perforce Helix Core 可以基于 IP 来进行访问控制,这实际上也有一些现实用例,比如说在不同的区域允许访问不同的服务器,都可以基于此功能来实现。Perforce Helix Core 还支持审计日志。比如很多大型公司会设有安全团队,他们可能会来项目组检查并要求证明所使用的系统未被非法访问,此时审计日志的功能就显得非常重要了。

便捷强大的分支管理

Perforce Helix Core 具有多种分支管理方式,一种是传统的 local 类型,该类型比较符合常规的对分支管理的类型分支;另一个是 Stream 类型,是专门为增强的分层管理开发的一个管理方式;第三种是 graph,类似于 Git 的使用方式,实际上 Perforce 也可以兼容 Git 的使用方式,只是以集中式为主。

另外,Perforce Helix Core 支持分支及模块的组装,以解决不同模块迭代速度不同所带来的问题。这是一个非常实用的功能。举个例子,比如一个游戏开发往往可能分几个模块,一类是美术团队,一类是维护引擎(引擎有可能自己要做一些微调或者适配),还有就是代码团队,即程序员团队。这三个模块的迭代速度是不一样的,可能有的模块一天要改 8 次,有的则是几个月改一次,迭代速度必定不同。如果我们把这些上百 G 的项目综合到一起,我开一个分支,就是 100G 的控制数据,那你的服务器上面数据就会很多。此时,我们就可以按不同的模块来组织分支,即可以把美术资源、引擎和代码分别拆分成三个模块,各个团队按需去使用各个模块的各个版本,然后通过 Stream 把这些分支组装起来。

说了分支的组装之后,自然又会带来一个问题:组装错了怎么办?比如美术团队要求使用我的 1.0 版本,但是有人把这个分支定义修改了,导致我版本用错,那么产生的后果谁来承担?为了解决这一问题,Perforce Helix Core 在比较新的版本里加入了对分支定义的权限控制,即需要有权限才能修改该分支的组成、模块等内容。

另外,Perforce Helix Core 支持分支合并历史及分支关系的图形化查看,该功能也非常实用,且相较于 Git 工具,Perforce Helix Core 的图形化展示更加清晰直观。

与其他软件集成

在游戏行业这一重要领域,Perforce Helix Core 可以与 Unreal、Unity 等主流的游戏引擎工具实现天然集成,使得游戏开发者能够无缝地使用 Perforce Helix Core 进行版本控制。此外,Perforce 还支持与 Photoshop、3Ds Max、Maya 多款美术工具以及上下游的变更管理自动化工具进行集成。

游戏行业的典型用法

我们知道,游戏行业具有高度的保密性,尽管我们服务的客户中不乏一些国内的头部企业,但出于对客户隐私的尊重,不便透露过多细节。这里我们就一些通用的用例进行介绍。

Perforce 游戏开发工具集
首先 Perforce 提供了一些游戏开发相关的工具集:

Helix Plan 敏捷计划工具:轻量化的敏捷变更管理工具,用于制定计划及变更控制;

Helix Core 版本管理工具:是我们目前重点介绍的工具,主要用于版本管理,其功能特点已在前文详细介绍;

Helix Swarm 代码评审工具:与 Helix Core 搭配使用,主要用于代码的评审,以及辅助进行一些文档和某些图片格式的评审;

Helix DAM 数字资产管理工具:近两年新开发的一款数字资产管理工具,用于满足游戏行业的数字资产管理,包括音频、视频、动画以及一些常见的图片格式等资产,实现诸如搜索、自动分类、在线预览、评审等管理,同样与 Helix Core 搭配使用;

Helix 4Git 使 Git 能与 Helix Core 协作:使用相对较少,对 Git 和 Helix Core 比较熟悉的客户会更多地使用这一工具。具体来说,我们知道引擎代码是存在 Git 上的,而有些代码在 Perforce 上,构建时就需要把 Git 侧的代码提交到 Perforce,才利于统一构建,但同时也要兼顾到一些用户的习惯问题。Helix 4Git 就是用于解决这一问题,使用该工具,用户可以在 Git 侧进行工作和修改,同时可以把 Git 仓库映射到 Perforce,在 Perforce 侧只读访问,从而实现在同一个工作区里完成构建。

使用 Stream 管理分支
对于刚开始使用 Perforce Helix Core 的新客户,他们可能会选择使用 local 类型来管理分支。然而,随着项目规模的扩大,比较大型的厂商通常会选择使用 Stream 类型的仓库来管理分支。其好处在于,Stream 类型原生支持了预定义的分支类型和分支深度,有效避免了因误用而引发的混乱。此外,Stream 类型还提供直观的图形化界面支持,使得分支关系一目了然。

比如前面已经提到的,可以将游戏开发中的不同模块组装起来,通过分支组装来简化团队协作,减轻服务器负荷,从而降低管理开销。

值得一提的是,分支的组织应在迁移到 Perforce Helix Core 之初就进行规划。一旦游戏开发进入正轨,数据量庞大且团队忙碌时,再对分支进行调整就会变得十分困难。

其他常见用法
一个是使用 Perforce Helix Core 支撑持续迭代。随着游戏行业对持续提升和持续发布的需求日益增长,有些公司可能每小时就要迭代一次,每一次或许都是上百 G 的数据。据我所知,一些比较好的游戏公司甚至会设置专门的岗位,比如 DevOps 开发工程师,来完成这些工作。对于如此庞大且繁重的迭代任务,就要求有一个高效的版本控制工具来支撑大量的数据操作。Perforce Helix Core 凭借其强大的功能,能够轻松应对每次迭代可能涉及的上百 G 的数据量,确保团队能够高效地进行开发和发布。同时,对于已经实现快速迭代的团队,通过更细致的规划每次集成的任务,可以进一步优化开发流程,实现有目的的快速迭代。

另外,可能有一些比较喜欢钻研的同学会使用到 Helix 4Git 工具。他们通过 Helix 4Git 将原本可能在 Git 上的引擎代码或网络库代码,映射到 Perforce Helix Core 里面进行统一构建,并且可以享受这种企业级的统一的备份方案,这也是一项很好的实践。

此外,如我刚才所说,为了提高研发效率,会有一些专门的工具团队来开发各种帮助提升工作效率的工具。与 Perforce Helix Core 相关的是,我们提供全功能的命令行接口,图形界面能做的这个命令行全部都能做;提供 C++或 Python 等编程语言的接口,帮助开发者轻松定制开发流程,开发各种自动化工具。

跨地域协作

完善的跨地域支持
Perforce Helix Core 天然支持跨地域部署,无需额外许可,这是它在跨地域协作方面的一大优势,可以为分布在不同地区的团队提供高效协作的解决方案。

Commit Server 指的是一台集中服务器,一个集群里只能有一台,也可以说是主服务器。

Proxy 是一种低成本的跨地域实施方案,仅需一条命令即可启动,无需过多的维护成本,其主要作用是内容缓存。

Readonly Replica 主要实现自动备份,比如可以将云机器放在不同的机房以实现灾备,一个机房出现意外故障,另一个机房有完整备份,且备份过程无需人工介入,这也是一个很典型的应用场景。

Forwarding Replica 提供了更灵活的功能,除了具备 Readonly Replica 的备份功能外,它还能分担负载,同时允许用户直接访问。

Edge Server 是比较现代化的解决方案,更多应用于跨国部署的场景。它拥有独立的一部分控制数据,通过在海外部署 Edge Server,无需国内主服务器的介入,当地员工即可进行下载。

在部署原则方面,一个是要靠近用户部署下游服务器来优化用户访问的速度;其次,在跨国团队协作时,还需要考虑数据过滤和权限控制等问题,Perforce Helix Core 的 Replica 技术能够支持数据过滤,确保只有指定的目录被复制到海外供当地用户使用;另外,通过细致的权限控制则可以限制用户访问的服务器内容,确保数据的安全性。

在服务器集群间的数据同步方面,Perforce Helix Core 也提供了多种解决方案,包括 Remote Depot、Zip / Unzip 以及 DVCS 等,这些方案能够帮助团队实现国内外主服务器之间的数据传递和同步。

亚马逊云科技支持

亚马逊云科技支持全球 33 个区域,每个区域包含多个 Azs(可用区),每个 Azs 拥有一个或多个数据中心,具备天然的容灾特性,地域、网络设备均是相互隔离的。这些设施为我们提供了坚实的基础架构支持。

与我们业务紧密相关的是其强大的机器性能和存储能力。例如,当我们面对动辄上百 T 的数据存储需求时,若采用传统方式购买磁盘柜,不仅成本高昂,而且无论是否充分利用,成本都是固定的。而采用云存储方案,则可以根据实际的使用情况灵活购买和扩容,如初始购买 5TB,随后根据需要逐步扩展,这种灵活性是云存储的显著优势。此外,一些客户也可以利用云上的负载均衡特性等。

使用亚马逊云科技存储支持

在云上部署开发环境或存储数据时,我们可以根据需求选择不同类型的存储介质。对于控制数据和日志,可以使用高性能的 SSD 存储;而对于仓库数据,由于其连续性较高,可以选择速度稍慢但成本更低的机械式硬盘存储。

值得一提的是,Perforce Helix Core 现已原生支持 S3 存储,这对于 Archive 仓库的管理尤为有利。当我们拥有大量旧版本数据,既不敢轻易删除,又想节省存储成本时,S3 存储便是一个理想的选择。此外,云存储还具有易于清理、扩容、加密和备份的特性,如 Depot 仓库中的设计文件,我们可以选择加密存储以确保数据安全。相较于自行实现这些功能,云上提供的天然选项无疑更为便捷,大大减少了我们的工作量。

部署策略

部署策略方面也有多种选择。一种是 Perforce 托管,全部由 Perforce 来部署和管理,用户直接使用即可,该种适用于 50 用户以下。其次是自有部署,可以自行选择部署在云上或者机房,然后由 Perforce 远程运维。三是对于 50 用户以上的,可以选择由专门的云服务商来托管。最后一种是部分上云、部分本地部署,这一类是我接触比较多的部署方式。比如对于刚刚建立了海外工作室的国内开发团队,就可以采用部分上云。在云上部署一个 Edge,但主服务器还在国内的本地机房,远程用户就可以通过 Edge 来跟国内团队进行协同开发。

龙智服务

最后介绍一下我们龙智服务。龙智作为 Perforce 中国授权合作伙伴,深知国外产品在服务与支持方面面临着语言障碍、时差等挑战,为此,我们在竭力将国外领先的软件产品引入中国的同时,也致力于为中国用户提供更加全面、高效的本土化服务。

专业的技术支持

我们拥有一支专业的服务团队,具备深厚的行业经验和专业技术知识,能够迅速响应客户需求,解决各类问题。

灵活的服务方式

对于一般问题,客户可以通过各种即时通讯随时联系我们,并得到快速解决;对于复杂或需要深入调查的问题,我们也会主动收集所需资料,并与原厂进行沟通,确保为客户提供及时、有效地支持。

丰富的服务内容

除了日常的技术支持,我们也根据客户的具体需求,提供线上线下培训、现场交流等多种形式的服务,帮助客户更好地理解和使用 Perforce Helix Core。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1596443.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自己开发的App如何上架,详细解读App上架操作流程

对于企业或个人开发的App,上架是必经之路。然而,许多人不清楚如何进行App上架。工信部在2023年规定,App必须备案才能上架。那么,让我们一起了解App上架流程吧。 1. 准备上架所需材料 在上架App之前,需要准备应用图标…

如何在OceanBase v4.2 中快速生成随机数据

在使用传统数据库如 MySQL 和 Oracle 时,由于缺乏多样化的随机数据生成方案,或者实现成本过高,构造随机数据的开发成本受到了影响。OceanBase在老版本中虽然有相应的解决方案,但语法复杂和性能较差等问题仍然存在。 现在&#xf…

医学图像分割入门-UNet理论与实践

U-Net: 用于图像分割的深度学习网络 引言 在计算机视觉领域,图像分割是一项重要的任务,旨在将图像中的每个像素分配到预定义的类别或区域。传统的图像分割方法通常基于手工设计的特征和启发式算法,但随着深度学习的发展,基于深度…

负载均衡(理解/解析)

目录 什么是负载均衡 应用场景 网络服务和应用: 云计算和虚拟化: 负载均衡分类 硬件负载均衡器 软件负载均衡器 部署方式 硬件部署: 软件部署: 云部署: 路由模式: 算法实现 轮询法(Round R…

java学习——消息队列MQ

上一篇传送门:点我 目前只学习了RabbitMQ,后续学习了其他MQ后会继续补充。 MQ有了解过吗?说说什么是MQ? MQ是Message Queue的缩写,也就是消息队列的意思。它是一种应用程序对应用程序的通信方法,使得应用…

Apache Zeppelin 命令执行漏洞复现(CVE-2024-31861)

0x01 产品简介 Apache Zeppelin 是一个让交互式数据分析变得可行的基于网页的开源框架,Zeppelin提供了数据分析、数据可视化等功能, 0x02 漏洞概述 Apache Zeppelin 中代码生成控制不当(“代码注入”)漏洞。攻击者可以使用 She…

Springboot集成Ehcache3实现本地缓存

如果只需要在单个应用程序中使用本地缓存&#xff0c;则可以选择Ehcache&#xff1b;它支持内存和磁盘存储&#xff0c;这里不以注解方式演示&#xff0c;通过自己实现缓存管理者灵活控制缓存的读写&#xff1b; 1、引入相关依赖 <!-- ehcache3集成start --><depende…

蓝色系UX/UI设计求职面试作品集模版figmasketchPPT可编辑源文件

页面数量: 20P 页面尺寸:1920*1080PX 交付格式&#xff1a;figma、sketch、PPT 赠送文件&#xff1a;24款高质量样机&#xff08;PSD格式&#xff09; 该作品集虽然只有20页&#xff0c;但可根据需求复制作品集里已有的页面作为模版来扩展您的设计项目 该作品集模版可编辑可修…

MySQL (索引 事务)

索引 索引是一种特殊的文件, 包含着对于数据库里所有数据的引用指针. 可以对表中的一列或多列创建索引, 并指定索引类型, 各类索引有各自的数据结构实现 索引的目的在于 快速定位, 检索数据 索引可以提高 查找 效率, 但会增加 增删改 的开销 索引创建好之后, 每次调用 查询操作…

探索顶级短视频素材库:多样化选择助力创作

在数字创作的浪潮中&#xff0c;寻找优质的短视频素材库是每位视频制作者的必经之路。多种短视频素材库有哪些&#xff1f;这里为您介绍一系列精选的素材库&#xff0c;它们不仅丰富多样&#xff0c;而且高质量&#xff0c;能极大地提升您的视频创作效率和质量。 1.蛙学网 蛙学…

华火电焰灶全国经销商加盟_优势怎么样_费用多少_华焰天下

随着科技的不断进步&#xff0c;电焰灶作为现代厨房的重要设备&#xff0c;其市场需求持续增长。华火电焰灶&#xff0c;凭借其独特的技术优势和广泛的市场前景&#xff0c;吸引了众多投资者的目光。本文将从华火电焰灶的优势、加盟费用以及华焰天下的机遇三个方面&#xff0c;…

【gdb调试】在ubuntu环境使用gdb调试一棵四层二叉树的数据结构详解

目录 &#x1f31e;1. 整体思路 &#x1f31e;2. 准备内容 &#x1f33c;2.1 配置.c文件 &#x1f33c;2.2 准备测试程序 &#x1f33c;2.3 GDB调试基础 &#x1f31e;3. GDB调试四层二叉树 &#x1f33c;3.1 测试程序分析 &#x1f33c;3.2 gdb分析 &#x1f33b;1. …

OpenHarmony轻量系统开发【3】代码编译和烧录

3.1源码目录 下载完代码后&#xff0c;大家可以进入代码目录&#xff1a; 这里重点介绍几个比较重要的文件夹&#xff1a; 1 vendor文件夹 该文件夹存放的是厂商相关的配置&#xff0c;包括组件配置、HDF相关配置&#xff0c;代码目录如下&#xff1a; 可以看到有hisilicon文…

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略

LLMs之ToolAlpaca&#xff1a;ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略 目录 ToolAlpaca的简介 0、《ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases》翻译与解读 1、数据集列表 2…

连续上榜!Coremail连续十一次入选《中国网络安全行业全景图》

4月12日&#xff0c;国内专业权威咨询机构——安全牛&#xff0c;正式发布第十一版《中国网络安全行业全景图》&#xff08;以下简称“全景图”&#xff09;。该全景图包含了16项一级安全分类&#xff0c;108项二级安全分类&#xff0c;共收录454家网络安全厂商。 Coremail作为…

【保姆级】2024年OnlyFans订阅指南

OnlyFans是一个独特的社交媒体平台&#xff0c;它为创作者和粉丝提供了一个互动交流的空间。通过这个平台&#xff0c;创作者可以分享他们的独家内容&#xff0c;而粉丝则可以通过订阅来支持和享受这些内容。如果你对OnlyFans感兴趣&#xff0c;并希望成为其中的一员&#xff0…

D365开发-在视图按钮的js里,引用别的js里的公共方法

公共方法写法&#xff1a; "use strict"; var JJMC window.JJMC || {}; JJMC.SamMCommon JJMC.SamMCommon || {}; (function () { this.cloneRecord function (excludeAttrbuteNames){ / } }).call(JJMC.SamMCommon); 然后在需要调方法的command里面&#xff0c;之…

PNPM 8管理Node版本,卸载了旧版本Node找不到PNPM

前言 用 pnpm env 来管理 node 的版本&#xff0c;安装了新版本之后&#xff0c;卸载了之前的旧版本&#xff0c;调用 pnpm 报错 异常截图 解决方式 从终端获取报错文件到路径&#xff0c;进入编辑修改错误的 node bin 路径为正确的 node 启动路径即可也就是修改 "/Use…

vite+vue3+antDesignVue 记录-持续记录

记录学习过程 持续补充 每天的学习点滴 开始时间2024-04-12 1&#xff0c;报错记录 &#xff08;1&#xff09;env.d.ts文件 解决方法&#xff1a; 在env.d.ts文件中添加以下代码&#xff08;可以看一下B站尚硅谷的讲解视频&#xff09; declare module *.vue {import { Defi…

SpringBoot基于RabbitMQ实现消息延迟队列方案

知识小科普 在此之前&#xff0c;简单说明下基于RabbitMQ实现延时队列的相关知识及说明下延时队列的使用场景。 延时队列使用场景 在很多的业务场景中&#xff0c;延时队列可以实现很多功能&#xff0c;此类业务中&#xff0c;一般上是非实时的&#xff0c;需要延迟处理的&a…