Learn Unity's Entity Component System to Optimise Your Games (Udemy.com)
Update your Unity programming skills to take advantage of the new Data Orientated Technology Stack and Burst Compiler
Created by: Penny de Byl
Last updated May 2022
What you will learn
- Take existing Unity projects created without the use of DOTs and convert them to employ parallel processing and the entity component system.
- The advantages and disadvantages of using DOTs.
How it compares
Against the other 183 rated Udemy courses in Unity on CourseDuck:
- Rating4.3 out of 5higher than 26% of them
- Reviews700#57 of 184 by number of reviews
- Length13.2 hourslonger than 65% of them
- Last updatedMay 2022more recently than 59% of them
Course Description
Unity's new Data-Oriented Technology Stack (DOTS) and Entity Component System (ECS) programming paradigm have been developed to optimize game development and open up new ways of accessing memory and parallel processing for developing high-performance C# code that takes advantage of contemporary multicore computers. Through the use of the Burst Compiler, your game programs become native code, able to run faster on multiple threads thus pushing the boundaries of the size of your virtual environments and the simultaneous processing of tens of thousands of game objects.
In this course, Penny demystifies Unity's new DOTS architecture and introduces intermediate Unity users to ECS by upgrading classic Unity projects and developing a multitude of examples of the use of DOTS concentrating on the most popular game mechanics. Using her internationally acclaimed teaching style and knowledge from over 25 years working with games, graphics and having written two award-winning books on games AI, Penny will take you from familiar object-oriented programming and upgrade your skill to the more memory efficient and optimized entity component architecture. Throughout, you will follow along with hands-on workshops designed to take you through every step of becoming familiar with ECS. You will build on numerous scenarios that examine the basics of ECS programming through the new DOTS-specific math and physics libraries.
While DOTS is still in preview, this course aims to assist you in understanding how it works and how games are constructed with it. The knowledge you obtain will further your ability to decipher future released Unity ECS tech demos and handle API updates.
This course requires Unity 2019.3.0f6. and the Hybrid Renderer Package 0.3.3.
Learn how to program and work with:
Entities and Components
The C# Job Systems
Collision Systems
Trigger Systems
User Input to Control Entities
Interfacing with classic Unity and game objects to entity-based systems.
Contents and Overview
The course begins with a section that compares the old way of working with game objects in Unity, through to the creation of a complete ECS system using the exact same scenario in each instance to give you time to compare the programming methods and optimizations gained through implementing DOTS.
Following this, you will dive deeper into the creation and debugging of entities while learning how to tag, identify and add data to them with custom components. You will also learn how to find entities once they are injected into the game environment and to access and manipulate them at runtime.
After you've become comfortable with the nature of entities, you will discover how the new math library can be used to replicate many of the functions you've become familiar with in the Unity Mathf API. The content will cover transformation, rotations, slerps, pivoting, following waypoints and pursuing and fleeing from targets. A space-based scenario will be created with several planets and thousands of spacecraft programmed to attack, by generating even more thousands of bullets and finally explosions.
Next, you'll build a blocky Minecraft inspired landscape from cubes that can be infinitely generated in any direction by implementing Perlin Noise and examining how parallel processing (achieved through the C# Jobs system) dramatically speeds up processing that has in the past been limited to the main thread.
On completion of this exercise, a thorough examination of the new DOTS physics capabilities will take place. All the classic Unity elements you've become used to will be replicated via the new physics API and ECS job systems. You will learn about collisions, triggers, camera tracking, bullet physics and the basics of recreating Newtonian physics for moving dynamic and kinematic entities.
The course ends with a challenge and project to recreate a third person shooter in which a single player takes on a swarm of zombies.
At the completion of this course, you will be familiar with DOTS and the ECS and be able to further your skills by interpreting and making sense of the Unity tech demos as they are released, presenting updated API and introducing more and more functionality into DOTS.
What students are saying about Penny's courses:
Excellent course!! I am already in game development industry and there is one quote here that "Whenever you are not able to solve complex problem, its the right time to get back to the BASICS"
She is the best teacher ever in this platform
Most instructors are very smart people. Some are good at teaching and some are not. Penny is great at describing complex concepts without going down a dark cerebral rabbit hole that so many instructors feel obligated to do. It's like they need to demonstrate their knowledge by explaining every tiny aspect. Penny does not go there. She explains things clearly but does not overwhelm the student with more than they need to know.
Instructor Details
- 4.3 Rating
700 Reviews
Penny de Byl
Hi, I'm Dr Penny de Byl. I'm a full stack developer of most things computer sciency and academic with a true passion for teaching. I've been teaching others about games development, programming, computer graphics, animation and web design for over 25 years in universities in Australia and Europe at the full professor level. I've also consulted for Unity, SAE, the Australian Institute of Entertainment and Wikitude. My best selling textbooks including Holistic Game Development with Unity are used in over 100 institutions world-wide. My graduates work at companies like Apple, Ubisoft, LinkedIn and Deloitte Digital.
I have an honours degree in computer graphics and a Ph.D. in artificial intelligence for games characters. Over the course of my career I've won numerous awards for teaching excellence at the state, national and international levels including the Australian Learning and Teaching Council's Excellence in Teaching Award and the Unity Mobile Game Curriculum Competition. My approach to teaching computer science and related fields is project-based giving you hands-on workshops you can immediately get your teeth into.
I want you to leave my virtual classroom fully armed with a toolkit of skills for life-long learning. I'm excited to now be focussing my efforts full-time on Udemy to bring my years of knowledge and experience to those eager to learn about technology.
More courses by Penny de Byl
Shader Development from Scratch with Cg - Unity 6 Compatible (2025)
4.2 (3,521 Reviews)
Provider: Udemy
Time: 10.4h
$10.99
The Beginner's Guide to Games AI with Unity 6.2+ (2026)
4.6 (2,871 Reviews)
Provider: Udemy
Time: 30.9h
$14.99
A Beginner's Guide To Machine Learning with Unity (2023)
4.5 (2,166 Reviews)
Provider: Udemy
Time: 13.1h
$11.99
The Beginner's Guide to Animation (Unity 5 to 2020+)
4.6 (2,052 Reviews)
Provider: Udemy
Time: 11.3h
$13.99
Mathematics for Game Development - Unity 6 Compatible (2026)
4.5 (1,850 Reviews)
Provider: Udemy
Time: 15.3h
$11.99
Program Voxel Minecraft Worlds with C# - Unity 6 Compatible (2025)
4.2 (1,754 Reviews)
Provider: Udemy
Time: 18.5h
$10.99
More Unity courses
Learn to make an Awesome Builder-Defender game in Unity! (2021)
4.9 (1,909 Reviews)
Provider: Udemy
Time: 10.1h
$79.99
RPG Core Combat Creator: Learn Intermediate Unity C# Coding (2025)
4.8 (11,337 Reviews)
Provider: Udemy
Time: 27.6h
$149.99
Learn To Code By Making a 2D Platformer in Unity (2017)
4.8 (2,597 Reviews)
Provider: Udemy
Time: 13.1h
$13.99
Learn Blender 3D Modeling for Unity Video Game Development (2026)
4.8 (2,152 Reviews)
Provider: Udemy
Time: 11.7h
$149.99
Learn To Create A Roguelike Game In Unity (2020)
4.8 (1,234 Reviews)
Provider: Udemy
Time: 19.4h
$16.99
Reviews
By Jose Mario Perez Cotes on 6/16/2025
The course serves as an introduction to the ECS system, although it is outdated since it uses Unity 2019.3.3. I'm currently working on a project using Unity 2020.3, and with the help of Copilot in Visual Studio, I was able to follow the course and understand how DOTS works. At the moment, this technology isn't viable for mobile devices that don't support Vulkan or OpenGL ES 3.1, as devices limited to OpenGL ES 2.0 or 3.0 aren't compatible with Hybrid Renderer. However, it's still possible to take advantage of parallel processing using Jobs and the Burst compiler. The raycasting section and the first part of the course show how to combine MonoBehaviours with ECS, so it's worth checking out or researching further on your own. For those who want to follow the course step by step, you’ll need to manually install the packages by editing the manifest.json file. These versions are hard to find now due to the release of the 1.0 version (the most stable one). In my case, I had to use version 0.52-preview due to the nature of my project. Thanks to the instructor. I hope the course content gets updated in the future to the latest version, including modules like animation and NavMesh navigation. El curso sirve como una introducción al sistema ECS, aunque está desactualizado, ya que utiliza Unity 2019.3.3. Debido a que estoy trabajando en un proyecto con Unity 2020.3, logré seguir el curso con la ayuda de Copilot en Visual Studio, lo cual me permitió comprender el funcionamiento de DOTS. Actualmente, la tecnología no es viable para dispositivos móviles que no utilicen Vulkan u OpenGL ES 3.1, ya que aquellos que solo soportan OpenGL ES 2.0 o 3.0 no son compatibles con el sistema de renderizado híbrido. Sin embargo, sí es posible aprovechar la paralelización mediante el uso de Jobs y el compilador Burst. La sección de raycasting y la primera parte del curso muestran cómo combinar MonoBehaviours con ECS, así que vale la pena explorarlo o investigar más al respecto por cuenta propia. Para quienes quieran seguir el curso al pie de la letra, es necesario instalar los paquetes manualmente editando el archivo manifest.json, ya que actualmente esas versiones son difíciles de encontrar debido a la salida de la versión 1.0 (más estable). En mi caso, tuve que usar la versión 0.52-preview, debido a la naturaleza de mi proyecto. Agradezco al instructor por el contenido. Ojalá en el futuro lo actualice a la versión más reciente, incluyendo módulos como animación y navegación con NavMesh.
By Sergio solorzano on 12/20/2021
Packed with lots of things to learn, tips and tricks ! On the downside, some scenes taught run slow (as also shown on the instructor's screen) and it would be unrelastic using these in an actual game. Also be aware sometimes all resources are not available, that can be frustrating and the instructor would not provide it when I asked for it e.g. project at the end of a lecture making it not possible to fully understand the differences between my code and the lecture's if they don't match.
By Bill Jackson on 8/19/2021
The material is good and the explanations are very clear. Some of the example code has a minor bug or some obvious inefficiencies but nothing severe enough to interfere with the information being taught. I would have appreciated a bit of an overview about how the different components in the library interact but I was able to pick up what I needed as the instructor dived right into the code.
By Marcel Knispel on 7/12/2021
Starting from the misleading title, I would have expected a much more detailed / advanced lecture here. Instead what this lecture offers is a very rudementary attempt to teach only the very basics of ECS. It also feels very unstructured in that every section starts a new project from scratch, doing at least 50% of what was done in previous lecture again in full detail and length. It feels like the lectures do almost not teach anything new after a while and it also feels like a lot of the information is missing about why certain systems are used or done in the way displayed or why they have to be done in that particular way to get it working with ECS. The biggest disappointment for me was the lack of what the title would suggest - a way to actually use this in existing projects to replace things for optimization. Now i know it can't know of any persons project but I would have wished it would at least present a bigger project with a clear silverlining of what is going to be done. I think it might have been a lot better if it would be reduced to a single project that would actually aim at being a game in the end instead of only showcasing small examples for very basic things. This way it does not really present a way to make use of this in bigger projects or how to actually use it in a full extend. If I still could, I would refund this course.
By Stewart Wood on 7/1/2021
Excellent course, have gone from no knowledge to a very solid understanding of the ECS with a raft of great code samples and reusable know-how to draw upon. Like many courses, the monummental workload to create them has the be based on the Unity versions available at that time. This course is based on specific resources that were current then. Fortunately there's plenty of commentary both in the course and online regarding the changes to the DOTS and Physics backend that sees (for example) the inheritance of SystemBase rather than the JobComponentSystem in the current release. If you do choose to work using HDRP and the latest versions of everything, be prepared for a little bit of tweaking here and there. So my only comment would be that ONLY work with non-specified versions (as specified in lecture 1) if you are confident and don't blame the author if you get stuck : )
By Zomby on 4/26/2021
I purchased this course because I was curious about ECS game development with unity and the possibilities it held for developing more complex and efficient game code versus the OOP method. I came into this course prior knowledge of the ECS system and a base understanding of how it functions and where it is more optimized versus the "old way" of coding. I will say that I learned very little additional information upon exiting this course, however what I gained through hands on exposure and development with the ECS system in a monitored environment went beyond my expectations. I would recommend this course to people that are curious about ECS development and have a working knowledge of Unity's OOP development. The only thing I think that could be beneficial to the course would be a pop quiz for each section that goes over the concepts covered.
By Peter Bolier on 7/14/2020
So far so good. I'm not a unity expert and can still follow the explanation. I like the idea or concept of data oriented programming (or design), which might be something to think about as some kind of design pattern also to be used for other 'problems'. Though things get a bit complicated because of the difference between Gameobjects and Entities it's still good to follow, most of the exercises were doable though it's sometimes easy to make a mistake. Still a lot of fun!
By Wai Shum on 6/11/2020
Great course by a great instructor. The course does everything it advertises, i.e. teaching and familiarizing the student with DOTS and its features. I would love to see a course (preferably by Penny and her assistants) that goes more in-depth into data-oriented design (DOD) and related patterns, specifically data normalization and when/where DOD can be implemented in hybrid entity-/monobehavior-based games. Or, update this course with an extra section that shows how you can translate a traditionally-developed Unity game into one based on ECS. Additionally, I hope that this course updates relevant sections when the DOTS packages move out of preview. Finally, given Penny's expertise, it would be great to see a course integrating DOTS and ML-Agents.
By Wayne Kennedy on 4/22/2020
Obviously this course is based on preview versions of ECS, but the structured approach to covering the principles was really helpful to me. I'm a professional software engineer in the real world, but a game development hobbyist for fun; I'm no stranger to complicated software systems, but ECS has been a hard slog to try and learn from snippets on YouTube and Unity docs. This course made it all click into place for me, and I'm confident that I'll be able to expand on what's taught here. Good job. :)
By SHAman256 on 4/2/2020
This course is a good match for me, an advanced beginner with Unity, but a moderately experienced programmer. I am REALLY enjoying this course now. The content is very timely and it is the best, perhaps ONLY, coverage of this topic that is comprehensive. I have finished the course and feel VERY comfortable with my ECS foundation. Obviously there is a lot more to learn about the matter, but it would have been impossible for me to slog through the subject without the leg up this course provided. I am concerned that the DOTS new releases are going to be substantially different than the DOTS versions used in the course, but I kinda hope so. There is a lot of DOTS that I would like to see simplified, if possible!
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100












