
Adopt a real development mindset: define problems, implement solutions, and fix bugs to become an independent game developer. Practice by following steps and staying beginner-friendly in Unity.
Learn practical bug fixing in Unity: backtrack steps, take breaks, and use the Q&A to post concise, error-focused questions with scripts, screenshots, or videos.
Embrace the journey of game development and acknowledge the challenges ahead; don't stress. Stay motivated, celebrate small victories, have fun, and imagine becoming a game developer as you begin.
Join the four-hour crash course to master Unity basics and C#, covering components, float vs int, update cycles, animation, blend trees, and essential readiness questions for the main RPG course.
Install unity by downloading unity hub, using unity personal, and sticking to unity 6.0 for consistency, then set editor and project locations and create a universal 2D core project.
Explore Unity's windows and tools to understand the game view, scene hierarchy, inspector, and project window, and learn basic components, hotkeys, and 2D workflow for rapid prototyping.
Learn how Unity components give objects behavior, from transform and sprite renderer to Rigidbody 2D and colliders, and how custom MonoBehaviour scripts shape movement and physics.
Explore the basics of C# variables in Unity, including string, int, float, and bool, with practical examples like player name and debug log.
Explore Unity's execution order, from awake to start to update and fixed update, and learn how Monobehaviour enables scripts on game objects and physics-driven behavior.
Use functions to organize and reuse code, following the dry principle. Create methods with parameters to display player info and apply damage, improving readability and flexibility.
Implement 2D character movement in Unity by setting the rigidbody velocity from horizontal input, using old input and later the new system, and exposing move speed with serialize field.
Explore simple decision making using if statements and the old input system in Unity to implement jump mechanics, adjust jump force, and refactor code into handle input and movement methods.
Replace the placeholder with a playable character by importing itch.io assets, slicing the sprite sheet with a centered pivot, and creating an idle animation in a Unity 6 animator.
Create a movement animation in Unity, wire up a move clip, and control transitions with a boolean isMoving, including immediate transitions by disabling exit time and setting duration to zero.
Rotate the character on the y-axis to 180 degrees to flip, track facing direction with a boolean, and flip automatically based on horizontal velocity.
Implement collision and ground detection in Unity using a downward raycast to determine is grounded, control jumps, and visualize with gizmos for a responsive 2D platformer.
Set up jump and fall animations for a 2d character in Unity using blend trees driven by x velocity and y velocity, with is grounded controlling transitions.
Create an attack animation in Unity using an animation trigger to transition from idle or move. Use animation events to call methods and control player movement during the attack.
Implement attack logic and enemy detection in Unity using a 2D collider, attack point, and overlap circle to detect and damage enemies; learn arrays, lists, and for-each to apply damage.
Master timers and cooldowns in Unity to control enemy damage and color feedback, and to manage skill cooldowns using time.deltaTime, invoke, and time.time for frame-rate independent gameplay.
Explore inheritance in object oriented programming, where a base enemy class shares functionality with derived goblin and skeleton classes using protected and serialized fields, illustrating encapsulation and paving for polymorphism.
Learn polymorphism in object oriented programming: two objects use the same attack method but behave differently via overrides, e.g., goblin steals money while skeleton attacks, and archer shoots an arrow.
Explore encapsulation as a core object-oriented principle, protecting variables with private or protected access and exposing them via public methods such as get enemy name to other scripts.
Start the main course with a fresh project, treating the crash course as a stepping stone. Adopt modular scripts and a finite state machine to manage movement and skills.
Set up a foundation for your RPG in Unity by selecting a stable version, creating a universal 2D project, importing itch.io assets, and organizing input and settings folders.
Discover how finite state machines organize a game character’s behavior into states like idle, jump, attack, and dash, enabling controlled transitions and modular, debuggable scripts.
Build a finite state machine in Unity with an entity state base class and a state machine; initialize a start state and switch states with enter, update, and exit.
Define an abstract entity state as a shared base, centralize components like rigidbody and animator, and implement idle and move states with a state machine and transitions.
Learn to set up Unity 6's new input system, create a player input set and action map for keyboard and mouse, and wire movement using Vector2 and move input.
Archive and provide the reference Unity project, perform light cleanup, and implement a public update active state method in the state machine to streamline updates.
Learn to implement idle and movement animations in Unity by configuring the sprite editor, pivot points, and an animator controller with idle and move states and transitions.
Set up movement logic in a 2D Unity RPG by using a dynamic Rigidbody2D, a capsule collider, and a velocity-based movement method driven by move speed and input.
Rotate the character on the y axis to flip direction in Unity, driven by velocity and a facing-right flag, using the player script flip logic.
Explore building a jump state in Unity, using input, animations, and a shared grounded state to transition between idle, move, and jump with collision checks.
Use a raycast with a layer mask for ground detection, gizmo visualization, switch from jump to idle, and enable in-air movement via an air move multiplier and a super state.
Implement a wall slide mechanic in unity 2d using raycast wall detection, a zero-friction material, and a dedicated wall slide state in the player state machine.
Implement a wall jump state in a Unity RPG game, using a wall jump direction and force to set x and y velocity and manage transitions to wall slide state.
Implement a dash state in Unity with a timer-based state machine, dash input, and animation; save direction on enter, apply speed, and manage gravity and walls for natural cancel.
Implement a basic attack state in Unity by wiring input to a basic attack animation and exiting to idle with an animation event, while applying attack velocity for feedback.
Learn to implement combo attacks in Unity by creating multi-attack animations, a basic attack substate, and a combo index system with velocity arrays, time-based resets, and safe coding practices.
Learn to chain combo attacks in Unity by transferring directly between attack states using coroutines, avoiding idle pauses, and timing animator transitions for a smooth, direction-aware combat flow.
Build a jump attack system in Unity using animation states, triggers, and a state machine to perform aerial and ground attacks, with dash combos and finisher transitions.
Improve wall detection and movement by adding dual wall checks and raycasts, switching to idle when no input, and refining wall slide and wall jump mechanics.
Archive the project and offer it for download, reflecting on a player controller that feels amazing and a flexible state machine ready to expand with future enemy states.
Learn how to set up a tile palette and import assets in Unity to build a quick demo level, including organizing folders, creating tile palettes, arranging tiles, and adjusting pivots.
Build a level with a 2D tile map, configure ground colliders with tilemap and composite collider 2D, and manage sorting layers and parallax backgrounds.
Install Cinemachine from the Unity registry, attach it to the main camera, and adjust lens, tracking target, dead zone, hard limits, and look ahead for a smooth 2d camera.
Confine the 2d camera with cinemachine confiner using a polygon collider as boundaries and turning it into a trigger, then attach the collider to the cinemachine container 2d extension.
Create a multi-layer parallax background in Unity by organizing parallax layers, applying per-layer multipliers, and syncing movement with the camera to add depth to a 2D game.
Implement an endless parallax background by looping images based on camera edges, image width, and an offset. Reduce jitter by using fixed update and setting interpolate to none.
Create a simple demo level to test core gameplay, enemies, and traps using a prototype as reference. Set camera limits and hide off-screen areas with tile maps and dungeon walls.
Fix wall flip and jump velocity caused by a tilemap composite collider by zeroing the offset, and refine wall slide to flip only when there is no input.
Refactor your Unity RPG setup by creating a base entity class that both player and enemy inherit from. Apply the dry principle to centralize components and state machine logic.
Create an enemy skeleton GameObject, add rigidbody and collider, and build a shared enemy state system by inheriting from entity, enabling skeleton-specific states and animator control.
Implement enemy walk and idle states using a shared state machine in Unity, featuring ground and wall checks, state transitions, and skeleton animations.
Build an enemy attack state in Unity to enable skeletons to chase, attack, retreat, and switch to battle state via a state machine, using animation events for triggers.
Design and implement a battlestate that blends walk and idle animations, enabling enemies to detect and chase the player with raycast-based detection and trigger attacks in Unity.
Implement a battle state in Unity for an RPG skeleton, setting move speed and attack distance, using raycast for player detection, and guiding movement by distance and direction.
Adjust the skeleton's battle animation speed with an auto-adjusting multiplier, implement a battle timer, and enable retreat by jumping away when the player is too close.
Refine the enemy state machine, add a general update animation method, and demonstrate overrides across states to prepare future systems like combat and inventory.
Create a target and combat system using animation events to trigger target detection via a 2D overlap circle, detecting player and enemies with a dedicated combat component.
Build a simple damage system by creating an entity health component with max hp, implement take damage and reduce hp, and trigger die when needed.
Fix enemy behavior by overriding take damage to trigger battle state. Pass damage dealer transform, detect the player, and manage a reliable player reference for Unity RPG combat.
Learn to create a universal damage flash in Unity by swapping a white damage material on a sprite renderer for a brief duration with a coroutine and overlap safeguards.
Explore implementing damage knockback in Unity, applying directional velocity when an entity takes damage. Add heavy knockback for high-damage hits using a threshold and separate power and duration settings.
Implement a universal enemy death state in Unity by freezing the last animation, bouncing the body, applying gravity scale, and disabling the collider so it falls off the level.
this lecture demonstrates implementing a player death state in unity, including death animation, animator parameters, input disabling, physics simulation control, and event-driven communication to enemies to switch to idle.
Learn to use interfaces in Unity to unify reactions to attacks by implementing an IDamageable interface detected via GetComponent, triggering TakeDamage for enemies and chest open for chests.
Develop an enemy stun state triggered by the player's counter attack and a corresponding player counter attack state, with animation cues, stun timing, and visual signals for opportunities.
Learn to implement a player counterattack in Unity: design animations, a counter attack state, input handling (Q), target detection, and counter recovery logic for responsive gameplay.
Implement on-hit visual effects by importing a VFX sprite, creating an animator-driven prefab, and instantiating it on attack with random offset, rotation, and auto-destruction.
Create a health bar UI in Unity using a slider set to world space to display enemy health as a percentage of current HP over max HP.
Polish the combat user interface by standardizing outlines and evaluating tac alert options, including removing it or replacing with a simple circle alert, to reduce screen clutter.
Design and implement a scalable stat system in Unity with four stats—strength, agility, intelligence, vitality—that drive damage, crit power, evasion, and health via an entity stats class using stat objects.
Learn to organize Unity RPG stats by grouping major, offensive, and defensive stats into serializable classes, enabling clean inspector views and player-only major stats while keeping enemies simple.
Develop a chance-based evasion system in Unity using random range 0-100 to compute base evasion plus agility, with a clamp to cap evasion for balance.
Build a Unity critical attack system that computes base and bonus damage from strings, calculates crit chance, applies a multiplier, and triggers a critical hit visual effect.
Explore armor mitigation and armor penetration by implementing a damage reduction formula where total armor yields diminishing returns, capped at 85%, and introduce armor reduction to enable penetration mechanics.
Balance elemental damage in unity using fire, ice, and lightning: highest element deals full damage, others add 50 percent, with intelligence giving bonus; applies to attacks, skills, and status effects.
Determine the main elemental type from the highest damage, convert all attacks to that element, and apply elemental resistance using an element type enum.
Apply a chilled status effect for ice elements in Unity, changing attack color and slowing targets for a duration, with visual effects and tests in Unity.
Implement a burn status effect in Unity that deals fire damage over time with ticks, duration, and damage per tick, honoring fire resistance and showing burn visuals.
Learn to implement an electrified status effect in Unity for lightning damage: build up charge on enemies and unleash a lightning strike with coroutines and VFX.
Learn to implement health regeneration and adjust attack speed according to stats by adding a stat resource group, updating entity stats, and wiring animation parameters in Unity.
Build a buff object that temporarily applies stat modifiers to the player, featuring a floating candle, picked up via a 2D trigger, with a coroutine managing duration and disappearance.
Implement a stat system with base values, serializable stat modifiers carrying sources, and type-based stat retrieval; add or remove modifiers, compute final values, and optimize recalculation for Unity RPG gameplay.
Define a scriptable object to store default stat setups for RPG enemies, then apply them to skeletons or other entities via a single update in the inspector.
Refine the role-playing game combat system by fixing bonus damage logic and element priority, and organize project structure with folders for enums and interactive objects while focusing on Unity fundamentals.
Prepare assets for the skill tree UI by selecting a single icon pack, fonts, and UI borders, then import and organize them in Unity to support unlockable skills.
Design a skill tree node UI in Unity by building a canvas, crafting a skill node with icon and border, and enabling pointer interactions to unlock skills and show tooltips.
Create and configure skill data using scriptable objects, adding time echo and healing wisp with name, description, icon, and cost, then apply them to a skill tree node.
Build a Unity UI skill tree tooltip with borders and sliced images, show and hide logic, and dynamic text using Text Mesh Pro to display skill name, description, and requirements.
Learn to build a customizable skill tree system in Unity, with nodes, configurable connections by direction and length, and practical techniques for RPG development.
Implement a Unity skill tree unlock system with prerequisites and conflicts, add a skill points mechanic, and enhance tooltips to show needed and conflicting skills using color-coded costs.
Refine the Unity skill tree UI by fixing icon transparency, clearly indicating locked and unlocked skills with color changes, and automating connection layouts to improve clarity and usability.
Refine the skill tree UI with clearer state management, refactor icon color and tooltip logic, and implement a toggle to enable or disable the UI using the L key.
Implement Unity skill base to manage cooldowns with last time used and a can use check, and wire a skill manager with a dash skill via get component in children.
Implement an unlock and upgrade system in Unity by integrating a skill manager with a skill tree, using dash upgrades to create clones and time shards.
Implement a dash ability by integrating the skill upgrade system with cooldowns and scriptable object data, then add time echo afterimage, plan clone and shard actions on start and end.
Learn to build a time shard ability in Unity that creates a crystal with elemental damage, adds visual effects and explosion, damages nearby enemies, and supports upgrades and player input.
Design and unlock a time chart system by creating time shard data, defining skill and upgrade types, and implementing conflict-based locking to auto-lock descendants, with default unlocks for testing.
Implement shard upgrades in Unity to move shards toward the closest enemy and multicast up to three charges with a recharge coroutine, including target finding and cooldown handling.
Enhance your Unity RPG with shard upgrades—teleport to swap with a shard and health rewind to restore HP saved at creation, boosting utility.
Move status effect application to the status handler and introduce elemental effect data with damage scale to power basic attacks and skills through chill, burn, and shock.
Implement dash-generated shards as independent raw shards, enabling dash and shard synergy through upgrade unlocks, with configurable movement, setup overloads, and element-based visual effects.
Refactor the battle system by moving damage calculations into a unified attack data class that computes physical and elemental damage from scale data, while reorganizing data and headers for clarity.
Are you ready to take your game development skills to the next level and create your own unique RPG game? Look no further than this comprehensive and standalone course, designed to take you through the process step by step, even if you have no previous experience in game development.
I've even included a 4-hour crash course for those who have zero knowledge in Unity. While it's better to have some experience and knowledge of C#, don't worry if you don't have it, because I'll cover everything you need to know to create an RPG game.
Throughout this course, you'll learn how to create a versatile player controller using a finite state machine, levels, parallax effect, camera controllers, enemies to fight against, and an engaging combat system with mechanics such as dashes, counterattacks, skills, and more.
From there, you'll move on to more advanced systems that will turn your game into a fully functional RPG, with items, crafting, shop, storage, stats such critical attacks, evasion, magical damage, elemental effects and more. You'll also develop UI elements to manage all of these systems and create a save system to save your progress, checkpoints, items, skills, experience, and currency.
Finally, you'll polish your game mechanics, visual effects, particles, and build and publish your game. By the end of this course, you'll have all the tools you need to create your own unique RPG game, regardless of your previous experience.
You can use my design or mix it with your own ideas. The systems in this course are clean and scalable, allowing you to build upon them and create a truly unique RPG game.
So don't hesitate, enroll in my course today and turn your game ideas into reality!
p.s We don't play games ,we make them.