강의

멘토링

커뮤니티

Game Dev

/

Game Programming

Absolute Course! Unity 6 - ECS/DOTS Programming Masterclass

This is a course that completely masters Unity's next-generation architecture ECS/DOTS from basics to practical application. ECS is data-oriented programming that is completely different from the existing GameObject approach, and many developers are struggling due to its high entry barrier. This course addresses these difficulties by learning step by step from ECS core concepts (Entity, Component, System) to Burst compiler, Job system, and Unity Physics integration.

(5.0) 7 reviews

81 learners

Level Intermediate

Course period Unlimited

  • indiegamemaker
unity-dots
unity-dots
unity-ecs
unity-ecs
unity
unity
실습 중심
실습 중심
multithread
multithread
Unity
Unity
Unity6
Unity6
unity-dots
unity-dots
unity-ecs
unity-ecs
unity
unity
실습 중심
실습 중심
multithread
multithread
Unity
Unity
Unity6
Unity6

Reviews from Early Learners

Reviews from Early Learners

5.0

5.0

류학림

100% enrolled

I tried hands-on practice with ECS/DOTS for the first time! Although it doesn't cover everything theoretically, it was a time where I could clearly understand what ECS is. I think it would be very helpful for other learners to study various features through Unity's official documentation after completing the course. After completing the course, I modified the scripts for review and self-study purposes, and I think it would be great if other learners could also give it a try! Thank you for the great lecture!!!! --- [Review and Self-Study] 1. Movement System Refactored PlayerMovementSystem and ProjectileMovementSystem to operate based on IJobEntity to improve Burst compilation efficiency and enable parallel processing. - Although PlayerMovementSystem is a single entity, I added a Job structure to maintain consistency with others and ensured the entire logic is Burst compiled. - Removed the foreach loop in ProjectileMovementSystem and modified it to use ScheduleParallel so that work threads are used efficiently when multiple projectiles move simultaneously. 2. HP Bar System Added ComponentLookup.DidChange() checks in PlayerHpBarSystem and EnemyHpBarSystem, and modified to calculate FillAmount only when the data in PlayerComponent and EnemyComponent actually changes. 3. Collision Modified ProjectileCollisionSystem from manually creating EntityCommandBuffer and waiting for Job completion with Complete and Playback to using EndFixedStepSimulationEntityCommandBufferSystem. 4. Audio After completing the final sound effect implementation, it seems an error occurs when moving from the main scene to the game scene because entities are not immediately created in AudioManager. Therefore, I modified it to check (audioBufferEntity == Entity.Null || !entityManager.Exists(audioBufferEntity)) in Update to verify entity existence before playback, just like in other System scripts.

5.0

김성관

100% enrolled

This is more difficult than any other lecture I've taken before. There are so many new concepts introduced. I think I need to go through it repeatedly. It was good to learn new concepts.

What you will gain after the course

  • Programming with the Latest ECS 1.4 API

  • Pure ECS Environment DOTS Programming Techniques

  • Utilizing Unity Physics with Burst Compilation and JobSystem

  • Hybrid ECS Utilization Techniques for UI, Scene, and Sound Integration

High-Performance 2D Survival Game Development with Unity ECS

"While GameObject could only handle 1,000 units, ECS runs smoothly even with 100,000 units."


Unity ECS/DOTS is Unity's next-generation development approach based on multithreading and memory optimization. However, the reality is that it's difficult to learn on your own due to concepts that are completely different from traditional Unity.

This course is prepared for those who are new to ECS. Starting from the basic concepts of Entity-Component-System, you'll master patterns that can be immediately used in actual games.

Why should you learn ECS now?

  • Unity Technologies is pushing ECS as the next-generation standard architecture. It has been stabilized since Unity 6, and it's a technology that will be required in more projects going forward.


  • ECS is a core technology that enables players to experience more objects, smoother frames, and more complex simulations from mobile to console.

  • There are still not many developers who can properly handle ECS. If you acquire ECS development capabilities, it becomes a major competitive advantage in the job market.

  • ECS is not a concept unique to Unity. Similar patterns are spreading in other engines and frameworks, such as Unreal's Mass Entity System and Bevy Engine.

