Asset Review to nowa seria współtworzona z Ireneuszem Kołodziejczykiem. Zastanawialiście się kiedyś czy Assety w Unity Asset Store są warte swojej ceny?  Irek specjalnie dla was to sprawdzi.

Dzisiejszy odcinek: Corgi Engine

Na początek dwie małe uwagi od autora.

Uwaga

Niniejsza recenzja nie obejmuje dwóch zasobów, które można kupić na Asset Store, oddzielnie od Corgi Engine, a które są dodane do paczki. Są to:

  • Inventory Engine
  • Nice Touch

Uwaga
Nie każdy może wiedzieć iż engine, framework oraz starter kit, to zupełnie różne rzeczy. W recenzowanym przeze mnie assecie używam tych pojęć zamiennie w formie synonimów. Jednakże jest to nic innego jak podążanie drogą twórców tego typu zasobów.

Pytanie do Was: skoro Asset Store jest przesiąknięty tego typu błędnymi określeniami, robi Wam różnicę iż w recenzjach będą także używane takie sformułowania? Mam podążać za stadem, czy jak ten samotny wilk, trzymać się prawidłowej terminologii?

Odpowiedź zostawicie w komentarzu – MarWin.

Pierwszy Kontakt

Corgi Engine to nic innego jak narzędzie do tworzenia gier platformowych. Nie jest skierowane do developerów celujących w ten konkretny gatunek, tak jak to robi konkurencja (którą omówimy innym razem). Nie zamyka Cię zatem w sztywnych ramach, a pozwala na znacznie więcej.

Tak przynajmniej widzi to twórca i nie sposób nie przyznać mu racji. Framework oscylujący swą wagą w granicach 110mb, zaraz po instalacji ukazuje mrowie folderów. Odnalezienie się w nich wymaga czasu. Najistotniejszy w całym tym skupisku folderów jest fakt iż „byty zostały namnożone nad potrzebę”. Oznacza to iż autor, zamiast skupić się na stworzeniu dwóch gier, czy trzech, które ukazują odmienne style, podąża inną drogą.

Każda scena ma pokazać jakąś istotną kluczową cechę Enginu i robi to świetnie. Dla niektórych będzie to zaleta. Dla mnie to wada. Po przebrnięciu przez wszystkie przygotowane przez autora sceny, masz na prawdę świetne pojęcie z czym to się je. Opcji jest sporo i na pewno wymaga czasu nim nauczysz się tego środowiska tak dobrze, aż poczujesz się jak u siebie w domu.

Na szczęście większość rzeczy jest intuicyjna, więc dosyć szybko ogarnia się dodawanie nowych komponentów, budowanie niewielkich scen, dzięki czemu tworzenie gry to dosyć szybka sprawa.

Wracając jednak do wspomnianego mrowia folderów, należy zauważyć jeden istotny fakt. Autor zapomniał o stworzeniu konkretnej, pokazowej gry. Owszem mamy folder „Retro Adventure” oraz „Scenes”, które ukazują jak zrobić kilka leveli i spiąć to w całość. Będziesz miał „splash screena”, „loading screen” oraz planszę tytułową i wybór leveli. To już solidna wyjście do budowania dalszej gry. Szybkie rzucenie okiem na „Minimal Level” pomaga określić co jest absolutnym must have, aby gra zadziałała. Brakuje jednak kompletnego przewodnika w postaci przykładowej gry, gdzie na minimalnej ilości scen, zostanie pokazane maksymalnie wiele możliwości frameworka. Co prawda niektóre opcje wykluczają się wzajemnie, niemniej jednak takie rozwiązanie ułatwia totalnym laikom start w świat game devu.

Nie ma się co czepiać na siłę, gdyż jak już wspomniałem, narzędzie jest intuicyjne. Dosyć szybko można ogarnąć podstawy, a rozpoczęcie budowy swojej pierwszej gry, to kwestia godziny. „Gotowce” w postaci prefabów bohatera, przeciwników, czy innych obiektów, to standard, którego nie zabrakło i tutaj. Na plus można zaliczyć szablony scen z wyborem leveli. Jest kilka opcji i prezentują się na prawdę dobrze.

