So, after all, where should I look into learning the updated and good practices of Dots?

I started looking into DOTS yesterday, I, like anyone else, started to google and found a couple resources, including a video from Code Monkey, which I watched.

And then started trying to install dots.

It was a hassle. I found a bunch of errors coming from the packages themselves without me ever writing a single line of code, which prompted me to delete and reinstall the library folder and reinstall a couple packages, then I proceeded to try to install the com.unity.entities.graphics, and unity said the package didn’t exist, so I checked the spelling, copy and pasted the package name directly from the docs, and then nothing.

Then I dug into the documentation and realized that to use that package, I would need to update to Unity 2022 and was scratching my head quite a bit because I was really confused as to why the com.unity.entities worked in the previous LTS version.

Then I installed the Networking for Game Objects, more compilation errors from packages, re created the project, deleted the Libraries folder again. And then it was working

I started by importing the samples and after asserting it worked, I started actually coding.

That took hours.

I always use assembly references for my code and namespaces to keep everything separated. Which I got the usual Name or Object not found errors, because of course, the documentation in Unity does not tell which assembly references should I add, because why would they have a feature that you can easily use, huh?

After that, I kept following the tutorial, then I found that a couple of methods are deprecated, and then he started showing some stuff that people don’t seem to be using even currently?

I started looking for other materials, which the majority of them are API code references, which doesn’t have examples, because why would they, or project samples that lack the explanation of why they are using certain things or why they are doing the things they are showing.

Sooo, a question for you folks, what should I do?

Seems you have some sort of parallel universe of DOTS, because everything is easily accessible and can be installed without single issue. Maybe because of Unity 2020, which is not supported. Minimal supported by recent Entites package Unity version is 2022.3.

Packages can be found in package manager:

DOTS 1.0 targets 2022 LTS, so 2022.3.4f1 should be your editor today. The version of entities that targeted 2019 was quite old, and same with 2020.

I agree its not a smooth onboarding and the package manager doesn’t really tell you when you have the wrong editor version. It doesn’t really help that the documents for packages are just kind of spread out, whereas the documents for UnityEngine API are in one decisive place. This is probably a prime area Unity should be remediating.

Assembly refs are a a bit more advanced, so imo in this case thats kind of on you to manage. Netcode for gameobjects doesnt cover entities, the netcode for entities package does.

The first port of call should generally be official resources - so in this case there is a samples repo which is in a sticky post on this forum. There are also(obviously) docs for each package. Video tutorials will always be out of date by the time you watch them. You cant really blame unity for a 3rd party video being out of date can you? Complain about that to codemonkey.

Sorry, that was a typo, I am using 2022 and was using the previous lts before I updated.

For one moment I thought it was because I am using gentoo linux, and wouldn’t be the first time something wasn’t working because of that. But eventually things did work.

Don’t think it’s advanced, if you are coding in raw c# you deal with references a LOT.

That’s a very good information, thankfully you told me before I started doing the test project for real.

But I thought seeing some samples of dots being used with networking for game objects?

That is one of my problems. The oficial sources are kinda like a rabbit hole where a bunch of things are dispersed into multiple packages that to find information is quite complicated. For example the version of unity for the graphics package I mentioned.

And samples don’t really say “we did x because of and to avoid z”

The video does that, sorta, but again, it doesn’t paint the whole picture.

Oh no, I am not blaming Unity because of code monkey, that was never my point. ^^

But I can complain that their samples doesn’t have documentation or many comments in the code, I had to dig until I found one, but the documentation says what the class and stuff do, not how or why DOTS are being used there. Which that’s how you tend to document code, but when that’s the main source of learning of a feature, I digress.

I am sure there might be a piece of code that does, but again, digging, digging, digging.

Entities have a dependency to “Test framework” but the package installer does not know it and does not install the test framework with it. These kinds of issues are all over all the packages.

Really!? The default assemblies are dependent to Test Framework? Or just the test assemblies are a requirement? If is the second option I can understand.

Well, well, well. Look at that. No wonder I was having issues.

Edit: So, I just found the written material for the codes in the repository.

The link is just before the links of the videos and before the semi column and in the list of samples, I thought that the links there were just a link to, well, the samples. Not the explanation in how things work.

This is the link in question that links to everything else and guide the path:
https://github.com/Unity-Technologies/EntityComponentSystemSamples/blob/master/EntitiesSamples/Assets/README.md

That is, in my humble opinion, the main link that should be shown everywhere.