SchedulerBase performance and a few other performance questions

longshotsg

New member
Hi Justin/Andrew,

I have a few questions and appreciate if you can help to answer them.
Thanks.

1) Since SchedulerBase is behind a dll, we can't see what is implemented there. While profiling my game, SchedulerBase update takes up a significant amount of time. on one frame, while nothing on the next. Apart from scheduling an action(function) after a delay, what else is being implemented there? Since I can't see and therefore not edit anything there, I am thinking of using my custom class to handle the scheduler tasks instead.

2) Scheduler inspector seems to output a few Springs ticks during gameplay. Read the documentation but I'm not sure if I needed them. Are they used in ragdolls? I am thinking of at least removing them from my AI characters as they seem to be implemented in character joints. Also, is there any way to reduce no of spring tick calls each update/fixed update? Again, this is to reduce the time used by SchedulerBase.

3) Maybe I missed out on KinematicObjects documentation, as I can't find them. What are these? Rigidbodies marked as kinematic?

4) And finally, I understand that your team may have some job systems research going on for these controllers and that may be some time later. But are you able to share some bite size changes to certain parts of the code (if you have) so that we can use it and improve performance. Trying to do that myself too as I'm still learning the new jobs system.

Appreciate any help to the above questions.
Thanks again.
 

Attachments

  • SchedulerBase1.png
    SchedulerBase1.png
    17.8 KB · Views: 4
  • SchedulerBase2.png
    SchedulerBase2.png
    17.5 KB · Views: 4
Since SchedulerBase is behind a dll, we can't see what is implemented there. While profiling my game, SchedulerBase update takes up a significant amount of time. on one frame, while nothing on the next. Apart from scheduling an action(function) after a delay, what else is being implemented there? Since I can't see and therefore not edit anything there, I am thinking of using my custom class to handle the scheduler tasks instead.
On the downloads page you can get the source. The scheduler really does only schedule things and I bet your bottleneck is in the method that it calls.

Scheduler inspector seems to output a few Springs ticks during gameplay. Read the documentation but I'm not sure if I needed them. Are they used in ragdolls? I am thinking of at least removing them from my AI characters as they seem to be implemented in character joints. Also, is there any way to reduce no of spring tick calls each update/fixed update? Again, this is to reduce the time used by SchedulerBase.
The springs are mostly used in first person mode, not by ragdolls. If you do a search for spring in the code you can see which classes use it.

Maybe I missed out on KinematicObjects documentation, as I can't find them. What are these? Rigidbodies marked as kinematic?
Kinematic objects are objects whose physics are determined by the controller and not a rigidbody.

And finally, I understand that your team may have some job systems research going on for these controllers and that may be some time later. But are you able to share some bite size changes to certain parts of the code (if you have) so that we can use it and improve performance. Trying to do that myself too as I'm still learning the new jobs system.
I have a prototype using the job system but at this point it's still too early to publish. They will likely make it into version 3 of the controller. The results look promising though with many characters on the screen at once. We are still far away from releasing though.
 
Top