Commit Graph

23 Commits

Author SHA1 Message Date
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
bd1e624eb1 Remove unnecessary thread-safety code from entity spawning
Eliminated redundant locks and related comments in EntitySpawner and Entity classes, simplifying the spawn and remove queue handling. Also removed outdated comments in GameScreen regarding thread safety. These changes assume entity spawning and removal are no longer performed from multiple threads, improving code clarity and maintainability.
2025-12-28 17:45:51 +08:00
Eero
c5fa49405f WIP Make networking code thread-safe and refactor update ID
Replaces direct increments of LastClientListUpdateID with a thread-safe IncrementLastClientListUpdateID method and uses Interlocked for atomic operations. Refactors EntitySpawner to lock access to the spawn/remove queue for thread safety. Updates INetSerializableStruct to use concurrent collections for cached variables and type behaviors, improving thread safety in networking code.
2025-12-28 13:10:17 +08:00
Markus Isberg
598966f200 Release 1.11.4.1 (Winter Update) 2025-12-08 14:56:47 +00:00
Regalis11
ea5a2bc693 Release 1.9.7.0 - Summer Update 2025 2025-06-17 16:38:11 +03:00
Markus Isberg
a4a3427e4e Unstable 1.8.4.0 2025-03-12 12:56:27 +00:00
Markus Isberg
fb5ea537bf Unstable 1.2.4.0 2023-11-30 13:53:00 +02:00
Markus Isberg
cf8f0de659 Unstable 1.1.14.0 2023-10-02 16:43:54 +03:00
Markus Isberg
6e38444fc4 Build 0.17.14.0 2022-04-27 07:44:37 +09:00
Markus Isberg
6d410cc1b7 Unstable 0.17.1.0 2022-03-17 01:25:04 +09:00
Markus Isberg
3974067915 Unstable 0.17.0.0 2022-02-26 02:43:01 +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
Joonas Rikkonen
3a35dbfe6c Release v0.15.13.0 2021-11-02 13:19:59 +02:00
Joonas Rikkonen
234fb6bc06 Release v0.15.12.0 2021-10-27 18:50:57 +03:00
Markus Isberg
47707c824a Unstable 0.1400.7.0 (Coronavirus edition) 2021-07-23 21:01:17 +03:00
Markus Isberg
92f0264af2 Unstable 0.1400.0.0 2021-05-11 15:47:47 +03: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
Juan Pablo Arce
0002ad2c50 v0.10.5.1 2020-09-22 11:31:56 -03:00
Joonas Rikkonen
4978af3d60 (965c31410) v0.10.4.0 2020-07-30 13:00:09 +03:00
Joonas Rikkonen
ac37a3b0e4 (f0d812055) v0.9.9.0 2020-04-23 19:19:37 +03:00
Regalis
3c09ebe02f (61d00a474) v0.9.7.1 2020-03-04 13:04:10 +01:00