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

Feature/vc linkup rework #382

Merged
merged 3 commits into from
Jan 25, 2024
Merged

Feature/vc linkup rework #382

merged 3 commits into from
Jan 25, 2024

Conversation

Mindgamesnl
Copy link
Owner

@Mindgamesnl Mindgamesnl commented Jan 18, 2024

The current linkup system served its purpose well over the last year, but some limitations are starting to emerge.
One of the major design decisions was to streamline as much as possible from the linking system, to keep time complexity with growing player counts down. This was built with the assumption that all players would be compared against the same set of rules and restrictions, but some use cases need to evaluate some subsets of the connected client list against different logic.

The main purpose of this PR (seen as a draft, not per se a definitive API) is to address/answer the following questions:

  • To what extent should specific links be allowed where player A can hear player B, but not vice versa? This has some legitimate use cases, but there's also an argument to be made regarding privacy and possible abuse.
  • Which parts of predetermined filters can be exposed to the API without having invocations grow exponentially? (we currently minimize the possible peers per player before filters are invoked by checking worlds and distance, doing cheaper checks first to cut down on the number of peers as soon as possible.)
  • To what end should location updates be sent to the client?
  • How should the plugin prevent connection leaks from poorly implemented third-party implementations, given that point 1 gets implemented? (clients never being told to close streams or the plugin to stop sending location updates)

I'm expecting to get some major work done against this starting January 22, intermittently working on this as normal development of the other services continues.

Copy link

cloudflare-pages bot commented Jan 18, 2024

Deploying with  Cloudflare Pages  Cloudflare Pages

Latest commit: f89d993
Status: ✅  Deploy successful!
Preview URL: https://c0a33a04.openaudiomc.pages.dev
Branch Preview URL: https://feature-vc-linkup-rework.openaudiomc.pages.dev

View logs

@Mindgamesnl Mindgamesnl changed the base branch from master to development January 18, 2024 23:12
@Mindgamesnl Mindgamesnl marked this pull request as draft January 18, 2024 23:28
@Mindgamesnl
Copy link
Owner Author

Mindgamesnl commented Jan 24, 2024

Current game plan:

  • Refactored linkages to have no hardcoded moderation rules, and accept a "mutual" flag
  • Implement edge case behaviour for mutual connections, when only one half was set up prior
  • Refactor the client stream sink to hot-swap spatial rendering on the fly
  • Provide spatial rendering state as a parameter in the link packet, as well as the linkage method
  • Implement a new packet to change the rendering state on the fly per stream
  • Alternate setup for peer stream handling (TBD)

@Mindgamesnl Mindgamesnl merged commit 06ac0d7 into development Jan 25, 2024
3 checks passed
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

1 participant