Unity 2D With C# - Complete Game Development Course
Create the complete 2D survival game in Unity with C#. Learn game development patterns. Become an Indie developer.
What is Unity?
Unity is a cross-platform game engine. The Unity editor is supported on Windows, macOS, and the Linux platform. In contrast, the engine currently supports building games for over 25 platforms, including mobile, desktop, consoles, and virtual reality.
What are we going to build?
The course covers the development of one production-ready game. The type of game is 2D survival with a top-down view.
Project - Undead Survival
The main effort of this course is to show the viewer how to build a complete game from scratch. The game's goal is to survive as long as possible with infinite waves of enemies coming at the game protagonist.
The most important parts of the course are:
Scriptable Objects
Scriptable objects will be essential in creating the Statemachine, Ability system, and Action delegation. Scriptable objects make the project reusable and modular.
State Machine
Statemachine is the brain of the AI system. Every NPC can have different states (run, attack ...), while only one state can be active at a time. Every state can have multiple actions. Action is the behavior.
For example, the Enemy has a "Patrol" state. A patrol state can have two actions. One action is to provide movement to the enemy. Another action is to change the animation of the enemy to the walk.
The third component of the Statemachine is a condition. Condition is a boolean statement. When the statement or multiple statements are resolved as "true" the current state can be transited to the new one.
For example, if an enemy is in the "patrol" state and the "spot player condition" is resolved as "true", then an enemy can go to the "attack" state.
Enemies will have a straightforward state machine. More complex state machines will be applied to boss entities.
Ability System
A player and enemies can have different abilities. Each ability has stats, such as damage, cooldown, range, effect, and many others. Each ability is created as a scriptable object, which can be easily reused and changed to the required needs. There are two main types of abilities, passive and active ones. Passive ones are the abilities that are played automatically at a specific interval. Active ones need to be activated by some external input, such as a key-stroke of the player.
Other Parts
The course also covers other essential topics such as the spawning mechanism for the enemies, the UI system to display applied damage, game time, and other vital stats. There is also damage and health system. Next, the course covers the creation of the start/options menu with the options to navigate and choose different protagonists. The game is finished when the hero dies. When this happens, the score screen is displayed, and the game can be replayed infinitely.
Many other smaller topics will be covered in the course.
Main Goal
The main goal of the course is to teach how to create reusable systems that can be used in different games. The course focuses on the reusability of each component.
Base knowledge of C# and Unity - The course doesn't cover basics
Init Project
Assets
Environment Tileset
Add Player
Player Controller
AI - Transform
Follow Camera
Player Input Handler
Input Reader
AI Scriptable Objects
Action Delegate
Player Movement
Target Speed
Idle Animation
Running Animation
Movement Blend
Blend Tree
Set Animator Speed
Character Behaviour
Flip Sprite
Skeleton Enemy
State Machine Start
StateSO init
Statemachine refactor
Create State
Initial all states
StateAction Init
Follow Player Action
Initialize State Actions
AI StateMachine
Awake Function
Game Manager
Get Player in Manager
Move towards player
Speed Modifier in SO
Set Colliders on Player and Enemy
Distance to Keep
Prefabs
Player Prefab
Adds collision with enemy
Damageable
Damage Interval
Sprite Flash Start
Flash Coroutine
Flash Color
Flip in player direction action
Flip the enemy
Effect Particles
Play Effect
Particles Update
Health Bar Canvas
Int Value SO
AI Int Value
Player Health
Add Health to Damageable
Slider Bar
Health Bar
Damage Text Canvas
Damage Text Animation
Destroy text on animation exit
UI Manager
Damage display script
Provide correct position for damage
Ability Init
Melee Attack
Ability Runner
AI Ability Runner
Instantiate Ability
Melee Attack Prefab + Anim
Set parent of ability
Disable animation looping
Ability Cooldown
Compute cooldown
Activate Ability
Activate Ability Another Option
Ability Action
Collision Layer
Enemy takes damage
Flip Attack
Disable Collider
Animation Event
Collide With from Origin Data
Flash Effect on Enemy
Ability Damage Value
Check if death
Dead Animation
Note Flipping Issue
Trigger Dead animation
Destroy enemy
State Condition
State Condition Methods
Health Condition
Health Percentage
Can transition
Transit To New State
Check if there is next state
Animation Action
Coin Reward
Pick the coin
Move coin towards player
Coin Detection Range
Experience SO
Lootable
Drop Loot Action
Level and Exp Values
Increase Experience
Exp Bar UI
Display Exp in UI
Increase Level
Level Text
Display level
Timer Text
Game State SO
Increase Game Time
Nice Time
Projectile Ability
Fix Projectile SO
Refactor abilities
Check if action is provided
LightBolt prefab and anim
Action Modifier
Move to random position SO
Rotate the action
Action Range
Fire the projectile
Generic Actions
Flip Melee Attack
Collision on projectile
Spawn Config SO
Spawnable SO
Spawn Unit
Fix action warnings
Go to next round
Game Stage SO
Spawn Side
Spawn at random position
Extend Spawn Range
Bat Enemy Setup
Bat Statemachine
Collision Damage
Golem enemy setup
Golem Config
Firebolt enemy spell
Player Dead Event
Async Method
Dead overlay and button
Pause the game
Is Game Over
Menu Scene
Menu Buttons
Menu Manager
Close current menu
Choose Hero
Second hero
Experience Fix
Instantiate Hero
Fallback player prefab
Go to main menu
Negative scale
Attack Scale Flip
Parent Scale
Animation Ability
Evade action
Ability Execution Type
Get ability from ability runner
Roll Animation
Fix player blonde roll
Speed Modifier
Evade animation event
Set Speed Modifier in Ability
Ability Icon
Ability Add Event
Ability Icon Script
Choose Ability Icon
Health Follow Position
Score Screen UI
Increase Score
Display Score
Infinite Map
Audio Source
Play sound on enter modifier
Course Finish
Filip Jerga
Every video contains a discussion where you can create a post describing an issue. The instructor usually responds within 1 business day.
Within 30 days from the purchase, you can ask for a full refund. No questions asked. Your happiness is our priority.
Of course not! Every lecture is committed (explained in the introduction section). You can start watching any lecture. Just download the correct project version attached to the lecture resources.
Single Course Access
$29.00
Access to this course only.
Get started nowMonthly Membership
$19.00 / month
Cancel Anytime!
Get started nowAnnual Membership
$190.00 / year
Cancel Anytime!
Get started now