新兴游戏引擎Godot vs. 主流游戏引擎Unity和虚幻引擎,以及版本控制工具Perforce Helix Core如何与其高效集成

游戏行业出现一个新生事物——Godot,一个免费且开源的2D和3D游戏引擎。曾经由Unity和虚幻引擎(Unreal Engine)等巨头主导的领域如今迎来了竞争对手。随着最近“独特”定价模式的变化,越来越多的独立开发者和小型开发团队倾向于选择Godot作为他们的首选游戏引擎。

本文,我们将跟随游戏和媒体娱乐方面的技术推广专家Ryan一起,深入了解Godot引擎的功能和局限性,探讨Godot与主流游戏引擎Unity和虚幻引擎的不同之处,以及这些游戏引擎为何高度依赖于版本控制系统——Perforce Helix Core

在这里插入图片描述

Godot是什么?

Godot引擎是一个跨平台、免费和开源的游戏引擎,用于创建2D和3D游戏以及应用程序。在宽松的MIT许可下,使用Godot引擎的游戏开发者能够拥有他们整个游戏的所有权,甚至包括至引擎代码的最后一行,并且没有版税或附加条件。Godot以其独特的节点和场景架构而闻名,用于表示特定的游戏功能。

Godot最初由一家阿根廷游戏工作室在2002年开发,并于2014年以开源形式发布。与Unity和虚幻引擎相比,使用Godot制作的游戏通常具有更简单的图形,但我很欣赏独立开发者在这些限制内创建各种类型的游戏,其中我最喜欢的一些是Ex Zodiac和Helms of Fury。
图片

Godot引擎的功能

Godot以其简单直观的设计从其他游戏引擎中脱颖而出。下面我将介绍使得Godot日益受欢迎的主要特点。

Godot编辑器
Godot附带一个游戏编辑器,其中包括代码编辑器、动画编辑器、瓦片地图编辑器、着色器编辑器、调试器、分析器等。游戏开发人员使用游戏编辑器创建节点——Godot游戏的最小构建单元。

多个节点组合构建为一个场景。在Godot中,场景可以是角色、武器、房屋、关卡等任何东西。这些场景随后可以被制作成功能齐全的组件,设计师可以在编辑器中处理这些组件。

Godot编码工具
Godot的另一个特点是允许团队成员使用他们最熟悉的编程语言工作。使用Godot的游戏开发人员可以使用以下语言编写游戏代码:

GDScript:与Python类似,是Godot的集成脚本语言。适合编码不太熟练的初学者。
C#:一种流行的编程语言,也是Godot支持的主要语言之一。
C 或 C++:您可以在具有GDExtension技术的Godot中使用这些语言,以帮助您编写高性能的游戏代码。
Rust、Nim、Python和Javascript:Godot社区还为这些语言创建了语言绑定工具。

Godot引擎的优势

独立游戏开发者之所以越来越倾向于使用Godot代替Unity和虚幻引擎,有诸多原因。在这里,我将深入探讨Godot最令开发人员兴奋的几项优势。

Godot是2D和3D游戏的理想选择
Godot主要用于创建2D和3D游戏,具有专用于2D和3D的独立引擎。通过专用的2D管线,可以简化游戏逻辑,并以像素和屏幕坐标进行工作。此外,Godot内置的瓦片地图编辑器使得在2D世界中创建关卡变得简单且省时。

借助Godot,开发人员可以为各种设备创建3D游戏,包括台式电脑和中端Android手机。Godot还简化了导入3D模型的过程,可以直接将Blender文件导入到Godot编辑器中。

Godot是开源且免费使用的
Godot的一个显著优势是它在MIT许可下完全免费,无需额外费用或合同,使得创作者对他们在引擎中构建的游戏拥有全部所有权。

此外,由于Godot是开源的,用户在遇到任何问题时都可以轻松查找源代码。用户还可以添加插件工具或扩展引擎,以创建他们想要构建的游戏。

对于没有AAA工作室预算和资源的独立游戏及小型团队来说,这些都是改变游戏规则的功能。如果未来几年有更多免费和开源的游戏引擎出现——尤其是当游戏开发者开始寻找Unity和虚幻引擎的替代品时——我不会感到惊讶。

Godot由社区驱动
由于活跃的社区论坛,Godot开发人员优先考虑开发能够使大多数用户受益的功能。此外,由于Godot是开源的,来自Godot社区的600多名贡献者致力于优化和调试引擎。

