首页 > Godot频道 > 【Godot学习笔记】 > Godot学习笔记之开发语言的选择(一)
2025
02-13

Godot学习笔记之开发语言的选择(一)

前段时间用godot做了一个小小游戏demo,算是入门了一下这个引擎,后面可能会继续学习,我会记录一些学习笔记,通过记录笔记学习会更快一些,希望大家多多交流。

官方给了一套很好的实例项目,是一个学习的宝库。这个仓库非常好,初学者我非常建议每个project都打开运行一下,能学到不少东西。

https://github.com/godotengine/godot-demo-projects

并且还给了一个可玩的射击类游戏demo

https://github.com/godotengine/tps-demo

Godot学习笔记之开发语言的选择(一) - 雨松MOMO程序研究院 - 1 Godot学习笔记之开发语言的选择(一) - 雨松MOMO程序研究院 - 2

godot是个开源引擎,包括编辑器运行时的代码都是开源的,最新版本是godot4.3

https://godotengine.org/

godot引擎的作者非常有意思,他不喜欢引入第三方插件,几乎所有的东西都自己来写,包括脚本系统和物理引擎都是自己写的。

开始godot使用了lua,但是多线程/拓展方法/原生向量/垃圾回收等这几方面第三方解释语言无法和Godot引擎结合的更加紧密,所以作者开发了gdscript语言,类似python语言。在引擎源码中他写了一套解释器来执行gdscript语言,ios热更新就这样天然被支持了,全平台都能很好的支持了gdscript语言。

Godot学习笔记之开发语言的选择(一) - 雨松MOMO程序研究院 - 3

解释形语言运行效率是会打折扣的,godot还支持了C#语言,作者在新版本中已经全面拥抱.NET8,放弃mono,godot中是没有unity这种il2cpp技术的。C#效率会比gdscript语言更高,但是iOS没办法热更新,iOS使用AOT,其他平台则使用JIT执行(可以热更)。

gdscript语言被发明出来的时候肯定是没有IDE支持的,所以godot作者又写了一个IDE内置在自己的引擎中方便开发者编码。目前来看我感觉IDE可以选择JetBrains Rider ,有gdscript语言的插件,还有C#语言的插件,支持调试下断点都很方便。

godot的shader语言是gdshader,语法类似glsl,也可以在他写的IDE里面写shader.

Godot学习笔记之开发语言的选择(一) - 雨松MOMO程序研究院 - 4

 

godot还提供混合编程,gdscript和c#混合调用,gdscript本身可以更新,这样给热更新提供了一种新可能。

支持C++拓展, GDExtension API 的形式正式提供,不需要修改引擎源码使用C++代码。

godot4.3目前c#现在是不支持web平台的,这样微信小游戏就无法支持,如果使用gdscript语言就比较好支持微信小游戏,网上有开源解决方案。但是我感觉应该有不少坑需要填,对于微信小游戏这块unity团结引擎确实强~

https://github.com/godotengine/godot/issues/70796#issuecomment-1618006609

作者大概解释了一下,游戏引擎的入口是C++并非C#,它需要通过C++来调用C# 目前.NET版本不支持,需要等NET8,可是.NET8已经发布,他们上周又尝试了一次还是失败了。(可以持续关注)

Godot和Unity开发上有个很大的区别,godot是完全的面向对象模式,而Unity是面向组合模式开发(挂脚本),Godot只能给一个对象绑定一个类,并且它只能单向继承。

我在列举一些我看到的比较有意思的功能

PBR默认材质的功能比unity要全

Godot学习笔记之开发语言的选择(一) - 雨松MOMO程序研究院 - 5

支持像unity那种shader graph连连线制作shader的功能。

CPU和GPU粒子,体积雾

3D和UI之间叠层穿插提供了比较好的解决方案,3D界面很好支持,SubViewport

3D和2D 导航网格寻路

3D瓦片地图

还有很多我也在慢慢探索中…

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

留下一个回复

你的email不会被公开。