Projects > Education

Godot Course: Dynamic Inventory System and User Interfaces

Learn to create extensive user interfaces and dynamic data systems with Godot by building an Inventory Screen. Get it on Itch or Udemy.

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 and infinite scrolling grids, equippable slots (example: main hand and off hand) and more.

The full source-code from the course is open-source, available on Github.

Links

The course is available on:

Trailer for the Godot course “Dynamic Inventory System, UI and Complex User Interfaces with Godot”

Description

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
  • Check the Table of Contents.

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.

Licenses

  • Trailer music from ZapSplat
  • Fantasy Inventory Icons by Ragewortt. License: OGA-BY 3.0.
  • FREE Keyboard and controllers prompts pack by xelu. License: Public Domain, CC0.
  • Kenney Asset Packs. License: Public Domain, CC0.
  • Interface Sounds Starter Pack by p0ss. License: CC BY-SA 3.0.
  • Inventory Sound Effects by artisticdude. License: CC BY-SA 3.0.

Journal

Links

Status

  • Completed
  • Personal / Hobby

Tools

  • Adobe Premiere
  • GDScript
  • Godot

Styles

  • Gamedev
  • Video