DevOps与GameDev软件工程

什么是DevOps和GDSE?

敏捷的软件工程方法论中的DevOps 。 该术语的起源来自“ 发展 ”和“ 运营 ”,其目标是打破两者之间的隔wall。 它使用自动化工具进行构建,持续集成,部署,日志记录和监视。 自动化确保快速连续的交付。

另一方面, GDSE代表游戏开发软件工程 ,是一个相当新的名词,实际上,尚无任何开发策略或最佳实践集可以对游戏开发进行全面探讨或解释。 因此,它还不是像DevOps这样的可靠方法。 这是一个比较模糊的概念,将声音,艺术,控制系统,人工智能(AI)和人为因素结合在一起,使游戏开发实践在某些方面不同于传统的软件开发

DevOps是一种整体文化

DevOps也是一种相当年轻的方法。 从2009年开始,DevOps便得到了推广并进入了主流用途,从那时起它已经发展成为一种整体文化。 但是GDSE是一个尚未开发的领域,互联网甚至还没有为它提供定义。 GDSE仅提供游戏开发过程的指南,而不提供像软件开发这样的特定工具或框架集(主要用于Web开发),而是针对游戏开发的特定工具或框架。

DevOps和GDSE中的功能

让我们比较一下DevOps和GDSE的主要功能。

DevOps是一种灵活的方法,它使用自动化, 持续集成和交付 (尽可能使用自动化交付新版本的软件进行生产)。

另一方面,GDSE是一种不断发展的游戏开发方法,其目标是在一个非常复杂和竞争激烈的领域中实现可维护性,灵活性,更低的工作量和成本以及出色的设计 。 它还没有一套规则,因此传统软件工程中使用的许多工具也可以在游戏开发中使用。

GDSE可以从DevOps方法中受益

DevOps将创新产品和功能更快地推向市场,这是GDSE面临的最大挑战之一

DevOps已经成为将创新产品和功能更快地推向市场的范例,这是GDSE面临的最大挑战之一,在激烈的竞争和极端的市场需求驱使公司减少开发流程时间的情况下,它们可以率先进入市场 。 这当然会影响视频游戏软件的质量。

游戏开发涉及许多原型设计和迭代过程。 与DevOps类似,游戏开发可以进行持续集成并发布新版本的软件,例如在线多人游戏中不断的新功能和版本,以保持玩家的参与度和兴趣。

DevOps的持续交付 缩短了上市时间,这对游戏开发至关重要,并允许敏捷实践和快速的消费者反馈 ,这对游戏开发也同样重要,从而确保了质量和持续的功能安全性。

GDSE是有风险的业务

当时间至关重要时,安全性和安全性并不是游戏开发人员的首要任务。 没有一套规则会导致很多不必要的工作,开发人员之间的不幸和误解,最终导致产品质量低,生产时间长,成本效益高的失败项目。

GDSE被发现具有很高的挑战性,因为游戏技术(例如游戏平台和游戏引擎)变化迅速,并且制作可能涉及跨职能团队,包括设计师,软件开发人员,艺术家,音乐家,脚本作者等。 没有良好的框架,GDSE目前无法提供这种风险,使产品变得非常混乱。

DevOps试图简化和组织软件生产过程。 该流程旨在通过自动化和适当的技术更好地集成开发,生产和运营业务流程。

DevOps的四大挑战

尽管GDSE有很多可以从DevOps中学习的知识,但这并不容易。 所有DevOps项目都面临四个主要相关挑战

  • 将复杂的体系结构和功能集分解为小块,可以独立生产和部署
  • 维护配置和构建环境,以提供对部署内容,版本和依赖项的持续可见性
  • 引入源自遗留应用程序生命周期管理或产品生命周期管理环境的专用开发和生产环境
  • 桥接传统上孤立的开发文化(由于操作的彻底性,人们将其视为繁琐而昂贵的操作)和操作(开发人员将其视为快速而肮脏的)

尽管存在挑战,但如果有可能在现场向DevOps方向发展还是值得的。

解决团队合作问题

DevOps(以及GDSE)中有跨职能团队,致力于持续交付操作功能,从而更快,不断地带来价值。

DevOps强调减少在团队成员之间沟通不畅造成的问题,并在开发的早期阶段定义缺陷。 在功能开发期间进行较少的更改,以及由于质量问题而导致的返工减少,从而提高了投资回报率。