Key Learning Content:

  • IComponentData, ISystem, Authoring Pattern


  • Parallel Processing Using Burst Compilation and IJobEntity

  • SRP Batcher Configuration and GPU Instance Utilization

  • Unity Physics and ITriggerEventsJob for Collision Handling

  • Hybrid pattern using MonoBehaviour and ECS together

  • Dynamic Entity Management Techniques Using EntityCommandBuffer

The hands-on project is a vampire survival style game, designed to handle tens of thousands of enemies and projectiles simultaneously so you can experience ECS performance firsthand. After completing the course, you'll be able to apply ECS directly to your own projects.

ECS Basic Concepts

  • Rather than extensive theoretical lessons, you'll learn essential ECS concepts in a concise manner and then immediately write practical code to master the structure of ECS programming.


ECS Basic Usage

  • We start with basic logic implementation through Component, System, and Authoring.

  • The collision handling and optimization process using Unity Physics is underway.

2D Sprite Animation Shader Provided

  • Pure ECS does not yet support sprite animation. The most reliable approach for this is using shader techniques, which is the best solution.

  • Provides a complete shader graph optimized for ECS that utilizes Sprite Offset, and learn techniques for implementing 2D animation in an ECS environment. (The lecture does not cover shader graph creation.)

How to Use the ECS-Dedicated Monitoring View

  • We proceed by actively utilizing essential monitoring views during ECS development to check accurate data.

  • Entity Hierarchy View

  • Components View

  • Systems View

  • Archtypes View


Monitoring for Optimization

  • Verify the activation of Job Worker Threads using IJobEntity in the profiler.

Hybrid Batch Group activation status verification

  • Proceed while monitoring the Frame Debugger to ensure there are no parts where batching is broken.

  • ECS automatically handles GPU Instancing, while we examine the process of checking whether Hybrid Batch Group is enabled.

Scene Transition and System Initialization

Scene transitions in ECS also require a complex procedure. While in MonoBehaviour, scene objects are automatically cleaned up during the scene loading process when scenes are unloaded, ECS requires manual handling.


  • Implement logic to transition to main menu scene

  • Implement restart logic

After taking the course

  • ECS capabilities ready for immediate deployment in practice

    • Fully functional game project portfolio

    • Mastering ECS Design Patterns and Best Practices

    • Performance issue analysis and resolution skills (Frame Debugger, Profiler analysis)


  • Acquiring a Differentiated Technology Stack

    • Unity ECS/DOTS Expertise - Still a Scarce Developer Pool

    • Burst and Job System Optimization Experience

    • Data-Oriented Programming Mindset


  • Scalable Game Architecture

    • A structure that easily handles thousands to tens of thousands of entities

    • Applicable to various genres including multiplayer and large-scale simulations (Netcode for Entities)

This is a course prepared through approximately 30 sample projects to develop an optimal curriculum that can gradually increase the learning difficulty. Therefore, I believe you will have no difficulty learning the ECS development environment.

Pre-enrollment Reference Information

Practice Environment

  • Operating System: Windows, macOS

  • Unity 6 (6000.2.10f1 or higher)

  • IDE: Visual Studio 2022 or Rider recommended

Recommended for
these people

Who is this course right for?

  • Unity developers who have the basics down but need performance optimization

  • Those who want to create games that handle large-scale objects

  • Those who want to learn Unity's latest technology stack

  • Those who want to build competitiveness for employment/career change

Need to know before starting?

  • C# Basic Syntax (Classes, Structures, Interfaces)

  • Unity Basic Usage (GameObject, Component, Scene)

Hello
This is

589

Learners

56

Reviews

55

Answers

4.9

Rating

8

Courses

안녕하세요, 이재현입니다.

1인 게임 개발자를 꿈꾸며 유니티를 독학으로 시작했고, 2009년부터 2012년 까지 1인 개발로 모바일 게임 10여종을 출시했습니다. 절대강좌! 유니티 출간 및 오프라인 강의를 진행했습니다. 강의를 진행하면서, 잘 아는 것과 잘 가르치는 것은 다르다는 사실을 매번 깨닫고 있습니다. 이러한 경험을 바탕으로, 제가 가진 지식을 여러분들께 더 효과적으로 전달하기 위해 늘 노력하고 있습니다.

