Commit Graph

8103 Commits

Author SHA1 Message Date
JesusLuvsYooh
796b0711f0
Update CouchPlayerManager.cs (#3592)
Moved some code from Awake to OnStartAuthority to prevent a reference from getting overridden.
Fixes Server/Host from not being able to add its own new local players, if remote players have maxed themselves out.
2023-09-07 10:07:37 +02:00
mischa
fcbf841d84 Billiards Demos: change trail debug line color and time 2023-09-07 09:26:51 +02:00
mischa
d9ef6d855c GUIConsole: don't show in Unity Editor, we already have the Console window there (but keep it as option) 2023-09-06 18:39:38 +02:00
mischa
357e798e25 fix: Unity 2019/2020 compilation failing because ConcurrentQueue<T>.Clear was missing 2023-09-05 09:21:08 +02:00
mischa
55daefab2a grammar fix 2023-09-05 09:17:10 +02:00
mischa
ae496ef0ee NetworkTransformBase: virtual SetPosition/Rotation/Scale for users to overwrite if needed 2023-09-01 15:59:10 +02:00
mischa
02db1b03d5 NetworkTransformBase: virtual GetPosition/Rotation/Scale for users to overwrite if needed 2023-09-01 15:51:18 +02:00
mischa
966c4f2bdd BilliardsPredicted: Player/ folder for PlayerPredicted prefab 2023-09-01 11:54:37 +02:00
mischa
3be960692c BilliardsPredicted: show FPS at runtime 2023-09-01 11:18:28 +02:00
mischa
9aba125566 BilliardsPredicted: fix prefab script references 2023-08-31 11:08:16 +02:00
mischa
34d3777bc3 BilliardsPredicted: script naming 2023-08-31 11:06:36 +02:00
mischa
ff56210a36
feature: Threaded Transport & Threaded KCP (#3582)
* Tools: ThreadLog for thread safe logging in Unity builds

* events

* move folder

* WorkerThread & tests

* ConcurrentPool & Tests

* ConcurrentNetworkWriterPool & Tests

* ThreadedTransport empty

* syntax

* server part

* client part

* separate queues and updates

* separate events for strong typing

* virtual awake

* fix & support uri

* threaded early/late

* threaded kcp!

* private

* simplify

* use threaded callbacks

* active flags

* enabledcopy

* fix ids

* fix onsend

* fix disco param

* fix segment copy

* fix

* comment

* deadlock prevention
2023-08-29 12:57:55 +02:00
JesusLuvsYooh
4405082d4b
Example: Couch Co-Op (#3589) 2023-08-25 14:15:49 +08:00
mischa
9a4e317874 Examples: BilliardsPredicted. copy of Billiards demo, to apply prediction features onto in the future. 2023-08-17 22:11:41 +02:00
mischa
b7fad3e672 Billiards Demo: create prefab from table in hierarchy 2023-08-16 18:36:44 +02:00
mischa
5fba72dc3c Billiards Demo: apply red changes to prefab 2023-08-16 18:36:07 +02:00
mischa
d8bb5ec15e Billiards Demo: move indicator into white ball prefab for ease of use 2023-08-16 18:33:15 +02:00
mischa
b0b6d351b9 Billiards Demo: fix materials 2023-08-16 18:30:09 +02:00
mischa
463028260f Billiards demo: update namespace 2023-08-16 18:02:09 +02:00
mischa
5fa9f4bf65 Readme: updated discord invite 2023-08-15 14:50:35 +02:00
mischa
50e6d5f890
feature: Multiplayer Billiards demo (#3583) 2023-08-13 09:54:21 +02:00
mischa
db241bb413 breaking: NetworkReader/Writer Read/WriteBytesAndSizeSegment renamed to Read/WriteArraySegmentAndSize for clarity. 2023-08-12 19:13:15 +04:00
mischa
e799b08303 syntax 2023-08-12 19:08:15 +04:00
mischa
4d7c5b6e41 Reader/Writer: sort WriteBytes(AndSize) functions 2023-08-12 19:05:20 +04:00
mischa
f05df29639 NetworkIdentity: don't need to show assetId in Inspector 2023-08-12 18:59:24 +04:00
mischa
2a29f6e686 NetworkManager: improve warning about player prefab in spawnable prefabs list 2023-08-11 22:16:13 +04:00
mischa
684a61c964 script icons 2023-08-10 18:07:37 +04:00
mischa
2e1e3bfd9c assign missing icon 2023-08-08 16:40:59 +08:00
mischa
6de9448c4a small cleanups 2023-08-08 16:34:24 +08:00
mischa
877b249add MIRROR_81_OR_NEWER 2023-08-08 16:32:59 +08:00
JesusLuvsYooh
10badbe21c
Adjusted UI scaling in new TanksCoop example. (#3579) 2023-08-06 10:15:42 +08:00
mischa
2365d301e1 SimpleWeb: minimize logging hot path allocations 2023-08-05 13:47:42 +08:00
mischa
d7757e95f2
perf: VarInt compression performance improvements (#3578)
* perf: VarInt compression performance improved by writing multiple bytes at once

* merge byte shifting

* this too
2023-08-05 07:13:16 +02: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