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

Phase out Phaser #81

Open
wants to merge 26 commits into
base: master
Choose a base branch
from
Open

Conversation

meta1203
Copy link

Completely re-did how ticks are synchronized:

  • Instead of every tick task being either totally asynchronous or asynchronous with a chunk lock, tick tasks are sorted into World & Entity groups. World tick tasks are always completed before async Entity tasks. Both need to be complete before the next tick can begin.
  • Instances of ISerDesPool don't automatically assume asynchronicity. Instead, the default behavior is to run synchronously on the main thread with the ability to multithread passed into the serialise function.
  • Changed WHITELIST and BLACKLIST to ALWAYS_ASYNC and FILTERED internally. This makes more sense for filters that support more than one type of operation.
  • Improved awareness of what's being run. If a tick task gets stuck for more than a second (20 ticks worth of time), the game logs it to console.
    • Added an option to automatically continue after 1 second. This makes things very unstable, but could help diagnose issues.
  • Added a synchronized ArrayList

@Bluscream
Copy link

Any news on this?

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.

None yet

3 participants