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]: Add Net-Z documentation #29

Open
1 task done
DaniElectra opened this issue Jun 8, 2024 · 1 comment
Open
1 task done

[Feature]: Add Net-Z documentation #29

DaniElectra opened this issue Jun 8, 2024 · 1 comment
Assignees
Labels
approved The topic is approved by a developer feature A feature request

Comments

@DaniElectra
Copy link
Member

Checked Existing

  • I have checked the repository for duplicate issues.

What feature do you want to see added?

Add documentation about Quazal Net-Z and everything related to it (DO protocol, usage on NEX, its RMC and Action methods...)

Why do you want to have this feature?

This would allow us to have a better understanding on how P2P works on games that use it, which could be useful for viewing communication between players and debugging issues on that regard.

Any other details to share? (OPTIONAL)

There is some documentation about DO on https://github.com/zeroKilo/GROBackendWV/wiki/DO , but it's largely incomplete and not very clear about how the fundamentals work (duplicated objects, duplication master, duplicas...)

@DaniElectra DaniElectra added awaiting-approval Topic has not been approved or denied feature A feature request labels Jun 8, 2024
@DaniElectra DaniElectra self-assigned this Jun 8, 2024
@jonbarrow jonbarrow added approved The topic is approved by a developer and removed awaiting-approval Topic has not been approved or denied labels Jun 21, 2024
@jonbarrow
Copy link
Member

jonbarrow commented Jun 21, 2024

not very clear about how the fundamentals work (duplicated objects, duplication master, duplicas...)

Duplicated objects is a fairly common mechanism in my experience for dealing with state managment in p2p connections. I can't find any specific documentation on it, but I've seen a number of game dev content creators bring up the concept when working on multiplayer titles.

The idea is that game state is represented by a series of "objects", which get duplicated across all clients in the session. The client in which the object is created on is the master whereas the copies on other clients are the duplicas. Updates are sent/received as necessary to keep the object state in sync.

There also seems to be a system in place to move mastery of an object between clients, though I lack details. nn::nex::DuplicatedObject::PrepareToLeave seems to be used as part of when a client leaves a session, and there's methods like AttemptEmigration and MigrationInProgress inside it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved The topic is approved by a developer feature A feature request
Projects
Status: Todo
Development

No branches or pull requests

2 participants