Im working with an Java based ECS framework called "Artemis ODB". Its great so far but it lacks multithreading or jobs.

So i wanted to add them by myself. I actually wanted to give each job a copy of the data it operates on ( Unity does that with its ECS )... but we are talking about java here so this would generate a lot of garbage each frame.

Whats the easiest and best way to add multithreading/jobs to an ECS which only uses managed objects instead of value types ?

  • 1
    \$\begingroup\$ Can you tell us anything about the data dependencies involved? For instance, can components of a single type depend on data from other components of their own type? Or could the set of all components of that type be broken into batches and processed in parallel safely? \$\endgroup\$
    – DMGregory
    Oct 1 '21 at 11:30
  • \$\begingroup\$ @DMGregory Thanks for your reply ! If i understand this correctly you mean something like this : "NetworkLocationComponent gets processed by a system which transfers the data into the LocalLocationComponent" ? If this is the case, then yes... \$\endgroup\$
    – genaray
    Oct 1 '21 at 11:37

You must log in to answer this question.

Browse other questions tagged .