
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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 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.
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 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!