이번 강의가 여러분께 좋은 출발점이 되어, 즐거운 게임 개발자의 세계로 나아가는 데 작은 보탬이 되기를 기원합니다. ~


주요 강의 이력

  • NC Soft 특강

  • NHN 엔터테인먼트

  • 넷마블 게임아카데미

  • 패스트캠퍼스 - 유니티 캠프 1기 ~ 8기

  • 팀 스파르타 온라인 튜터

  • T아카데미

  • ETRI (한국전자통신연구원)

  • 한콘진, 경콘진, 성남산업진흥원

  • KAIST, 서강대, 중앙대, 한성대, 단국대 특강

주요 활동

  • 절대강좌! 유니티 집필 (일본, 중국 출판)

  • 유니티 UNITE 2014 세션 특강

  • 유니티 UNITE 2018 핸드온 세션 특강

  • 유니티 인더스트리 2022 핸드온 세션 특강

  • 유니티 코리아 공인 마스터스 2기부터 5기까지 활동

     

 

Curriculum

All

27 lectures ∙ (6hr 6min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

7 reviews

5.0

7 reviews

  • 123123123123123님의 프로필 이미지
    123123123123123

    Reviews 34

    Average Rating 3.7

    5

    100% enrolled

    This is more difficult than any other lecture I've taken before. There are so many new concepts introduced. I think I need to go through it repeatedly. It was good to learn new concepts.

    • indiegamemaker
      Instructor

      You completed the course really quickly! Since this is a completely different approach from existing development methods, it must have been quite challenging. I think practicing by converting small logic pieces to ECS would definitely be helpful.

  • sdkbh4117님의 프로필 이미지
    sdkbh4117

    Reviews 1

    Average Rating 5.0

    5

    33% enrolled

    • l4f0님의 프로필 이미지
      l4f0

      Reviews 2

      Average Rating 5.0

      5

      33% enrolled

      • haku님의 프로필 이미지
        haku

        Reviews 4

        Average Rating 4.5

        5

        100% enrolled

        I tried hands-on practice with ECS/DOTS for the first time! Although it doesn't cover everything theoretically, it was a time where I could clearly understand what ECS is. I think it would be very helpful for other learners to study various features through Unity's official documentation after completing the course. After completing the course, I modified the scripts for review and self-study purposes, and I think it would be great if other learners could also give it a try! Thank you for the great lecture!!!! --- [Review and Self-Study] 1. Movement System Refactored PlayerMovementSystem and ProjectileMovementSystem to operate based on IJobEntity to improve Burst compilation efficiency and enable parallel processing. - Although PlayerMovementSystem is a single entity, I added a Job structure to maintain consistency with others and ensured the entire logic is Burst compiled. - Removed the foreach loop in ProjectileMovementSystem and modified it to use ScheduleParallel so that work threads are used efficiently when multiple projectiles move simultaneously. 2. HP Bar System Added ComponentLookup.DidChange() checks in PlayerHpBarSystem and EnemyHpBarSystem, and modified to calculate FillAmount only when the data in PlayerComponent and EnemyComponent actually changes. 3. Collision Modified ProjectileCollisionSystem from manually creating EntityCommandBuffer and waiting for Job completion with Complete and Playback to using EndFixedStepSimulationEntityCommandBufferSystem. 4. Audio After completing the final sound effect implementation, it seems an error occurs when moving from the main scene to the game scene because entities are not immediately created in AudioManager. Therefore, I modified it to check (audioBufferEntity == Entity.Null || !entityManager.Exists(audioBufferEntity)) in Update to verify entity existence before playback, just like in other System scripts.

        • indiegamemaker
          Instructor

          Thank you for your valuable course review. ~ By sharing even the detailed refactoring process, I think it will be very helpful to others as well.

      • graffiti님의 프로필 이미지
        graffiti

        Reviews 1

        Average Rating 5.0

        5

        100% enrolled

        $77.00

        indiegamemaker's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!