Godot容易入门
一些流行引擎需要超过40GB的存储空间,我可以证实,即使像虚幻引擎或Unity这样的引擎也可能需要很久的加载时间,具体取决于您使用的计算机,以及您是否拥有编辑器的原始/未编译版本。另一方面,Godot的原生编辑器只有8GB的下载大小,便于轻松快速地构建游戏。
图片

Godot与Unity

Unity是最受欢迎的游戏引擎之一,当开发人员考虑在哪里构建游戏时,它通常是Godot的有力竞争对手。Unity由Unity Technologies开发,是一款跨行业使用的游戏引擎,在Android开发移动游戏方面享有盛誉。

与Godot类似,Unity的优势在于其开发2D和3D游戏的能力。无论是在Unity还是Godot内工作的开发人员,都可以使用C#编程语言来构建他们的游戏。

如果您在使用Godot或Unity制作下一款游戏之间进行权衡,需要考虑以下因素:

Unity采用分层定价模型和运行时费用
无论团队规模如何,Godot赋予创作者对其游戏的全部所有权。而Unity采用货币化模型,在该模型下,个人和小型组织可以免费使用Unity Personal,直达团队达到一定的收入门槛。此外,Unity还为学生提供免费选项。

对于规模较大的团队、企业和组织,他们可能需要使用较为昂贵的Unity Pro、Unity Enterprise 或 Unity Industry。此外,对于这些在付费计划中创建的用户,在游戏超过一定收入门槛后,他们可能需要支付Unity运行时费用。定价模式与Unity运行时费用相结合,是我看到游戏开发者不选择Unity的主要原因之一。

Unity拥有更广泛的资源
与Unity相比,Godot的社区更小,可用的资源和教程也更少。而Unity团队创建了大量资源,包括电子书、报告、案例研究和网络研讨会。

此外,Unity Asset Store拥有超过70,000个软件包,开发人员可以免费获取或购买以用于游戏开发。相比之下,Godot Asset Library只有不到3,000个资源,社区贡献较少。
图片

Godot与虚幻引擎

Godot另一个常见替代方案是虚幻引擎(Unreal Engine)。虚幻引擎由Epic Games于1998年开发,文档完善且易于使用,使其成为游戏和虚拟制片开发的主要工具。与Godot类似,虚幻引擎非常适用于构建3D游戏,并拥有活跃的社区论坛,开发人员可以在其中分享最佳实践。
下面我将探讨Godot与虚幻引擎的一些不同之处。

虚幻引擎是程序员和设计师的理想之选
虚幻引擎以其直观的蓝图可视化脚本系统脱颖而出,对设计师而言更加友好且易于使用。使用虚幻引擎的程序员也可以使用C++来构建游戏,使UE成为两者都友好的引擎。

相比2D和手机游戏,虚幻引擎更适合3D游戏
Godot引擎的核心优势之一是能够创建高质量的2D和3D游戏,并为它们提供不同的引擎。尽管虚幻引擎确实有Paper 2D——一个基于sprite的2D游戏系统,但它的优势在于能够创建3D游戏和模型的能力。

虚幻引擎广泛用于电影和动画
Godot引擎的影音制作模式和动画功能使其能够用于电影和动画的制作,但这些都是较新的功能,使用较少。相比之下,虚幻引擎已被用于制作超过550部重要电影和电视剧集。此外,虚幻引擎5(UE5)使虚拟制片变得更加容易,让业余爱好者和初学者都能够创建高质量的图形和媒体。
虚幻引擎已经颠覆了媒体和娱乐行业,并真正处于突破性变革的边缘。基于我在游戏行业的经验,看到游戏引擎技术在各行各业的转型和广泛应用,真是令人难以置信。艺术家/开发者等人才现在可以转换于各个行业,因为工具链是相似的。
图片

Godot和Perforce

无论您是在权衡Godot与Unity,还是Godot与虚幻引擎,您都需要一个合适的基石来无限创作。许多使用Godot、Unity和虚幻引擎的团队都依赖于像Perforce Helix Core 这样的版本控制系统,来存储和跟踪所有数字资产的更改。

