make it fresh

Odkrywaj z nami nową rzeczywistość.

08.06.16

Dlaczego wybraliśmy Unity 3D i jak użyliśmy tej technologii w projekcie METIS-II?

Dlaczego wybraliśmy Unity 3D i jak użyliśmy tej technologii w projekcie METIS-II?

Świat gier to dla większości z nas drugie hobby, a nie da się w nim siedzieć i nie słyszeć o Unity. Połączyliśmy nasze zainteresowania ze zdobytymi już umiejętnościami i dzięki temu otrzymaliśmy doskonały efekt.

Na początek naszego artykułu wyjaśnimy, czym jest Unity 3D. Jak można przeczytać na stronie producenta, Unity 3D to wieloplatformowy silnik gier umożliwiający kierowanie większą liczbą urządzeń. Jest bardzo intuicyjny, łatwy do skonfigurowania i ułatwia szybkie renderowanie bogato zaprojektowanych graficznie gier.  Przy jego użyciu można stworzyć dowolną grę 2D lub 3D, oraz wdrożyć ją na wielu platformach mobilnych, VR, stacjonarnych i internetowych, w tym na konsolach oraz telewizorach.

Jak można się domyślać, nie jesteśmy jedyną firmą, która zaufała temu rozwiązaniu. Dzięki Unity 3D powstało już wiele projektów, na temat których informacje znajdują się na stronie: http://madewith.unity.com/. Znajdziecie tam wiele przykładów gier i aplikacji wykonanych przy użyciu tego silnika. Na dzień dzisiejszy liczba tych projektów wynosi 196 i zapewne będzie stale rosła. Przeglądając portfolio można natknąć się na projekty proste, minimalistyczne, jak i skomplikowane, o wielu poziomach złożoności, oraz o kuszącej oko grafice. Udostępniona została też możliwość odfiltrowania gier, ze względu na platformę jak i gatunek.

Postanowiliśmy również prześwietlić statystyki, aby utwierdzić się w przekonaniu, że dokonaliśmy prawidłowego wyboru.

Według statystyk, Unity 3D jest wykorzystywane przez 45% światowego rynku.

Global game engine market share

Poza tym silnik Unity 3D zyskał dużo większą popularność wśród programistów, niż inne oprogramowania wykorzystywane w tym samym celu.

Unity dominates the tools market

 

Unity jest także wykorzystywane dużo częściej niż inne rozwiązania na wielu światowych rynkach.

Engine share of top grossing 3D mobile games by territory

 

Nie o statystykach jednak chcielibyśmy Wam opowiedzieć. Podstawowym powodem do napisania tego artykułu jest fakt, że wykorzystaliśmy silnik Unity 3D w zupełnie innym celu, niż większość jego użytkowników. Nie zaprojektowaliśmy gry, jak można by się tego spodziewać, a wizualizację działania technologii transmisji danych nowej generacji 5G dla współfinansowanego przez Komisję Europejską METIS-II.

Ze względu na specyfikę naszego projektu, Unity 3D wydawało się najlepszym rozwiązaniem. Podjęliśmy decyzję o jego wykorzystaniu i nie myliliśmy się. To był strzał w dziesiątkę.

