Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Pare pytań odnośnie plików metin2 (optymalizacyjne)

Featured Replies

Opublikowano

Chciałbym popracować nad optymalizacją gry i chciałbym lepiej zrozumieć, które elementy mają największy wpływ na spadki FPS oraz stabilność.
Z tego co udało mi się ustalić, największe problemy pojawiają się przy:
- dużej liczbie efektów (skille, dymki, pioruny, ognie i inne pochodnie)
renderowaniu tekstów (outline/fonty)
ładowaniu modeli i postaci do gry/po zmianie kanału/mapy synchronizacji klient–serwer (ilość pakietów)

Na forach często pojawiają się „gotowe paczki optymalizacyjne”, które zawierają m.in.:
optymalizację efektów i tekstów zmiany w zarządzaniu pamięcią (fixy leaków)
usprawnienia ładowania modeli/map ograniczenie liczby pakietów sieciowych

Chciałbym podejść do tego samodzielnie i mam kilka pytań:


1. Jakie narzędzia polecacie do profilowania klienta (CPU/GPU/memory) w tym przypadku?
2. Które obszary binarki/rootów są najczęściej odpowiedzialne za spadki FPS?
3. Jak identyfikować bottlenecki – bardziej iść w stronę renderingu (DirectX), czy logiki klienta?
4. Na co zwrócić uwagę przy analizie wycieków pamięci w tym kliencie?
5. Jakie są narzedzia/sposoby na poprawe networkingu? słyszałem coś o protobuf

Jeśli ktoś może wskazać konkretne entry pointy (np. nazwy funkcji, klasy, patterny w IDA) albo kierunek analizy w binarce/rootach, będę wdzięczny.

Opublikowano

może nie odkryję ameryki ale może nie każdy wie.

Ja sam osobiście, przy optymalizacji projektu używam Visual Studio a dokładniej sesje diagnostyczną (ALT+F2). Odpalasz grę przez to, po wejściu robisz coś co chcesz zoptymalizować (np. spawn setek mobów, którzy przy normalnym kliencie wykaże obciążenie CPU przez RenderTextTail a po jego fixie (np. można zrobić bufor na tekst w prosty sposób, co da dużą optymalizację) a po tym drugim największym obciążnikiem jest Deform czyli obliczanie pozycji kości dla każdego moba (domyślnie CPU Skinning), można to zoptymalizować przez GPU Skinning tworząc własne shadery HLSL w directx ale to już poważniejsza zabawa)

(Jakby ktoś robił GPU skinning, warto zwrócić uwagę i nie kasować domyślnej metody obliczania czyt. CPU Skinning, ponieważ DX ma limity na bodajże 255 rejestrów i warto ustawić limit np. modele < 70 kośćmi GPU a powyżej klasyczne CPU)

Tak samo chodzenie po mapie może Ci w tym profilerze w VS pomóc, i pokaże co dokładanie powoduje shutter lagi (np. chodzenie po M2 na martysamie w domyślnej wersji powoduje te mikro lagi)

To są rzeczy które moge od siebie dać, ponieważ sam optymalizuję i uczę się/szukam rozwiązań czy pomysłów i jeśli gdzieś popełniłem błąd albo coś źle napisałem - śmiało możecie mnie poprawiać :D

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.