Table of contents
01.Introduction
- Changelog: new content in the course
- Credits
- How to ask your questions
- Open-source projects
02.Jrpg Combat Core
- Introduction
- Designing a new game
- The design process for this project
- Overview of the project’s code structure
- Using resources for data in Godot
- Creating the Battler
- The active turn queue
- Character base stats
- Stat bonuses and penalties
- Challenge: stat multipliers
- Solution: stat multipliers
- Actions with the command pattern
- Designing damage and hit formulas
- Implementing the damage formulas
- Challenge: exponential formulas
- Solution: exponential formulas
- Creating attack actions
- Taking and inflicting damage
- Designing base animations
- Coding the BattlerAnim class
- Queueing player turns
- AI-controlled battlers
- Letting the AI choose an action and targets
- Status effects
- Applying status effects
- Annex 1: an alternative stats system
03.Jrpg Combat Ui
- The user interface
- Designing the action button
- The action menu
- Selecting a target
- The turn bar
- The life bar
- The energy bar
- The Battler’s Heads-Up Display (HUD)
- Challenge: redesigning the battler’s HUD
- Solution: redesigning the battler’s HUD
- Battler and HUD selection
- Combat result panel
- Spawning damage and miss labels
04.Tactical Rpg Movement
- Tactical RPG movement
- The Grid
- Creating the Unit
- The player’s cursor
- Pathfinding and path drawing
- Drawing the path
- The flood fill algorithm
- Unit selection and cursor interaction
- Challenge: Moving to target units
- Solution: moving to units
05.Simulation Builder
- Introduction
- Project Overview
- Challenges with 2D angled graphics
- Project setup
- Creating the Stirling engine
- Implementing the Events singleton and EntityTracker
- The EntityPlacer
- Deconstructing entities
- Wiring entities
- The Power System
- Sending power from sources to receivers
- The battery entity
06.Simulation Builder Ui
- Introduction and overview
- Creating a GUI theme in Godot
- Building the inventory system
- Rewriting the entity library
- Item Stacks and Mouse Drag Preview
- Coding the inventory slots
- Placing items and fixing their look in the inventory
- The quick item bar
- Dropping and picking up entities
- Putting ground items in the inventory
- Adding entities to pick up
07.Simulation Builder Craft
- Introduction and overview
- Creating an information tooltip, part 1
- Creating an information tooltip, part 2
- Designing the crafting GUI
- Scripting crafting recipes
- Creating items with crafting recipes
- Requiring tools to deconstruct items
- Adding trees, ore, and mining feedback
- Adding special GUIs to machines
- Creating a chest
- Inventory slots for specific items
- Designing the Stirling engine’s GUI
- Making the engine burn fuel
- Coding the work system
- Creating a smelting furnace
- Crafting the Furnace GUI
- Smelting ingots with the furnace
- Smelting with an electric furnace
08.Visual Novel
- Introduction
- The text box and text display
- Controling text display with code
- Displaying characters
- The resource database
- The scene player
- Scene fade animations
- Player choices
- Sequencing scenes
- Refining controls and animation
- The Skip button
09.Rhythm Game
- Introduction
- Overview of the demo’s structure
- Synchronizing Beats
- The Event Bus
- The HitBeat
- Spawning HitBeats
- Adding user interface during play
- Adding scoring and timing
- Animated scoring sprites
- The animated ring
- Structuring HitBeats
- Creating patterns
- The track selection menu
- Generating the tracklist
- The menu’s touch input
- Scaling and fading track tiles
- Creating the end screen
- The roller mechanic
- Managing the roller score
- Adding rollers to patterns
Best Practices
- Best practices with signals
- Code cleanliness and readability tips
- How do I choose a save format for my game?
Design Patterns
- Design patterns in Godot
- The State pattern
- The Events bus singleton
- Entity Component System in Godot
- The mediator pattern
- The Adapter pattern
- The Strategy pattern
Mini Tutorials
- Lighting with 2D normal maps
- Limited player vision with lights
- Character Customization
- Game settings menu
- Zooming with the mouse wheel
- Visibility 2D nodes
The End
- Share your feedback