Commit Graph

7825 Commits

Author SHA1 Message Date
mischa
09ff2b540e STOPWATCH 2023-08-05 00:59:07 +08:00
mischa
580d5eb8a4 fix index [credit: James] 2023-08-05 00:58:59 +08:00
mischa
a7c88f0713 SwapRemove test coverage 2023-08-05 00:57:14 +08:00
mischa
0b484d0830 NetworkServer.dirtyObjects; NetworkBehaviour.SetDirty -> NetworkIdentity.OnBecameDirty 2023-08-05 00:57:14 +08:00
mischa
9d291a9d89 push->pull broadcasting 2023-08-05 00:57:14 +08:00
mischa
cd390bfce1 VarInt: tests now cover accidentally duplicating bytes 2023-08-04 19:47:12 +08:00
mischa
17a60915dd
Update README.md 2023-08-04 11:43:56 +02:00
mischa
9d0e90f484
perf: remove O(N) ClearDirtyComponentsDirtyBits calls in NetworkServer.Broadcast() and NetworkClient.Broadcast() (#3575)
* perf: remove O(N) ClearDirtyComponentsDirtyBits calls in NetworkServer.Broadcast() and NetworkClient.Broadcast()

* only for delta [imer]
2023-08-03 14:01:35 +02:00
mischa
594a0f5c79 Examples: added BenchmarkIdle demo to test with 80% idle objects 2023-08-03 12:34:17 +08:00
mischa
e45c8e2e37 typo 2023-08-03 12:09:40 +08:00
JesusLuvsYooh
d2c475409f
feature: NetworkTransform WorldScale option (#3565)
* NT WorldScale option DRAFT - Will test, tidy and comment tomorrow.

Currently NT is local, and in some cases world is needed.

* Updated tooltip etc

All tested, using tanks example, and dragging a player tank into empty gameobject, then this gameobjcets position/rotation/scale and hierarchy changing live during gameplay. Switching to world bool fixes any problems caused by that.

* Enum dropdown, rather than bool as requested.

* Ternary shortcuts

* tab

* adjustments

* better

* cleanup

* force disable world scale

---------

Co-authored-by: mischa <info@noobtuts.com>
2023-08-02 08:21:33 +02:00
mischa
c077b53324 NetworkClient: improve 'did not find target for sync message' warning 2023-08-01 23:19:56 +08:00
mischa
7898b559b9 fix: SimpleWebTransport conditionals removed so users can see error messages 2023-08-01 11:53:43 +08:00
mischa
e92e91dcfd kcp2k V1.37 [2023-07-31]
- fix: #47 KcpServer.Stop now clears connections so they aren't carried over to the next session
- fix: KcpPeer doesn't log 'received unreliable message while not authenticated' anymore.
2023-07-31 18:10:23 +08:00
mischa
a9cbcf696e Unity 2021.3.29 LTS for latest fixes 2023-07-31 13:55:05 +08:00
mischa
e4304bfed6
feature: HistoryBounds MVP (#3563)
* readme, folders

* HistoryBounds.Insert placeholder and test

* Insert: naive implementation

* easier

* simple benchmark

* move into lag comp

* benchmark improvements

* deterministic benchmark

* tests: revisit coverage

* syntax

* HistoryBounds data structure - wip

* Reset

* oops

* insert in structure

* historyBounds.total

* comment

* test

* comments

* tests: insertfar

* simplify insertion; only recalculate when removed

* fix comment

* recalculate every nth

* benchmark simplified

* benchmark variant

* BUCKETS

* perf: use (min, max) bounds representation internally to avoid Unity's Bounds.Encapsulate conversion overhead

* HistoryCollider component WIP

* ...

* steps

* things

* gizmo

* syntax

* unused

* child collider

* counter rotate

* warning

* detect scale changes

* syntax

* Unity 2019 support
2023-07-31 12:38:42 +08:00
JesusLuvsYooh
593226b02c
Tanks co-op example, take control of vehicles via Mirrors Authority assigning feature. (#3564) 2023-07-30 17:06:14 +08:00
mischa
281febed57
Update README.md 2023-07-27 10:28:11 +02:00
mischa
28859fb84a
fix: NetworkReader ReadBytes/Array<T>/List<T> allocation limit to prevent ClientToServer [SyncVar] allocation attacks [credit: James] (#3562)
* fix: NetworkReader.ReadArray: remove misleading 'length > reader.Remaining' check since not all arrays are byte arrays

* fix: NetworkReader AllocationLimit to prevent ClientToServer [SyncVar] allocation attacks [credit: James]

* ReadBytes: check allocation limit

* ReadList: check allocation limit

* ReadArray: check allocation limit

* ReadTexture2D: check allocation limit

* limit as count

* writer checks

* test wip

* throw

* add test

* test
2023-07-27 10:27:00 +02:00
mischa
120bdcb855 remove unused import 2023-07-27 13:39:09 +08:00
mischa
d4de45c374 comment 2023-07-27 13:32:06 +08:00
mischa
53b0258904 NetworkWriter: clean up old UIntDouble comments 2023-07-27 13:08:23 +08:00
mischa
218e81d31f
Update README.md (#3561) 2023-07-27 06:43:47 +02:00
mischa
a91f3a88c3 comments 2023-07-27 12:32:19 +08:00
mischa
7b2427ce76 more comments 2023-07-27 12:27:38 +08:00
mischa
c81ce3ec26 NetworkReader/Writer Read/WriteList: comments 2023-07-27 12:26:59 +08:00
mischa
d2b6cfdc2a NetworkWriter: syntax 2023-07-27 12:03:58 +08:00
mischa
9311ef3523
fix: NetworkConnection "cannot send packet larger than ..." message now includes the message type which was too large. (#3560) 2023-07-24 06:08:55 +02:00
mischa
871a08c266 resaved test prefabs 2023-07-22 21:59:29 +08:00
mischa
6830a6e52c fix: NetworkMessages.MaxContentSize now considers channelId instead of always assuming reliable 2023-07-22 21:59:07 +08:00
mischa
d437dacac0
Update README.md (#3559) 2023-07-21 13:05:37 +02:00
mischa
135d87724a
Update README.md (#3558) 2023-07-21 13:04:57 +02:00
mischa
71f64c70f1
feature: bring back NetworkServer.disconnectInactiveConnections (#3556) 2023-07-21 06:11:14 +02:00
mischa
adee4ad140
fix: remove redundant RPC buffering. saved bandwidth, but introduced data races, complexity, extra buffer copies [credit: James, imer] (#3497) 2023-07-20 09:10:00 +02:00
mischa
d7fbee9d50 fix: NetworkIdentity.AssignAssetId() is now saved properly. fixes a bug where duplicated prefabs and prefab variants would still have the original prefab's assetId on disk, even though the Inspector showed the proper one. 2023-07-20 14:29:40 +08:00
mischa
ac6a881f1b fix: NetworkTime RTT now checks for malicious timestamps from the future 2023-07-19 19:24:05 +08:00
mischa
e45bfb47ab Compression: remove unnecessary QuaternionElement function 2023-07-19 13:15:40 +08:00
mischa
7e28e4ea02 Compression: more obvious TenBitsMax representation 2023-07-19 12:59:51 +08:00
mischa
483006eadc
feature: NetworkConnectionToClient.rtt via Ping & Pong Messages (#3545)
* NetworkConnectionToClient: send Ping message every PingFrequency

* breaking: NetworkPing/PongMessage .clientTime renamed to .localTime because it'll be used in both directions

* Server->Client->Server Ping/Pong messages and rtt

* don't ping in host mode

* adjust tests

* TODO
2023-07-18 11:19:12 +02:00
mischa
398d2e6d2c Examples: default send rate increased from 30 Hz to 60 Hz for remaining examples 2023-07-18 16:58:05 +08:00
mischa
8164018483 perf: default send rate increased from 30 Hz to 60 Hz for users to get better initial results 2023-07-18 16:54:49 +08:00
mischa
82c09850da Tanks demo: increase send rate from 30 Hz to 120 Hz to avoid rtt being too high. reduces rtt from ~30 ms to ~8ms. 2023-07-18 16:52:22 +08:00
mischa
f6cf32ee8d Lag Compensation demo: fix warning 2023-07-18 16:10:58 +08:00
mischa
70c34ecf5d NetworkBehaviour.OnValidate: GetComponentInParent(bool) 2020 support (credits FakeByte) 2023-07-18 15:37:04 +08:00
mischa
27e2238d0b typo 2023-07-18 15:14:26 +08:00
mischa
8b6364bb76 NetworkIdentity: correct GetComponentInParent explanations (credit: FakeByte) 2023-07-18 14:49:26 +08:00
mischa
6d4e460f87 NetworkIdentity: expose AssetGuidToUint in builds 2023-07-18 14:44:17 +08:00
mischa
4ec80368f6 fix: NetworkBehaviour.OnValidate can't find parent NetworkIdentity because both the Unity define and GetComponentInParent() are broken in 2023.3 LTS. 2023-07-18 14:33:34 +08:00
mischa
0315fb3345 fix: Tanks demo: replace Turret obsolete NetworkTransform with NetworkTransformUnreliable component 2023-07-18 14:09:09 +08:00
mischa
fcd3a6b91b perf: remove some unnecessary inlining to optimize instruction cache 2023-07-18 13:24:02 +08:00