
Advance turn-based rpg game with Unity 6 and C#, learning to build exploration, dialogue, recruitment, combat with abilities and status effects, auto battle, inventory, shops, crafting, and formations.
In this part we are going to create new project and import game asset.
In this part we are going to make script to organize our team and we are learning how to add and remove player member from team.
In this part we are going to create NPC to interact with him and he will join our team if we have enough space inside our team
In this part we are going to learn how to save and load new player members to our list, so when we start the game our player member are the same as we left the game.
Create and wire a battle launcher singleton in Unity to load the battle scene, set up scene management, and trigger battle initialization from a UI button.
Instantiate players in battlefield shows creating a battle controller singleton, spawn points, and spawning player prefabs with their character scripts to start a turn-based battle.
In this part we are going to spawn our enemy team inside of battlefield scene
Spawn players and enemies from prefabs at spawn points. Launch the battle via a singleton launcher when the player enters.
In this part we are going to define player team in dictionary list as 0 and enemy as 1, so it help us to have better turn actions like attack all or heal all and ....
In this Part we are going to work player and enemy Stats
Design and implement the battle user interface in Unity, building the canvas, background, actions, spell panel, and player info with portrait, name, and HP bars.
Enhance the battle UI by integrating Text Mesh Pro fonts, spell icons, a grid-based spell panel, and poison indicators for health and spell info.
In this part we are going to learn how to shown a sign over our character
Create a character UI manager to display each player's health, mana, name, and poison icon, updating five character panels in battle with Unity UI.
in this part we are going to learn how to fade in and fade out inside of battle scene
Create and refine a spell script that defines spell properties, handles single and area targets, applies damage, healing, and poison via a damage multiplier, and animates spell movement toward targets.
Implement and manage the spell panel system in Unity, building a dynamic spell list from the current character, instantiating spell buttons from a prefab, and updating the spell description text.
Implement and refine a Unity character script, handling damage, critical hits, healing, death, floating damage text, enemy UI updates, and basic spell and poison mechanics.
Set up the enemy script and UI assets in Unity, configuring pirate enemies with health, mana, attack, and poison indicators, plus health UI, hover effects, and floating text.
Implement and manage the enemy script in a Unity turn-based RPG, enabling random spell or attack actions, target selection, health updates, poison UI, and enemy removal on death.
Create and animate floating damage text in Unity using TextMesh Pro, with upward movement, fade-out, color formatting, and initialization via a dedicated script and prefab setup.
Build and refine the battle result controller in Unity to show win/lose screens, handle auto battle, and switch scenes, while wiring user interface panels and animations.
Fix a series of debugging tasks in a Unity turn-based role-playing game: sync the speed text, implement spell and poison damage, handle death and turn order, and refine damage text.
Explore a robust battle control system that coordinates player and enemy turns, precise spell targeting via spawn points, poison effects, auto battle, and end battle outcomes in Unity.
In this part after our players defeat enemies they are going to gain experience point and update their stats and save the new stats so in next battle they are going to have new stats.
Build a team formation UI in Unity, allowing players to rearrange positions (front, mid, left, right, back left/right) using a canvas, bg, slots, and prefabs.
Build a drag-and-drop formation system in Unity using team member slot and formation manager scripts, event system, and UI, to swap portraits and toggle the formation panel.
Learn to build a dynamic main team and reserve team system in Unity, enabling swapping players, saving and loading team data, and managing prefabs in a formation UI.
In this part we are going to learn how to shake camera when we do critical or die in battle
Create a 2D player in Unity with a box collider and Rigidbody 2D, and implement a four direction blend tree animation (idle and walk) using moveX and moveY parameters.
Learn to build and attach a Unity C# player movement script using rigidbody 2D and animator, moving with linear velocity from input axes, using normalized movement and fixed update.
Create a dialogue box for player–NPC interactions with a dedicated dialogue canvas, portraits, names, and a next button. Utilize TextMesh Pro for crisp dialogue text.
In this dialog controller script lesson, learn to build a Unity C# dialogue system with left-right avatars, name boxes, typing text, speaker colors, and optional sound, plus basic triggering.
Learn to implement a dialogue system in Unity by using a dialogue trigger, audio source, and quest states, including before and after quest dialogues, icon cues, and canvas integration.
In this part we are going to work on NPC in the way that when we finish talking he is joining the team
In this part we working on our NPC so after he joined the team he will be disabled in the map and with reloading stay disabled
Create and manage an in-game inventory UI in Unity for a turn-based RPG, featuring character slots, weapon and armor slots, item use, XP reward logic, and an item info panel.
Develop the turn-based RPG inventory UI by creating slot holders, equipment slots, and a grid layout, then implement item slot UI and inventory manager to handle icons and item counts.
Create and configure item data as a scriptable object, defining item types, stats, and stacking to power the inventory system in a Unity turn-based RPG.
Learn to implement a Unity inventory system by adding item data and equipment handling for weapon, armor, boots, and helm, including equip, unequip, and item bonus calculations.
Display character stats in the inventory by wiring a show character stats function, updating the UI with character data, and wiring team buttons to reveal stats.
Add items to a Unity turn-based RPG inventory by finding the first available non-equipment slot, handling stackable items, and updating the UI.
Learn to implement a complete inventory system in Unity: select, use, equip and unequip items, manage item stats, apply XP and HP/MP increases, and update the character UI.
Implement a sort inventory function in Unity C# that builds an inventory list and sorts items alphabetically by display name, with inventory toggled by the I key and items saved.
Implement a Unity save system with a save manager to persist inventory slots, including item IDs and quantities, using JSON and PlayerPrefs, and load to refresh the interface.
Ensure inventory data persists across scenes by syncing the save manager and inventory manager, loading items after slot initialization, and supporting battle rewards.
Integrate saving and loading of character equipment in a Unity turn-based RPG by implementing save data structures, deserialization, and restoration of weapon, armor, helmet, and boots data across party members.
Implement saving and loading of character stats when entering battles by updating the character save manager, initializing from data, and syncing stats after equipping or unequipping items.
Learn to implement win rewards in a Unity turn-based RPG by displaying item icons and XP on the win panel, wiring a win battle controller, and updating UI elements.
Create a crafting UI in Unity by building a canvas and curved panel, adding a title, and assembling a recipe holder with item icons, resources, and a craft button.
Design a crafting system in Unity by implementing a crafting recipe UI, scriptable objects for recipes, inventory checks, and a crafting window that updates availability and consumes items.
Activate shopkeeper interaction to open the crafting panel. Use an object activator, detect the player with a 2D box collider and talk icon, and set time scale to zero.
Want to build your own RPG like Final Fantasy, Pokemon, or Octopath Traveler?
In this hands-on course, you’ll create a complete 2D turn-based RPG in Unity from scratch — no prior coding or game development experience required!
This project-based course is ideal for beginners and intermediate developers who want to dive into game development using real mechanics found in commercial RPGs.
You’ll learn step-by-step how to create classic RPG systems including:
Turn-based battle system with player and enemy actions
Health, mana, attack/defense stats, and leveling
Item system and inventory UI
World navigation in map and talk to NPCs
Dialogue system with quest triggers and choices
Save/load functionality for player progress
Build a fully functional 2D turn-based RPG game in Unity using C#
Create turn-based combat systems with enemy AI and skill selection
Design player stats, enemy stats, experience, leveling, and damage formulas
Set up inventory systems, items pick up, and equipment
Animate characters, attacks, and spell effects
Implement save/load systems for player progress
Understand Unity best practices and clean C# coding structure
Gain real-world experience developing a complete game project
Throughout the course, we’ll write clean, scalable C# code, and you’ll gain real-world game dev skills in Unity’s ecosystem.
By the end, you’ll have your own complete RPG game, plus the tools to build your own custom adventures!