Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional time slicing system #358

Open
wants to merge 3 commits into
base: godot-4.x
Choose a base branch
from

Conversation

nathanjf
Copy link

Rational

This pull request is a proof of concept for a opt-in time slicing system. This is useful for games with large amounts of entities using beehave trees at once or simply ensuring a fixed amount of updates happen each frame on lower end systems such as mobile. Both these cases aren't covered by changing the tick rate or can be solved better through this implementation. Tick rate alone forces trees to update slower even when there is not any load and leaves the potential for excessive updates to happen on an individual frame.

This should be a part of beehave rather than left up to the user because it requires directly modifying the tick method.

Changes

  • The added global autoload executes a fixed amount of ticks per frame.
  • The added export variable to beehave_tree.gd opts a tree into the time slicing system.
  • The changes to plugin.gd are just to clean up the plugin's autoloads when the plugin is disabled.

Cleaned up autoloads when plugin is disabled
Added ability to opt-in to time slicing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant