
Learn to create a 2d rpg in Unity, building a player, enemy AI with a finite state machine, combat, leveling, scriptable objects for items, dialogue, quests, and a village world.
Build a 2d rpg in Unity by creating a player, implementing movement with input system, and animating idle and move states, with health, mana, experience, and level via scriptable objects.
Create a new 2D RPG project in Unity, set up the editor layout, install Cinemachine and the new input system, enable both input modes, and import Ninja Adventure sprites.
Configure input with action maps to move 2D player via w a s d, and implement movement with a Rigidbody2D using MovePosition and a normalized vector2 direction in fixed update.
Create walk animations for a 2d player in unity by organizing four directional sprites, using a 2d blend tree and move x/move y parameters updated in code.
Learn to add idle animations in Unity for a 2D RPG, creating idle sprites from a 16x16 sheet, building idle and move blend trees, and wiring the moving parameter.
Create scriptable objects as data containers for player stats like health and max health, and implement an I damageable interface with take damage, then test in play mode.
Implement a dead animation in a Unity 2D RPG by adding any-state death transitions and a player animations class, and refactor movement and health logic to stop movement on death.
Define and manage player mana in Unity using a scriptable object for max and current mana, implement a use mana method with safety checks, and add an inspector reset button.
Revive the player in a Unity 2D RPG by triggering revive to return to idle facing down, resetting health, mana, and animations via the player animations class and game manager.
Develop a player experience system by tracking current and next level experience, resetting level and current experience on reset, and updating levels with an experience multiplier inside a ScriptableObject-based setup.
Create a player UI panel in Unity to display health, mana, level, and experience bars using a canvas and Text Mesh Pro, with a scalable layout and sorted UI layer.
Learn to update the player UI in Unity with a UI manager that syncs health, mana, and experience bars to a stats scriptable object, using Text Mesh Pro and lerp.
Create the game's world in Unity using sprites and tile maps, painting a village with enemy spawn areas, NPC zones, houses, water, and nature, without coding.
Set up sprites and tile palettes in Unity to paint your world, slicing 16x16 tiles, saving tiles as sprites, and creating house and prop prefabs with colliders and sorting layers.
Create all houses and props as prefabs by swapping sprites, renaming, and resetting box colliders, then add a rigidbody 2D, set to kinematic, and freeze rotation to build your village.
Build the main village in Unity by creating floor, decor, walls, and props on tile maps, painting sprites, and configuring sorting layers for proper rendering and collision.
Learn to create a 2d rpg enemy spawn area in Unity by painting floors, adjusting the camera, and placing walls, NPCs, trees, and two spawn zones with colliders and prefabs.
Create NPC area using Unity by selecting tile maps, painting walls, placing houses, trees, and props, and testing in play mode to fix invisible collision issues.
Build a 2D RPG enemy AI in Unity using a finite state machine with patrol, chase, and attack states, controlled by an Enemy Brain and adjustable detect and attack ranges.
Create and animate four enemies in a Unity 2D RPG, including bamboo, beast, mushroom, and reptile, using sprite slicing, colliders, and walk and dead animations with shared animator overrides.
Learn to build a finite state machine for enemy AI, defining actions, decisions, and transitions, configuring states in the inspector, and wiring a brain to update and switch states.
Implement the wander action in the enemy finite state machine to have enemies move to random destinations within a defined move range using speed and wander time.
Create a waypoint system and editor in Unity to enable patrols for enemies and NPCs, including handles, on-scene labeling, and project setup to disable enemy collisions.
Set up a patrol state to move an enemy between waypoints with a waypoint system, a patrol action, and wrap-around logic in a finite state machine.
Implement a detect player decision in Unity 2D RPG enemies using a finite state machine to transition from wander or patrol to chase when the player is detected in range.
Create an FSM chase action in Unity for a 2D RPG, enabling enemies to detect the player, switch to chase, and move toward the player while maintaining about 1.3 units.
Learn how enemies transition from chasing the player to attacking in a Unity 2D RPG, using an attack range decision, gizmos visualization, and FSM transitions.
Add a Cinemachine virtual camera and link it to the camera as Cinemachine brain. Follow the player in 2D, set lens size to 6, and tune dead zone and damping.
Learn to build a 2d rpg combat system in Unity by applying damage, displaying damage text, and creating attack animations and projectiles for enemies and the player.
Implement an action attack in the enemy FSM to damage the player, configure damage and attack rate, and apply damage using the I damageable interface.
Create a world-space canvas with Text Mesh Pro to display damage above the player. Animate and destroy the damage text using a simple damage manager singleton.
Create and configure projectiles in Unity for a 2D RPG by building a projectile class and animating energy ball, fireball, spike, and arrow sprites.
Create weapon scriptable objects to configure icons, weapon types, damage, mana cost, and projectile prefabs; define a magic and melee system and organize diverse weapons.
Load player stats into a Unity 2D RPG stats panel and toggle it with new UI buttons, displaying total experience, base plus weapon damage, and next-level experience via scriptable objects.
Implement experience gain on enemy defeats by adding an enemy loot class with an exp drop, wire a game manager singleton to award player experience, and reset total experience.
Create a Unity attribute system with strength, dexterity, and intelligence, wiring UI panels and buttons to update attributes via events. Manage points and reset base stats on level reset.
Upgrade the player by clicking strength, dexterity, or intelligence buttons, applying per-attribute upgrade settings to damage, health, mana, and critical stats, while refreshing the UI panel.
Create five item types: scrolls, treasure ingredients, weapons, and potions, and configure health and mana potions for testing and inventory integration.
Create an item scriptable object to define inventory items with id, name, icon, description, type (weapon, potion, scroll, ingredients, treasure), and stackable properties, plus copy, use, equip, and remove methods.
Create a weapon item by extending the base inventory item with a weapon scriptable object in Unity, and configure icons, descriptions, and one-slot, non-consumable weapon settings.
Implement a health potion in a 2D Unity RPG by adding can restore health, a restore health method with an amount, and testing via the inventory item flow.
Create a mana potion item inheriting from the base inventory item, following health potion logic, that can recover mana and recover(amount) clamped to max mana.
Develop a generic singleton in Unity by creating a reusable Singleton<T> class and assign per-manager instances (game, damage, image manager) in Awake, replacing separate MonoBehaviour singletons.
Create new item types by adding an Item Extra ScriptableObject class in Unity and extending the inventory with scrolls, gold keys, and honey as non-consumable treasures and ingredients.
Create new items for every sprite in the items folder by adding scriptable objects for scroll ingredients, treasure, and potions, expanding your game's inventory in the next section.
Create and test a 2d rpg inventory system in Unity, including an inventory panel, item stacking up to 20, health potions, item descriptions, and use, equip, or remove actions.
Create a Unity inventory UI by building a panel with a six-column grid of 24 slots, each containing an item icon, quantity, and a description with use and equip buttons.
Build and show inventory items by creating inventory, inventory slot, and inventory UI classes, configuring a 24-slot inventory and updating item icons and quantities.
Stack items in a Unity inventory by respecting max stack values, merging quantities into existing slots, and populating new slots when needed; update the UI accordingly.
Implement a stackable inventory system in Unity, opening and closing the inventory, selecting slots, and using health potions to restore health while updating item quantities and UI.
Move init inventory to Awake to fix call order in Unity, ensuring slots exist before draw and verify items for draw, preventing argument out of range errors during play.
Learn to remove an item from the inventory in Unity by indexing, clearing references, updating the UI, and wiring the remove button to trigger the removal logic.
Learn to equip weapons in a Unity 2D RPG by wiring inventory, weapon manager, and player attack to update weapon icons and mana text, using weapon config ScriptableObject data.
Show the item description panel in Unity by displaying the selected item's icon, name, and description when a slot contains an item, and hide it when closing the inventory.
Learn to create a save system for an inventory in Unity, showing save and load across play mode with items like health potion and honey.
learn to save a 2d rpg inventory in unity using save game free gold update, with an inventory data class and scriptable objects to store item ids and quantities.
Load inventory by reading saved inventory data, verify each item exists in game content, recreate item instances with correct quantities, and update the inventory UI accordingly.
Create a flexible loot system in a 2D RPG with Unity by defining enemy drops, drop chances, and an interactive loot panel that adds health potions to the inventory.
Create a loot panel in Unity for a 2D RPG to display loot items with a scrollable viewport, vertical layout, item icons, names, quantities, and a close button.
Configure enemy loot drops in a Unity 2D RPG by creating a drop item class with name, item reference, quantity, and drop chance, then load drops at runtime.
Load each enemy's drops into a reusable loot panel, updating item icons, names, and quantities, and add collected items to the inventory.
*** Please make sure you meet the requirements for the course ***
Are you ready to dive into the captivating universe of role-playing games and learn how to craft your interactive world from scratch? This course is your gateway to creating epic and immersive experiences using Unity and its powerful Scriptable Objects system.
Throughout this comprehensive course, I'll guide you through every crucial step to develop a complete and functional RPG game. From crafting panels, designing player characters, creating enemies, implementing systems like stats, AI, combat mechanics, levelling up, handling items and inventory management, saving and loading inventories, looting mechanics, engaging dialogues, quests, and even setting up a full operational shop.
Our unique approach focuses on making the complex game development process accessible to all skill levels. From beginners to more experienced developers, this course is designed so that anyone interested in game development can dive in and learn effectively. The clarity of instructions and the logical structure of the course ensure that you can easily understand and apply the presented concepts.
Below, we present a brief introduction to the main topics that we will address throughout the course:
State-based AI System (FSM)
Master Scriptable Objects
Design an Inventory System
Create Dialogues
Create Enemies
Create Items
Create Loot
Create a cool Shop
Create Quests
Add Combat
Upgrade your Player
Design UI
Use Tilemaps
Good Programming Practices
By the end of this course, you will gain a deep understanding of Unity's fundamental principles and learn how to implement them effectively.
Whether you're a novice or an experienced game developer, this course will equip you with valuable insights and practical skills that will empower you to create your own captivating game experiences. Get ready to embark on a game development journey and unlock your potential in the world of Unity!