Podsumowując: pierwszy kontakt z Corgi Engine można ocenić na bardzo duży plus. Nie ma się do czego mocno przyczepić, a wręcz łopatologiczne pokazanie możliwości w wielu scenach, nie pozostawia wiele wątpliwości.

Praca wre, czyli niuanse

Ze wstępu można wywnioskować że to dobre narzędzie, któremu warto się przyjrzeć bliżej. Nie ma się co oszukiwać. Nie bez powodu zostało ono wybrane przez zespół Unity, jako bonus dla subskrybentów. Jak to mówią beczka miodu nie obejdzie się bez łyżki dziegciu. W tym przypadku nawet kilku… i to wielkich. W zależności od tego kim się jest: programistą, grafikiem, designerem – inne rzeczy mogą być wadą, a inne zaletą. Jako designer, śmiało za wadę mogę zaliczyć wymuszenie na użytkowniku enginu dobrych praktyk Unity. Oznacza to iż szalejąc ze skala swoich obiektów na scenie, kamera może je najzwyczajniej w świecie nie objąć. Masz zoom kamery, ale nie jest on nieograniczony, przez co chcąc obejść ten problem, musisz grzebać w kodzie.

Znamiennym jest fakt iż napisanie do supportu nie pomogło! Usunięcie wskazanej linijki kodu nie rozwiązało problemu, a skoro już przy kontakcie z twórcą narzędzia jesteśmy…

Pomimo powyższego – kontakt jest szybki oraz profesjonalny. Twórca stara się pomóc jak może, odsyłając w konkretne miejsca dokumentacji, bądź samemu pisząc co zrobić. Z mojego doświadczenia wynika, że nie jest to standard. Pomijając nawet nieszczęsny fakt nierozwiązania mojego problemu. Szybciej było zastosować się do dobrych praktyk Unity. Poza tym warto rozważyć we własnym sumieniu co oznacza dla Ciebie szybki i profesjonalny kontakt. Osobiście, pomimo kilku potknięć, uważam go za godnego pochwały.

Zanim napiszesz do twórcy, warto przyjrzeć się dokumentacji oraz wideo-tutorialom. Są dosyć dobrze napisane, przejrzyste, a ich struktura ułatwia nawigacje. Szybko można odnaleźć to co jest potrzebne. Nie wydaje mi się jednak aby ktoś kto dobrze zapozna się z zawartością pobranej paczki Corgi Engine oraz przeczyta dokumentację, miał potrzebę częstego pisania do supportu. Widać iż poświęcono na to sporo czasu, za co duży plus.

To co opisałem powyżej, to nadal tylko obudowa. Nas interesuje w tym wypadku zawartość. Opcji jest wiele. Co ciekawe. totalny amator, nie potrafiący programować, stworzy ciekawą grę. Oczywiście, jeśli nie zamarzy Ci się drugi Trine, czy Rayman. Jednakże z tą „ciekawą grą” nie należy się rozpędzać, gdyż narzędzie nie jest aż tak potężne jak wiele osób piszę  w recenzjach w sklepie z zasobem. Przyjrzyjmy się więc najważniejszym składowym narzędzia.

Bohater

Należy pamiętać iż w paczce nie znajdziesz jako takiego prefabu, skonfigurowanego do takiego poziomu że będziesz miał dostępne wszystkie możliwości w jednym miejscu. Niemniej jednak przejrzenie wszystkich, da świetny wgląd w możliwości jakie twórca przygotował dla personifikacji gracza. Tak na prawdę uznanie prefabu „space-corgi-spriteshhet” za naszą „bazę” do budowy potrzebnego bohatera gry, w 90% będzie wystarczające dla większości posiadaczy narzędzia twórców gier. Jednak można to obejść, o czym dalej.

Szkoda tylko, że prefaby nie są dostępne w jednym miejscu, tylko w obrębie każdego przygotowanego dema, pokazującego możliwości narzędzia. Jest to jednak oczywiste rozwiązanie, wynikające z poczynionych założeń, nie ma się więc co czepiać na siłę.

