Commit Graph

6211 Commits

Author SHA1 Message Date
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