Optymalizacja rozwiązania sieciowego dla gry RTS: RPC, Event Bus i Network Objects
Podczas pracy nad grą RTS z własnym rozwiązaniem sieciowym naszym zadaniem było usprawnienie protokołu sieciowego – tak, aby był bardziej rozszerzalny, łatwiejszy w obsłudze i prostszy do rozbudowy o nową funkcjonalność. Część kliencka została zbudowana w Unity 3D, a backend…
Optymalizacja backendu gry mobilnej Unity 3D
Gra mobilna klienta stworzona w Unity 3D napotykała poważne problemy ze stabilnością backendu: serwery okresowo się zawieszały i restartowały, autoskalowanie działało nieprzewidywalnie, a gracze byli często rozłączani w trakcie rozgrywki. W trakcie projektu zidentyfikowaliśmy i rozwiązaliśmy kluczowe problemy: Wykorzystane technologie:…
Zautomatyzowany system odnowy certyfikatów SSL
Infrastruktura serwerów gry klienta umożliwiała graczom bezpośrednie łączenie się z poszczególnymi instancjami serwerów, co wymagało prawidłowej konfiguracji SSL/TLS na każdej maszynie. Ponieważ gra była już w dojrzałej fazie, rozwiązanie musiało być w pełni zautomatyzowane, bez konieczności ręcznych aktualizacji czy wdrożeń…
Optymalizacja infrastruktury AWS
Infrastruktura serwerowa gry klienta wymagała gruntownej konserwacji. Składała się z różnych serwerów, usług, systemów komunikacyjnych oraz funkcji Lambda, ale brakowało jej odpowiedniej dokumentacji. Nasze działania Rezultaty Dostarczona została czysta, w pełni udokumentowana i aktualna infrastruktura, z całym kodem w repozytoriach,…
Mock API Facebooka dla gry Unity 3D
Podczas tworzenia gry w Unity 3D na platformę Facebook napotkaliśmy poważne trudności w testowaniu ze względu na brak odpowiedniego mocka API Facebooka. Aby rozwiązać ten problem, zbudowaliśmy dedykowany serwis webowy w Node.js, który emulował API Facebooka. Kluczowe funkcje Dodatkowo opracowaliśmy…
Podwójny system budowania Unity 3D dla Web
Gra Unity 3D naszego klienta była kierowana zarówno na przeglądarki mobilne, jak i przeglądarki desktopowe. Te platformy różnią się znacząco pod względem wydajności i wymagań dotyczących zasobów. Wykorzystanie tego samego buildu dla obu środowisk powodowało dłuższe czasy ładowania, niepotrzebnie duże…
Narzędzie do łączenia siatek i materiałów (Material & Mesh Merging) w Unity 3D
Jednym z najczęstszych wyzwań optymalizacyjnych w projektach Unity 3D jest duża liczba oddzielnych GameObjectów z różnymi materiałami. Powoduje to znaczące obciążenie CPU, ponieważ silnik musi poświęcać dodatkowy czas na przygotowanie danych dla GPU do renderowania. Choć wbudowane w Unity mechanizmy…
Narzędzie do optymalizacji wydajności renderowania z wykorzystaniem Texture Atlassing w Unity 3D
Jednym z najczęstszych wąskich gardeł wydajności w projektach Unity 3D jest liczba draw call-i wymaganych do wyrenderowania sceny. Za każdym razem, gdy GPU przełącza się między różnymi teksturami lub materiałami, CPU musi wysłać nowy draw call – co generuje dodatkowe…
Narzędzie do analizy scen w Unity 3D
Duże projekty w Unity 3D często cierpią na ukryte nieefektywności: nieużywane lub zduplikowane materiały, zbyt złożone mesh-y, konfiguracje oświetlenia zwiększające koszt renderowania czy nieprawidłowo skonfigurowane LOD-y. Problemy te prowadzą do dłuższych czasów renderowania klatek, większego zużycia pamięci i nierównej wydajności…