Co zatem możemy zrobić z naszym herosem? Pomijając oczywistości, jak sterowanie i określenie ilości skoków, rodzajów broni, czy jet-packa, przejdźmy do sedna sprawy, za który w tym wypadku uważam skrypt „Character”. Nie dlatego, że jest jakoś przesadnie rozbudowany, ale dlatego iż ma opcje automatycznego tworzenia personifikacji gracza, a także przeciwnika. Wystarczy kliknąć tworzenie gracza, bądź przeciwnika, aby zostały automatycznie dodane wszystkie skrypty. Później pozostaje już tylko odpowiednia konfiguracja.

Co zatem potrafi bohater? W zasadzie to, do czego przyzwyczaiły nas gry platformowe. Może wykonać kilka skoków na raz, wspinać się po ścianie, czy używać wspomnianego jet-packa. Może spoglądać w górę i dół, przez co gracz zobaczy większy fragment mapy. Może dashować, jak i wspinać się po siatkach, czy chodzić po suficie, kiedy podepniemy w interesujące nas miejsca systemy odwróconej grawitacji (co jest banalnie proste). Same możliwości bohatera należy zaliczyć na plus. Są bardzo rozbudowane, 

Interfejsie użytkownika

Interfejs operuje na standardach i minimalizmie. Nie należy tego jednak traktować jako wada, gdyż dla większości osób jego możliwości będą zapewne w zupełności wystarczające. Raczej mało komu potrzebne będzie wyświetlanie większości elementów inwentarza na UI.

Także interfejs pozwala na obrazowanie życia w postaci paska, czy też serduszek. Możemy wyświetlać ilość żyć, amunicji do broni, informację która amunicja jest aktualnie używana. bomby, stan pancerza, punkty, czy stan paliwa do jet-packa. Solidne podstawy i niewykraczanie poza standardy. 

Przeciwnicy

Przeciwnicy podzieleni są na następujące grupy

  • Rycerz – używający mieczy i innej broni krótkiej,
  • Strzelec – używający broni dystansowej takiej jak łuk, bomby, pistolety,
  • Zabijający od razu po kontakcie z graczem – czyli wyposażeni w piły tarczowe, nieruchomi przeciwnicy, itp.
  • Pływający.

Nie jest ich przesadnie wiele, lecz reprezentują podstawy. Do tego w połączeniu z możliwością modyfikowania broni, z pewnością większość z developerów będzie usatysfakcjonowana tym co jest w paczce. Zatem na podstawie oferowanych możliwości będziesz mógł stworzyć całkiem rozbudowany wachlarz przeciwników. Wystarczy wykazać się kreatywnością i odpowiednio połączyć skrypty aby zyskać ciekawe efekty. I tak połączenie piły tarczowej z animacją wyskakującej ryby z wody, w połączeniu z odpowiednią szybkością poruszania się piły, pozwoli uzyskać nowego potwora. Jest to jednak metoda z kategorii „wymyślania koła na nowo” i tylko dla tych co nie programują. Bowiem Ci drudzy, mogą chcieć napisać takiego wroga od zera. Przeciwnicy posługują się bronią miotaną, jak i krótką. To co włożysz w rękę gracza, możesz dać i przeciwnikom. 

Broń gracza.

Broń dzieli się na dwie kategorie: dystansową oraz białą (do walki w zwarciu). 

Na tej podstawie możesz tworzyć swój własny oręż: miecze, topory, pałki, czy laserowe miecze. Z broni dystansowych: łuki, kusze, wyrzutnie rakiet, czy karabiny maszynowe. Większość rzeczy opiera się na tych samych założeniach. Zmienia się sprite broni, animacja oraz statystyki pocisków. Dlatego też można przygotować na prawdę pokaźną gamę akcesoriów zagłady.

Autor przygotował dla nas kilka gotowych prefabów uzbrojenia, jak chociażby shotgun, strzelający trzema pociskami, czy granatnik który wystrzeliwuje pocisk odbijający się od ścian, by po czasie eksplodować. Broń powinna usatysfakcjonować wszystkich, którzy poświęcą odrobinę czasu na zapoznanie się z możliwościami jej tworzenia.

Inwentarza.