Perforce Helix Core是极具可扩展性的版本控制工具
在20家顶尖AAA级游戏工作室、独立团队和屡获殊荣的视觉特效(VFX)公司中,有19家客户高度信赖Perforce Helix Core版本控制工具。它以无与伦比的性能、安全性和可扩展性对大量数据的更改(从源代码到二进制文件再到IP)进行跟踪和管理。

Perforce Helix Core可以与您已经使用的游戏引擎和工具进行集成。虽然目前尚未与Godot直接集成,但Helix Core的桌面客户端—Helix Sync,允许您同步文件并简单地拖放文件以快速对任何类型的资产进行版本控制。此外,您可以使用API将Helix Core与您喜欢的任何工具集成。

您还可以使用我们设计用于整个团队的数字创作工具套件来扩展Helix Core。这些工具深受当今领先工作室的信赖,可以为您的艺术团队提供3D资产管理(Helix DAM)方面的新功能,或帮助您的制片人创建一个计划(Helix Plan)以在您的导演、合作伙伴和投资者之间共享。

现在,使用Perforce Helix Core 打造下一个热门游戏吧!

作者简介:Ryan L’Italien , Perforce
Ryan是Perforce版本控制产品组合在游戏和媒体娱乐方面的技术推广专家。拥有15年的全栈开发人员经验,致力于为各种规模的公司解决工作流和集成DevOps的挑战。

文章来源:https://bit.ly/3W2W8So

了解如何为游戏引擎配置Perforce Helix Core,立即联系Perforce中国授权合作伙伴——龙智,可申请免费试用:
官网:www.shdsd.com
电话:400-666-7732
邮箱:marketing@shdsd.com

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

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

相关文章

Vitis HLS 学习笔记--Syn Report解读(1)

目录 1. 介绍 2. 示例一 2.1 HLS 代码 2.2 Report 解读 2.2.1 General Information 2.2.2 Timing Estimate 2.2.3 Performance & Resource Estimates 2.2.4 HW interfaces 2.2.4.1 硬件接口报告 2.2.4.2 导出至 Vivado 中的 IP 2.2.4.3 Port-Level Protocols 端…

掌握Unix路径简化:五种有效算法比较【python力扣71题】

题目描述 给你一个字符串 path,表示一个 Unix 风格的绝对路径,请你简化它并返回。 Unix 风格的绝对路径中,.. 表示返回上一级目录,. 表示当前目录。简化路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有一个斜…

图形化编程要怎么做

0. 简介 Scratch其实应该算得上最早做图形化编程的工程了。Scratch 是麻省理工学院的“终身幼儿园团队”在 2007 年 [5]发布的一种图形化编程工具,主要面对全球青少年开放,是图形化编程工具当中最广为人知的一种,所有人都可以在软件中创作自…

排序算法-计数排序

一、计数排序 这种排序算法 是利用数组下标来确定元素的正确位置的。 如果数组中有20个随机整数,取值范围为0~10,要求用最快的速度把这20个整数从小到大进行排序。 很大的情况下,它的性能甚至快过那些时间复杂度为O(nlogn)的排序。…

【React】Sigma.js框架网络图-入门篇(2)

通过《【React】Sigma.js框架网络图-入门篇》有了基本认识 由于上一篇直接给出了基本代码示例,可能看着比较复杂也不知道是啥意思; 今天从理论入手重新认识下! 一、基本认识 首先,我们先了解下基础术语: 图(Graph)&…

python coverage如何使用

Python的coverage.py是一个测量代码覆盖率的工具,它可以告诉你在测试中哪些代码被执行了,哪些没有。这对于确保你的测试覆盖了所有情况非常有用。以下是如何使用coverage.py的基本步骤: ### 安装 首先,你需要安装coverage.py。你…

如何实现直播声卡反向给手机充电功能呢?

在数字化时代的浪潮中,声卡作为多媒体系统的核心组件,扮演着声波与数字信号相互转换的关键角色。它不仅能够将来自各类音源的原始声音信号转换为数字信号,进而输出到各类声响设备,更能够通过音乐设备数字接口(MIDI)发出合成乐器的…

Eudic欧路词典for Mac:专业英语学习工具

Eudic欧路词典for Mac,作为专为Mac用户设计的英语学习工具,凭借其简捷高效的特点,成为众多英语学习者不可或缺的助手。 Eudic欧路词典for Mac v4.6.4激活版下载 这款词典整合了多个权威词典资源,如牛津、柯林斯、朗文等&#xff0…

