Developer knowledge network · moderated exchange

Сообщество UnreliableCode

Сообщество разработчиков, обратного проектирования и кодирования

Tutorial

Reading BaseNetworkable entity dictionary without hitching or FPS drops

ptr_arithmetic
C++ Wizard
MEMBER
Представитель: 162
Дата присоединения: May 2018
Сообщения: 73
Спасибо: 42
1 месяцев назад · Jul 2, 2026 10:32 AM
#1

In Rust, BaseNetworkable.clientEntities contains thousands of world objects (trees, ores, barrels, animals, players).

If you iterate all 15,000 entities every frame, your external overlay will drop to 20 FPS.

Multi-Threaded Entity Caching Solution:

  1. Spawn a dedicated background worker thread that iterates clientEntities once every 200ms.
  2. Filter and store active players (BasePlayer) and relevant loot in an atomic thread-safe double buffer.
  3. The main render thread only reads the small cached array of ~30 nearby players at 144Hz.

Zero frame hitching, render overlay runs at solid 240 FPS!

unity_il2cpp_dan
IL2CPP Reverser
MEMBER
Представитель: 46
Дата присоединения: Jun 2020
Сообщения: 4
Спасибо: 15
1 месяцев назад · Jul 2, 2026 12:33 PM
#2

Double buffering entity lists with std::atomic<bool> flip flag is the best architectural pattern for external game overlays.

imgui_artisan
UI Designer
MEMBER
Представитель: 202
Дата присоединения: Apr 2019
Сообщения: 54
Спасибо: 28
1 месяцев назад · Jul 3, 2026 7:48 AM
#3

Implemented this and CPU usage dropped from 28% down to 1.2%.