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

Godot 3.1 发布,可用性提升,并带来大量新特性

百度智能云 云生态狂欢季 热门云产品1折起>>>  hot3.png

Godot 3.1 发布了,Godot 是一个功能丰富的跨平台 2D 与 3D 游戏引擎,它提供了一套通用工具,使开发者可以专注于游戏逻辑。支持多个平台,包括 Linux、Mac OS X、Windows、Android、iOS 和 H5。

此版本改进了可用性并带来了大量新特性。

Godot 3.0 中对引擎代码库进行了大量重写,并显着降低了向后兼容性,而在 3.1 版本中主要是在此基础上进行完善,并消除遗留的使用障碍,所以 3.1 更加成熟且可用性大大提升。

新特性方面:

重新用回 OpenGL ES 2.0 渲染器

Godot 2.x 分支使用 OpenGL ES 2.0/OpenGL 2.1(GLES2)作为其渲染 API,虽然很好,但是它有许多限制,使得无法使用更现代的渲染技术。

在 Godot 3.0 中,使用更现代的 OpenGL ES 3.0/OpenGL 3.3(GLES3)规范重写了所有渲染代码,并且将 OpenGL ES 2.0 渲染器移除。虽然一开始这是一个不错的改变,但是后来带来了许多问题,比如:

  • 在旧的移动/桌面硬件上性能不佳,显然现代化的渲染技术不适合这些老旧硬件的设计。  
  • 性能不佳还好说,但是有一些旧设备直接就不兼容 OpenGL ES 3.0。
  • HTML5 平台不兼容,因为并不是所有浏览器都支持 WebGL 2.0(OpenGL ES 3.0 的等效规范)。
  • 移动和桌面设备中存在大量的驱动程序 bug。在桌面上,似乎各种驱动程序供应商都没有很好地支持现代 OpenGL,并且在 macOS 和 Windows 上新驱动程序中不断出现回退;在移动设备上,由于 OpenGL ES 3.0 相对较新,所以也一直会出现各种驱动程序 bug,即使是现代旗舰设备也不能避免。

因此在 Godot 3.1 中,被迫重新用回了 OpenGL ES 2.0/OpenGL 2.1 渲染器。与此同时,也对其做了一些改进,在 2D 方面,这个新的渲染器功能齐全;3D 方面,实现了一种更简单的渲染方法,旨在更加有所限制,但兼容性更高。新的特征和限制如下:

  • 渲染完全在 sRGB 色彩空间上完成(GLES3 渲染器使用线性色彩空间),这样效率和兼容性更高,但这意味着不支持 HDR,光效看起来也有点不同。
  • 不支持某些高级 PBR 功能,例如次表面散射。
  • 某些着色器功能将无法使用,并在使用时抛出错误(使用较旧的 OpenGL 版本时会出现这种情况)。
  • 一些后处理效果也不存在。
  • 由于此后端旨在尽可能在最低端硬件上运行,因此着色器需要保持非常小,因此,所有光效都是通过使用前向多通道方法完成的。
  • GIProbes 自然就无效了,需要用回 lightmap。
  • 由于没有转换反馈支持,基于 GPU 的粒子没法用了,需要改用新的 CPUParticles 节点。

GDScript 中的可选类型

GDScript 是 Godot 很受欢迎的一项功能,它允许在受控环境中快速编写代码,与任何动态类型语言一样,允许高速生成大量代码。

但是它有一些限制,比如:

  • 代码补全并不总是生效。
  • 性能受限于解释器。
  • 在编译(或写入)时并不总是捕获错误。
  • 代码可读性较差,难以重构。

在 GDScript 中实现可选类型是解决这些问题的方案,Godot 3.1 中,可选类型还是仅解析器可用(parser-only)功能,后续计划在状态机中包含类型指令,以极大地优化性能。

改进 2D 与 3D 编辑器

