Commit Graph

2925 Commits

Author SHA1 Message Date
vis2k
efac1e2f5f syntax 2021-02-18 14:39:27 +08:00
vis2k
af78b2c139 syntax 2021-02-18 14:38:42 +08:00
vis2k
6954ea478f syntax 2021-02-18 14:37:42 +08:00
vis2k
4b4dd310b6 syntax 2021-02-18 14:34:45 +08:00
vis2k
af3c5b5e8b ULocalConnection renamed to LocalConnection 2021-02-18 14:32:15 +08:00
vis2k
44bfe7ab11 syntax 2021-02-18 14:29:49 +08:00
vis2k
6374c4b88b NetworkIdentity: NetworkBehaviours[] caching simplified 2021-02-18 14:28:28 +08:00
vis2k
b4fa4f2d1c syntax 2021-02-18 14:26:22 +08:00
vis2k
dcd3005674 add comment 2021-02-18 14:26:09 +08:00
vis2k
239bc660fd feat: NetworkIdentity.isServer/ClientOnly added. NetworkBehaviour.isServer/ClientOnly uses it. 2021-02-18 14:24:43 +08:00
vis2k
4bef7fc635 MessagePacker renamed to MessagePacking 2021-02-18 14:19:29 +08:00
vis2k
f00aa2f8d8 syntax 2021-02-18 14:17:29 +08:00
vis2k
d7adbf6f1e syntax 2021-02-18 14:06:16 +08:00
vis2k
2ab0154333 syntax 2021-02-18 14:05:50 +08:00
vis2k
fd29828512 syntax 2021-02-18 14:05:19 +08:00
vis2k
cc68c854e7 TelepathyTransport moved into Telepathy folder for consistency with the other transports 2021-02-18 14:03:23 +08:00
vis2k
08a89e83bd CecilX license updated: show 'x' source 2021-02-18 13:59:27 +08:00
vis2k
dade531dfe ChatExample: remove unused code 2021-02-18 13:58:53 +08:00
vis2k
68d38832ed NetworkScenePostProcess: use LogWarning instead of LogWarningFormat 2021-02-18 13:57:47 +08:00
vis2k
4624f34b0e syntax 2021-02-18 13:56:33 +08:00
vis2k
d8187d4b7d syntax 2021-02-18 13:56:33 +08:00
vis2k
d83ce37760 remove //namespace comments 2021-02-18 13:56:33 +08:00
vis2k
5fd79094fc fix: changing any NetworkIdentity settings in the Inspector at runtime (like forceHidden) would call OnValidate, cleared the assetId because the prefab conection isn't known at runtime. As result, the NetworkIdentity couldn't be spawned on other clients anymore because assetId is empty. 2021-02-18 13:43:00 +08:00
vis2k
dd29d99be2 Revert "fix: SetupIDs() now detects if Editor is running. fixes a bug where changing any NetworkIdentity setting at runtime would clear the NetworkIdentity.assetId, causing respawn bugs where client would receive an empty assetId (forceHidden -> not forceHidden)."
=> this broke two of the runtime tests previously
2021-02-18 13:43:00 +08:00
MrGadget1024
ae5875203e Removed Overrides of OnServerError / OnClientError in templates 2021-02-17 22:14:27 -05:00
vis2k
9927c827dc disable log 2021-02-18 10:43:55 +08:00
vis2k
3db423455b fix: GUIConsole now shows logs in editor too. instead of only showing the empty console. 2021-02-18 10:43:55 +08:00
vis2k
2631982cb3
feature: perf: Global Interest Management. NetworkVisibility components per-NetworkIdentity obsoleted and replaced by one global InterestManagement component on NetworkManager instead. Significantly easier to understand, allows for spatial hashing (~30x faster) and reduces amount of components in the worlds (for 1k objects, we avoid 1k NetworkVisibility components now). (#2581)
* feature: perf: Global Interest Management. NetworkVisibility components per-NetworkIdentity obsoleted and replaced by one global InterestManagement component on NetworkManager instead. Significantly easier to understand, allows for spatial hashing (~30x faster) and reduces amount of components in the worlds (for 1k objects, we avoid 1k NetworkVisibility components now).

* Benchmark scene uses new Spatial Hashing

* improve message

* Update Assets/Mirror/Components/InterestManagement/SpatialHashing/Grid2D.cs

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>

* NetworkIdentity.forceHidden changed to enum to prepare for forceShown

* NetworkIdentity.Visibility: added ForceShown option

Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
2021-02-18 10:16:10 +08:00
vis2k
650231025f Interest Management: NetworkConnection.visList renamed to observing 2021-02-16 20:38:52 +08:00
vis2k
bd4fa37cd5 use M icon in all runtime scripts 2021-02-16 20:33:17 +08:00
vis2k
798984e4de breaking: [Command(ingoreAuthority=false)] double negative changed to [Command(requiresAuthority=true)] 2021-02-16 20:32:05 +08:00
vis2k
c4899a92ca remove comments 2021-02-16 20:29:57 +08:00
vis2k
9cf5984ce9 breaking: [ClientRpc(excludeOwner=false)] double negative changed to [ClientRpc(includeOwner=true)] 2021-02-16 20:26:49 +08:00
vis2k
60b112079c Welcome Message updated 2021-02-16 20:23:58 +08:00
vis2k
64eba8204f CustomAttributes.cs renamed to Attributes.cs 2021-02-16 20:23:12 +08:00
vis2k
020f79a8d2 Weaver: worker.Append(worker.Create(Opcode)) replaced with worker.Emit(Opcode) 2021-02-16 20:17:44 +08:00
vis2k
7ba6a9ab0b Weaver Log simplified 2021-02-16 20:16:42 +08:00
vis2k
34a1722c76 Weaver Extensions: remove comments 2021-02-16 20:16:37 +08:00
vis2k
1b5ff01c8c Weaver Extensions: syntax 2021-02-16 20:16:34 +08:00
vis2k
2ac0b3692c Weaver Extensions: remove comment 2021-02-16 20:16:31 +08:00
vis2k
a8eb104273 Weaver CompilationFinishedHook: syntax 2021-02-16 20:16:25 +08:00
vis2k
bb8de742ae Weaver CompilationFinishedHook: syntax 2021-02-16 20:16:22 +08:00
vis2k
7abbd2411e Weaver CompilationFinishedHook: remove unused fields 2021-02-16 20:16:06 +08:00
vis2k
cfc648d722 Weaver Extensions: use Linq 2021-02-16 20:11:18 +08:00
vis2k
9121a65cc8 Weaver Extensions ImplementsInterface: use Linq 2021-02-16 20:11:13 +08:00
vis2k
7bd86cef5f syntax 2021-02-16 20:10:31 +08:00
vis2k
9438b90c0d syntax 2021-02-16 20:09:36 +08:00
vis2k
078e3c228d feat: GUIConsole from uMMORPG add component to scene, press F12 to see log console in builds 2021-02-16 20:07:40 +08:00
vis2k
0185539905 WeaverTypes: remove unused 2021-02-16 20:06:32 +08:00
vis2k
7e509eae4a Weaver.ReadAllFields: remove unused field 2021-02-16 20:05:53 +08:00
vis2k
bd34f100fc syntax: remove unnecessary 'private' 2021-02-16 20:04:19 +08:00
vis2k
d75eeb346c NetworkMessage moved into NetworkMessage.cs 2021-02-16 20:01:22 +08:00
vis2k
deaf73cc2a remove unused imports 2021-02-16 19:59:55 +08:00
vis2k
3296de741f DotNetCompatibility extension moved into Extensions.cs 2021-02-16 17:48:28 +08:00
vis2k
080924193d remove unused Weaver Helpers.DestinationFileFor 2021-02-16 17:46:59 +08:00
vis2k
daf324310d remove unused ScriptableObjectUtility 2021-02-16 17:46:23 +08:00
vis2k
ffebaa9cc6 StringHash extensions renamed to Extensions 2021-02-16 17:40:26 +08:00
vis2k
092ce8b214 breaking: removed LogFactory 2021-02-16 17:34:57 +08:00
vis2k
4be31cac9d fix: batching reimplemented to be testable. fixes > MTU sized messages previously flushing out empty batches because the if size check is always true for > MTU sized messages, causing it to flush previous batch even if empty, causing odd empty message behaviour on server and client.
(added tests too)
2021-02-14 19:29:13 +08:00
vis2k
66b64f010f fix: kcp2k V1.8: fixes empty message sending/receiving undefined behaviour and fixes IPv6 errors on Nintendo Switch 2021-02-14 17:46:34 +08:00
Robin Rolf
4cc9f2ea6a
Add scripting define for telepathy api change (#2573) 2021-02-13 13:20:05 -05:00
MrGadget1024
d26b09d544 Fixed Typo 2021-02-13 13:12:01 -05:00
vis2k
631fdb80d1 breaking: remove unused ErrorMessage & handlers 2021-02-14 00:43:42 +08:00
vis2k
4c12c59f78 breaking: remove NetworkConnection.InvokeHandler now that it's not needed anymore 2021-02-14 00:43:39 +08:00
vis2k
be42976a26 fix: NetworkServer/Client don't use Connect/DisconnectMessage anymore. fixes a bug where external connects could try sending that message causing undefined behaviour (#2577) 2021-02-14 00:39:23 +08:00
vis2k
5aed823cc7 fix: SetupIDs() now detects if Editor is running. fixes a bug where changing any NetworkIdentity setting at runtime would clear the NetworkIdentity.assetId, causing respawn bugs where client would receive an empty assetId (forceHidden -> not forceHidden). 2021-02-12 01:04:06 +08:00
JesusLuvsYooh
60574dd1ab
Wrong /n should be \n (#2572) 2021-02-10 21:04:43 +08:00
vis2k
3394f755b9
fix: Telepathy V1.6. fixes data races & improves stability (#2571)
* fix: perf: Telepathy V2.0
+ fixed data races
+ no more allocations
+ improved server stability under heavy load(!)
+ added lots of tests & fixed flaky tests

* fix: perf: Telepathy V2.0 (Concurrent Pipe Version)

* fix: Telepathy V1.3 (FOR CCU TEST. DONT MERGE, NEEDS ENABLED SCENE CHANGE CHECK)

* fix: Telepathy V1.4 (FOR CCU TEST. DONT MERGE, NEEDS ENABLED SCENE CHANGE CHECK)

* fix: Telepathy V1.5. fixes data races.

* fix: Telepathy V1.6 (fixes data races and more)
2021-02-10 19:36:39 +08:00
vis2k
e98a12b499
NetworkManager.MaxConnections default increased from 4 to 100 (#2569) 2021-02-08 10:11:16 +08:00
MrGadget
0675518762
fixed a bunch of typos (#2566)
Co-authored-by: MrGadget1024 <chris@clevertech.net>
2021-02-06 17:52:24 -05:00
MrGadget1024
7d6566c3aa fixed typo in comment 2021-02-06 14:29:47 -05:00
James Frowen
638f761469
fix: making exception for OnDeserializeSafely more clear (#2562) 2021-02-07 00:48:13 +08:00
vis2k
638796a0ad syntax 2021-02-06 14:11:29 +08:00
MrGadget
d743f79136
feat: Add ScriptTemplates to repo and package (#2559)
Co-authored-by: MrGadget1024 <chris@clevertech.net>
2021-02-05 09:34:22 +08:00
vis2k
1ff4fe30b7
perf: Batching (#2552)
* perf: Batching. Batches message into Transport.GetMaxPacketSize sized chunks and sends them every batchInterval

* don't log time

* Transport.GetMaxBatchSize and kcp override it to always use MTU

* remove comment

* NetworkConnectionToClient tests

* Test: Send_BatchesUntilUpdate

* Test: Send_BatchesUntilInterval

* fix: initialize last send time with NetworkTime.time

* better comment

* fixing reset after sending batch

Need to reset both position and length

* revert the transportreceive change for localconnections.
before it didn't work because of the length bug that is fixed now.

* added test to avoid length bug in the future

* optional

* enable batching in benchmark demo for max scale

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2021-02-03 22:47:06 +08:00
James Frowen
d870351afb
fix(SimpleWebTransport): removing unimportant error
ReadHelperException can be throw when connection disconnects, this is normal and should not be sent to mirror as an error.
2021-01-27 21:31:37 +00:00
vis2k
4d3eff0b7f NetworkConnection.TransportReceive split into two functions 2021-01-26 12:15:44 +08:00
vis2k
24ec357a46 add comment 2021-01-26 11:46:43 +08:00
James Frowen
2396da8202
tests: updating HostSetup.cs
adding methods to spawn a pair of objects for server/client tests
2021-01-25 22:27:43 +00:00
James Frowen
3fcc7415b4
Update HostSetup.cs
adding virtual methods for test setup
2021-01-25 16:04:51 +00:00
vis2k
7bcf957c23 syntax 2021-01-25 23:21:41 +08:00
MrGadget1024
fdeb2b05bd Added comments to NetworkManager::OnValidate 2021-01-23 14:34:01 -05:00
MrGadget1024
b7b1fa2146 style: Simplified NetworkManager::RegisterClientMessages
- Approved per Discord discussion
2021-01-22 10:18:46 -05:00
vis2k
12ee96f5d9 fix: NetworkServer.OnConnected allows for connectionIds < 0 now. some transports like kcp use hashing where connectionIds can easily be < 0, which previously was not allowed. 2021-01-21 11:07:44 +08:00
MrGadget
fb874169f7
feat: Added NetworkOwnerChecker Component (#2388)
* Added NetworkOwnerChecker component

* Simplified OnRebuildObservers

Co-authored-by: MrGadget1024 <chris@clevertech.net>
2021-01-18 09:59:27 +08:00
MrGadget1024
872556543c fix: NetworkManager: changed print to logger.Log 2021-01-17 15:37:20 -05:00
MrGadget1024
b80436cc41 style: NetworkBehaviour: Moved OnStopClient below OnStartClient 2021-01-17 15:06:29 -05:00
MrGadget1024
e5eb29a6fc fix: KcpTransport - commented out defines again 2021-01-17 13:17:02 -05:00
vis2k
92f8ad3c5c kcp2k V1.7 version file added too 2021-01-17 20:32:04 +08:00
MrGadget1024
9bcd1a1be4 fix: Corrected NetworkRoomPlayer virtual method param name 2021-01-16 13:26:47 -05:00
Paul Pacheco
7e3b7b9e11
perf: synchronize network time over unreliable (#2543) 2021-01-14 23:37:25 +08:00
vis2k
1cdbcd64ba kcp2k V1.7
- fix: unreliable messages reset timeout now too
- perf: KcpConnection OnCheckEnabled callback changed to a simple 'paused' boolean.
  This is faster than invoking a Func<bool> every time and allows us to fix #8 more
  easily later by calling .Pause/.Unpause from OnEnable/OnDisable in MirrorTransport.
- fix #8: Unpause now resets timeout to fix a bug where Mirror would pause kcp,
  change the scene which took >10s, then unpause and kcp would detect the lack of
  any messages for >10s as timeout. Added test to make sure it never happens again.
- MirrorTransport: statistics logging for headless servers
- Mirror Transport: Send/Receive window size increased once more from 2048 to 4096.
2021-01-13 20:17:22 +08:00
James Frowen
365db8b55e
adding comment to CompressQuaternion 2021-01-12 18:18:31 +00:00
vis2k
ae48cf5c80 perf: kcp2k V1.6 - unreliable channel & improvements 2021-01-10 19:28:50 +08:00
MrGadget1024
8f4856c715 fix: fixed Chat example scene for 2018.4 2021-01-09 20:00:13 -05:00
MrGadget1024
e52dfeb07a Applied Mirror Icon to MiddlewareTransport 2021-01-07 12:12:21 -05:00
vis2k
b85dea57df fix: kcp2k updated to V1.5. bigger send/recv window size defaults because Mirror sends a lot of data. fixes a bug where some projects would encounter ever growing latencies because kcp didn't process/send data fast enough, causing slowly growing send/recv buffers. also shows MaxSend/RecvRate in debug gui now. 2021-01-08 00:00:10 +08:00
MrGadget1024
f10f6f913a doc: Updated ReadMe 2021-01-07 09:34:33 -05:00
MrGadget1024
ca94fca82f fixed NetworkIdentityTest
- removed unused var
2021-01-07 09:22:24 -05:00
MrGadget1024
b85557b8ea Fixed NetworkWriterTest
- Removed unnecessary using
- Removed unused vars
- made netId a uint
2021-01-07 09:20:02 -05:00