Issue #11 duplicate

Improve controller scheduling and configuration

Michael Ludwig
repo owner created an issue

With the improvements to inter-controller communication, it's easier to make controllers fine-grained to specific tasks. Although this is more flexible, it creates a controller explosion so initial setup of the controllers becomes a headache.

Comments (5)

  1. Michael Ludwig reporter

    A feature I'd like to support is being able to parallelize across large tasks within an entity system, where each large task has a different tick rate.

    As an example, we have the rendering task, which requires X amount of time to prepare after physics/AI is done for the frame, then it can queue a cost Y rendering job on another thread. It would be great if the Z time physics updates could be done at a slower rate, in complete parallel just like how the rendering prep and actual rendering are in parallel, except for when they have to sync up.

    I'm not sure exactly how I want to do this. It might involve making copies of the data for each thread, but then system manipulation gets tricky.

  2. Michael Ludwig reporter

    One way to organize it is to group controllers by high-level task, where these tasks step completely asynchronously from one another. Other structures would have to be added to synchronize as needed (either to add/remove entities and components, or to get data from one type that's being modified by another task).

    These synchronization points could happen relatively infrequently compared to the rest of the controller work.

  3. Log in to comment