重写了 Godot 2D 编辑器,可以更好地使用一些小工具,并且显示存在通用节点的小十字光标,此外,不再为碰撞形状提供缩放手柄,而是可以直接改变它们的大小,从而解决了新 Godot 用户的一个主要痛点。

3D 编辑器完全重写了 Gizmo 系统。

新的地形编辑器

改变了以往功能单调的弱点,重新编写了一个地形编辑器,其中包含许多其它地形创建软件中所通用的功能,并且对 3.0 中添加的自动调整功能提供了更好的支持。

C# 支持改进

从 3.1 开始,C# 项目可以导出到 Linux、macOS 和 Windows。对 Android、iOS 和 HTML5 的支持也在计划中,Android 会优先跟进。Mono 版本有许多改进,并解决了之前遇到的一些问题,例如与特定 Mono 版本绑死。Mono SDK 中的相关源码现在直接包含在编辑器二进制文件中,只需安装 MSBuild 即可构建和发布 C# 游戏。

还有大量新特性:

  • Revamped inspector
  • Revamped filesystem dock
  • KinematicBody2D (and 3D) improvements
  • Revamped animation editor
  • Revamped AnimationTree
  • New axis handling system
  • Visual shader editor
  • 2D skeletons
  • 2D meshes
  • 3D softbody support
  • Ragdolls and Skeleton IK
  • Constructive Solid Geometry (CSG)
  • OpenSimplex and NoiseTexture
  • CPU-based particle system
  • Greatly improved C# support
  • Networking improvements
  • Custom classes registration
  • MIDI and microphone input
  • More VCS friendliness

详情查看发布公告:https://godotengine.org/article/godot-3-1-released

下载地址:https://godotengine.org/download

相关文章:

  • spring boot 整合Mybatis
  • mysql b+ tree 3阶索引能存多少数据
  • Python进阶:如何将字符串常量转化为变量?
  • Spring Boot:快速入门(二)
  • 你可能不太会用的10个Git命令
  • 阿里巴巴复杂搜索系统的可靠性优化之路
  • roncoo-education 2.0.0 正式发布,分布式在线教育系统
  • 如何根据自己业务场景购买阿里云产品
  • springcloud分布式微服务(二):注册中心Eureka
  • SQL 删除数据 的所有用法
  • 小米 2018 年手机销量达 1.187 亿,AIoT 成为营收增长引擎
  • 功能机也不放过,谷歌或为 Chrome 提供非触控模式
  • 关于5G被激烈讨论的那些争端和冲突
  • Java程序员的成长之路
  • 【LeetCode每天一题】Swap Nodes in Pairs
  • Angular 响应式表单之下拉框
  • css系列之关于字体的事
  • ES6系列(二)变量的解构赋值
  • extract-text-webpack-plugin用法
  • HTTP那些事
  • HTTP请求重发
  • JavaScript中的对象个人分享
  • Java精华积累:初学者都应该搞懂的问题
  • Java应用性能调优
  • Linux快速复制或删除大量小文件
  • MQ框架的比较
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • React 快速上手 - 07 前端路由 react-router
  • React-redux的原理以及使用
  • Vue小说阅读器(仿追书神器)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 基于axios的vue插件,让http请求更简单
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 使用Swoole加速Laravel(正式环境中)
  • 微服务核心架构梳理
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • Mac 上flink的安装与启动
  • (2)nginx 安装、启停
  • (ros//EnvironmentVariables)ros环境变量
  • (办公)springboot配置aop处理请求.
  • (十五)使用Nexus创建Maven私服
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net 高效开发之不可错过的实用工具
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .net反混淆脱壳工具de4dot的使用
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET连接MongoDB数据库实例教程
  • .net下的富文本编辑器FCKeditor的配置方法
  • @Async注解的坑,小心
  • @vue/cli脚手架
  • @基于大模型的旅游路线推荐方案
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [ IO.File ] FileSystemWatcher