Ten został stworzony z myślą o Corgi Engine, ale można go kupić też osobno. Inventory Engine nie jest przesadnie rozbudowany i jego celem jest spełnienie podstawowych funkcji takiego „plecaka”. Ktoś o większych potrzebach, z pewnością będzie musiał zainteresować się innymi rozwiązaniami.

Sam Inventory Engine pozwala na segregowanie posiadanych przez nas przedmiotów, jak i tworzenie im opisów. Możemy wyposażać bohatera w zebraną broń, jak i wyrzucić przedmiot z plecaka. Dołączyć dźwięk użycia przedmiotu,skonfigurować wygląd inwentarza poprzez dodanie tła, czy modyfikację przycisków. Należy jednak pamiętać, że nie jest to wersja bardzo rozbudowana. Ma spełnić podstawowe funkcje, w czym sprawdza się świetnie.

Jednakże wbrew pozorom poznanie narzędzia w stopniu zadowalającym także wymaga czasu i cierpliwości. Wystarczy spojrzeć na dokumentacje, aby zauważyć iż autor ma wiele do powiedzenia w tym temacie.

Twórca jednak zapomniał (lub nie zrobił tego celowo) o dodaniu suwaka w inwentarzu przez co nie można zebrać nadmiaru przedmiotów, gdyż nie będę się mieścić w wyznaczonym przez nas miejscu. Niemniej jednak istnieje ograniczenie przedmiotów jakie można dodać do plecaka.

Itemy (w tym power-upy)

Przedmioty proszą się o uzupełnienie, gdyż w niektórych miejscach są ewidentne braki. Tak jak o broni już wspomniałem, tak power-upy, prezentują się biednie. Spowolnienie czasu, HP Potion (działa też jako poison), dodanie punktów (odjąć też można), wzrost postaci, czy gwiazdka, wymagana aby otrzymać maksymalną notę za level i… koniec. Tak jest. Na tym się kończy lista itemów.

A chciało by się aby można było dostawać nowe życia, paliwo do jet packa, przyśpieszenie postaci, czy nieśmiertelność. Niestety, takich rzeczy tutaj nie uświadczysz.

Achivements

Tak na prawdę wszystkie achivemnty sprowadzają się do dwóch typów:

  • prostych – np.: ukończ grę, zabij kogoś, czy znajdź coś;
  • opartych na postępie – np.: zabij X wrogów, czy zbierz X monet;

Na tej podstawie możesz więc tworzyć setki różnych osiągnięć, które później można podpiąć pod platformę, na której chcesz sprzedawać swą grę. Jako, że nie miałem okazji tego testować w praktyce, nie pozostaje mi nic innego, jak wierzyć twórcy narzędzia na słowo. Kupując Corgiego, będziesz musiał to przetestować sam.

Wracając jednak do sedna sprawy. Implementując do swej gry to rozwiązanie możesz utworzyć tło dla wyświetlanego osiągnięcia, jak i sam tytuł oraz reprezentującą go ikonę. Możesz też stworzyć ikonę dla niedostępnego osiągnięcia. I  tutaj pojawia się problem. Mianowicie, po co tworzyć taką ikonę, skoro nie można nigdzie wyświetlić listy zdobytych i zablokowanych achivementów?

Coś musiałem przeoczyć, więc pora na przerwę i mejla do twórcy, który odpisał następująco na moje wątpliwości…

Using the Achievements API. I’d suggest reading the documentation for more about that.

Okazuje się jednak, że nie. Nigdzie nie piszę jak zrobić podmenu na wyświetlanie achivmentów, wideo tutorial też tego nie pokazuje. Programista osiągnie taki cel bez problemu, gdyż w końcu należy użyć API. Dla mnie jednak, jako designera, było to poza zasięgiem.No, a więc zajrzałem po raz kolejny do dokumentacji, gdyż najwyraźniej coś przeoczyłem.…

Kupować, czy nie?

Corgi engine na pierwszy rzut oka prezentuje się wyśmienicie. Dużo możliwości oraz świetna dokumentacja. Strona w sklepie na Asset Store pokazuje iż mamy do czynienia z profesjonalnym narzędziem. Dodatkowe wybranie tego assetu przez redakcje Unity jako prezent dla subskrybentów, pozwala wierzyć iż jest to narzędzie z kategorii „must have”. Dlatego też szukając rozwiązania dla siebie, sięgnąłem po ten asset.

