Commit Graph

7767 Commits

Author SHA1 Message Date
mischa
59e04f7902 breaking: NetworkTime.PingFrequency renamed to PingInterval. Makes it more obvious that we use it as interval, not as frequency in Hz. 2023-07-06 16:45:11 +08:00
mischa
d64c5fb61b fix PrepareToSpawnSceneObjects tests after recent fix 2023-07-06 16:45:03 +08:00
mischa
a463d48681 NetworkTime: more readable ping interval check 2023-07-06 16:33:08 +08:00
James Frowen
08fa0269de
fix: #3538 calling unspawn on scene objects in DestroyOwnedObjects (#3542)
* fix: calling unspawn on scene objects in DestroyOwnedObjects

fixes: https://github.com/MirrorNetworking/Mirror/issues/3538

* Update NetworkConnectionToClient.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-07-06 09:59:28 +02:00
James Frowen
51c7162af7
fix: PrepareToSpawnSceneObjects checks netId instead of activeSelf [fixes: #3541] (#3543)
* fix: fixing PrepareToSpawnSceneObjects not added enabled objects

fixes: https://github.com/MirrorNetworking/Mirror/issues/3541

Should be safe to remove this extra check complete, it is safe to add spawned object to `spawnableObjects`. For now this just changes it to NetId to ensure that the object really is unspawned and not just enabled

* Update NetworkClient.cs

---------

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2023-07-06 09:56:23 +02:00
mischa
110625b102
feature: Lag Compensation V1 (#3534)
* Lag Compensation Example based on Snapshot Interpolation example

* rename scene

* increase latency

* update scripts

* instructions

* better

* rename to rollback

* rename scene

* rebase

* rename to LagComp

* collider, onclick

* CmdClick

* flash color

* cleanup

* LagCompensationSettings

* caputre in interval

* comment

* syntax

* catpure, comp

* ns

* stuff

* source

* syntax

* naming

* history and draw history

* adjust

* cleanups

* tests

* sample and tests

* simplify tests

* out interpolation factor t

* tostring

* show result duration

* sample and interpolate

* fix

* logs

* better gizmos

* store size

* EstimateTime

* demo: estimate time

* estimation tests

* perf: Queue instead of List

* comment

* syntax

* cleaner

* cleanup

* syntax

* comment

* DrawGizmo(s)

* syntax

* extrapolation tests

* fix insert and test

* extrapolation

* fix extrapolation out values

* comments

* TODO

* TODO
2023-07-05 12:08:20 +02:00
MrGadget1024
43c87b4198 chore(CI): RunUnityTests - updated unityVersion 2023-07-03 20:11:31 -04:00
mischa
4972b8004a Tests: fix failing NetworkManagerTests because DeeplyTested test didn't register the GameObject for cleanup 2023-06-29 19:56:17 +08:00
mischa
13e07f5603 NetworkTime: rttVar renamed to rttVariance for consistency with old Mirror versions. makes it easier to upgrade. 2023-06-27 21:40:45 +08:00
mischa
37bbd7eb3d fix: SnapshotInterpolation.Insert() now has a bufferLimit to avoid ever growing snapshot buffers on extremely low-fps clients 2023-06-27 19:20:03 +08:00
mischa
60936f0646 perf: NetworkTransformBase SortedLists now allocate with a default capacity to avoid early resizing & allocations 2023-06-27 18:57:05 +08:00
MrGadget1024
020c514f9a chore(CI): RunUnityTests - updated unityVersion 2023-06-26 11:00:29 -04:00
mischa
2d628cb0f5 Readme updated: slight adjustments 2023-06-26 17:45:41 +08:00
mischa
c7a39451c5 Readme updated: clarify incentives, fix typos, improve formatting 2023-06-26 17:41:13 +08:00
mischa
1e56bc4271
Update README.md (#3527) 2023-06-26 06:02:09 +02:00
mischa
97313bd295
feature: ConnectionQuality Heuristic + Callback + GUI (#3526)
* ConnectionQuality.cs

* NetworkClient.ConnectionQuality with virtual NetworkManager calculation

* NetworkPingDisplay displays ConnectionQuality

* Tanks: adjust NetworkPingDisplay size

* NetworkManager: provide simple version too

* color coding

* extension

* virtual claculate

* on changed hook

* better heuristic

* syntax

* remove comment

* naming

* update in interval

* tweaking

* enable log

* naming

* color

* log message

* comment

* syntax

* explanations
2023-06-26 05:50:03 +02:00
mischa
deaf53a9bb NetworkTime: reintroduce Round Trip Time Variance to prepare for ConnectionQuality 2023-06-25 10:33:23 +08:00
mischa
db83a4cca2 NetworkClient: initialBufferTime for debugging, comparisons, and to prepare for ConnectionQuality 2023-06-25 10:27:14 +08:00
mischa
00f20bca2e Tanks demo: always show time interpolation GUI for easier debugging 2023-06-25 10:20:59 +08:00
mischa
c599fb616e fix: NetworkClient TimeInterpolation: add 'current' bufferTimeMultiplier field to not overwrite the initial SnapshotSettings.bufferTimeMultiplier. Allows us to reset bufferTimeMultiplier in InitTimeInterpolation and prepares for ConnectionQuality. 2023-06-25 10:03:08 +08:00
mischa
16efc7eedf Disable the failing tests for now, so at least the project compiles without Weaver errors 2023-06-24 20:35:26 +08:00
mischa
2b6212b088 fix: Weaver SyncVarAttributeAccessReplacer now detects modifying [SyncVar] in another assembly and logs an error, instead of silently failing at runtime (#3525) 2023-06-24 12:34:59 +08:00
mischa
6465ac5394 Weaver: SyncVarAccessReplacer: pass Logging 2023-06-24 12:34:59 +08:00
mischa
19065acb19 Weaver: SyncVarAccessReplacer: syntax & comments to make it more obvious 2023-06-24 12:34:59 +08:00
MrGadget1024
89f7d38005 chore(CI): RunUnityTests - updated unityVersion 2023-06-23 11:00:48 -04:00
MrGadget1024
4adcb94519 chore(CI): RunUnityTests - updated unityVersion 2023-06-23 10:53:07 -04:00
mischa
6fb0b33188
fix: Weaver now weaves NetworkBehavious in nested type definitions (#3524)
* test for deeply nested weaving

* fix
2023-06-23 14:11:34 +02:00
mischa
d5664ab202 feature: Weaver adds 'bool Weaved()' to each NetworkBehaviour, which can be checked at runtime #3523 2023-06-23 20:07:28 +08:00
mischa
1d7af1b750 Tests: remove unused 'using' 2023-06-23 10:01:41 +08:00
mischa
d1719c1e7b fix: tests work on Unity 2022.2+ [imer] 2023-06-22 23:48:26 +08:00
mischa
73c9990f03 comments 2023-06-20 19:58:46 +08:00
mischa
4d127ad370 naming 2023-06-20 19:58:46 +08:00
mischa
c687bdd24a Weaver ILPostProcessorAssemblyResolver: use GetFileNameWithoutExtension 2023-06-20 19:58:46 +08:00
mischa
8cb58d73e8 syntax 2023-06-20 19:58:46 +08:00
mischa
74bbd295d5 readonly 2023-06-20 19:58:46 +08:00
mischa
69d4d251e2 comments 2023-06-20 19:58:46 +08:00
mischa
eb33dfd40e perf: Weaver ILPostProcessorAssemblyResolver FindFile searches dllname / exename in one iteration & without Linq 2023-06-20 19:58:46 +08:00
mischa
1cc888f287 Weaver: ILPostProcessorAssemblyResolver FindFile comments 2023-06-20 19:58:46 +08:00
mischa
5b7d9560c0 Weaver: ILPostProcessorAssemblyResolver caches FindFile for a 50x improvement in TypeReference.Resolve(), and a 22x improvement in total Weaver time for large projects 2023-06-20 19:58:46 +08:00
mischa
c960377911 Weaver: ILPostProcessorAssemblyResolver comment 2023-06-20 19:58:46 +08:00
mischa
443d1541d1 perf: Weaver ILPostProcessorAssemblyResolver FindFile caches exeName, dllName for ~0.1ms speedup per call 2023-06-20 19:58:46 +08:00
mischa
97f3d2dff4 Weaver ILPostProcessorAssemblyResolver: FindFile uses string name parameter directly 2023-06-20 19:58:46 +08:00
mischa
c6be031783 perf: Weaver ILPostProcessorAssemblyResolver uses ConcurrentDictionary to avoid multithreading locks 2023-06-20 19:58:46 +08:00
mischa
c5ad884145 RigidbodyPhysics demo: disable 'onlySyncOnChange' until #3519 is fixed 2023-06-20 19:53:40 +08:00
mischa
8be961bfb5 Examples/VR link 2023-06-20 16:17:53 +08:00
mischa
d0edb2d7a4 Unbatcher: Unity 2019 fix 2023-06-16 17:25:50 +08:00
mischa
fc561918a8 remove leftover comment 2023-06-16 17:19:03 +08:00
mischa
13fd7211e0
fix: Batching VarInt size header added to fix custom serializated NetworkMessages with size mismatch corrupting the next message in a batch (#3516)
* repro test

* Batcher, Unbatcher VarInt size prefix

* NetworkServer/Client adjusted

* add check

* fix tests

* Batcher: rename headersize

* NetworkMessages: MaxContentSize adjusted

* max size calculations adjusted

* fix tests

* Batcher.MaxMessageOverhead

* naming
2023-06-16 10:58:54 +02:00
mischa
6ac67b9b5f feature: NetworkRigidbody Benchmark demo 2023-06-16 12:26:59 +08:00
mischa
b49f5b39de fix: NetworkRigidbody/2D now uses .target's Rigidbody and supports child Rigidbodies 2023-06-16 10:42:39 +08:00