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 pliki zasobów oraz obniżoną wydajność na urządzeniach mobilnych.
Aby rozwiązać ten problem, stworzyliśmy w pełni zautomatyzowany system podwójnego builda, generujący zoptymalizowane wersje gry dla Mobile Web i Desktop Web.
Nasze działania
- Zautomatyzowany pipeline buildów – Wdrożyliśmy system, który w ramach jednego procesu przygotowuje dwie odrębne wersje gry (mobilną i desktopową).
- Optymalizacja zasobów – Dostosowaliśmy ustawienia w zależności od platformy, m.in.:
- formaty kompresji tekstur
- rozdzielczości tekstur
- ustawienia kompresji plików audio
- Dynamiczne AssetBundle – Generowaliśmy świeże zestawy AssetBundle dopasowane do każdej platformy, aby skrócić czas ładowania i zmniejszyć użycie pamięci.
- Kompilacja warunkowa – Wykorzystaliśmy Scripting Define Symbols w Unity do automatycznego kontrolowania logiki i funkcji specyficznych dla platformy.
- Ulepszona wydajność – Zapewniliśmy szybsze ładowanie na urządzeniach mobilnych przy jednoczesnym zachowaniu wysokiej jakości zasobów i wydajności na komputerach stacjonarnych.
Rezultaty
Nowy system budowania znacząco poprawił szybkość ładowania, efektywność wykorzystania zasobów oraz doświadczenie graczy na obu platformach webowych. Usprawnił także proces publikacji, redukując ręczną pracę i minimalizując ryzyko błędów podczas wdrożeń.
Wykorzystane technologie:
Unity 3D, C#