当前位置: 首页 > news >正文

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

在这里插入图片描述
GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。
在这里插入图片描述
GODOT目前为止遇到3个比较重大的基于,第一个是oprea的合作奖,第二个是用支持c#换来的微软的投资,第三个是虚幻商城的支持
在这里插入图片描述
虽然我总结了一些特点(优点),但说到底最大的优势还是免费开源,MIT协议
在这里插入图片描述
GODOT是支持脚本混编的。不同语言支持程度不同,有些api不对其他语言支持。所以GDScript是绕不开的必学科目
在这里插入图片描述
此处不贴视频了。你可以去b站看,有很多。
在这里插入图片描述
godot的编辑器提供了开发流程所必要的工具链。比如调试工具profiler、可视化shader编辑器、帧动画编辑器、骨骼绑定编辑等。
与unity相比没什么太大差别,只是有些地方名称不同而已。比如资源树中,unity的每个对象都是gameobject,而godot是node。功能、用法都没毛区别
在这里插入图片描述
下面看看渲染性能表现。
测试方式:用比较经典(懒惰)的方式,递增物理方块同屏渲染
测试移动设备:小米平板4


以下是godot和unity在不同物体数量下的帧率对比:
在这里插入图片描述
3d渲染结论:unity不愧是3d手游首选引擎,3d渲染性能强悍,碾压godot。可以看到当场景中存在3000个物体后,unity还能达到18帧,而godot已经卡的上气不接下气
在这里插入图片描述
接着看看2d的渲染性能表现
在这里插入图片描述
在渲染2d物体时结论出现了翻转,在同屏渲染1500物体时,godot能到到51帧,而unity只有1帧。这是因为unity在2d渲染时,使用的是“伪渲染”,既物体本质是3d的。而godot是实打实的2d物体。

tips: 为毛看起来两个引擎的2d渲染性能看起来都不如3d ?
这是因为3d物体没有加贴图,所有像素的颜色值都是一个颜色,计算消耗仅是法线 * 颜色 * 光照。
而2d物体加了贴图,虽然每个方块看起都较小,但为了更快的展现效果贴了比较大的贴图。这样就增加了很多纹理寻址的性能消耗。

在这里插入图片描述
除了脚本语法的编写差异,其他差异基本都在表中。
还要补充一点,godot的android调试发包是必须加key的。这一点不如unity省事。

关于选型

1. GODOT更适合2d项目开发

这个结论来自于性能测试,2d渲染性能表现亮眼。在制作一些需要巨量渲染,诸如割草类型游戏的项目时,2d的优越渲染性能是唯一关注点。

2. GODOT更适合中级以上工程师参与开发

该结论来源于
1. godot的工具链虽然提供也比较完整,但质量偏下,bug层出不穷
2. 插件少、不全面且质量偏下
3. 版本更新较慢、社区支持有限
很多情况下需要开发者利用自身丰富的开发经验来填补引擎支持的不足和缺陷

3. GODOT适合对免费开源有强制需求的项目

godot使用mit协议,你可以任意修改底层代码进行商业销售。而其他引擎存在各种不易知道的暗坑和收费陷阱。比如unity,在某些硬件设备下需要对用户,对你没看错,是用户收取使用费。

4. GODOT更适合中小型项目开发

与其他成熟商业引擎相比,godot在社区活跃、插件广度、教程数量上都比较匮乏。在遇到比较尖锐的问题时,诸如图形缓存复用、黑屏定位时往往不会轻易找到解决办法。另外godot的编辑器质量堪忧,即使在最新的3.1版本也存在正常保存项目会损坏场景文件的情况。还有丢失资源时,偶尔还会出现无提示崩溃情况。这些都为大型项目带来不可预估的延期风险和开发难度。所以推荐中小型项目使用

没了

相关文章:

GODOT游戏引擎简介,包含与unity性能对比测试,以及选型建议

GODOT,是一个免费开源的3D引擎。本文以unity作对比,简述两者区别和选型建议。由于是很久以前写的ppt,技术原因视频和部分章节丢失了。建议当做业务参考。 GODOT目前为止遇到3个比较重大的基于,第一个是oprea的合作奖,…...

Add-in Express for Microsoft Office and Delphi Crack

Add-in Express for Microsoft Office and Delphi Crack 适用于Microsoft Office和Delphi VCL的Add-in Express使您能够在几次点击中为Microsoft Office开发专业插件。它生成基于COM的项目,这些项目包含Microsoft Office外接程序或智能标记的所有必要功能&#xff0…...