成功的项目证明了DevOps方法的效率。 他们确实需要超越代码知识的扩展技能,包括数据库管理和开发人员的测试。 寻找熟练工人可能是一个挑战。

在游戏开发中也是如此,但由于该领域的实验性质,要求可能不会很高,在该领域中,您还可以随着学习而学习新事物。 由于该领域没有最佳实践集,因此最佳实践仍有待发现。 这是一个可以看到增长的领域。

主要阶段

GDSE分为三个主要阶段

  1. 预生产
  2. 生产
  3. 后期制作

在预生产阶段,开发人员开始测试目标游戏方案的可行性,包括需求工程营销策略。 生产阶段包括具有声音和图形的计划,文档和游戏实施方案。 最后但并非最不重要(尽管研究最少)的后期制作阶段包括测试,营销和游戏广告。

在DevOps中,有五种不同的自动化工具: 构建持续集成,部署,日志记录和监视工具。 这些工具描述了DevOps生产方法的三个阶段

  1. 建造
  2. 部署
  3. 运作

在构建阶段使用构建和持续集成工具。 部署阶段使用了部署工具。 最后,在操作阶段使用日志记录和监视工具。 DevOps和GDSE这两种方法都有三个阶段。 GDSE流程更像是从头到尾的生产,而DevOps似乎根本没有终点。 只有一个连续的无尽循环。 在某些情况下,MMO(大型多人在线)游戏在生产没有尽头的情况下似乎更类似于DevOps。

当GDSE有时不明确时,DevOps非常简单:计划,创建,验证,打包,发布,配置,监视并重新开始。 在DevOps进行连续测试的同时,GDSE一直等到后期制作才能执行此测试。

记录并监视尽可能多的信息

DevOps循环结束时的一项重要操作是基础架构监视。 DevOps鼓励记录和监视尽可能多的信息。 监视诸如CPU负载,RAM分配,网络流量统计信息,内存消耗和可用磁盘空间可用性之类的内容,可使组织在影响关键业务流程之前识别并解决IT基础结构问题。 对于公司而言,关键的是低级工人可以在发现基础结构中的问题时警告管理员,以便管理员可以采取纠正措施。

在哪里使用?

DevOps的应用领域很多,但它们需要满足其特定要求。 同样,要介绍给公司也不容易,因为它会影响整个运营。 该方法必须与企业的基本运营原则相结合。 它必须是公司的基础云和Web开发是DevOps实践的早期采用者,可以作为其他领域的指南。

GDSE是一个广阔的领域,因为它们可以运行各种不同的游戏类型和平台。 GDSE更为明显,但也涉及公司的基本使命,这意味着要重点在于快速制作高质量的视频游戏并响应客户或观众的需求。 GDSE的应用领域只是视频游戏。 电子游戏具有各种平台,例如街机,控制台,个人计算机,手持设备,移动设备,在线和网络。

游戏业不仅存在于娱乐领域存在于教育 ,锻炼,模拟,仿真以及一些但很少见的游戏性游戏,它们是一种以竞技为生的运动。 GDSE必须使用这些类型的应用程序领域。

DevOps的应用程序领域可以满足一系列具有架构重要性的要求(ASR),例如:可部署性,可修改性,可测试性和可监视性。 它主要用于Web开发。 由于游戏开始越来越关注在线功能,因此甚至有一些DevOps游戏工程师,也称为“网络工程师”或“ Web服务工程师”。 发布频繁的公司可以从DevOps中受益。 例如,运营图像托管网站Flickr的公司开始转向DevOps,以支持每天进行十次部署的业务需求。

对于嵌入式系统,DevOps并不是很好,因为必须连接设备,因此机器对机器通信和物联网体系结构将是必需的。 对于某些领域,例如医疗或航空航天应用,它也不是足够安全。

一种生活方式

DevOps需要某种业务,因此它不仅是一种使用的方法,而且还需要组织文化的转变 。 这是敏捷原则,适用于整个企业,整个文化,这是很难驾驭的,但是如果成功的话,就值得在有效性上加以利用。 DevOps有一个活跃的社区,它本身就是个玩笑。

同样,GDSE拥有热情的人们,他们致力于在快速的世界中创造新事物。 在游戏行业,我发现游戏和开发游戏确实是一种生活方式。