Programowanie na urządzenia mobilne krok po kroku – cz. 17 – przegląd silników gier

Nasz cykl rozszerzam o inne platformy mobilne, będzie on się skupiał nie na samym programowaniu lecz na cennych wskazówkach oraz przedstawianiu wielu różnych rozwiązań programistycznych, które spodobają się różnych programistom.

System Android pozwala na wykorzystanie Silnika OpenGL do tworzenia animacji 3D. Jednakże nie jest jest to najlepsze rozwiązanie – napisanie gry byłoby bardzo ciężkie ze względu na brak narzędzi, który by to ułatwiły. Dziś poznamy inne, dużo bardziej zaawansowane silniki graficzne, które pozwalają na dużo bardziej zaawansowaną grafikę. Większość z nich jest darmowa lub posiada wersję darmową ograniczoną funkcjonalnie – jednakże w zupełności wystarczy to na start.

Większość silników jest multiplatformowa

Jeśli tworzymy grę używając znanych silników graficznych to większość z nich pozwala na jednoczesne pisanie kodu dla wielu platform – mam tu na myśli nie tylko smartfony, czy tablety, ale również przeglądarki internetowe, komputery czy nawet konsole. Jest to bardzo wygodne rozwiązanie, a kod dla tych platform będzie się różnił ewentualną obsługą środowiska (np. reklamy w naszej grze).

Nie musimy pisać w Javie

Java to rzadko używany język programowania używany w trakcie tworzenia gier, mimo, że jest to wieloplatfomowy język. Wystarczy, że sam silnik jest skompilowany pod daną platformę – to on odpowie za analizę naszej pracy. Do pisania gier możemy wykorzystać np. C++, C#, czy nawet języki skryptowe takie jak JavaScript. Oczywiście istnieją silniki oparte na Javie, jednakże nie jest to najpopularniejszy język do tworzenia gier.

Teraz zaprezentuję kilka silników na które warto zwrócić uwagę, ponieważ oferują one bardzo ciekawe możliwości. Istnieje mnóstwo silników gier, ja wybrałem te, które uważam, że mają potencjał.

1. Unity 3D

Wiele z was zapewne słyszało gdzieś tą nazwę – tak właśnie nazywa się jeden z najbardziej popularnych silników 3D. Darmowa wersja pozwoli nam nauczyć się tworzyć gry używając tego silnika, a nawet stworzymy dosyć zaawansowaną produkcję. Unity pozwala także na tworzenie gier 2D. Wersja PRO oferuje o wiele więcej i jeśli nasza gra potrzebuje najlepszych efektów graficznych i ma wyciskać ze sprzętu maksimum możliwości to warto w taką zainwestować. Niestety nie jest to takie tanie. Wersja PRO kosztuje $1500 jednorazowo lub $75 miesięcznie za każdą z platform mobilnych (czyli jeśli chcemy wydać grę również na Androida i iOS-a, płacimy $4500 lub $225 miesięcznie).

Gry możemy pisać w językach Boo, C# i JavaScript. Gry mogą zostać skompilowane na Androida, iOS, Windows Phone i BlackBerry.

2. Unreal Engine 4

Kolejny bardzo popularny silnik. Wersja z numerkiem 3 pozwala na bardzo zaawansowaną grafikę, moim zdaniem lepszą niż w Unity 3D, jednakże jest przy tym bardziej skomplikowany. Wielu z was zapewne widziało ten silnik w akcji również na pecetach. Silnik kosztuje $19 miesięcznie + 5% od każdej sprzedanej kopii Twojej gry – jest to taniej niż przy Unity 3D Pro, jednakże nie ma tutaj wersji darmowe. Poprzednie wersje były dostępne za darmo z wyłączeniem zastosowań komercyjnych

Gry możemy tworzyć w C# i C++. Gry piszę się dużo bardziej skomplikowanie niż w Unity, silnik nie posiada także pełnej dokumentacji, nie ma także za wielkiej społeczności. Silnika nie polecam początkującym, ale dla zaawansowanych twórców jest to jak najbardziej genialny silnik. Gry możemy tworzyć jedynie na iOS i Android.

3. GameMaker: Studio

Kolejny silnik z długim stażem. Powstał w rok po Unreal Engine, dokładnie w 1999. Jest to bardzo prosty silnik, skierowany do osób, które mało znają się na programowaniu. Nie wymaga znajomości języków programowania, co ciągnie ze sobą skutki w postaci ubogiej funkcjonalności względem powyższych produktów. Większość elementów da się wykonać poprzez przeciąganie (drag and drop). Wersja podstawowa jest darmowa i umożliwia jedynie po pecetową wersję Windowsa.  Dopiero wersja z $100 pozwala na zakup dodatkowych modułów rozszerzających publikację do innych platform.

GameMaker: Studio jest przystosowane do tworzenia gier 2D, ale można również uzyskać proste gry 3D. Jakości grafiki nie będę tutaj porównywał z wiadomych względów.

4. MonoGame

Chciałbym również przedstawić open-sourcowy silnik, który pozwala na stworzenie gry, która może zdobyć popularność wśród wielu użytkowników. Wykorzystuje on interfejs Microsoft XNA 4. Jest to bardziej framework, jednakże jest on warty uwagi. Jakość grafiki nie jest tak wysoka jak w przypadku Unity, czy Unreal Engine. Jeśli ktoś z was lubi korzystać z narzędzi Microsoftu, to jak najbardziej zachęcam do sprawdzenia. Silnik jest open-sourcowy, więc możliwości MonoGame możemy rozszerzać przez własny kod – możliwe jest także zgłoszenie naszego kodu czy poprawki do oficjalnego repozytorium z kodem źródłowym.

MonoGame pozwala na tworzenie aplikacji dla iOS, Androida, Windows Phone i Windows 8/8.1. Oczywiście nie ponosimy tutaj żadnych opłat związanych z licencją.

Pokazałem wam cztery różne silniki, które spodobają się różnym programistom. Zachęcam do osobistego sprawdzenia każdego z nich, ponieważ wiele narzędzi może nam się spodobać, wynika to z naszych przyzwyczajeń, znajomości języków programowania i możliwości programistycznych. GameMaker: Studio polecam ludziom, którzy mają pomysł na prostą grę, która ma w sobie potencjał. Na koniec przedstawiam wa Showcase silników, czyli lista projektów wykonanych przy użyciu tych silników. Pozwoli to wam indywidualnie ocenić możliwości tych narzędzi.

Unity 3D Showcase: http://unity3d.com/showcase

Unreal Engine Showcase: https://www.unrealengine.com/showcase

GameMaker: Studio Showcase: https://yoyogames.com/showcase

MonoGame Showcase: http://www.monogame.net/showcase/