The course Is under active development (Check Preview Video). The new lectures are added daily.

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

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 the time. Every state can have multiple actions. Action is the behavior.

For example, the Enemy can have a "Patrol" state. A patrol state can have two actions. One action is to provide movement to the player. Another action is to change the animation of the player to the walk.

The third component of the Statemachine is a condition. Condition is a boolean statement. If 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 to and health system. Next, the course covers the creation of the start/options menu with the options to navigate and choose different protagonists, display the loading screen and play the game. 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

Course curriculum

  • 1


    • Early Preview

    • Requirements

    • How to resolve issues

  • 2


    • Init Project

    • Assets

    • Environment Tileset

    • Add Player

    • Player Controller

    • AI - Transform

    • Follow Camera

  • 3

    Player Controller

    • Player Input Handler

    • Input Reader

    • AI Scriptable Objects

    • Action Delegate

    • Player Movement

    • Target Speed

  • 4

    Animation & Movement

    • Idle Animation

    • Running Animation

    • Movement Blend

    • Blend Tree

    • Set Animator Speed

    • Character Behaviour

    • Flip Sprite

    • Skeleton Enemy

  • 5

    StateMachine Beginnings

    • State Machine Start

    • StateSO init

    • Statemachine refactor

    • Create State

    • Initial all states

    • StateAction Init

    • Follow Player Action

    • Initialize State Actions

    • AI StateMachine

  • 6

    Follow Player

    • Awake Function

    • Game Manager

    • Get Player in Manager

    • Move towards player

    • Speed Modifier in SO

    • Set Colliders on Player and Enemy

    • Distance to Keep

  • 7

    Receive Damage

    • Prefabs

    • Player Prefab

    • Adds collision with enemy

    • Damageable

    • Damage Interval

  • 8

    Damage Effect

    • Sprite Flash Start

    • Flash Coroutine

    • Flash Color

    • Flip in player direction action

    • Flip the enemy

    • Effect Particles

    • Play Effect

    • Particles Update

  • 9

    Health Bar

    • Health Bar Canvas

    • Int Value SO

    • AI Int Value

    • Player Health

    • Add Health to Damageable

    • Slider Bar

    • Health Bar

  • 10

    Damage UI

    • Damage Text Canvas

    • Damage Text Animation

    • Destroy text on animation exit

    • UI Manager

    • Damage display script

    • Provide correct position for damage

  • 11

    Ability Starter

    • Ability Init

    • Melee Attack

    • Ability Runner

    • AI Ability Runner

    • Instantiate Ability

  • 12

    Melee Ability

    • Melee Attack Prefab + Anim

    • Set parent of ability

    • Disable animation looping

    • Ability Cooldown

    • Compute cooldown

    • Activate Ability

    • Activate Ability Another Option

  • 13

    Ability Action

    • 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

  • 14

    Destroy Enemy

    • Check if death

    • Dead Animation

    • Note Flipping Issue

    • Trigger Dead animation

    • Destroy enemy

  • 15

    State Condition

    • State Condition

    • State Condition Methods

    • Health Condition

    • Health Percentage


Software Engineer

Filip Jerga

My name is Filip Jerga and I am an experienced software engineer and freelance developer. I have a Master's degree in Artificial Intelligence and several years of experience working on a wide range of technologies and projects from C++ development for ultrasound devices to modern mobile and web applications in React and Angular. Throughout my career, I have acquired advanced technical knowledge and the ability to explain programming topics clearly and in detail to a broad audience. I invite you to take my course, where I have put a lot of effort to explain web and software engineering concepts in a detailed, hands-on and understandable way.


  • How to get help when I am stuck with the course?

    Every video contains a discussion where you can create a post describing an issue. The instructor usually responds within 1 business day.

  • What to do when I am unhappy with the course ?

    Within 30 days from the purchase, you can ask for a full refund. No questions asked. Your happiness is our priority.

  • Do I need to watch every lecture of really extensive course?

    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.

Eincode Access Options

  • Single Course Access

    • Lifetime and unlimited Access to "Unity 2D With C# - Complete Game Dev Course"


    Access to this course only.

    Get started now
  • Monthly Membership

    • Unlimited Access!
    • Access to any current course!
    • Access to future courses!

    $19.00 / month

    Cancel Anytime!

    Get started now
  • Annual Membership

    • Unlimited Access!
    • Access to any current course!
    • Access to future courses!

    $190.00 / year

    Cancel Anytime!

    Get started now