Godot3引擎自发布以来以其简单易上手、功能齐全、支持多平台并且完全免费开源等特点赢得了许多游戏开发者的青睐。熟悉一个引擎最好的方式便是开始用它制作游戏,本系列文章将从创建工程开始,记录一个平台跳跃小游戏的制作过程,文章中如有错误或不妥之处欢迎指出。
先放演示效果:
在很久以前便注意到了Godot这个游戏引擎,不过由于各种原因一直没有去尝试它。如今Godot已经更新到了3.x版本,功能越来越完善,使用它的人也越来越多(大部分是独立游戏开发者和GameJam爱好者),国外的一些媒体文章中也给了Godot不错的评价。我决定上手这个引擎试试,看看它是否真的像传说中那么好用,是「真香」还是「真坑」,是「从入门到精通」还是「从入门到放弃」,顺便把上手过程记录下来。
本系列文章将以一个平台跳跃小游戏为例,从创建工程开始,介绍游戏的制作过程,文章整体风格偏向入门教程,如有错误欢迎指出。上面的演示效果图是目前的制作进度,如你所见,玩家将操控一个长得有些憨憨的主角,在奇奇怪怪的世界中展开冒险。游戏将涵盖基本的平台跳跃元素,随着制作的推进和脑洞的大开,将会加入更多有趣或古怪的内容。
说回Godot引擎,它的优点已经有不少文章介绍过了,此处就不再赘述,个人最喜欢它这几点:
- 遵循MIT许可,完全免费开源
- 有中文界面、官方中文文档以及一套简单易懂的入门教程,感谢翻译的大佬们
- 小巧却功能强大,单独安装文件仅几十MB,支持2D与3D
- 编辑器界面简单易上手,如果你还使用过Unity或者其他类似的编辑器,Godot的界面几乎零成本上手
- 支持多平台发布,包括Android/iOS/HTML5/Windows/macOS/Linux
- 支持直连设备运行与远程调试
更多特色可以前往官网了解,以及查看最新的中文文档。
废话不多说,开始Godot的游戏制作之旅吧。
安装
Godot不需要其他麻烦的环境配置,直接进入官网下载页,选择你对应的系统、位数然后下载安装包并安装即可。
这里Standard Version与Mono Version的区别在于,Godot默认的脚本语言是它自带的GDScript,而Mono Version还支持使用C#语言编写脚本。不过按照官方说法,当前(3.1.2)版本对于C#的支持还比较初级,在此还是推荐使用Standard Version。
可能有人会说,怎么这么麻烦,为了用个引擎又得熟悉一门语言!我熟悉C#,用C#不好吗?放轻松,GDScript非常简单简洁,它跟Python十分相似,只需体验三分钟,你就会和我一样,爱上脚本编写。
Godot也支持无需编写代码的可视化脚本,如果你是设计师,希望制作游戏原型,亦或是新手上路,编程还不太上手,使用可视化脚本是一个还算不错的选择。
关于Godot为何要创建一个全新的语言来编写脚本,可以参阅官方文档中的说明
也可以通过Steam来安装Godot(没什么区别,也许Steam会自动帮你保持最新版本,以及统计你的使用(爆肝)时长)
项目创建
安装完毕之后运行,出现项目列表窗口,中间两个选项卡分别是项目列表与模板列表,模板列表里可以看到一些社区里的模板,可以下载导入;点击右上角的地球标志可以切换语言,拉到底部就有Chinese了,不过我仍然用的英文,可以切,但没必要。
点击New Project
创建项目,输入项目名称,Browse
选择项目路径,Create folder
可以在你选择的路径下创建以项目名称为名的空文件夹。Renderer
一项选择的是默认的OpenGL ES 3.0
,最后点击Create & Edit
创建项目。
HelloWorld
映入眼帘的是一望无际的平原,远方的地平线上泛着白光,似乎有一颗炽热的朝阳即将冉冉升起...走错片场了,Godot的3D与2D是分开的,这点很有特色。我们要制作的游戏暂时没有用到3D,点击工作区上方的2D与3D按钮可以随时切换。
编辑器的其他部分会在用到它们的时候逐一介绍,初见可能会觉得编辑器的面板有些复杂,但使用几次后便会有亲切感了。
创建场景与节点
我们现在来做一件最符合程序员们程序正义的事——HelloWorld。
在左侧的Scene(场景)面板中可以看到,Godot建议创建一个Root Node(根节点)。在Godot的设计理念中,游戏由一个个场景组成,而场景包含了一堆各式各样节点,这些节点呈树形结构,是场景的基本组件。
那么我们就点击2D Scene
创建一个2D的根节点好了,不这么做也可以,你可以点击Custom Node
或者上方的+
按钮来添加一个你喜欢的节点,不过这可能会出现一些意想不到的结果,或者惊喜。
现在需要在游戏里显示Hello World,正好Label
类型的节点可以做到,右键刚才创建的节点,选择Add Child Node
,在弹出的对话框上方搜索栏中输入'Label',然后选择创建即可。
可以看到在中间的工作区面板中已经出现了一个小方框,就是刚刚创建的Label节点,并且是选中状态。
右侧的Inspector面板中显示了当前选中节点类型以及一大堆节点属性,现在只需要关注第一项Text
属性就行,在文本框中直接输入经典口诀HelloWorld即可,然后可以在工作区中把Label节点拖到你喜欢的位置。
之后按下可能是最常按的那个组合键(Ctrl+S或⌘+S),把当前这个场景保存成文件,这里就叫HelloWorld好了。
可以发现Godot的场景文件格式是.tscn,保存路径是res://,这个路径始终会指向项目根目录,方便了对各平台的适配。
运行
点击右上角的运行按钮,游戏将由主场景开始,由于我们还没有设置主场景,此时会弹出一个对话框询问是否选择主场景,点击选择HelloWorld.tscn作为主场景,随后HelloWorld就运行出来了。
如果要显示中文或者调整字体大小,则需要使用到字体资源,后续的文章中将会介绍,也可以参阅贴吧大佬的教程或者官方教程。
迫不及待想要导出?HelloWorld有什么导出的必要吗。如果想要试一试,可以参阅导出指南,后续的文章中也会介绍。
资源准备
通过千篇一律的HelloWorld熟悉了编辑器之后,正式开始平台跳跃小游戏的开发。俗话说,巧妇难为无米之炊,首先需要准备游戏用到的各类资源。
由于只是练手项目,就不大费周章自己画图和做音频了,有许多网站可以下载到很不错的素材,在此推荐几个网站,使用素材资源时请注意版权问题:
- OpenGameArt
- OpenPixelProject
- Kenny
- FreeSound
本系列用到的资源已整理,可以从这里下载 密码 lq9g
资源中大部分遵循CC0协议,部分为CC-BY 3.0,如果需要使用这些素材发布作品,或用于商业用途,请注意素材中的版权声明。
使用的平台跳跃素材有些年代了,大概率会和已有游戏撞车,如有雷同,纯属巧合。
准备万全之后,就可以开始正式的开发啦!下一篇文章将介绍如何搭建游戏世界。
下一篇:[Godot3游戏引擎实践]平台跳跃小游戏(一)-搭建游戏世界
- 感觉不错,想进一步学习?欢迎阅读这个系列的下一篇文章,或者看看官方的渐进式教程
- 如果你是Unity用户,想快速了解二者的区别,不妨看看从 Unity 迁移到 Godot 引擎
- 深入了解Godot的设计理念