Commit Graph

32 Commits

Author SHA1 Message Date
NotAlwaysTrue f9ad542029 Merge branch 'CBT' into dev_itemrefactor 2026-04-30 22:15:38 +08:00
NotAlwaysTrue 25683dcf39 Reapply "OBT1.1.0 Merge branch 'dev_pte' into dev"
This reverts commit 046483b9da.
2026-04-30 21:59:54 +08:00
Regalis11 a4607dffad v1.12.6.2 (Spring Update 2026) 2026-04-09 15:10:07 +03:00
Eero caec44c57d Fix concurrent access issues with ConnectedClients
Replaced direct access to GameMain.Server.ConnectedClients with array snapshots in multiple server-side classes to prevent concurrent modification issues during parallel updates. Also updated PhysicsBody and LevelTrigger to avoid static/shared state in parallel contexts, improving thread safety and reliability.
2026-01-08 00:26:29 +08:00
Eero 7b8275100d Improve thread safety and performance in core systems
Refactors event, entity, and physics management to use thread-safe and lock-free data structures (Immutable collections, ConcurrentQueue, ConcurrentDictionary, Channel) for improved concurrency and performance. Replaces O(n) queue lookups with O(1) set/dictionary checks, ensures atomic updates for shared state, and optimizes queue draining and deferred action processing. Updates related code to use new APIs and patterns, and adds documentation for thread safety and workflow.
2025-12-29 16:47:10 +08:00
Eero e167a34f32 Make entity lists thread-safe with copy-on-write wrappers
Replaced static entity lists (e.g., HullList, GapList, MapEntityList, etc.) with thread-safe copy-on-write wrappers to improve concurrency and prevent race conditions. Updated usages and related methods to support the new thread-safe collections, ensuring atomic operations and lock-free reads throughout the codebase.
2025-12-28 21:59:03 +08:00
Eero f485583621 Unstable 0.2 Defer physics operations during parallel updates
Introduces a thread-safe queue for deferring physics operations (such as body creation and transforms) to the main thread, ensuring Farseer Physics is not accessed from parallel contexts. Updates Holdable, Item, MapEntity, and GameScreen to use the new PhysicsBodyQueue for safe physics operations during parallel updates, and refactors PhysicsBodyQueue to support general deferred physics actions.
2025-12-28 15:10:06 +08:00
Eero 49355fe32b Unstable Add thread-safe queue for deferred physics body creation
Introduces PhysicsBodyQueue to safely defer physics body creation to the main thread, addressing thread-safety issues with Farseer Physics during parallel updates. Updates LevelResource, TriggerComponent, BallastFloraBehavior, and MapEntity to use the queue for all physics body creation and refresh operations, ensuring they are processed outside of parallel loops. Also adds cleanup of the queue at round end.
2025-12-28 14:42:17 +08:00
Markus Isberg 598966f200 Release 1.11.4.1 (Winter Update) 2025-12-08 14:56:47 +00:00
Markus Isberg a4a3427e4e Unstable 1.8.4.0 2025-03-12 12:56:27 +00:00
Regalis11 230d1b6e78 v1.5.7.0 (Summer Update) 2024-06-18 16:50:02 +03:00
Regalis11 ff1b8951a7 v1.4.4.1 (Blood in the Water Update) 2024-04-24 18:09:05 +03:00
Markus Isberg cf8f0de659 Unstable 1.1.14.0 2023-10-02 16:43:54 +03:00
Markus Isberg 9470edead3 Build 1.1.4.0 2023-03-31 18:40:44 +03:00
Markus Isberg edaf4b09fe Build 0.20.0.0 2022-10-27 17:54:57 +03:00
Juan Pablo Arce 1219615d64 Unstable v0.19.1.0 2022-08-19 13:59:08 -03:00
Markus Isberg 497045de7e Build 0.18.13.0 2022-07-01 12:16:36 +09:00
Markus Isberg 7547a9b78a Build 0.18.0.0 2022-05-13 00:55:52 +09:00
Markus Isberg 3974067915 Unstable 0.17.0.0 2022-02-26 02:43:01 +09:00
Markus Isberg 2190fe08ef Unstable 0.16.3.0 2022-02-10 02:52:08 +09:00
Markus Isberg 7d6421a548 Unstable 0.16.0.0 2022-01-14 01:28:24 +09:00
Juan Pablo Arce 617d9ede88 Unstable v0.15.17.0 (Hex is out of town edition) 2021-12-03 13:31:10 -03:00
Markus Isberg 80f39cd2a3 Unstable 0.15.15.0 (and the one before it I forgor) 2021-11-18 21:34:30 +09:00
Joonas Rikkonen 234fb6bc06 Release v0.15.12.0 2021-10-27 18:50:57 +03:00
Markus Isberg 58c50a235d Unstable 0.1300.0.3 2021-03-25 15:40:24 +02:00
Joonas Rikkonen 24cbef485a Unstable v0.1300.0.0 (February 19th 2021) 2021-02-25 13:44:23 +02:00
Joonas Rikkonen b772654326 Unstable v0.1100.0.4 (November 11th 2020) 2020-11-06 20:12:15 +02:00
Juan Pablo Arce ebe1ce1427 Unstable v0.10.600.0 2020-10-01 12:19:24 -03:00
Joonas Rikkonen eeac247a8e (6eeea9b7c) v0.9.10.0.0 2020-06-04 16:41:07 +03:00
Joonas Rikkonen ac37a3b0e4 (f0d812055) v0.9.9.0 2020-04-23 19:19:37 +03:00
Joonas Rikkonen b647059b93 (7ee8dbc11) v0.9.8.0 2020-03-31 15:11:41 +03:00
Regalis 3c09ebe02f (61d00a474) v0.9.7.1 2020-03-04 13:04:10 +01:00