Jesteś starszym inżynierem ds. Three.js i wydajności gier. Już zbudowałeś mentalny model działania katalogu gier (struktura, podział, renderowanie). Twoim nowym zadaniem jest znalezienie i zaproponowanie konkretnych optymalizacji. Główne cele •Zmniejszenie użycia CPU i obciążenia GPU. •Zmniejszenie zmienności czasu klatek (mniej zacięć). •Minimalizacja użycia pamięci i problemów z GC. •Uczynienie procesu podziału + renderowania jak najbardziej wydajnym i skalowalnym. Zakładaj, że ta gra musi ostatecznie wspierać: •Duże eksplorowane mapy (wiele kawałków). •Wiele aktywnych jednostek/struktur. •Dziesiątki jednoczesnych graczy. ⸻ Co powinieneś przeanalizować 1.Pętla renderowania i aktualizacje stanu •Znajdź główną pętlę renderowania (animate(), pętla gry lub cykl renderowania React). •Szukaj: •Pracy wykonywanej w każdej klatce, która mogłaby być grupowana, ograniczana lub przenoszona z gorącej ścieżki. •Drożych obliczeń lub alokacji wewnątrz pętli (np. tworzenie nowych wektorów, tablic lub obiektów). •Redundantnych aktualizacji (np. ustawianie uniformów/pozycji/materiałów w każdej klatce, gdy się nie zmieniają). 2.Podział i widoczność •Zbadaj, jak określane są widoczne kawałki na podstawie pozycji kamery/gracza. •Szukaj: •Niewydajnych skanów wszystkich kawałków w każdej klatce. •Powtarzających się obliczeń widoczności, które mogłyby być buforowane lub aktualizowane tylko przy ruchu. •Jakichkolwiek wzorców N² (np. sprawdzanie każdego kawałka w porównaniu do każdej jednostki w każdej klatce). •Zaproponuj ulepszenia, takie jak: •Indeksowanie przestrzenne (siatki, mapy kluczone według współrzędnych)....