Godot Masterclass: Zelda Inventory System and User Interface
What you'll learn
- How to implement an inventory and character system and UI from scratch
- Complex user interfaces with Godot, EVERYTHING about making user interfaces with Godot
- Advanced interface programming with GDScript
- Godot Nodes and Scenes fundamentals. Understand what are Godot's Game Objects and Components in depth.
- Godot Control Nodes and UI fundamentals including margins, anchors, layouts, responsive layouts, aspect ratios and more
- How to create an infinite scrolling grid of items, how to split it by pages and how to animate it dynamically
- How to structure the Data Model of an inventory and equipment system, separating items by categories and creating groups of categories,
- How to understand Godot's Container Nodes, Automatic UI Placement and Size Flags
- ow to create Equippable Item slots that accept configurable categories of items and show the items equipped in these slots
- How to create and expand custom Scriptable Objects (Custom Godot's Resources) with different attributes for items and equipment
- Godot's scripting language, GDScript, including the Observer pattern with GDScript's Signals in details, with a sample Traffic Light project
- How to handle and sync One Handed and Two Handed items, while automatically unequipping items if both hands are equipped
- How to create pickable items, dynamically add them to the inventory and list them in the inventory screen, in the correct category
Requirements
- At least Godot 3.4.3
- Basic Programming Logic and Fundamentals (Control Flow, Variables, etc)
- No prior experience with Godot, everything about Godot is taught in this course
Description
In this game development course with 98 byte sized videos, with a total of 10 hours of video content, you'll learn how to use the Godot Engine and Editor to create an Inventory System and Inventory UI (User Interface) that is fully dynamic, with scriptable object items and a central database of items (using Godot's Resources). The inventory system has support for multiple item categories, category groups, dynamic scrolling animations, equippable slots (example: main hand and off hand) and more.
The inventory system you are going to create is inspired by the Zelda Breath of the Wild inventory screen, and can be used in RPG, FPS, Adventure, Point-and-Click games and more, basically, any games where the player can acquire and keep track of items in different categories.
This is a MASTERCLASS about creating User Interfaces, Custom Systems, Custom Dynamic Data and Dynamic Interfaces with Godot. Not only data, it's a masterclass about Godot's Resource system.
This course gives you all the knowledge and the power to build responsive user interfaces with Godot, you will also learn how to make Dynamic Systems that use Dynamic Data using your own Data Model and Scriptable Objects.
You are also going to learn how to create your own extendable and expandable Godot's Game Objects and Components with custom Nodes, Scenes and Scripts. You are going to learn how to create custom Godot's Resources and how to mix and match Dynamic and Static data.
In a single paragraph:
You are going to learn EVERYTHING there is about creating complex User Interfaces with Godot, from scratch, as well as coding and adding behavior to those interfaces, creating truly dynamic UI screens and components.
(Almost) everything that you are going to learn:
Godot Nodes and Scenes fundamentals. Understand what are Godot's Game Objects and Components in depth.
Godot Control Nodes and UI fundamentals including margins, anchors, layouts, responsive layouts, aspect ratios and more
How to understand Godot's Container Nodes, Automatic UI Placement and Size Flags
How to create Big User Interface Screens with Godot that are also responsive for different screen sizes and aspect ratios.
How to create your own custom UI widgets, expand and inherit them (custom Control Nodes and Scenes)
How to create an infinite scrolling container and grids of items, how to split it by pages and how to animate it dynamically
How to structure the Data Model of an inventory and equipment system, separating items by categories and creating groups of categories, for example, listing One Handed Weapons and Two Handed Weapons under a Weapons group, while keeping the One and Two Handed classifications
How to have and list multiple pages of items under the same category
How to create User Interface that uses both Dynamic and Static data
How to create Equippable Item slots that accept configurable categories of items and show the items equipped in these slots
How to display item and equipment attributes
How to create and expand custom Scriptable Objects (Custom Godot's Resources) with different attributes for items and equipment
Godot's scripting language, GDScript, including the Observer pattern with GDScript's Signals in details, with a sample Traffic Light project
How to write custom GDScript Signals, connect to them and emit them
Advanced user interface coding with GDScript
How to handle and sync One Handed and Two Handed items, while automatically unequipping items if both hands are equipped
How to create pickable items, dynamically add them to the inventory and list them in the inventory screen, in the correct category
And more!
Course Structure
This course is divided as:
98 byte sized videos, 10 hours in total
Godot fundamentals
Creating the user interface with the Godot Editor
Planning the inventory system data model
GDScript Crash Course
Programming everything with GDScript
In the programming section, I explain the reasoning behind each line of code, so expect lots of drawings.
Godot Version
This course uses Godot 3.4.3. Since Godot 4 builds upon the fundamentals of Godot 3, this course is long lasting, you are not going to get something that will get deprecated. All of the knowledge is transferable, especially on how to build UIs and structure the data models.
Godot 4 is still too unstable and susceptible for breaking changes. When Godot 4 stable release comes out, I'll record upgrade and migration videos, this way you are going to learn twice as much.
Target Audience
This course is intended for all audiences, the only requirement is to know a bit of programming logic. You don't need to know Godot before starting this course.
Trailer music from ZapSplat
Who this course is for:
- People interested in getting started with Godot from scratch, and that want to go beyond the basics
- Godot users that want to get better with making UI and screens with Godot
- Developers that want to make Complex and Dynamic User Intefaces
- Godot users that want to learn about Scriptable Objects and Resources in depth
- Godot users that want to learn how to make advanced game systems with dynamic data
- Users from other engines that want to get started with Godot
- Game developers that need to learn how to create inventory systems
- Godot users that want to learn how to create custom Scenes and Nodes in depth
- Godot users that want to learn GDScript in-depth
Instructor
My name is Alfred Reinold Baudisch and I am a professional self-taught software engineer, data architect, game creator and hobbyist artist.
I started programming when I was 8 years old because I wanted to make games, since then I have learned dozens of different programming languages, frameworks, platforms and engines, and I have worked in hundreds of different projects of all types and categories: websites, desktop applications, mobile apps, APIs, embedded software, tools and of course, video games.
I have worked as a freelancer developer for 20 years, until 2015 when I founded my own startup: Fred (build your own chatbots platform). On top of that since 2018 I work as a Senior Software Engineer with Elixir and Phoenix in a Farming Tech Startup in Copenhagen, Denmark.
I also love everything about art and game development and I am also enthusiastic about open-source and open-source tools, specially Blender, Krita and Godot.
When I am not working, I am either in a museum, art gallery or most of the time at home drawing, 3D modeling, creating game prototypes or contributing to open-source. I just can't stop learning and creating! That's my passion.