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

Implement planned 0.4.0 protocol changes #813

Open
28 of 36 tasks
black-sliver opened this issue Jul 22, 2022 · 11 comments
Open
28 of 36 tasks

Implement planned 0.4.0 protocol changes #813

black-sliver opened this issue Jul 22, 2022 · 11 comments
Labels
affects: core Issues/PRs that touch core and may need additional validation. is: enhancement Issues requesting new features or pull requests implementing new features. is: maintenance Regular updates to requirements and utilities that do not fix bugs or change/add features. is: refactor/cleanup Improvements to code/output readability or organizization. meta: help wanted Additional review/assistance is requested for these issues or pull requests.

Comments

@black-sliver
Copy link
Member

black-sliver commented Jul 22, 2022

Protocol changes

  • Drop Print in favour of PrintJSON. At least multiclient.net can't handle arbitrary type yet, so version check is required.
  • Drop support for missing items_handling in Connect
  • Replace DataPackage per-game version by a hash
  • Replace RoomInfo datapackage_versions by hashes
  • Drop datapackage_version from RoomInfo and version from DataPackage
  • Drop players from RoomInfo
  • Change games in RoomInfo to be a Set, including "Archipelago"
  • Drop exclusions from GetDataPackage
  • Drop support for IgnoreGame tag

Implementation

There is no hard reason to PR or merge stages in order. Stages 1+2 could be implemented at the same time as 4+5 by testing against multiple branches.

Stage 1: Verify client lib support of revamped games in RoomInfo and missing players

Stage 2: Update clients that require update from stage 1

insert more items here when we know

  • Timespinner
  • RL
  • RoR2
  • Subnautica
  • HK
  • Raft
  • CommonClient - 0.3.5

Stage 3: Implement new features, in the server

Stage 4: Implement new features in client libs, send new version

Stage 5: Update clients to new libs

insert all games here

  • CommonClient (TextClient, SNIClient, Adventure, Factorio, FF1, KH2, LADX, OoT, Pokemon R/B, SC2, Wargroove, Z1, Zillion)
  • SoE - v0.3.9
  • Meritous
  • Witness
  • Dark Souls III

Stage 6: Drop backwards-compat in server

Stage 7: Drop backwards-compat in client

At the discretion of client lib devs, but should not happen before TBD.

Random Notes

Stage 1/2 can be tested against a server running #757

@Berserker66
Copy link
Member

A fair few py world changes are done in #757

@Jarno458
Copy link
Collaborator

Jarno458 commented Jul 22, 2022

changes for countdown by PrintJSON are in #812

@black-sliver
Copy link
Member Author

  • Fixed/split the datapackage version stuff above (it's still confusing...) with both version and versions.
  • Added dropping exclusions from GetDataPackage. I already forgot that is still in :D

@black-sliver black-sliver added is: enhancement Issues requesting new features or pull requests implementing new features. meta: help wanted Additional review/assistance is requested for these issues or pull requests. is: refactor/cleanup Improvements to code/output readability or organizization. affects: core Issues/PRs that touch core and may need additional validation. labels Jul 29, 2022
@Jarno458
Copy link
Collaborator

So regarding the .net client updates, the v4 was just released a couple of hours ago
Timespinner and Subnautica already use it
I'll gently poke the maintainers of the other .net games to see if they got time to update thiers

@KonoTyran
Copy link
Contributor

can confirm Java library is compatible with stage 1. current Minecraft mod connects to games run with #757 without issue.

@Jarno458
Copy link
Collaborator

Jarno458 commented Oct 20, 2022

can confirm ArchipIDLE works just fine, both on removal of games aswel as receiving printJson instead of print

@Jarno458
Copy link
Collaborator

Raft is also updated so can be checked off

@Jarno458
Copy link
Collaborator

Jarno458 commented Nov 8, 2022

RL was also updated and can be marked off

@ThePhar
Copy link
Member

ThePhar commented Dec 7, 2022

RoR2 has been updated, so marked it off. May also want to add removing forced_auto_forfeit to this as all clients after the next RoR2 client update should no longer be dependent on it.

@black-sliver black-sliver changed the title Implement planned protocol changes Implement planned 0.4.0 protocol changes Apr 1, 2023
@Jarno458
Copy link
Collaborator

As an update for step 6 "Drop fallback to Print" was already merged

@Jarno458
Copy link
Collaborator

Checksum based datapackage where added in https://github.com/ArchipelagoMW/Archipelago.MultiClient.Net v5.0.0

@ThePhar ThePhar added the is: maintenance Regular updates to requirements and utilities that do not fix bugs or change/add features. label Jul 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
affects: core Issues/PRs that touch core and may need additional validation. is: enhancement Issues requesting new features or pull requests implementing new features. is: maintenance Regular updates to requirements and utilities that do not fix bugs or change/add features. is: refactor/cleanup Improvements to code/output readability or organizization. meta: help wanted Additional review/assistance is requested for these issues or pull requests.
Projects
None yet
Development

No branches or pull requests

5 participants