/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
Godot Engine(游戏引擎)是一款开源且功能齐全的游戏引擎软件,软件支持部分3D游戏的开发,同时软件的开发代码简单,用户可以利用软件制作出自己喜欢的游戏。
Godot Engine是功能比较齐全的一个游戏引擎软件,其开发方式简易,上手比较轻松,对于刚入门的游戏开发者来说十分友好,而且开源引擎底层代码完全开源,非常推荐给想学习游戏开发的小伙伴们使用,下载后打开软件,点击OPEN打开文件根据自身需求,输入代码和带入文件,打包游戏就可以使用啦。
轻量级
构建好的 Godot 只需要占用你的硬盘的 30M 空间,包含(几乎)了所有内容。如果你需要构建手机版本,你需要下载额外的 200M 的构建模板,仅此而已。
这里我并不是因为下载速度快或者因为其他引擎占用了 3 到 30GB 的大空间而提出这点,而是为了说明 Godot 团队对性能的关注程度。 Godot 打开只需要一眨眼的功夫,我那用了 4 年的旧笔记本打开或者加载时间甚至都没超过 5 秒钟。我所等待过的最长时间大约是 1 分钟,那是发生在点击一个按钮发布到安卓手平台的 Debug 版本之间的时间开销。
当然,最重要的是:它能反应出你的游戏的性能。当我发现 Godot 引擎本身就是一个 Godot 开发的游戏的时候,我被深深地震惊了!
友好的版本控制
你是否曾经遇到过在使用 Unity 或者 Unreal 的时候发生了场景或者预制体或者其他的对象文件在仓库的版本冲突问题?如果有的话,难么你应该知道这是多么痛苦的一件事了,特别是在大型团队里。
在 Godot 中任何对象都是以文本文档的形式保存,对于合并冲突来说是绝对是一种非常友好而且可读性强的文件格式。因为我们能非常轻松地区别开多个场景中的多个对象(关于这个之后会谈论更多),使得每一个团队成员都能够专注于自己的工作。
动画系统
Godot 的动画系统是我见过的最强大而又简单易用的一个系统,我曾经使用过的所有动画工具具有的功能设置它都包含了。你可以对某个对象的任意属性进行动画设置,甚至包括函数的调用。除此之外,它还包含了一个非常简易的动画创建工具。
动手比解释更能体会它的工作原理,我推荐你访问 GDQuest 和 Heartbeast 的视频,两位大牛利用他们的业余时间讲授创建游戏相关经验的视频,大部分是免费的。
一、下载打开软件,点击OPEN打开文件。
二、根据自身需求,输入代码和带入文件。
三、打包游戏即可使用。
真实2D vs 假2D
经常会遇到 Rock Milk 的哲学理论问题。为了弄清楚这个东西,我们创建了一个小而简单的游戏,尝试突破未开发的那些区域和一些创新机制。由于我们是两个家庭的普通人,经常一天只能抽出个把小时来开发我们的游戏,所以我们只专注于 2D 游戏开发。
Godot 的 2D 引擎可圈可点,它不是假的 2D ,就像在 3D 空间把 Z 轴*平放*一样的假 2D 。对于 Godot 来说这意味着什么呢?
像素作为坐标和单位使用,包括物理引擎中的使用
更加高效、更加易用地 API ,无需在第三个轴上处理逻辑或者数学问题
某些其他引擎上的典型解决方案在这里都变得没必要(例如:把 1 个像素设为一个单元,完美像素渲染, Z 轴分层和相机缩放问题等)
换句话说,我们能很好的控制每个游戏物体的尺寸、位置、速度和碰撞,包括皮肤( HUD ),这经常是需要进行一个完整的 PITA 设置。(不过我们还是蛮喜欢 Unity 的新 GUI 系统的说)
GDScript 脚本和 API
GDScript 是 Godot 中代码处理的默认编程语言,能和引擎的相关特性非常吻合的结合在一起。
通常只需要编写一点点代码就能做出一大堆动作效果,这是由于它那丰富的 API 。我曾以为每个对象都需要从头开始创建,但是 Godot 已经帮我们做好了,包括每一个操作和我所需要的自定义功能。
另外,我觉得 GDScript 是让新用户拒而远之的最主要原因。我重点列举以下我所听见的抱怨中的几条:
我是不是必须要学习一门只能在 Godot 中使用的编程语言?
是的,朋友,但是这并不会多花费你多于两天的时间。这门语言非常简单,就像 Python 的兄弟版。
最糟糕的情况是:至少你也将会学会另一门编程语言,而且学习新的语言能有助于你进行和别人不一样的思考方式(那是更好的方式)。
我讨厌编程语言
好吧,没有理由一定要尝试,我也没有什么可抱怨的。但是,如果你愿意的话,你可以完全使用 C++ 模块来编写代码然后轻松地导出为 GDScript 脚本。
或许,你可能更希望等待 Godot 3.0 版本的发布(其实它就在 Godot 的社区……开个玩笑),因为 3.0 版将会支持 C# 以及 GDNative 脚本,也就是说到时候你可以使用Python , Go , D , Rust 甚至 Nim (或者任意其他你想绑定的编程语言)等语言编写代码。
那么它的性能怎样呢?游戏代码如何?额
一般对于你所能想到的 95% 的游戏我相信性能都足够满足了。如果你还是持有怀疑态度,那么像我刚才提到的,你完全可以使用 C++ 模块编写然后获得 C++ 的性能。
如果在你的游戏里,某个部分算法有着极高的性能需求,那么你可以在此部分上单独使用 C++ 进行编程,在其他部分继续采用 GDScript 脚本。
你可以阅读更多 Shin-Nil 的关于性能测试之类的文章。
我的编程工具和软件并支持 GDScript 脚本
Godot 有一个集成的代码编辑器,而且除了基本的脚本编写之外它还具有漂亮的智能代码提示功能(也就是说代码自动完成功能),以及强大的 debug 功能,另外包括运行时编辑功能,你可以看看 Juan Linietsky ( 也叫 Reduzio )的视频,他是 Godot 的主要开发者,视频地址在此:
https://www.youtube.com/embed/50Vw4e6JPOI
到目前为止,对于外部代码编辑器,完全支持的只有 Visual Studio Code ,使用的是Godot 工具,由 Geequlim 开发,但是其他软件包括 Sublime Text , Atom 以及GEdit 都能支持语法高亮功能。
我的建议是:在批评之前先尝试使用 GDScript 脚本吧。如果你在一周之后还是不能顺利上手,效率也不高,那我赔你一颗糖吧。哈哈。(?)
到这里还是不相信?那看一看 Juan 关于创造 GDScript 脚本的理由吧,或许它能让你改变主意:
https://www.redditmedia.com/r/gamedev/comments/36u80q/godot_engine_11_out/crhjrw6/?embed=true&context=0&depth=1&showedits=false&created=null&uuid=null&showmore=false
节点和场景系统
节点是游戏中能够进行属性编辑的一个基本对象。它可以使一个 2D 精灵,一个 3D 模型,一些 GUI 控件元素或者仅声音的播放功能。 Godot 包含了大量节点可供使用和扩展,因此你可以完全创建属于你自己的节点类型。场景是由一组节点有层次的组织在一起构建而成,如同一棵大树。