To, co przemówiło za tym, aby wykorzystać ten silnik w naszym projekcie, to przede wszystkim możliwość tworzenia wydajnych wizualizacji 3D. Kolejnym aspektem była jego multiplatformowość. Ta opcja umożliwia nam dewelopować jedną wersję aplikacji na PC, a następnie używając dyrektyw kompilatora mogliśmy wypuścić wersję na przykład pod Androida. Możliwe jest też stworzenie wersji na praktycznie dowolny system operacyjny obecny w domowych systemach rozrywki przy czym, jak na razie, nie ma takich potrzeb. To, co również okazało się zaletą, to fluid workflow, który jest bardzo przydatny podczas tworzenia modeli. Umieszczane są one w katalogu Assets, dzięki czemu nie trzeba ich specjalnie konwertować, a przy tworzeniu kolejnych modeli wystarczy nadpisać te poprzednie. Kolejną zaletą jest prosta deserializacja zewnętrznych plików xml i binarnych. Elementy konkretnej prezentacji zwizualizowanej w naszej platformie są w dużym stopniu budowane na podstawie zewnętrznych plików xml – co umożliwiło naszym partnerom budowanie własnych prezentacji bez potrzeb zmian w kodzie. Pracę ułatwił nam również rozbudowany edytor 3D. Używaliśmy go do rozmieszczania na scenie elementów stałych prezentacji (układ budynków, lamp, anten – czyli elementów statycznych) – dzięki temu, że jest to narzędzie wizualne i wyświetla widok zbliżony do docelowego widoku aplikacji, zaoszczędziliśmy bardzo dużo czasu, a przy okazji została zmniejszona częstotliwość poprawek. Kolejnym krokiem było przenoszenie tych informacji do zewnętrznych plików z danymi, co pozwoliło naszym partnerom je modyfikować. Fakt, że Unity 3D umożliwia pisanie skryptów uruchamianych w czasie edycji, pozwolił zapisać układ sceny w dowolnej dopasowanej do potrzeb formie. Szeroki zasób AssetsStore, daje dostęp do mnóstwa modeli 3D, tekstur, bibliotek skryptów, komponentów wizualnych. W pierwszej fazie dewelopowania ściągnęliśmy stamtąd cześć modeli, co pozwoliło na szybkie oddanie wersji inicjujących projekt. W kolejnym etapie zastąpiliśmy je dedykowanymi modelami. Kolejnym ułatwieniem jest rozbudowana dokumentacja oraz ogromna ilość naprawdę dobrze przygotowanych tutoriali. Nieoceniona jest duża społeczność związana z enginem, której członkowie pomagają sobie w rozwiązywaniu mniej lub bardziej typowych problemów.

Pomimo tak wielu zalet i możliwości, kilku z nich nie byliśmy w stanie wykorzystać. Po pierwsze zrezygnowaliśmy z fizyki i navigation/pathfindingu. Unity 3D daje możliwość programowania tras po których poruszają się obiekty na podstawie kształtu modeli. Po wstępnych rozważaniach na temat możliwości symulacji realnego świata i zjawisk fizycznych związanych z telekomunikacją, ostatecznie zrezygnowaliśmy z tego pomysłu. Wymagało to sporo czasu, a narzędzia udostępniane przez Unity 3D są uproszczone, gdyż są one stworzone pod potrzeby związane z grami, a nie zagadnieniami inżynierii telekomunikacyjnej. Zrezygnowaliśmy również z symulowania ruchu miejskiego, dlatego część symulacji wykonali nasi partnerzy, a następnie dostarczyli je w postaci trace’ów binarnych.

Nie skorzystaliśmy również z Multiplayera, Virtual Reality, obsługi kontrolerów oraz Unity Analytics, ze względu na to, że są to możliwości typowe dla gamedevu. Obiecującym krokiem byłoby rozszerzenie naszego projektu o np. obsługę Oculus Rift, ale zostawiamy sobie tę perspektywę na dalsze etapy projektu. 

Prace w ramach projektu METIS-II trwają nadal, natomiast zaprezentowaliśmy już kilka wersji wizualizacji, które służyły pokazaniu potencjału tkwiącego w 5G na różnego rodzaju konferencjach, m. in. Mobile World Congress w Barcelonie. Jeżeli ten artykuł wzbudził Waszą ciekawość i Wy również chcielibyście zobaczyć, jak wpłynie na infrastrukturę sieciową 5G, wersja naszej wizualizacji do pobrania znajduje się na stronie https://metis-ii.5g-ppp.eu/demo-from-mwc16-available-for-download/.