Bliższe zapoznanie z nim, pokazuje jednak wiele niedociągnięć. Nie jest to tak profesjonalny i elastyczny zestaw skryptów jak by się mogło wydawać. Brakuje wielu rzeczy, jak chociażby sklepu, w którym można wydać zdobyte punkty.

Pomimo ogromnej popularności assetu, ciężko znaleźć coś, co otwarcie reklamuje się jako współpracujące z Corgim. Twórca na swej stronie też nie udostępnia takich informacji. Stąd też nie masz pewności czy kupując jakiś asset, potrzebny do Twej gry, będzie współpracował z Corgi. Masz więc dwa wyjścia: albo kupujesz w ciemno, albo najpierw wysyłasz wiadomość do twórcy, licząc na pozytywną odpowiedź.

Musisz znać się na programowaniu, aby móc zmieniać broń graczowi, bez konieczności podpinania inwentarza. Być może nie jest to jakaś wielka wada, lecz warto o tym wiedzieć kreśląc wizje swej gry. Kolejnym dziwnym rozwiązaniem jest fizyka, jaką zaimplementował twórca. Piszę on o niej bowiem tak:

The Corgi Engine was created as an alternative to physics based platformers, aiming to provide a tighter gameplay, faster, and more predictable than physics. To do so, the engine implements its own “physics” : collision detection, movement, etc. Note that this is absolutely not a physics engine, this is not compatible with regular Unity physics, and if you’re planning on recreating Angry Birds, this will not do the trick.

W wielkim skrócie oznacza to iż Corgi Engine implementuje własną fizykę i nie współpracuje z fizyką od Unity. Stąd wniosek iż nie zaleca się łączyć jednego z drugim, gdyż mogą pojawić się błędy w przyszłości.

Podsumowując. Asset ma bardzo dużo pozytywnych ocen i ciężko znaleźć jakieś większe zarzuty względem niego. Ludzie po prostu ich nie zauważają, albo nie są wymagający. Jeden z zarzutów, który pasuje tutaj idealnie, tyczył wprowadzania kupujących w błąd iż jest to engine, gdy tak na prawdę jest to nic innego jak Starter Kit. I niestety taka jest prawda.

Po bliższym i głębszym zapoznaniu się z frameworkiem, okazuje się, że jest on bardzo profesjonalnie przygotowany. Jednakże opcji z pewnością nie jest aż tak dużo, aby móc go z czystym sumieniem polecić. Szkoda iż nie ma już na Asset Store Ekume Engine, który można teraz kupić na chupamobill.com. Był on silnym konkurentem dla Corgiego. Pokusiłbym się nawet o stwierdzenie iż lepszym od niego.

Siadając do testów, byłem przekonany iż wystawie Corgi Engine znaczek „Polecam”, lecz grubo się pomyliłem. Może to jednak wynikać z mojej wizji jak powinien wyglądać taki Starter Kit. Stąd też jeśli jesteś programistą, z pewnością powyższy zarzut nie będzie dla Ciebie problemem. To, co oferuje narzędzie w obecnej wersji pozwala na bardzo wiele.

Podsumowanie

Metryczka

  • Kategoria: Templates –> Systems
  • Przydatne w: tworzeniu funkcjonujących gier platformowych w 2D.
  • Recenzja dotyczy: v.4.5.1
  • Link do sklepu: [Click Here]
  • Cena: 53.60 Euro
  • Ocena w sklepie: 5/5 – 511 ocen

Zalety

  • Szybki i profesjonalny kontakt z supportem,
  • Rozbudowana dokumentacja,
  • Dobre tutoriale,
  • Pozwala szybko stworzyć prostą grę,
  • Możliwości edycji umiejętności gracza są ogromne.

Wady

  • Mała liczba ulepszeń,
  • Brak zastosowania dla zdobytych punktów, czy złota,
  • Brak przeciwnika latającego,
  • Musisz grzebać w kodzie, aby móc zmieniać broń graczowi, bez podpinania inwentarza,
  • Nie zaleca się korzystać z fizyki unity, co może być dla niektórych dużą przeszkodą.