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

[ark-multiplayer-kit] Integrate ecs functions into multiplayer #60

Merged
merged 49 commits into from
Apr 15, 2024

Conversation

ryanpeh
Copy link
Contributor

@ryanpeh ryanpeh commented Apr 6, 2024

Changes

Goal of this PR is to revise how multiplayer works
Current implementation: Events between peers to are synced
Intended new implementation:

  • Having a central device (master device) to maintain the state of the game.
  • Events will be sent from the slave devices to the master device, which will determine which ecs functions are required to run.
  • Master device will then broadcast the functions ( basically pseudo state deltas) to the rest of the devices.

Things done

  • Implement multiplayer ECS system.
  • Update multiplayer manager to integrate multiplayer ECS
    • Implement ecs delegate functions
    • Implement ecs function serialiser
  • Implementation of role determining mechanism into multiplayer manager
  • Modification of existing events multiplayer implementation to support new networking requirements
  • Address serializing issue - Kind of resolved but not really
  • Make existing components sendable (SendableComponent)
  • Test and make sure everything works (with exceptions in comments)

ryanpeh and others added 30 commits April 5, 2024 23:49
[ark-multiplayer-kit] make components sendable
[ark-multiplayer] refactor: integrate ark and blueprint with ark network setup
@didymental
Copy link
Contributor

think we don't need to integrate multiplayer context.

dev can define multiplayer via blueprint.supportNetworkPlay(roomName, numberOfPlayers) instead of through context

@didymental
Copy link
Contributor

didymental commented Apr 15, 2024

testing-wise, should be good except for exceptions in #80

  • audio (not yet integrated)
  • host close/ disconnected from session
  • player-level screen resize

[ark-multiplayer] feat: maintain participant state for screen
@didymental didymental marked this pull request as ready for review April 15, 2024 16:17
Copy link
Contributor

@didymental didymental left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@didymental didymental merged commit bb7568d into main Apr 15, 2024
1 check passed
@didymental didymental deleted the feat/networking branch April 15, 2024 16:19
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.

3 participants