opencv基础-34 图像平滑处理-2D 卷积 cv2.filter2D()

2D卷积是一种图像处理和计算机视觉中常用的操作,用于在图像上应用滤波器或卷积核,从而对图像进行特征提取、平滑处理或边缘检测等操作。 在2D卷积中,图像和卷积核都是二维的矩阵或数组。卷积操作将卷积核在图像上滑动,对每个局部区…...

webSocket 与传统的 http 有什么优势

webSocket 与传统的 http 有什么优势 当页面中需要观察实时数据的变化(比如聊天、k 线图)时,过去我们往往使用两种方式完成 第一种是短轮询,即客户端每隔一段时间就向服务器发送消息,询问有没有新的数据 第二种是长轮询…...

如何测试Linux磁盘的读写速度

在Linux系统中也有很多命令可以测试硬盘的读写速度指标。以下是几个常用命令(注意:在执行测试命令之前,请务必备份数据以避免数据丢失! 1、dd 命令 首先挂载磁盘 mount /dev/sdb /testdd 命令可用于进行硬盘读写速度测试。 例…...

Spring Data Redis:在Java中操作Redis

目录 一、Spring Data Redis使用方式 1.1 介绍 1.2 配置 1.3 RedisTemplate 二、环境搭建 2.1 导入Spring Data Redis的maven坐标 2.2 配置Redis数据源 2.3 编写配置类,创建RedisTemplate对象 三、操作常见类型数据 3.1 操作字符串类型数据 …...

Android 面试重点之Framework (Handler篇)

近期在网上看到不少Android 开发分享的面试经验,我发现基本每个面经中多多少少都有Framework 底层原理的影子。它也是Android 开发中最重要的一个部分,面试官一般会通过 Framework底层中的一些逻辑原理由浅入深进行提问,来评估应聘者的真实水…...

基于Node.js的后台管理系统的数据表格导出下载

基于Node.js的后台管理系统的数据表格导出下载 今天在工作的时候接触到一个需求,就是现在有一个简单的后台管理系统是基于node.js来实现的,现在需要将其中的一个表格数据下载下来。乍一听还以为这个是一个简单的需求,以为只要简单的一个小时…...

渗透攻击方法:原型链污染

目录 一、什么是原型链 1、原型对象 2、prototype属性 3、原型链 1、显示原型 2、隐式原型 3、原型链 4、constructor属性 二、原型链污染重现 实例 Nodejs沙箱逃逸 1、什么是沙箱(sandbox) 2、vm模块 一、什么是原型链 1、原型对象 JavaS…...

第四章 kernel函数基础篇

cuda教程目录 第一章 指针篇 第二章 CUDA原理篇 第三章 CUDA编译器环境配置篇 第四章 kernel函数基础篇 第五章 kernel索引(index)篇 第六章 kenel矩阵计算实战篇 第七章 kenel实战强化篇 第八章 CUDA内存应用与性能优化篇 第九章 CUDA原子(atomic)实战篇 第十章 CUDA流(strea…...

JVM:运行时数据区域(白话文)

最近有时间在看一本<深入了解Java虚拟机>的书籍&#xff0c;这本书是一个中国人&#xff0c;名叫周志明的人写的。相比于其他翻译过来的技术书籍&#xff0c;这本书还是挺通俗易懂的。先前有和彬哥在聊&#xff0c;他说如果是自己一个人看的话会很枯燥&#xff0c;很难坚…...

Go语言并发编程(千锋教育)

Go语言并发编程&#xff08;千锋教育&#xff09; 视频地址&#xff1a;https://www.bilibili.com/video/BV1t541147Bc?p14 作者B站&#xff1a;https://space.bilibili.com/353694001 源代码&#xff1a;https://github.com/rubyhan1314/go_goroutine 1、基本概念 1.1、…...

CSS革命:用Sass/SCSS引领前端创新

目录 前言SCSSSassSass 和 SCSS 的区别 前言 在现代的前端开发中&#xff0c;CSS已成为呈现网页和应用程序样式的核心。然而&#xff0c;原生的CSS语法在大型项目中可能变得混乱、冗长且难以维护。 为了解决这些问题&#xff0c;SCSS&#xff08;Sass CSS&#xff09;和Sass&am…...

MAPPO 算法的深度解析与应用和实现

【论文研读】 The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games 说明&#xff1a; 来源&#xff1a;36th Conference on Neural Information Processing Systems (NeurIPS 2022) Track on Datasets and Benchmarks. 是NIPS文章&#xff0c;质量有保障&…...

API接口的涉及思路以及部分代码

在现代软件开发中&#xff0c;API&#xff08;Application Programming Interface&#xff09;接口扮演了一个至关重要的角色。通过API接口&#xff0c;不同的应用程序、系统或服务之间可以进行数据交换和相互调用&#xff0c;实现功能的扩展和集成。本文将探讨API接口的设计思…...

Stable Diffusion无需代码连接QQ邮箱的方法

Stable Diffusion用户使用场景&#xff1a; 电商商家在产品测试阶段&#xff0c;通过微信社群日常收集用户对产品设计的反馈&#xff0c;包括对产品的修改建议或外观设计等&#xff0c;并将这些反馈上传至集简云小程序。然后&#xff0c;他们使用Stable Diffusion AI工具生成图…...

Excel表格(一)

1.单一栏的宽度和高度设置 2.大标题的跨栏居中 3.让单元格内的文字------自动适应 4.序号递增 5.货币符号 6.日期格式的选择 选到单元格&#xff0c;选中对应的日期格式 7.自动求和的计算 然后在按住回车键即可求出当前行的金额 点击自动求和 8.冻结表格栏 9.排序 1.单栏排序 …...

详细介绍渗透测试与漏洞扫描

一、概念 渗透测试&#xff1a; 渗透测试并没有一个标准的定义&#xff0c;国外一些安全组织达成共识的通用说法&#xff1b;通过模拟恶意黑客的攻击方法&#xff0c;来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动的主动分析…...

Scikit-learn聚类方法代码批注及相关练习

一、代码批注 代码来自&#xff1a;https://scikit-learn.org/stable/auto_examples/cluster/plot_dbscan.html#sphx-glr-auto-examples-cluster-plot-dbscan-py import numpy as np from sklearn.cluster import DBSCAN from sklearn import metrics from sklearn.datasets …...

C#程序的启动显示方案(无窗口进程发送消息) - 开源研究系列文章

今天继续研究C#的WinForm的实例显示效果。 我们上次介绍了Winform窗体的唯一实例运行代码(见博文&#xff1a;基于C#的应用程序单例唯一运行的完美解决方案 - 开源研究系列文章 )。这就有一个问题&#xff0c;程序已经打开了&#xff0c;这时候再次运行该应用程序&#xff0c;…...

java泛型和通配符的使用

泛型机制 本质是参数化类型(与方法的形式参数比较&#xff0c;方法是参数化对象)。 优势:将类型检查由运行期提前到编译期。减少了很多错误。 泛型是jdk5.0的新特性。 集合中使用泛型 总结&#xff1a; ① 集合接口或集合类在jdk5.0时都修改为带泛型的结构② 在实例化集合类时…...

【网络】自定义协议 | 序列化和反序列化 | 以tcpServer为例

本文首发于 慕雪的寒舍 以tcpServer的计算器服务为例&#xff0c;实现一个自定义协议 阅读本文之前&#xff0c;请先阅读 tcpServer 本文完整代码详见 Gitee 1.重谈tcp 注意&#xff0c;当下所对tcp的描述都是以简单、方便理解起见&#xff0c;后续会对tcp协议进行深入解读 …...

06-3_Qt 5.9 C++开发指南_多窗体应用程序的设计(主要的窗体类及其用途;窗体类重要特性设置;多窗口应用程序设计)

文章目录 1. 主要的窗体类及其用途2. 窗体类重要特性的设置2.1 setAttribute()函数2.2 setWindowFlags()函数2.3 setWindowState()函数2.4 setWindowModality()函数2.5 setWindowOpacity()函数 3. 多窗口应用程序设计3.1 主窗口设计3.2 QFormDoc类的设计3.3 QFormDoc类的使用3.…...

(力扣)用两个栈实现队列

这里是栈的源代码&#xff1a;栈和队列的实现 当然&#xff0c;自己也可以写一个栈来用&#xff0c;对题目来说不影响&#xff0c;只要符合栈的特点就行。 题目&#xff1a; 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、pe…...

【自动化测试框架】关于unitttest你需要知道的事

一、UnitTest单元测试框架提供了那些功能 1.提供用例组织和执行 如何定义一条“测试用例”? 如何灵活地控制这些“测试用例”的执行? 2.提供丰定的断言方法 当测试用例的执行结果与预期结果不一致时&#xff0c;判定测试用例失败。在自动化测试中&#xff0c;通过“断言”…...

手机便签中可以打勾的圆圈或小方块怎么弄?

在日常的生活和工作中&#xff0c;很多网友除了使用手机便签来记录灵感想法、读书笔记、各种琐事、工作事项外&#xff0c;还会用它来记录一些清单&#xff0c;例如待办事项清单、读书清单、购物清单、旅行必备物品清单等。 在按照记录的清单内容来执行的时候&#xff0c;为了…...

【Linux】gdb 的使用

目录 1. 使用 gdb 的前置工作 2. 如何使用 gdb 进行调试 1、如何看到我的代码 2、如何打断点 3、怎么运行程序 4、如何进行逐过程调试 5、如何进行逐语句调试 6、如何监视变量值 7、如何跳到指定位置 8、运行完一个函数 9、怎么跳到下一个断点 10、如何禁用/开启…...

C++11之右值引用

C11之右值引用 传统的C语法中就有引用的语法&#xff0c;而C11中新增了的 右值引用&#xff08;rvalue reference&#xff09;语法特性&#xff0c;所以从现在开始我们之前学习的引用就叫做左值引用&#xff08;lvalue reference&#xff09;。无论左值引用还是右值引用&#…...

【PHP的设计模式】

PHP的设计模式 一、策略模式二、工厂模式三、单例模式四、注册模式五、适配器模式六、观察者模式 一、策略模式 策略模式是对象的行为模式&#xff0c;用意是对一组算法的封装。动态的选择需要的算法并使用。 策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强…...

React 之 Redux - 状态管理

一、前言 1. 纯函数 函数式编程中有一个非常重要的概念叫纯函数&#xff0c;JavaScript符合函数式编程的范式&#xff0c;所以也有纯函数的概念 确定的输入&#xff0c;一定会产生确定的输出 函数在执行过程中&#xff0c;不能产生副作用 2. 副作用 表示在执行一个函数时&a…...

选服务好的网站建设/网站数据统计

php&mysql实现登录注册环境数据库文件结构步骤代码login.htmlregistor.htmllogin.phpregistor.phpapidoc.md效果环境 数据库 文件结构 必须要注意&#xff0c;文件夹必须放在服务器上&#xff0c;然后才能运行。 步骤 在服务器上新建一users个文件夹&#xff0c;然后新建…...

网站源码库/今天新闻头条

据美国国家风险投资协会的《资金树报告》&#xff0c;今年上半年共有1972笔投资&#xff0c;低于去年同期的2318笔。其中&#xff0c;软件业的形势继续良好&#xff0c;成为吸引风投资金最多的行业;然而风投资金正在变得更加集中于少数企业&#xff0c;基本上正在从早期投资转移…...

杭州网站提升排名/软文街官方网站

人们日常熟知的邮政业务包括邮务业务、快递业务、银行业务、保险业务、证券业务、网上商城等&#xff0c;除此之外&#xff0c;还有一项非常重要——电商业务。区别于人们熟知的电商网购&#xff0c;邮政公司电商业务主要是指人们日常生活中的代收费业务&#xff08;包括水、电…...

wordpress弹窗广告/长沙关键词优化公司电话

【出版商】贝哲斯咨询 【免费目录下载】台式杯封口机使用整个过程实现自动化完成&#xff0c;可定量灌装&#xff0c;利用光电定位控制器来确定封口位置&#xff0c;准确无误、生产效率高。塑料复合膜或铝塑复合膜被用来进行自动热封和自动切边&#xff0c;经包装后的产品外形…...

华为做网站吗/优化大师哪个好

我正在运行主类,我想运行一个单独的类来对数字进行混洗,然后将经过混洗的数字返回到我的主类中.在我的混洗课程中,我有return语句…但是现在我该怎么办&#xff1f;如何在主类中使用int数组的随机顺序&#xff1f;这是我的洗牌课&#xff1a;public class Shuffle {public stat…...

台州做企业网站/seo怎么收费的

题目链接&#xff1a; Online JudgeOnline Judgehttps://onlinejudge.org/index.php?optioncom_onlinejudge&Itemid8&pageshow_problem&problem780 思路&#xff1a; 自底向上&#xff0c;依次判断各个子天平是否平衡&#xff0c;对于父天平&#xff0c;要判断…...