​「Python大数据」词频数据渲染词云图导出HTML

前言 本文主要介绍通过python实现数据聚类、脚本开发、办公自动化。词频数据渲染词云图导出HTML。 一、业务逻辑 读取voc数据采集的数据批处理,使用jieba进行分词,去除停用词词频数据渲染词云图将可视化结果保存到HTML文件中二、具体产出 三、执行脚本 python wordCloud.p…

mysql中日期函数now()和sysdate()的区别

说明: 在mysql数据库中,now()、sysdate() 都是获取系统当前日期时间 区别: 示例脚本: select sleep(2),now(),sysdate() from dual; 输出: 小结: 1、 now()和sysdate()都可以获取系统当前日期时间 2、区别…

第30篇 RPC概述

RPC(Remote Procedure Call,远程过程调用)是一种编程技术,使得开发者能够像调用本地函数一样调用位于不同进程、不同主机上的函数或服务。这种技术隐藏了底层网络通信细节,使得分布式系统中的组件能够无缝协作&#xf…

【无标题】getchar gets scanf

getchar与putchar的用法 getchar一次只接收一个字符 #include<stdio.h>int main() { char ch 0;while ((ch getchar()) ! \n){putchar(ch);} } #include <stdio.h> #define SPACE // SPACE表示一个空格字符 int main() { char ch; ch getch…

优化SQL的方法

来自组内分享&#xff0c;包含了比较常使用到的八点&#xff1a; 避免使用select * union all代替union 小表驱动大表 批量操作 善用limit 高效的分页 用连接查询代替子查询 控制索引数量 一、避免使用select * 消耗数据库资源 消耗更多的数据库服务器内存、CPU等资源。 消…

训练深度神经网络,使用反向传播算法,产生梯度消失和梯度爆炸问题的原因?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 反向传播是神经网络训练的精髓。它是根据上一个迭代获得的误差&#xff08;即损失&#xff09;对神经网络的权重进行微调的做法。权重的适当调整可确保较低的误差&#xff0c;从而通过提高模型的泛化能…

Android Glide 获取动图的第一帧

一、说明 Glide 可以加载 2 种动图&#xff0c;一种是 Gif 图&#xff0c;另一种是 Webp 动图。 有时候我们需要获取动图的第一帧&#xff0c;并以封面的形式显示&#xff0c;那该怎样获取呢&#xff1f; 二、获取 Webp 第一帧 我这儿的 Webp 显示用到了一个三方库&#xf…

【LLM】系统的评估与优化

文章目录 系统的评估与优化评估 LLM 应用的方式人工评估简单自动评估使用大模型进行评估混合评估 评估并优化生成部分提升直观回答质量标明知识来源&#xff0c;提高可信度构造思维链增加一个指令解析 评估并优化检索部分评估检索效果优化检索的思路 思考对比各种LLM评估方法的…

将游戏界面与注册/登录界面连接到一起

一、 导包 在注册页面中导入一个import subprocess包 二、 使用代码将其连接到一起 在循环中加入下面这一行代码&#xff0c;用来实现效果 subprocess.run(["python", "game代码.py"]

Faust勒索病毒:了解变种faust,以及如何保护您的数据

导言&#xff1a; 近年来&#xff0c;网络安全问题日益严峻&#xff0c;其中勒索病毒成为了一种日益猖獗的威胁。在众多勒索病毒中&#xff0c;.faust勒索病毒以其高度的隐秘性和破坏性引起了广泛关注。本文91数据恢复将深入剖析.faust勒索病毒的威胁特点&#xff0c;并提出相…

实现SpringMVC底层机制(一)

文章目录 1.环境配置1.创建maven项目2.创建文件目录3.导入jar包 2.开发核心控制器文件目录1.流程图2.编写核心控制器SunDispatcherServlet.java3.类路径下编写spring配置文件sunspringmvc.xml4.配置中央控制器web.xml5.配置tomcat&#xff0c;完成测试1.配置发布方式2.配置热加…

【stomp 实战】Spring websocket使用详解和基本原理

spring框架对websocket有很好的支持&#xff0c;stomp协议作为websocket的子协议&#xff0c;Spring也做了很多封装&#xff0c;让我们在开发中易于使用。 学习使用Spring的Websocket模块&#xff0c;当然最好的办法就是看官网说明了。本篇文章对官网做一些简述和个人的理解。 …