Commit Graph

6162 Commits

Author SHA1 Message Date
mischa
ce00db0943 perf: PredictedRigidbody caches IsMoving sqr computations 2024-03-14 15:29:30 +08:00
mischa
a4f42194cf perf: PredictedRigidbody syncs a blittable struct once instead of doing 5 separate reads/writes 2024-03-14 14:57:38 +08:00
mischa
fb1d2ee683 PredictedSyncData struct first step: same reads & writes 2024-03-14 14:57:38 +08:00
mischa
3e852d3cb3 perf: PredictedRigidbody doesn't log "Separating Physics" anymore 2024-03-14 14:57:38 +08:00
mischa
95881c02b5 perf: Prediction.Sample() removed SortedList foreach iteration allocations(!) 2024-03-14 14:57:38 +08:00
mischa
cd4715fc7c perf: PredictedRigidbody doesn't log hard correction when ahead anymore 2024-03-14 14:57:38 +08:00
mischa
59ef0e0cf3 PredictedRigidbody: syntax 2024-03-14 14:57:19 +08:00
mischa
949022e265 PredictedRigidbody: OnDeserialize parsing grouped together (syntax change) 2024-03-14 11:39:52 +08:00
mischa
f7a29718b9 Prediction: syntax 2024-03-13 19:33:43 +08:00
mischa
82737f58fa readme changed from .txt to .md for formatting 2024-03-13 17:19:48 +08:00
mischa
a88ec0e5c1 Examples: Prediction Benchmark with readme & current results 2024-03-13 17:18:21 +08:00
mischa
62bf067f0e PredictedRigidbody: make .predictedRigidbody accessible to other components! 2024-03-13 13:26:08 +08:00
MrGadget
a25b74565f fix(ILPostProcessorAssemblyResolver): Ignore Bee.BeeDriver
- There is now BeeDriver2, so using StartsWith
2024-03-12 12:22:14 -04:00
Robin Rolf
fafc10b639
fix: EdgegapKcp StopHost() null reference exception (#3779)
see https://github.com/MirrorNetworking/Mirror/issues/3708
2024-03-12 00:35:21 +08:00
mischa
65f33dee90 fix: #2503 Weaver Custom Read Write functions for Serialization not working over multiple assembly definitions 2024-03-08 15:20:23 +08:00
MrGadget
f10bc77195 SimpleWebTransport: moved overrides down 2024-03-07 07:57:22 -05:00
Robin Rolf
1a915ccde7
feat: SWT overrides Transport.IsEncrypted & EncryptionCipher (#3777)
TLS isn't technically correct, but there's no good way to get that info
2024-03-07 12:52:33 +08:00
Robin Rolf
bac0f77cd7
feat: EncryptionTransport overrides IsEncrypted & Cipher (#3776) 2024-03-07 12:51:42 +08:00
mischa
d558c17815 feat(Transport): IsEncrypted, EncryptionCipher virtuals 2024-03-07 12:10:36 +08:00
mischa
421804378b fix: NetworkServer.OnCommandMessage NullReferenceException due to log message accessing a guaranteed-to-be-null value 2024-03-07 11:47:51 +08:00
mischa
9e15f2423d fix: NetworkServer.Destroy now warns instead of throwing for null objects again 2024-03-06 11:20:56 +08:00
Robin Rolf
9b2a6a3023
chore: EncryptionTransport help url (#3774) 2024-03-05 17:20:15 -05:00
MrGadget
e59e370f4f Removed empty folder meta 2024-03-05 16:44:13 -05:00
MrGadget
9b103d5370 breaking: Asset Store Release
BREAKING CHANGE: Asset Store Release
2024-03-05 12:44:01 -05:00
Robin Rolf
dac1f6406f
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-03-05 12:13:09 -05:00
Robin Rolf
5482e60ff0
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-03-05 08:51:34 -05:00
mischa
a87e65c2c7 MIRROR_88_OR_NEWER 2024-03-05 20:26:49 +08:00
mischa
8344063563 fix: NetworkServer.Spawn now activates inactive GameObjects (for example, in case they were previously Unspawned) 2024-03-05 11:56:47 +01:00
mischa
dbc3887529
fix: NetworkServer.Destroy never destroys scene objects anymore since unlike prefabs, once they are gone we can never instantiate them again (#3771) 2024-03-03 17:56:39 +08:00
mischa
6b526d754f refactor: NetworkServer DestroyObject(DestroyMode) logic moved to Unspawn() + Destroy to remove the DestroyMode parameter 2024-03-02 18:11:39 +08:00
mischa
f7d47ef8b7 LagCompensator: preview notice 2024-02-26 08:56:43 +01:00
mischa
6b21de516d LagCompensator: rename collider field to be more obvious in Inspector 2024-02-25 12:49:34 +01:00
mischa
9081b2e3d2 feat: LagCompensator as convenience component that wraps all the Lag Compensation logic 2024-02-24 16:50:33 +01:00
mischa
8dc4b616c4 fix(Prediction): disable setting scale for joints since it causes issues with parenting 2024-02-22 08:47:25 +01:00
MrGadget
490dea82ab
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-02-16 17:22:59 +01:00
mischa
2ed1d7329c fix(Prediction): ConfigurableJoints' range of motion is now moved correctly 2024-02-16 11:22:06 +01:00
mischa
78cdaef9c4 fix(PredictedRigidbody): reduce-send-rate considers angular velocity now too! 2024-02-14 19:45:28 +01:00
mischa
41a6591f8a Prediction: sync delta rotations too [FakeByte] 2024-02-14 11:02:08 +01:00
mischa
beea27275f Prediction: only set velocity if not kinematic 2024-02-14 11:01:03 +01:00
mischa
3960d5beaa Prediction: better motion smoothing time 2024-02-14 11:00:40 +01:00
mischa
1532c46557 Prediction: sync angularVelocity too 2024-02-14 11:00:26 +01:00
mischa
2f9d60be48 perf(Prediction): ghosts-on-demand(!) 2024-02-11 17:07:54 +01:00
MrGadget
946716b29a CanvasNetworkManagerHUD: fixed indent 2024-02-10 07:28:03 -05:00
mischa
3354363eae PredictedRigidbody: add OnBeforeApplyState callback 2024-02-09 17:46:22 +01:00
MrGadget
157bf67a86
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-02-09 09:47:23 +01:00
MrGadget
fab87866f3 fix(SWT): Improved logging in ClientHandshake
- Added hint to check Server Roles for handshake key mismatches
2024-02-08 10:32:54 -05:00
MrGadget
1d5c8b6f87 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-02-07 17:40:16 -05:00
Robin Rolf
146a49eb09
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-02-07 18:04:36 +01:00
mischa
1bd84f06d1 perf(PredictedRigidbody): OnSerialize faster 2024-02-05 20:59:55 +01:00
mischa
8e21a2101c fix(PredictedRigidbody): fix host mode [FakeByte] 2024-02-05 09:10:48 +01:00
mischa
0556eb2e57 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-02-05 09:07:36 +01:00
mischa
fcea3ce9d4 Prediction: expose physics copy components to inheriting classes 2024-02-02 09:07:31 +01:00
mischa
d00af697bb perf(PredictedRigidbody): reduce sends to 1 Hz while idle(!) 2024-02-02 09:00:55 +01:00
mischa
6b44b2a407 perf(PredictedRigidbody): only record state if changed(!) 2024-02-02 08:30:23 +01:00
MrGadget
54110660ac
fix(NetworkManager): FinishStartHost-Don't force localhost (#3759) 2024-02-01 18:06:28 +01:00
JesusLuvsYooh
fbd64dfb79
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-02-01 11:04:23 -05:00
MrGadget
3e0a6ae64e SyncDictionary: Fixed typo in comment 2024-02-01 06:32:28 -05:00
James Frowen
188a41073f
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-02-01 06:21:15 -05:00
MrGadget
fe32a0569f NetworkTime: SendPing method added. 2024-02-01 06:14:22 -05:00
mischa
d304ada178 Prediction: warn about not readable meshes 2024-01-31 22:02:04 +01:00
MrGadget
4ca0583d2c NetworkManager: fixed comment 2024-01-30 06:07:51 -05:00
MrGadget
72f085c9a7
fix(MultiplexTransport): Use TryGetValue for Lookups (#3758) 2024-01-30 04:42:44 -05:00
mischa
6b915f3517 fix typos 2024-01-30 08:48:59 +01:00
MrGadget
4ecf28d6ab KcpTransport: fixed ToString to match other transports 2024-01-29 21:38:29 -05:00
MrGadget
3ed770ac45 fix(MultiplexTransport): Fixed log output 2024-01-29 21:34:47 -05:00
mischa
1f123b783c ThreadLog: more obvious prefix! 2024-01-29 23:54:42 +01:00
Robin Rolf
dd7337c84f
perf(Extensions): Add shim for transform.GetPositionAndRotation (#3755)
Doesn't exist in unity versions 2021.2 or earlier
2024-01-29 12:49:31 -05:00
mischa
158c5971bb perf(PredictedRigidbody): next round of optimizations 2024-01-29 12:05:14 +01:00
MrGadget
c5aa7d5808 fix(MultiplexTransport): Better Startup Logging 2024-01-29 04:51:28 -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
mischa
b11a13795b Prediction: catch errors early 2024-01-23 10:26:56 +01:00
mischa
59ec51600a Prediction: catch errors 2024-01-23 10:26:07 +01:00