MrGadget
4c5a5dfec3
style(SyncSetTest): code formatting
2024-09-21 16:31:34 -04:00
MrGadget
f86acf6bed
chore(SyncSet): code formatting
2024-09-21 16:31:34 -04:00
mischa
c9896c6f3e
readme
2024-09-21 16:31:34 -04:00
mischa
c330942c9f
Prediction Example: stacked predicted boxes
2024-09-21 16:31:34 -04:00
mischa
867bf7c492
PredictedRigidbody: sync & show remote.sleeping to easier debug objects coming to rest
2024-09-21 16:31:34 -04:00
MrGadget
824712df9c
feat(SyncList): Add individual Actions for operations ( #3794 )
2024-09-21 16:31:34 -04:00
MrGadget
1919e61856
style(SyncListTest): Formatting
2024-09-21 16:31:34 -04:00
MrGadget
0e6661f36a
chore(:SyncListTest): Improved tests
2024-09-21 16:31:34 -04:00
MrGadget
aecc8f2587
fix(SyncList): Clear after Callback
...
Allows users to iterate the list before it's wiped
2024-09-21 16:31:34 -04:00
MrGadget
c7305db462
fix(SyncList): Change Callback to Action
2024-09-21 16:31:34 -04:00
mischa
dc2f35a347
fix: PredictedRigidbody now always teleports to corrections to avoid objects not being able to move to a corrected position if there's another object inbetween
2024-09-21 16:31:34 -04:00
MrGadget
fb1fc3a0ae
style(SyncList): formatting
2024-09-21 16:31:34 -04:00
mischa
bdac4445ca
PredictedRigidbody: virtual Awake
2024-09-21 16:31:34 -04:00
F_CIL
06f0a4b291
Update comments for SyncVar ( #3792 )
...
The current comments for SyncVar is somewhat misleading. That is to say, it is mentioned in the comments that SyncVar can only be modified on the server side, and will be automatically synchronized to the client. But in fact, if syncDirection is set to ClientToServer, SyncVar should be modified on the client and automatically synchronized to the server and other clients. The same error exists in the comments of hook attribute
2024-09-21 16:31:34 -04:00
MrGadget
5c52e78b10
feat(SyncDictionary): Add individual Actions for operations ( #3791 )
2024-09-21 16:31:34 -04:00
MrGadget
5c96c81e35
SyncDictionary: Add oldValue to AddOperation ( #3790 )
...
This is preparation for Actions coming in subsequent PR.
2024-09-21 16:31:34 -04:00
MrGadget
877067af76
fix(SyncDictionary): Clear after Callback ( #3789 )
2024-09-21 16:31:33 -04:00
MrGadget
05d68f91af
chore(SyncDictionaryTest): Improved tests
2024-09-21 16:31:33 -04:00
MrGadget
0b8b11e78f
style(SyncDictionary): code formatting
2024-09-21 16:31:33 -04:00
mischa
ea01b7c060
Billiards readme: link prediction article
2024-09-21 16:31:33 -04:00
mischa
a0bb738705
Billiards (not predicted): add latency simulation and improve explanation
2024-09-21 16:31:33 -04:00
mischa
cded6bc736
Predicted Billiards: fix pocket resets for latest prediction and update Readme to be ready for users!
2024-09-21 16:31:33 -04:00
mischa
e564ff92d0
Predicted Billiards: fix Rigidbody access for latest prediction
2024-09-21 16:31:33 -04:00
mischa
8334f3549c
Predicted Billiards: fix dragging with predicted Rigidbody
2024-09-21 16:31:33 -04:00
mischa
a3e8ef0b8f
Predicted Billiards: fix ghost materials
2024-09-21 16:31:33 -04:00
mischa
a3e6dd3cb5
perf: Prediction.CorrectHistory removed O(N) insertion. adjusting successive values is enough.
2024-09-21 16:31:33 -04:00
mischa
1d004dcd21
fix: Prediction.CorrectHistory now adjusts afterIndex after removals/insertions
2024-09-21 16:31:33 -04:00
mischa
39338b413d
Prediction: explain insertions complexity
2024-09-21 16:31:33 -04:00
MrGadget
1eecc055c5
fix(SimpleWeb.jslib): Locally Scope Runtime
2024-09-21 16:31:33 -04:00
MrGadget
e257232517
style(SimpleWeb.jslib): Code formatting
2024-09-21 16:31:33 -04:00
MrGadget
c373f9f0e7
fix(SimpleWeb): scope websocket locally instead of globally
2024-09-21 16:31:33 -04:00
Robin Rolf
714f231d43
fix(LobbyServiceCreateDialogue): Added warning about Edgegap Lobby Name bug ( #3783 )
2024-09-21 16:31:33 -04:00
Robin Rolf
16f892e94d
fix: Edgegap Lobby Create UI Tweaks ( #3782 )
...
* chore: Edgegap Lobby Create UI Tweaks
* 3 loading dots
* help urls
2024-09-21 16:31:33 -04:00
MrGadget
501129fb68
EncryptionTransportInspector: Fixed button label
2024-09-21 16:31:33 -04:00
MrGadget
8eda3231be
fix(EdgegapLobbyKcpTransport): Fixed HelpURL
2024-09-21 16:31:33 -04:00
Robin Rolf
074e0d6dc6
chore: old unity compat for PredictedRigidbody ( #3781 )
2024-09-21 16:31:33 -04:00
Robin Rolf
9ce8f9b5f8
feat: Edgegap Lobby Transport & Demo ( #3780 )
...
* feat: Edgegap Lobby Transport & Example
* Code Cleanup
* Rename data -> models
* Remove debug logs
* Log errors as OnClient/ServerError dont always log
* Only show joinable lobbies
* naming
* Transport help url
* old unity compat
* Unity 2020 compat as well
* Readme
* lobby name is required + correct placeholder
* Update lobby ui prefab too
* Lobby creation ui tweaks
* lobby url tooltip tweak
* Remove test lobby url
2024-09-21 16:31:33 -04:00
mischa
9d7de40aa7
Prediction: RingBuffer perf comments
2024-09-21 16:31:33 -04:00
mischa
7cf0b884a6
perf: PredictedRigidbody MoveTowardsCustom: only calculate distance factor once
2024-09-21 16:31:33 -04:00
mischa
8705a9b0c2
perf: PredictedRigidbody MoveTowardsCustom
2024-09-21 16:31:33 -04:00
mischa
eb93ce4e3d
perf: PredictedRigidbody smoothFollowThreshold squared caching
2024-09-21 16:31:33 -04:00
mischa
237ffac7a9
PredictedRigidbody: update hard follow commented code
2024-09-21 16:31:33 -04:00
mischa
501867cda0
perf: PredictedRigidbody caches physics transform to use GetPositionAndRotation
2024-09-21 16:30:36 -04:00
mischa
fbb3d563ba
perf: PredictedRigidbody UpdateGhosting: only every few frames
2024-09-21 16:30:36 -04:00
mischa
fb5adf3fb7
prediction benchmark updated
2024-09-21 16:30:36 -04:00
mischa
0657da87ea
perf: PredictedRigidbody RecordState only grabs count once
2024-09-21 16:30:36 -04:00
mischa
2ecafaa634
perf: PredictedRigidbody state properties inlined
2024-09-21 16:30:36 -04:00
mischa
4f642d73a3
perf: PredictedRigidbody RecordState only calls NetworkTime.time getter once
2024-09-21 16:30:36 -04:00
mischa
39fbaabd3b
perf: PredictedRigidbody FixedUpdate caches sqr computations
2024-09-21 16:30:36 -04:00
mischa
c8f022584a
inlining
2024-09-21 16:30:36 -04:00
mischa
ae0a6a9c3e
perf: PredictedRigidbody caches IsMoving sqr computations
2024-09-21 16:30:36 -04:00
mischa
0789d41798
perf: PredictedRigidbody syncs a blittable struct once instead of doing 5 separate reads/writes
2024-09-21 16:30:36 -04:00
mischa
9497121c45
PredictedSyncData struct first step: same reads & writes
2024-09-21 16:30:36 -04:00
mischa
ed12063f49
perf: PredictedRigidbody doesn't log "Separating Physics" anymore
2024-09-21 16:30:36 -04:00
mischa
75fb9ff57c
perf: Prediction.Sample() removed SortedList foreach iteration allocations(!)
2024-09-21 16:30:36 -04:00
mischa
1083dc5504
perf: PredictedRigidbody doesn't log hard correction when ahead anymore
2024-09-21 16:30:36 -04:00
mischa
07eba2dfc6
PredictedRigidbody: syntax
2024-09-21 16:30:36 -04:00
mischa
597fd933c4
PredictedRigidbody: OnDeserialize parsing grouped together (syntax change)
2024-09-21 16:30:36 -04:00
mischa
8b86e709be
Prediction: syntax
2024-09-21 16:30:36 -04:00
mischa
7cc63de0ec
readme changed from .txt to .md for formatting
2024-09-21 16:30:36 -04:00
mischa
4b1d179a76
Examples: Prediction Benchmark with readme & current results
2024-09-21 16:30:36 -04:00
mischa
7702db6e03
PredictedRigidbody: make .predictedRigidbody accessible to other components!
2024-09-21 16:30:36 -04:00
MrGadget
00069b9c7c
fix(ILPostProcessorAssemblyResolver): Ignore Bee.BeeDriver
...
- There is now BeeDriver2, so using StartsWith
2024-09-21 16:30:36 -04:00
Robin Rolf
5bb5c72af9
fix: EdgegapKcp StopHost() null reference exception ( #3779 )
...
see https://github.com/MirrorNetworking/Mirror/issues/3708
2024-09-21 16:30:36 -04:00
mischa
dcfab19ab8
fix : #2503 Weaver Custom Read Write functions for Serialization not working over multiple assembly definitions
2024-09-21 16:30:36 -04:00
MrGadget
58863e16a7
SimpleWebTransport: moved overrides down
2024-09-21 16:30:36 -04:00
Robin Rolf
88f4400570
feat: SWT overrides Transport.IsEncrypted & EncryptionCipher ( #3777 )
...
TLS isn't technically correct, but there's no good way to get that info
2024-09-21 16:30:36 -04:00
Robin Rolf
ab57b62cbe
feat: EncryptionTransport overrides IsEncrypted & Cipher ( #3776 )
2024-09-21 16:30:36 -04:00
mischa
35a3d86e87
feat(Transport): IsEncrypted, EncryptionCipher virtuals
2024-09-21 16:30:36 -04:00
mischa
42c9e6fc62
fix: NetworkServer.OnCommandMessage NullReferenceException due to log message accessing a guaranteed-to-be-null value
2024-09-21 16:30:36 -04:00
mischa
b90f6f30ab
fix: NetworkServer.Destroy now warns instead of throwing for null objects again
2024-09-21 16:30:35 -04:00
Robin Rolf
c15d465874
chore: EncryptionTransport help url ( #3774 )
2024-09-21 16:30:35 -04:00
MrGadget
c9206716c0
Removed empty folder meta
2024-09-21 16:30:35 -04:00
MrGadget
4c36f35fdd
breaking: Asset Store Release
...
BREAKING CHANGE: Asset Store Release
2024-09-21 16:30:35 -04:00
Robin Rolf
8f0a952d16
fix: EncryptionTransport uses KDF to ensure fixed size key ( #3773 )
...
* reset _time
* fix: EncryptionTransport use KDF to ensure fixed size key
* Expose pub key through transport
* Old Unity compat
2024-09-21 16:30:35 -04:00
Robin Rolf
d929a9a9ea
feat: EncryptionTransport ( #3768 )
...
* initial working transport
* code cleanup & transport wrap tests
* better connection tests
* Handle bouncycastle exceptions
* clean up usings
* Mirror icon :)
* list to allow for removing entries during loop
* Profiler sampling
* Unity 2019 compat
* code style
* pubkey validation
* use builtin aes engine selector
this is overly optimistic, as the hardware accelerated engine is only available on .net core 3 or higher
* Older unity version fix
2024-09-21 16:30:35 -04:00
mischa
f54b281af7
MIRROR_88_OR_NEWER
2024-09-21 16:30:35 -04:00
mischa
7715ac700b
fix: NetworkServer.Spawn now activates inactive GameObjects (for example, in case they were previously Unspawned)
2024-09-21 16:29:37 -04:00
mischa
1e40999503
fix: NetworkServer.Destroy never destroys scene objects anymore since unlike prefabs, once they are gone we can never instantiate them again ( #3771 )
2024-09-21 16:29:37 -04:00
mischa
0164e0a4ad
refactor: NetworkServer DestroyObject(DestroyMode) logic moved to Unspawn() + Destroy to remove the DestroyMode parameter
2024-09-21 16:29:37 -04:00
mischa
50c1cb71bb
LagCompensator: preview notice
2024-09-21 16:29:37 -04:00
mischa
daf3e606da
LagCompensator: rename collider field to be more obvious in Inspector
2024-09-21 16:29:37 -04:00
mischa
351b4b113a
feat: LagCompensator as convenience component that wraps all the Lag Compensation logic
2024-09-21 16:29:37 -04:00
mischa
99bd93b95e
fix(Prediction): disable setting scale for joints since it causes issues with parenting
2024-09-21 16:29:37 -04:00
MrGadget
3d7ef0cc60
fix: Safer version for FindAnyObjectByType ( #3765 )
...
Unity docs are a mess on when FindAnyObjectByType was implemented:
- 2021.3 says it is
- 2022.1 says it's not
- 2022.2 says it is
2024-09-21 16:29:37 -04:00
mischa
8094f88469
fix(Prediction): ConfigurableJoints' range of motion is now moved correctly
2024-09-21 16:29:37 -04:00
mischa
fb13fa37e2
fix(PredictedRigidbody): reduce-send-rate considers angular velocity now too!
2024-09-21 16:29:37 -04:00
mischa
449c33a694
Prediction: sync delta rotations too [FakeByte]
2024-09-21 16:29:37 -04:00
mischa
e7c8898679
Prediction: only set velocity if not kinematic
2024-09-21 16:29:36 -04:00
mischa
54c8caac54
Prediction: better motion smoothing time
2024-09-21 16:29:36 -04:00
mischa
05787f3853
Prediction: sync angularVelocity too
2024-09-21 16:29:36 -04:00
mischa
6cb4017deb
perf(Prediction): ghosts-on-demand(!)
2024-09-21 16:29:36 -04:00
MrGadget
ee97a8bd65
CanvasNetworkManagerHUD: fixed indent
2024-09-21 16:29:36 -04:00
mischa
205cbc2d63
PredictedRigidbody: add OnBeforeApplyState callback
2024-09-21 16:29:36 -04:00
MrGadget
136c1d2b30
feat(NetworkRigidbody): Default Sync Direction = Client To Server ( #3764 )
...
- This is done in Reset so Network Behaviour isn't effected.
- This will not change components already in place on objects / prefabs unless user manually chooses Reset in the inspector.
2024-09-21 16:29:36 -04:00
MrGadget
0821e56105
fix(SWT): Improved logging in ClientHandshake
...
- Added hint to check Server Roles for handshake key mismatches
2024-09-21 16:29:36 -04:00
MrGadget
e60d3bf382
feat(NetworkAnimator): Default Sync Direction = Client To Server
...
- This is done in Reset so Network Behaviour isn't effected.
- This will not change NA components already in place on objects / prefabs unless user manually chooses Reset in the inspector.
2024-09-21 16:29:36 -04:00
Robin Rolf
bd7b6fe038
breaking: perf: change NB.syncVarDirtyBits to field ( #3762 )
...
@miwarnec saw the property showing up while profiling. Very much unnecessary, so lets change that to a field.
BREAKING: Changed NetworkBehaviour.syncVarDirtyBits from a "get-only" property to a field
2024-09-21 16:29:36 -04:00
mischa
7b50cd5197
perf(PredictedRigidbody): OnSerialize faster
2024-09-21 16:29:36 -04:00
mischa
d4e03d9463
fix(PredictedRigidbody): fix host mode [FakeByte]
2024-09-21 16:29:36 -04:00
mischa
d69d126672
fix(PredictedRigidbody): only show 'hard correcting because too old' warning if older than entire state history limit. not when starting to record only 2-3 entries yet.
2024-09-21 16:29:36 -04:00
mischa
1d5a5008bc
Prediction: expose physics copy components to inheriting classes
2024-09-21 16:29:36 -04:00
mischa
81d14068a4
perf(PredictedRigidbody): reduce sends to 1 Hz while idle(!)
2024-09-21 16:29:36 -04:00
mischa
565858f1ad
perf(PredictedRigidbody): only record state if changed(!)
2024-09-21 16:29:36 -04:00
MrGadget
e5dbf0dcda
fix(NetworkManager): FinishStartHost-Don't force localhost ( #3759 )
2024-09-21 16:29:36 -04:00
JesusLuvsYooh
c17ebbc0f4
feat: NT-UR bit flag changed detection to lower bandwidth usage. ( #3721 )
...
* feat: NT-UR bit flag changed detection to lower bandwidth usage.
Also major credits to our Ninja.
* Tooltip updated
* fix: NT-Unreliable Quaternion Compression Fix
Credits to ninja of course :D
* NT-U new improvements
Credits to Ninja
* Nothing to see here..
* Added comment to Quat Rotation Fix
* Sensitivity check to improve value comparisons.
Without this, X 0 and X -4.955753E-07 (0) would trigger as a change of value.
Helps epsilon/floating point inaccuracies.
* Moved around checks.
rotationChanged not needed now for non-compressed bool, as we check individual rotation sensitivity changes.
We can move this inside quat compress check.
* Use Rot/All, not just RotX as a compress changed flag.
* Set Just Rot.
* Updated Reset to ResetState
* Fixing PR 3571/3572/3572 in this new bitflag branch
---------
Co-authored-by: ninjakickja <80569286+ninjakickja@users.noreply.github.com>
2024-09-21 16:29:36 -04:00
MrGadget
c54bd2c4f1
SyncDictionary: Fixed typo in comment
2024-09-21 16:29:36 -04:00
James Frowen
7671bde0bf
fix(NetworkClient): Call NetworkTime.SendPing from OnTransportConnected ( #3686 )
...
* fix: fixing time not being sent on connect
client does not send ping if connecting to server within 2 seconds of starting, the new PingNow function will tell client to send the message right away instead of after lastPingTime+PingInterval
* Update Assets/Mirror/Core/NetworkTime.cs
* Update Assets/Mirror/Core/NetworkTime.cs
* Update Assets/Mirror/Core/NetworkClient.cs
* Update Assets/Mirror/Core/NetworkTime.cs
---------
Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2024-09-21 16:29:36 -04:00
MrGadget
c411a3fa4c
NetworkTime: SendPing method added.
2024-09-21 16:29:36 -04:00
mischa
1f012583f6
Prediction: warn about not readable meshes
2024-09-21 16:29:36 -04:00
MrGadget
21df956789
NetworkManager: fixed comment
2024-09-21 16:29:36 -04:00
MrGadget
cd358630ff
fix(MultiplexTransport): Use TryGetValue for Lookups ( #3758 )
2024-09-21 16:29:36 -04:00
mischa
77469f5201
fix typos
2024-09-21 16:29:36 -04:00
MrGadget
9d5b66a64f
KcpTransport: fixed ToString to match other transports
2024-09-21 16:29:36 -04:00
MrGadget
af4d8e789e
fix(MultiplexTransport): Fixed log output
2024-09-21 16:29:36 -04:00
mischa
2becc2c01c
ThreadLog: more obvious prefix!
2024-09-21 16:29:36 -04:00
Robin Rolf
e4e23afd9c
perf(Extensions): Add shim for transform.GetPositionAndRotation ( #3755 )
...
Doesn't exist in unity versions 2021.2 or earlier
2024-09-21 16:29:36 -04:00
mischa
b403405c85
perf(PredictedRigidbody): next round of optimizations
2024-09-21 16:29:36 -04:00
MrGadget
e220e9e8f8
fix(MultiplexTransport): Better Startup Logging
2024-09-21 16:29:36 -04:00
MrGadget
1b17f582c5
Added missing meta
2024-01-29 02:22:46 -05:00
MrGadget
f4a416ab80
Merged master
2024-01-29 02:15:31 -05:00
mischa
2b92ac7674
perf(Prediction): optimize ghosts. deep profiling: 93 objects before=0.08ms after =0.03ms!
2024-01-28 12:41:13 +01:00
mischa
1899539e03
perf(Prediction): optimize LateUpdate because this shows in profiler! deep profiling: 93 objects, before=0.54ms, after=0.22ms => 2.5x faster!
2024-01-28 12:29:18 +01:00
mischa
f926514a6e
perf(Prediction): cache .transform getter because this is performance critical
2024-01-28 12:29:18 +01:00
mischa
5e56b96f43
syntax
2024-01-28 12:29:18 +01:00
mischa
44338c5551
Prediction: rename DestroyCopies to DestroyGhosts for consistency
2024-01-28 12:29:18 +01:00
Justin Nolan
24c0c9ed3f
Add network mesages to lookup dict in network client replace handler ( #3754 )
2024-01-28 11:09:47 +01:00
Justin Nolan
1c365fc3d5
Add network messages to lookup dict in network server replace handler ( #3753 )
2024-01-28 11:09:35 +01:00
mischa
2c603fd406
PredictedRigidbody: improve logging
2024-01-27 11:47:34 +01:00
mischa
86805e82d2
Edgegap Hosting: updated to latest version for fixes and Websocket support
2024-01-27 10:56:42 +01:00
MrGadget
7a2cae3cfd
NetworkBehaviour: Improved comments
2024-01-26 02:02:53 -05:00
MrGadget
061e49acca
PredictionUtils: Fixed pre-Unity 2020.3 errors
2024-01-25 09:50:46 -05:00
MrGadget
5616f8c5a0
PredictionUtils: Fixed pre-Unity 2022.3 errors
2024-01-25 09:35:02 -05:00
MrGadget
41d12e67c3
perf(Team Interest Mgmt): Complete Overhaul ( #3730 )
...
* WIP
* perf(Team Interest Mgmt) Use Dictionary instead of spawned
This is better than iterating all spawned objects and doing TryGetComponent in Update.
* TeamIntMgmt WIP
* NetworkTeam SerializeField, no SyncVar
* Fixed Tooltip
* Removed SyncVar on forceShown
* Fixed issues per review
* Fixed comments and naming
* Remove ReadOnly
2024-01-25 14:23:13 +01:00
mischa
1e62b2450a
Prediction: add support for predicted objects which are children of parents with non-default scale
2024-01-25 12:22:12 +01:00
mischa
957e5c3283
Prediction: support all Joints
2024-01-25 12:01:19 +01:00
MrGadget
66df601b78
feat(SyncVar): Arrays are supported ( #3750 )
...
* feat(SyncVar): Arrays are supported
* Moved and revised SyncVarsCantBeArray test
- Now named SyncVarsCanBeArray
- thisShouldntWork renamed to thisShouldWork
2024-01-25 11:10:06 +01:00
mischa
9f8c801795
Prediction: collider materials are now copied too
2024-01-24 14:49:37 +01:00
mischa
42dffbe898
Prediction: comments
2024-01-24 14:49:34 +01:00
mischa
8564e88d97
Prediction: MovePhysicsComponents helper function
2024-01-24 14:40:01 +01:00
mischa
ea13dc67f9
Prediction: move GameObject/MonoBehaviour copying code into PredicitonUtils.cs
2024-01-24 14:38:44 +01:00
mischa
84fec3d286
oops
2024-01-24 13:36:14 +01:00
mischa
38129b7696
fix(Prediction): child colliders now have the correct layer too
2024-01-24 13:34:55 +01:00
mischa
3c3c5c56fd
fix(Prediction): when copying child Colliders, copy their relative position/rotation/scale too
2024-01-24 12:48:17 +01:00
mischa
a26d5f0e60
comments
2024-01-24 12:19:39 +01:00
mischa
0e75e3153f
Prediction: now supports colliders on children
2024-01-24 11:40:49 +01:00
mischa
c87c74bce1
fix(Prediction): now supports interest management by moving physics copy's components back onto self before destroying the physics copy
2024-01-23 11:30:07 +01:00
mischa
eb96b6155e
Prediction: MoveAllColliders helper for reuse
2024-01-23 11:26:43 +01:00
mischa
2c65404cf3
Prediction: make Move.* functions static for reuse later
2024-01-23 11:26:43 +01:00
mischa
bf771e283c
fix(Prediction): fix MoveColliders not copying isTrigger
2024-01-23 11:26:43 +01:00