Book Image

Godot Engine Game Development Projects

By : Chris Bradfield
4 (1)
Book Image

Godot Engine Game Development Projects

4 (1)
By: Chris Bradfield

Overview of this book

Godot Engine Game Development Projects is an introduction to the Godot game engine and its new 3.0 version. Godot 3.0 brings a large number of new features and capabilities that make it a strong alternative to expensive commercial game engines. For beginners, Godot offers a friendly way to learn game development techniques, while for experienced developers it is a powerful, customizable tool that can bring your visions to life. This book consists of five projects that will help developers achieve a sound understanding of the engine when it comes to building games. Game development is complex and involves a wide spectrum of knowledge and skills. This book can help you build on your foundation level skills by showing you how to create a number of small-scale game projects. Along the way, you will learn how Godot works and discover important game development techniques that you can apply to your projects. Using a straightforward, step-by-step approach and practical examples, the book will take you from the absolute basics through to sophisticated game physics, animations, and other techniques. Upon completing the final project, you will have a strong foundation for future success with Godot 3.0.
Table of Contents (9 chapters)

Main scene

Delete the extra nodes you added to your temporary Main.tscn (the Player instance and the test StaticBody2D). This scene will now be responsible for loading the current level. Before it can do that, however, you need an Autoload script to track the game state: variables such as current_level and other data that needs to be carried from scene to scene.

Add a new script called GameState.gd in the Script editor and add the following code:

extends Node

var num_levels = 2
var current_level = 1

var game_scene = 'res://Main.tscn'
var title_screen = 'res://ui/TitleScreen.tscn'

func restart():
get_tree().change_scene(title_screen)

func next_level():
current_level += 1
if current_level <= num_levels:
get_tree().reload_current_scene()

Note that you should set num_levels to the number of levels you've made in the levels folder. Make sure to...