Closed Barasakar closed 2 years ago
Connect to sync namespace (breaking change)
The client is now compatible with komodo-relay (server) v1.1.0, which requires a connection to the sync namespace.
How to test: open the Unity client in a browser and connect to a v1.1.0 server -> the people tab should report a successful connection.
Support for v1.1.0 should theoretically fix #59
Fix state catch-up to use messaging system (bug fix, new feature)
The state catch-up had a bug where it would always ask the ClientSpawnManager to apply state, so networked objects (synchronized models) would not get transform, visibility, or lock states. This is now fixed.
How to test: go to Unity window > Hierarchy panel > Visible managers > NetworkManager. See Inspector panel > SocketIOEditorSimulator component, right click it, and choose ReceiveExampleStateCatchup. ->The models should all be lined up in a diagonal line, be spaced evenly, and up to four of them should be visible and locked. (Fewer will be visible and locked if some are marked as "isWholeObject = false" in ModelData. This is a limitation of the test.)
Lock and visibility toggle infinite loop (bug fix)
It should no longer be possible to trigger an infinite loop by rapidly pressing the lock and visibility toggle.
How to test: open two clients and rapidly press the visibility or lock button, then let go -> the button should quickly stop flashing on and off.
Max client count (new feature)
The maximum number of clients has arbitrarily been increased to 15.
Improved People tab
Fixes #60
Major networking refactors
Refactors
SessionStateManager has been introduced to apply multiplayer server state catch-ups to the avatars (clients) and networked objects (synchronized models).
A new class, NetworkedObjectsManager, has been introduced to manage synchronized models.
Adding and removing clients was refactored into smaller functions in an attempt to repair the out-of-body experience.
The client teardown code was moved from NetworkUpdateHandler to SocketIOAdapter for the same reason.
Minor renamings.
Please see above for the manual test instructions.
Test Configuration:
Modified from this article: Phillip Johnston, “A GitHub Pull Request Template for Your Projects - Embedded Artistry,” Embedded Artistry, Aug. 04, 2017. https://embeddedartistry.com/blog/2017/08/04/a-github-pull-request-template-for-your-projects/ (accessed Jul. 22, 2021).
@Barasakar Could you review this when you have a chance?
@parseccentric Yeah, I have reviewed this whole thread. Let me know if there is anything else I need to do.
@Barasakar I made another mistake. As you can see above, I mistakenly committed 508b74d and 18651ff onto this branch before merging. I apologize for this error. I will close this pull request and open a new one with a temp
branch that reflects the state of the pull request.
Mandatory Height Calibration Prompt
Created a prototype of the height calibration prompt that asks users to calibrate their height.
Having the height calibration done early might help addressing one of the issues (i.e., teleporting into the ground).
Work around for #61 .
Type of change
How Has This Been Tested?
Komodo runs -> prompt shows up -> calibrate height -> prompt disappears This is not a multi-player feature.
Test Configuration:
Checklist:
My code follows the style guidelines of this projectNew and existing unit tests pass locally with my changesModified from this article: Phillip Johnston, “A GitHub Pull Request Template for Your Projects - Embedded Artistry,” Embedded Artistry, Aug. 04, 2017. https://embeddedartistry.com/blog/2017/08/04/a-github-pull-request-template-for-your-projects/ (accessed Jul. 22, 2021).