Commit Graph

5295 Commits

Author SHA1 Message Date
vis2k
9fd1e65eab syntax: move Multiplex connectionId calculations to the top of the file 2022-12-03 20:01:42 -05:00
vis2k
2566911e78 MultiplexTransport: Test to reproduce #3280 2022-12-03 19:49:13 -05:00
vis2k
d77655f19b comment improved 2022-12-03 19:32:58 -05:00
vis2k
9d212bc117 // A Test behaves as an ordinary method 2022-12-03 19:23:31 -05:00
vis2k
02de011ab0 perf: MultiplexTransport.ServerSend: remove unnecessary O(N) loop 2022-12-03 19:21:56 -05:00
vis2k
25959df80c MultiplexTransportTests: add ServerSend tests via NSubstitute 2022-12-03 19:17:02 -05:00
vis2k
5bfc646bd8 MultiplexTransportTests: add substitute explanations 2022-12-03 19:11:59 -05:00
vis2k
4f45e9eada comments 2022-12-03 19:01:24 -05:00
vis2k
9ad3f08392 MultiplexTransport: parameters switched to be more obvious 2022-12-03 18:59:18 -05:00
vis2k
2b1ebea7b7 MultiplexTransport: ID functions renamed to be more obvious 2022-12-03 18:56:54 -05:00
vis2k
0dfd4e15cc comments 2022-12-03 18:52:13 -05:00
vis2k
33a697896c syntax 2022-12-03 18:46:21 -05:00
vis2k
2def856707 syntax 2022-12-03 18:45:51 -05:00
vis2k
40564da5cc Tests: MultiplexTransport To/From ID computations 2022-12-03 18:42:52 -05:00
vis2k
beb9c04218 comments 2022-12-03 18:39:33 -05:00
vis2k
e8d178688f Tests: MultiplexTest renamed to MultiplexTransportTest 2022-12-03 18:36:32 -05:00
vis2k
576bcd80d7 MultiplexTransport: Id calculations made static for easier testing 2022-12-03 18:31:06 -05:00
vis2k
f4d4563a43 MultiplexTransport: syntax for readability 2022-12-03 18:28:19 -05:00
vis2k
27a22620db breaking: virtual NetworkManager.OnClientDisconnect is now simply a user callback. users don't need to call base or StopClient anymore when overwriting. 2022-12-03 13:49:27 -05:00
vis2k
ff3039bdb4 breaking: fix: circular calls from Transport -> NetworkClient -> NetworkManager.OnClientDisconnected -> StopClient() -> NetworkClient.Disconnect() -> ...
NetworkManager.OnClientDisconnect now doesn't call NetworkClient.Disconnect anymore.
NetworkManager.StopClient() still calls NetworkManager.OnClientDisconnect for compatibility.
2022-12-03 13:49:27 -05:00
vis2k
3a7a5be152 fix: #3152 #3213 NetworkClient.AddTransportHandlers ensures they are only added once, never twice even if a community Transport forgets to call OnDisconnected 2022-12-03 13:36:53 -05:00
vis2k
ce9d52e8fd fix: #3287 Telepathy NullReferenceException on client after Server was forcefully closed 2022-12-03 13:31:26 -05:00
vis2k
9da1786979 KcpTransport: expose conversion methods 2022-11-30 13:34:45 -05:00
vis2k
aeba5940bf KcpClient: expose RawReceiveBuffer 2022-11-30 13:29:55 -05:00
vis2k
6938bd15e6 Tanks demo: add NetworkPingDisplay for latency tests 2022-11-30 13:16:31 -05:00
vis2k
f0aae71f16 kcp2k V1.22 2022-11-29 13:33:22 -05:00
MrGadget
563f6feea0 syntax 2022-11-29 06:36:57 -05:00
MrGadget
91c3439948 fix: MatchInterestManagement - Use TryGetValue in Update 2022-11-29 06:35:58 -05:00
MrGadget
904d44333e MatchInterestManagement - naming consistency 2022-11-29 06:34:19 -05:00
MrGadget
c0908a2f58 fix: SceneInterestManagement - Use TryGetValue in Update 2022-11-29 06:33:33 -05:00
MrGadget
c70145d535 ServerCallback attributes added 2022-11-29 06:23:10 -05:00
MrGadget
94e315caca TeamInterestManagement- syntax 2022-11-29 06:19:41 -05:00
MrGadget
12c83effbb fix: SceneInterestManagement - use TryGetValue in OnDestroyed 2022-11-29 06:17:49 -05:00
MrGadget
f67aa64d59 fix: MatchInterestManagement - use TryGetValue in OnDestroyed 2022-11-29 06:16:53 -05:00
MrGadget
186702f810
feat: Add Mirror.Transports AsmDef (#3282)
- Keeps transports in their own assembly to users' own AsmDef's can reference them.
2022-11-28 12:12:51 +01:00
MrGadget
094b925797
fix: Fix vector3 long warnings (#3281)
* fix: Suppress Warnings in Vector3Long

* fix comment

* formatting

* Formatting
2022-11-28 12:11:44 +01:00
MrGadget
a86a115a30
Fix time as double unity 2019 (#3279)
* NetworkServer - TimeAsDouble compatibility for Unity 2019

* NetworkStatistics - TimeAsDouble compatibility for Unity 2019

* Simplified - rely on defines in NetworkTime
2022-11-27 07:35:05 -05:00
MrGadget
abd1c1689d NetworkRoomManager - Removed OnRoomClientAddPlayerFailed virtual method
- Fixes #3168
- There is no good place to call that - use OnRoomClientDisconnect or OnRoomStopClient
2022-11-26 14:03:29 -05:00
MrGadget
71668c530f Team and Match Interest Management Updates
- Fixes #3273 (removed erroneous evaluation in OnCheckObserver)
- NetworkTeam TeamId and Force Shown are now SyncVars for debugging
- Better naming of variables
2022-11-26 13:36:59 -05:00
vis2k
73b83c14cc Merge remote-tracking branch 'origin/master' 2022-11-24 11:03:34 +01:00
vis2k
d100ecb4c4 kcp2k V1.21 [2022-11-24]
- high level refactor, part one.
  - KcpPeer instead of KcpConnection, KcpClientConnection, KcpServerConnection
  - RawSend/Receive can now easily be overwritten in KcpClient/Server.
    for non-alloc, relays, etc.
2022-11-24 10:51:47 +01:00
MrGadget
51209096a3 Updated RigidbodyPhysics Example 2022-11-23 05:56:30 -05:00
MrGadget
8fc73b034b Updated Examples Player Prefabs
Default NT Settings Updated
2022-11-23 05:21:23 -05:00
MrGadget
6c041dce22 Merge branch 'master' of https://github.com/vis2k/Mirror 2022-11-23 05:08:24 -05:00
MrGadget
bd88d665de Updated Rigidbody Pysics Example 2022-11-23 05:08:10 -05:00
vis2k
e1a5f0300f perf: kcp2k V1.20 [2022-11-22]
- perf: KcpClient receive allocation was removed entirely.
  reduces Mirror benchmark client sided allocations from 4.9 KB / 1.7 KB (non-alloc) to 0B.
- fix: KcpConnection.Disconnect does not check socket.Connected anymore.
  UDP sockets don't have a connection.
  fixes Disconnects not being sent to clients in netcore.
- KcpConnection.SendReliable: added OnError instead of logs
2022-11-23 00:18:41 +01:00
vis2k
9c0814fa54 Tanks demo resaved 2022-11-22 12:04:47 +01:00
vis2k
cc170b2569 update script icon 2022-11-22 12:01:46 +01:00
vis2k
fcf148184e fix: Unity 2019 Vector3Long semicolon error:
https://forum.unity.com/threads/mirror-open-source-networking-for-unity.425437/page-37#post-8592787
2022-11-17 18:41:24 +01:00
JesusLuvsYooh
ca33b91460
A define mistake, fixed Under 2021 support. (#3276)
There is no HashCode.Combine in this function, so 2021 define is not needed.
Removing the define brings back support for under Unity 2021's
2022-11-17 14:40:12 +01:00
JesusLuvsYooh
eaf16608ca
Support for c# versions under 9 (is not to ! is) (#3275) 2022-11-17 14:37:48 +01:00
vis2k
c750851ac4 [RequireComponent(typeof(NetworkTransform))] tags disabled to support both NTs 2022-11-13 18:27:37 +01:00
vis2k
9b39e31e8a feature: perf: NetworkTransform V3 (Reliable) 2022-11-13 18:09:04 +01:00
vis2k
5f251f00ed rename NetworkTransform V2 folder 2022-11-13 17:59:54 +01:00
vis2k
c4ca2734fa NetworkServer.GetEntitySerializationForConnection renamed to SerializeForConnection (shorter) 2022-11-13 16:13:22 +01:00
mischa
260aaf6f8c
perf: bundle Rpcs together for each connection. saves 2 bytes of Rpc message headers per Rpc (#3257)
* buffer TargetRpcs

* buffer Rpcs

* TODO

* readonly

* ok

* better

* ensure max

* parse on client

* fix size

* oops

* adjust test
2022-11-12 12:53:42 +01:00
vis2k
a9e63724e3 remove old comment 2022-11-11 21:55:27 +01:00
vis2k
b04e8e681a SetSyncObjectDirtyBit helper function 2022-11-11 21:07:05 +01:00
vis2k
41ef03fff5 OnStartLocalPlayer multiple calls workaround explained 2022-11-11 18:49:43 +01:00
vis2k
7e1a579ff2 OnStartLocalPlayer initialization moved to NetworkClient 2022-11-11 18:25:16 +01:00
vis2k
ce819e253a OnStartClient initializations moved to NetworkClient 2022-11-11 18:19:04 +01:00
vis2k
8d7b3ec89b NetworkClient.CheckForStartClient to prepare for OnStartClient cleanup 2022-11-11 18:18:37 +01:00
vis2k
0c116e29f2 perf: NetworkIdentity.observers is now always initialized. removes extra null checks everywhere. 2022-11-10 21:09:29 +01:00
vis2k
264a652abe use explicit type 2022-11-10 20:49:45 +01:00
vis2k
940a467035 SendToReadyObservers: use explicit type 2022-11-10 20:47:12 +01:00
vis2k
5ffdd06602 OnStartServer isClient assignment moved to caller NetworkServer 2022-11-10 20:27:15 +01:00
vis2k
2c40b15a08 syntax 2022-11-10 20:27:01 +01:00
vis2k
75e7af1312 OnStartServer spawned assignment moved to NetworkServer caller 2022-11-10 20:26:56 +01:00
vis2k
c6df8f01d8 OnStartServer netId assignment moved to NetworkServer caller 2022-11-10 20:26:53 +01:00
vis2k
17d874fee8 OnStartServer netId != 0 check moved to NetworkServer caller 2022-11-10 20:26:49 +01:00
vis2k
e7abbaf531 OnStartServer isLocalPlayer initialization moved to NetworkServer caller 2022-11-10 20:26:34 +01:00
vis2k
f2b0f2bab2 OnStartServer isServer check + initialization moved to NetworkServer for cleaner code 2022-11-10 20:26:29 +01:00
vis2k
d79de6bf0c fix: #3258 NetworkWriter.WriteString now ensures capacity before manually writing into the buffer 2022-11-10 10:57:13 +01:00
vis2k
53a9717334 fix: Unity 2020 support 2022-11-09 15:04:12 +01:00
vis2k
1dada3bb4b MIRROR_2022_10_OR_NEWER 2022-11-09 10:55:50 +01:00
vis2k
3617ffac00 comment updated 2022-11-06 20:32:06 +01:00
vis2k
6315260286 syntax 2022-11-06 19:30:54 +01:00
vis2k
761b70e8e7 remove unused import 2022-11-03 16:16:39 +01:00
vis2k
d021c1a01e TimeSample moved to Tools 2022-11-03 16:15:18 +01:00
vis2k
e6a65bc5b2 breaking: remove SyncVar<T> which was meant to replace [SyncVar]s implementation behind the scenes. this hasn't happened, so we don't actually need it. 2022-11-03 16:09:36 +01:00
vis2k
085ed1da81 NetworkBehaviourSyncVar moved into separate file to keep NetworkBehaviour.cs clean 2022-11-03 15:57:16 +01:00
vis2k
a62452c826 TODO 2022-11-03 15:54:44 +01:00
vis2k
18cc7a0558 Pool moved to Tools 2022-11-03 15:52:39 +01:00
vis2k
a8241e5794 Mathd moved to Tools 2022-11-03 15:52:32 +01:00
vis2k
32561576ec Tools folder to distinguish between Unity integration and standalone algorithms 2022-11-03 15:50:28 +01:00
vis2k
395c447b02 feature: manual DeltaCompression to prepare for NetworkTransform V3 2022-11-01 17:34:41 +01:00
vis2k
9e352f5be2 Compression: ScaleToLong/Float Vector3Long variants to prepare for NetworkTransform V3 2022-11-01 17:34:10 +01:00
vis2k
701c16a307 feature: Vector3Long to prepare for NetworkTransform V3 2022-11-01 17:33:44 +01:00
MikiBordils
fb95c411ef
fix: NetworkDiscovery BroadcastAddress exposed for iOS support (#3255)
* exposing BroadCasting Address 

iOS build prevents broadcasting to 0.0.0.0, so we needed to expose it to change it for our built

* Update NetworkDiscoveryBase.cs

Co-authored-by: mischa <16416509+vis2k@users.noreply.github.com>
2022-10-31 22:12:45 +01:00
vis2k
33e0bea844 CCU test demo: only sync on change 2022-10-31 10:46:34 +01:00
mischa
a2756af514
feature: RemoteStatistics tool (#3254) 2022-10-31 10:43:10 +01:00
vis2k
d26d12fb55 feature: CCU test demo 2022-10-31 09:23:26 +01:00
vis2k
68ab1816bb breaking: NetworkManager.serverTickRate renamed to sendRate because that's what it is 2022-10-31 09:15:19 +01:00
vis2k
723da0cecc fix: NetworkClient now only tries to broadcast every sendInterval. otherwise ClientToServer NetworkTransform components (which have syncInterval=0) would sync every single tick. prepare for NT V3 as well. 2022-10-30 18:54:50 +01:00
vis2k
3d3a542ddd comment 2022-10-30 18:53:57 +01:00
vis2k
b0f0c38592 script icons 2022-10-30 12:05:00 +01:00
vis2k
8039bcbda5 syntax 2022-10-27 19:17:42 +02:00
vis2k
c0ac491993 NetworkTransform: reorder code 2022-10-27 19:15:22 +02:00
vis2k
e473d154d9 fix: NetworkRigidbody now uses double time to keep precision over multiple days 2022-10-26 12:28:06 +02:00
vis2k
5abc261320 fix: NetworkLerpRigidbody now uses double time to keep precision over multiple days 2022-10-26 12:27:57 +02:00
vis2k
25d0e7929a fix: NetworkTransform now always sends at the same sendInterval as time interpolation. as configured in NetworkManager. 2022-10-26 12:17:49 +02:00
vis2k
8d3d623fac fix: NetworkManager now always applies the exposed NetworkServer.send/tickRate. fixes a bug where some NetworkBehaviours may try to send with NetworkServer.tickRate, which wouldn't be available on client because NetworkManager.StartServer was never called, so the rate was never set. 2022-10-26 11:28:40 +02:00
vis2k
485b65f18d perf: NetworkBehaviour.IsDirty: check bits before time 2022-10-25 19:05:10 +02:00
mischa
d05feed59e breaking: NetworkTransform.clientAuthority flag obsoleted. use SyncDirection instead. automatically sets syncDirection if still used. (#3250) 2022-10-25 11:53:12 +02:00
mischa
ca25956347
perf: breaking: NetworkTransformChild replaced by NetworkTransform with exposed .target. no more virtual property call. and no more redundant components which do the exact same thing. (#3249) 2022-10-25 11:44:24 +02:00
vis2k
79bb48bbf5 Compression: remove unnecessary inline 2022-10-24 12:49:35 +02:00
vis2k
1176494587 fix: NetworkClient.sendRate is now coupled to NetworkServer.sendRate in order to avoid snapshot interpolation errors where server & client may be on different send rates, components use the wrong rate to send vs. interpolate, etc. 2022-10-22 10:41:57 +02:00
vis2k
464bd365fe NetworkServer: sendRate comments improved 2022-10-22 10:37:20 +02:00
vis2k
b31eeb5a4f NetworkTransform: force syncDirection to follow the old clientAuthority state to make it obvious that there is only one source of truth 2022-10-22 10:26:31 +02:00
vis2k
dfd4d0b672 NetworkTransform: explain that sendInterval is coupled with time interpolation interval; use OnValidate to force syncInterval so it's more obvious in the Inspector 2022-10-22 10:16:43 +02:00
vis2k
38d94f36b1 NetworkTransform: always show OnGUI buffers. easier to debug issues if they aren't filled. 2022-10-21 19:34:23 +02:00
vis2k
8c09b936b9 syntax 2022-10-21 19:21:55 +02:00
mischa
d46e2eaf74 feature: NetworkBehaviour.SetDirty() to trigger custom OnSerialize without having to call SetSyncVarDirtyBit(1). prepares for NetworkTransform v3. (#3248)
* perf: SetSyncVarDirtyBit inlining

* feature: NetworkBehaviour.SetDirty() to trigger custom OnSerialize without having to call SetSyncVarDirtyBit(1).
prepares for NetworkTransform v3

* imer
2022-10-21 19:02:46 +02:00
vis2k
7c1fac9085 perf: SetSyncVarDirtyBit inlining 2022-10-21 19:02:41 +02:00
mischa
1b6768a691 feature: perf: NetworkConnectionToClient snapshot interpolated .remoteTimeline to simplify NetworkTransform (#3247)
* move fields to conn

* syntax

* split into time and value

* timeline moved to conn

* OnTimeSnapshot

* old

* NetworkClient sends TimeSnapshots

* server inserts

* update time interp from server

* buffer size limit moved too

* naming

* fix tests

* non public

* readonly

* comments
2022-10-21 19:02:36 +02:00
vis2k
c07c0797ec TimeSnapshot moved into it's own file 2022-10-21 12:42:59 +02:00
mischa
e0a91eeb3a
feature: SyncDirection (V2) to easily support client auth components without extra Rpcs/Cmds. previously OnSerialize was only server-to-client direction. (#3244)
* feature: SyncDirection to easily support client auth components without extra Rpcs/Cmds. previously OnSerialize was only server-to-client direction. (#3232)

* fix and test

* add test

* remove todo

* comments

* only serialize once

* simplify dirty checks

* syntax

* remove doulbe comments
2022-10-19 23:54:54 +02:00
vis2k
a1fbc55e8a Tests: syntax for easier debugging 2022-10-19 19:51:30 +02:00
vis2k
6f4c7cb805 feature: NetworkWriter.WriteBytes(byte*) unsafe version to prepare for BitTree delta compression 2022-10-19 19:39:08 +02:00
vis2k
76313cd30c Mirror.Components.asmdef: allow unsafe to prepare for NetworkTransform V3 2022-10-19 19:39:01 +02:00
vis2k
25a45a9ce8 Revert "Utils.RoundBitsToFullBytes from DOTSNET / Mirror II to prepare for manual per-field Delta Compression for NetworkTransform V3"
This reverts commit c7e3dc32d6.
2022-10-18 09:39:49 +02:00
vis2k
9c2444475c Tests: allow unsafe 2022-10-17 19:18:01 +02:00
vis2k
c7e3dc32d6 Utils.RoundBitsToFullBytes from DOTSNET / Mirror II to prepare for manual per-field Delta Compression for NetworkTransform V3 2022-10-17 18:41:14 +02:00
vis2k
d9aa7b152e Compression.ScaleToLong/Float to prepare for next NetworkTransform float<->long compression 2022-10-17 10:04:31 +02:00
vis2k
9d487b3a86 comment 2022-10-15 22:30:24 +02:00
vis2k
743e00bd20 SendTargetRpc: improve error messages 2022-10-15 20:42:43 +02:00
vis2k
ed0b7339eb assetId is now printed as decimal instead of hex, for consistency with Unity Inspector which also shows it as decimal. 2022-10-14 11:18:33 +02:00
vis2k
270be5f452 fix: #3234 assetId setter now allows overwriting an old assetId after duplicating a prefab.
the previous assetId Guid to int commit (4430001521) changed AssignAssetId() from modifying m_assetId to assetId.set directly, which introduced this bug.
2022-10-14 11:13:42 +02:00
vis2k
8006251382 NetworkIdentity.assetId.set: update explanation, copied the wrong one from Mirror II 2022-10-14 11:00:54 +02:00
vis2k
149d907823 syntax 2022-10-13 17:38:39 +02:00
vis2k
bf55c68d96 unnecessary 2022-10-13 17:27:41 +02:00
vis2k
9120de1016 comment 2022-10-13 13:46:52 +02:00
vis2k
e647df8fa3 feature: NetworkConnection.owned objects are now available on server AND on client 2022-10-13 13:29:06 +02:00
vis2k
6bb42e9e81 breaking: NetworkConnectionToServer.clientOwnedObjects renamed to .owned (simplify API) 2022-10-13 11:03:42 +02:00
vis2k
8cb64383fc add deprecated dates 2022-10-13 11:01:19 +02:00
mischa
a20bad57e5
breaking: .hasAuthority renamed to .isOwned because it's easier to understand, and to prepare for SyncDirection where there is a difference between: (#3231)
isOwned = is this one of the client connection's .owned entities?
authority = can we modify this component's state? depends on SyncDirection AND owned
2022-10-13 10:59:39 +02:00
vis2k
90028b43ea NetworkServer.sendInterval calculated separately so it's easier to change sendRate later 2022-10-13 10:49:07 +02:00
vis2k
1433bb7993 comment 2022-10-12 21:22:16 +02:00
vis2k
2bab435832 perf: NetworkIdentity.Serialize: only iterate if any dirty bit set, otherwise don't need to iterate again 2022-10-12 21:17:10 +02:00
vis2k
4127345f8a fix: Benchmark demo Spatial Hashing radius reduced from 200 to 30 so the monsters actually despawn when walking out of range in the demo 2022-10-12 21:14:55 +02:00
vis2k
e6886e8a84 fix: ensure Serialize writes nothing at all if not dirty and add test so it's never missed again(!).
fixes unchanged objects sending an unnecessary 1 byte dirty mask after recent dirtybits improvement.
2022-10-12 21:06:03 +02:00
vis2k
8ec99fa153 NetworkIdentity: ValidateComponents for use from initialize, serialize, deserialize all together 2022-10-12 12:33:25 +02:00
vis2k
227940e054 comment 2022-10-12 11:13:58 +02:00
vis2k
9dd04e2efa fix: NetworkIdentity.MaxNetworkBehaviours and EnsureMax function so we have the same code in both places, where previously Serialize() still checked for 255 instead of 64 2022-10-12 11:08:12 +02:00
mischa
c179d233a1
fix: Unity 2019, 2020 support added again (#3230)
* fix: Examples/AdditiveLevels/Prefabs/Portal doesn't depend on TextMeshPro anymore (for 2019 compatibility)

* packages: removed unnecessary TextMeshPro (causes errors in Unity 2019)

* fix: NetworkReader byte[] constructor added again for 2019 support

* fix: NetworkReader byte[] SetBuffer added again for 2019 support

* fix: NetworkClient OnTimeSnapshotMessage: NetworkTime.localTime for 2019 support

* fix: NetworkServer NetworkLateUpdate: NetworkTime.localTime for 2019 support

* fix: Read/WriteGuid support for 2019

* fix: NetworkTransformBase: NetworkTime.localTime for 2019 support

* fix: Grid2D new hashSet constructor without capacity for 2019 support

* 2019

* this
2022-10-10 23:32:13 +08:00
vis2k
e7110d3015 TODO 2022-10-10 14:52:19 +02:00
vis2k
5efcd8f113 inlining 2022-10-10 10:56:16 +02:00
vis2k
2310c248c1 NetworkBehaviour.IsDirty: shorter 2022-10-10 10:56:05 +02:00
vis2k
76ea4369ba NetworkClient: common Initialize() method for all connect functions 2022-10-10 10:37:37 +02:00
vis2k
fe6147dd4d fix: NetworkClient ConnectHost now initializes time interpolation as well 2022-10-10 10:34:08 +02:00
mischa
88e4260252
perf: NetworkBehaviour.Serialize safety check reduced from 4 bytes length header to 1 byte length hash, while keeping error correction (#3229)
* wip

* self correction

* separate function

* test
2022-10-10 15:51:15 +08:00
mischa
b5ac61c7b2
perf: NetworkIdentity.Serialize bandwidth reduced from 1 byte per component index to (roughly) 1 bit per component (#3228)
* serialize with varint masks

* deserialize

* test

* fixfix

* redundant

* unused

* comment

* faster

* old

* comment

* comment
2022-10-10 15:50:28 +08:00
vis2k
01cd1041f6 update comment 2022-10-09 22:34:57 +02:00
vis2k
2a3e681e03 comment 2022-10-09 16:47:12 +02:00
vis2k
58a89a5d24 Tests: split VarInt and VarUInt tests 2022-10-09 15:25:52 +02:00
vis2k
16d5a7e6ed naming 2022-10-09 15:12:01 +02:00
vis2k
822ecdaaba syntax 2022-10-09 15:11:23 +02:00
vis2k
d2775e5d42 NetworkIdentity.DeserializeAll renamed to Deserialize, now that the other Deserialize method was moved to NetworkBehaviour 2022-10-09 14:03:36 +02:00
vis2k
482d5777d9 NetworkIdentity.SerializeAll renamed to Serialize, now that the other Serialize method was moved to NetworkBehaviour 2022-10-09 14:03:11 +02:00
vis2k
389726b011 NetworkIdentity.Deserialize(NetworkBehaviour) moved to NetworkBehaviour.Deserialize 2022-10-09 13:57:43 +02:00
vis2k
882b3a69b3 NetworkIdentity.Serialize(NetworkBehaviour) moved to NetworkBehaviour.Serialize 2022-10-09 13:56:46 +02:00
vis2k
10296e0586 syntax 2022-10-09 13:51:01 +02:00
vis2k
10e34488e2 NetworkIdentity: OnDeserializeAllSafely renamed to DeserializeAll 2022-10-09 13:45:56 +02:00
vis2k
41f60a5486 NetworkIdentity: OnSerializeAllSafely renamed to SerializeAll 2022-10-09 13:45:08 +02:00
vis2k
b292aebd08 NetworkIdentity: OnDeserializeSafely renamed to Deserialize 2022-10-09 13:42:22 +02:00
vis2k
deeddac185 NetworkIdentity: OnSerializeSafely renamed to Serialize 2022-10-09 13:42:02 +02:00
vis2k
22b3c71a6c comment 2022-10-09 13:38:24 +02:00
vis2k
0745e44c5c syntax 2022-10-09 13:20:57 +02:00
vis2k
3b78b87ee9 perf: all client NetworkTransforms now run on the same NetorkClient.timeline instead of each component computing its own 2022-10-09 10:45:27 +02:00
vis2k
47d5ecd776 fix: LatencySimulation now flushes properly. fixes barely any packets getting through even on 0 settings 2022-10-09 10:31:48 +02:00
vis2k
a6d055db51 syntax 2022-10-09 10:09:44 +02:00
vis2k
666d1d7df2 fix: LatencySimulation now uses Time.unscaledTimeAsDouble for long running server precision 2022-10-09 10:08:47 +02:00
vis2k
5a2962c27b syntax 2022-10-09 10:06:37 +02:00
vis2k
f1f7b37288 NetworkManager: always show OnGUI because snapshot interpolation gui is useful in builds / for debugging as well 2022-10-09 10:04:38 +02:00
vis2k
b9bf63790f breaking: perf: fix: NetworkTime from NetworkClient snapshot interpolation timeline.
-> fixes initial delayed NetworkTime jump after 1-2s from 1.. to 500... depending on how long server was running.
-> improves accuracy / precision of NetworkTime
-> prepares for NetworkTransform & NetworkTime being on the same timeline instead of each component calculating their own timeline separately
2022-10-09 08:40:01 +02:00
vis2k
7298de3929 feature: global NetworkClient snapshot interpolation timeline.
=> for usage as significantly better NetworkTime after
=> for usage in NetworkTransform after
2022-10-09 08:36:17 +02:00
vis2k
f5d1a55fdd fix tests after recent commit 2022-10-08 08:58:09 +02:00
vis2k
1ebb4368dd perf: NetworkServer: Broadcast() now only runs every tickInterval, even if Application.targetFrameRate isn't set in host mode.
previously a host may run at 120 Hz, and even with tickInterval set to 10 Hz, Broadcast() would run 120 times per second, checking every component's dirty bits + send interval.

note that the actual _send rate_ wasn't broken.
this change simply reduces the need to check for "has send rate elapsed?"

=> prepares for NetworkClient time snapshot interpolation, where time snapshots need to be sent only every sendInterval.
=> if host mode would send every update, this would be way too much.
2022-10-07 21:44:02 +02:00
vis2k
0f8553ff2f feature: AccurateInterval from Mirror II to prepare for proper RemoteStatistics measurements & snapshot time interpolation, which requires accurate send interval even if .targetFrameRate can't be set (i.e. in host) 2022-10-07 21:20:38 +02:00
vis2k
9870705141 Header 2022-10-06 13:53:11 +02:00
vis2k
c940963779 breaking: NetworkServer.tickRate and .tickInterval, set from exposed NetworkManager.serverTickInterval.
prepares for NetworkClient time interpolation
2022-10-06 13:50:48 +02:00
vis2k
d72c769882 NetworkRoomManager: remove redundant maxConnections validation 2022-10-03 09:28:15 +02:00
vis2k
26144edc22 syntax 2022-10-03 09:27:49 +02:00
vis2k
b4149f2b94 syntax 2022-10-03 09:06:05 +02:00
vis2k
4fbbc0cbc1 NetworkManager: SetupClient() for consistency with SetupServer() 2022-10-03 08:51:50 +02:00
vis2k
d4b1239dc4 syntax 2022-09-28 11:57:02 +07:00
vis2k
7a7b5a0072 syntax 2022-09-28 11:50:54 +07:00
vis2k
02336b41b5 syntax 2022-09-28 11:34:18 +07:00
vis2k
b56b12ff54 partial classes 2022-09-28 11:33:52 +07:00
vis2k
7123a7925c feature: Snapshot Interpolation split into time + value interpolation (backported from Mirror II) to allow for global time interpolation with local value interpolation, instead of interpolating everything locally per-component 2022-09-27 13:40:57 +07:00
vis2k
34acc450bd syntax 2022-09-27 12:19:15 +07:00
vis2k
fcc6c31c7a breaking: NTSnapshot renamed to TransformSnapshot 2022-09-27 12:19:08 +07:00
vis2k
6988853ee2 comment 2022-09-27 11:55:51 +07:00
vis2k
136b8d9956 feature: NetworkWriter implicit ArraySegment conversion for convenience.
also allows for implicit NetworkWriter to NetworkReader conversion.
2022-09-27 11:53:04 +07:00
vis2k
a84bf0769e syntax 2022-09-27 11:49:59 +07:00
vis2k
2037b317c1 NetworkWriter.WriteBytes: rename parameter to avoid name collision 2022-09-25 13:56:30 +07:00
vis2k
618b7a6e16 NetworkWriterExtensions: removed static state by moving .encoding into each writer 2022-09-25 13:53:12 +07:00
vis2k
ab9a92388c Tests: ReadString_InvalidUTF8 2022-09-25 13:53:12 +07:00
vis2k
2ce8ee72a8 NetworkReaderExtensions: removed static state by moving .encoding into each reader 2022-09-25 13:53:12 +07:00
vis2k
e97da2605c feature: NetworkWriter.ToString in form of "[DD-CC-BB-AA-FF @ 5/1000]" 2022-09-25 13:26:58 +07:00
vis2k
61318d4c82 NetworkWriter.DefaultCapacity exposed 2022-09-25 13:26:53 +07:00
vis2k
3b8810f532 feature: NetworkWriter.Capacity 2022-09-25 13:24:08 +07:00
vis2k
606f147872 comment 2022-09-25 13:20:59 +07:00
vis2k
3664f26d65 Read<T>: error message improved 2022-09-25 13:19:44 +07:00
vis2k
df875a4bc1 syntax 2022-09-25 13:18:38 +07:00
vis2k
6fa5a65cd3 NetworkReader.ToString improved to be more readable: "[B2-C3-D4 @ 0/3]" 2022-09-25 13:18:04 +07:00
vis2k
27398721a2 Extensions: ArraySegment.ToHexString for convenience 2022-09-25 13:17:02 +07:00
vis2k
9525a4649d NetworkReader.ReadBytesSegment: ensure count >= 0 & guarantee exception with test. 2022-09-25 13:09:54 +07:00
vis2k
44e56ae753 NetworkReader.ReadBytes: ensure count >= 0 & guarantee exception with test.
previously it did throw the same exception unintentionally in the Array.Copy call
2022-09-25 13:08:45 +07:00
vis2k
c64925f9f6 Tests cleanup 2022-09-25 13:04:06 +07:00
vis2k
78fb0b57ae NetworkReader.ReadBytesSegment: use .Remaining 2022-09-25 13:00:57 +07:00
vis2k
98be66ec13 NetworkReader.ReadBytes: use .Remaining 2022-09-25 13:00:38 +07:00
vis2k
6e042ed2a8 NetworkReader.ReadBlittable: use .Remaining 2022-09-25 13:00:13 +07:00
vis2k
81e666af9e NetworkReader: remove SetBuffer byte[] variant. implicit ArraySegment conversion is enough. 2022-09-25 12:48:09 +07:00
vis2k
0ffa971413 NetworkReader: remove byte[] constructor, implicit ArraySegment constructor is enough 2022-09-25 12:46:47 +07:00
vis2k
c9642dbbb2 NetworkReader.ReadArray: use .Remaining 2022-09-25 12:44:06 +07:00
vis2k
451cd26b47 syntax 2022-09-25 12:43:19 +07:00
vis2k
5fa5269a11 NetworkReader: more readable syntax 2022-09-25 12:43:12 +07:00
vis2k
d3ee9e325e NetworkReader.Length renamed for Capacity (more obvious, similar to List.Capacity) 2022-09-25 12:43:03 +07:00
vis2k
ee6bbaa8ba NetworkReader.Remaining uses buffer.Count directly 2022-09-25 12:40:12 +07:00
vis2k
e3c4bf5eba syntax 2022-09-25 12:38:08 +07:00
vis2k
cf0b884c1f MessagePacking renamed to NetworkMessages (it contains more network message code than just packing) 2022-09-25 12:21:38 +07:00
vis2k
8249508fa7 MessagePacking.Unpack renamed to PackId for consistency 2022-09-25 12:10:29 +07:00
vis2k
1baadc1dbe syntax & comments 2022-09-25 12:08:13 +07:00
vis2k
458eeca0e8 syntax 2022-09-25 12:07:14 +07:00
vis2k
92a766af36 update comment 2022-09-25 12:06:16 +07:00
vis2k
4d5bf360ec MessagePacking.GetId: remove unnecessary AND 2022-09-25 12:05:28 +07:00
vis2k
16c572cfc4 syntax 2022-09-25 12:05:17 +07:00
vis2k
13e6c77bad MessagePacking.HeaderSize renamed to IdSize 2022-09-25 12:03:49 +07:00
vis2k
c97bf5a06a syntax 2022-09-25 12:00:03 +07:00
vis2k
f24acb6372 Transport.activeTransport renamed to .active 2022-09-25 12:00:03 +07:00
vis2k
94345c94bf Tests: Mathd 2022-09-25 11:50:56 +07:00
vis2k
dea63ba59e syntax 2022-09-25 11:49:35 +07:00
vis2k
827a6d310c syntax 2022-09-25 11:49:11 +07:00
vis2k
4ea52a0283 fix: InterestManagement.Awake is now protected virtual (#3214) 2022-09-24 22:13:46 +07:00
vis2k
6ba926bcb1 NetworkManager: serverTickInterval for convenience (prepares for remote statistics) 2022-09-24 22:08:20 +07:00
vis2k
80abe21047 NetworkManager: auto connect client build option for CCU test bots 2022-09-24 22:08:03 +07:00
vis2k
4d5e55511c Utils.KeepInScreen 2022-09-24 22:02:35 +07:00
vis2k
4dd3c6df8c Utils.PrettySeconds 2022-09-24 22:02:30 +07:00
vis2k
72f65a1b66 rename folder 2022-09-24 21:58:23 +07:00
vis2k
c49cc5f422 Examples/_Common folder 2022-09-24 18:17:39 +07:00
vis2k
4430001521 breaking: perf: assetId as uint instead of Guid. saves 12 bytes and much conversion magic (as suggested by james). may need to resave prefabs once in case of spawn issues. 2022-09-24 18:08:12 +07:00
vis2k
9c5e10f71b breaking: NetworkBehaviour.SerializeSyncVars return type changed from bool to void to simplify weaver (and reduce branches) 2022-09-24 17:30:20 +07:00
vis2k
7c7f83362b breaking: perf: NetworkIdentity/NetworkBehaviour OnSerialize return type changed from bool to void to a-void confusion (and branches) 2022-09-23 14:21:48 +07:00
vis2k
92ff55120a weaver comments 2022-09-23 14:21:31 +07:00
vis2k
29fef498eb Weaver NetworkBehaviourProcessor: add explanation 2022-09-23 14:19:25 +07:00
vis2k
e63742523c fix broken tests caused by default transport adding. also fixes tests using kcp unintentionally. 2022-09-23 13:55:54 +07:00
vis2k
99851945e9 NetworkManager.transport field made public so it can be set from tests 2022-09-23 13:55:17 +07:00
vis2k
b82bb86fc7 remove unused import 2022-09-23 13:39:12 +07:00
vis2k
6941df570c NetworkAnimator: remove unnecessary XML comments 2022-09-23 13:37:13 +07:00