Czytany Wpis

Prolegomena do programowania w środowisku Roblox, czyli w co ja się wpakowałem.

Prolegomena do programowania w środowisku Roblox, czyli w co ja się wpakowałem.

Nie pierwszy to już raz ignorancja zaprowadziła Starego Nudziarza na manowce. Niestety tym razem dodatkowo musiał się z tym publicznie obnosić. W efekcie czego ma teraz problem czy też pisząc bardziej kwieciście: musi zjeść tę mało apetyczną żabę.

We wpisie sprzed tygodnia wspominałem, że już od pewnego czasu szykowałem się nie tyleż do stworzenia cyklu o tym jak zacząć programowanie w młodym wieku, co bardziej chciałem zachęcić Młodego Nudziarza do nieco bardziej “pożytecznego” spędzania czasu przed komputerem niż gry napadalsko-bandyckie. Pierwotnie planowałem zaproponować mu korzystanie z Pythona w środowisku Minecrafta, bo po pierwsze znam jako tako ten język i kojarzę Minecrafta, gdyż swego czasu pewna osoba mnie zmuszała do wspólnej zabawy, choć finalnie wielkim fanem tej produkcji nie zostałem. Co więcej całkiem sporo jest na ten temat materiału w sieci, a nawet dostępne jakieś książki w naszym narzeczu. Nic tylko brać się do roboty.

Niestety zacząwszy zgłębiać ten temat, doszedłem do wniosku, że może się to skończyć tak samo jak wcześniejsza przygoda Młodego Nudziarza ze Scratchem, czyli zupełnie go to nie porwie czy wręcz w pewnym momencie znudzi i zniechęci, a przecież głównie o wzbudzenie pewnego zapału mi chodziło. Trochę zrezygnowany przypadkowo trafiłem na artykuł o kodowaniu w Robloxie i tak się podpaliłem wówczas, że wymyśliłem sobie, że nie tylko Młodego Nudziarza w to zagadnienie wciągnę, ale być może to samo uda się z czytelnikami niniejszego bloga. Pech chciał, że ten artykuł niewiele mówił o samej grze, a jeszcze mniej o sposobie kreowania autorskich rozwiązań. Do niedawna Roblox kojarzył mi się z takim uproszczonym do bólu Minecraftem, choć tak po prawdzie ani sekundy przy tym pierwszym tytule nie spędziłem. Teraz wiem, że nie powinno się oceniać książki po okładce, bo poza podobnym sposobem prezentowania świata, to punktów wspólnych jest raczej niewiele między tymi produkcjami, choć zapewne da się na bazie Robloxa zrobić grę podobną do Minecrafta.

To był ten pierwszy grzech ignorancji, tak typowej dla piszącego te słowa. Drugi błąd polegał na tym, że wykorzystanie tego środowiska do budowy gry będzie świetnym pomysłem dla rozpoczęcia przygody z “poważnym” kodowaniem, czyli takim, gdzie samemu musisz ten kod klepać, a nie korzystać z gotowych klocków (czy właściwie puzzli) jak w Scratchu. Jednak na bazie tego co udało mi się przeczytać i zobaczyć w ciągu ostatnich kilku dni, mogę już chyba napisać, że środowisko programistyczne Robloxa to nie jest dobry wybór na początek z co najmniej dwóch powodów.

Po pierwsze, duża część aktywności, a właściwie to całość zabawy w tworzenie gry odbywa się Roblox Studio. Niestety większość naszych działań sprowadza się wówczas do klikania po interfejsie, a nie polega na klepaniu kodu. Wymaga to więc dobrej znajomości tej aplikacji czy szerzej filozofii środowiska Roblox Studio oraz sposobów i zasad manipulowania jego elementami. Prawdę powiedziawszy - choć mogę się mylić, bo wciąż dopiero liznąłem temat - da się zbudować prostą a nawet trochę bardziej złożoną grę bez napisania linijki kodu, korzystając z gotowych elementów i sprawnie poruszając się po opcjach interfejsu. Tym niemniej by tworzyć naprawdę "pożyteczne" skrypty trzeba dobrze otrzaskać się z API gry, więc zanim zaczniemy myśleć o programowania w Robloxie musimy przyswoić sporo wiedzy nie do końca bezpośrednio z kodowaniem związanej. Oczywiście to samo można powiedzieć o kodowaniu w środowisku Minecrafta, ale wydaje mi się, że jest tego zdecydowanie mniej, a przynajmniej można w nim tworzyć naprawdę efektowne rozwiązania bazując wyłącznie na metodach udostępnionych dla zwykłych bloków.

Dołóż do tego - to ten drugi powód - fakt, że pisanie skryptów wymaga tak naprawdę wcześniejszej znajomości fundamentów programowania jak metody sterowania przepływem (pętle, instrukcje warunkowe) czy funkcje. Niestety umiejętność pisania kodu w Robloxie wymaga przede wszystkim dobrego opanowania obiektów oraz dostępnych dla nich metod i właściwości, a to już trochę wyższa szkoła jazdy.

Niestety moją ocenę potwierdza cykl wpisów w Programiści Juniorze poświęconych temu zagadnieniu. Tak się bowiem złożyło, że zaraz po tym, gdy wpadłem w panikę po przejrzeniu kilku tematów na oficjalnej stronie dla deweloperów Robloxa, zakupiłem dwa numery tego czasopisma, gdzie były kolejne odsłony cyklu autorstwa Marcina Zajkowskiego. Na pierwszy rzut oka wszystko wyglądało zachęcająco, bowiem dostajemy na dzień dobry propozycję wspólnego stworzenia własnej wersji Fortnite’a. Niestety problem zaczyna się zaraz po przejrzeniu kilku dalszych akapitów. Niby autor tłumaczy czym są zmienne, coś tam wspomina o działaniu pętli, ale tak zdawkowo, że równie dobrze można pominąć te fragmenty.

Absolutnie nie zarzucam tutaj autorowi jakiejś fuszerki, bo dla osoby jako tako obytej z programowaniem to całkiem niezły tekst i ćwiczenie praktyczne. Niestety pismo nazywa się Programista Junior i raczej nie powinno się zakładać wiedzy oraz doświadczenia w kodowaniu, a skoro jednak już takie założenie zostało poczynione, to co mają na celu zdawkowe tłumaczenia czym są zmienne czy jak działają inne podstawowe elementy programowania. Tym niemniej ten cykl wpisów jak na dłoni pokazuje, że istota tworzenia efektywnych skryptów do Robloxa sprowadza się przede wszystkim do dobrej znajomości jego środowiska programistycznego i dostępnych w tym ostatnim obiektów, na których trzeba będzie następnie operować. Innymi słowy: skryptowanie Robloxa wymaga od adepta wcześniejszego opanowania podstaw kodowania oraz umiejętności sprawnego poruszania się po Roblox Studio. Ewentualnie można próbować to robić równocześnie, ale chyba nie o to chodzi, by młodego człowieka zarzucić wiedzą, zwłaszcza gdy celem jest nie tyle sama zabawa w tworzenie gier, ale wprowadzenie w świat kodowania.

To wszystko co napisałem wyżej powoduje, że w mojej opinii nauka tworzenie skryptów dla Robloxa jak wprowadzenie do świata kodowania dla osoby z zerowym doświadczeniem w programowaniu nie jest - w mojej opinii - dobrym wyborem. Zaś z mojej perspektywy  dodatkowe nieszczęście polega na tym, że w przypadku nauki pracy, w jakimś środowisku graficznym, jakim jest właśnie Roblox Studio, dużo lepszym medium przekazywania wiedzy w tym zakresie jest kurs wideo, a nie wpisy blogowe, które z natury rzeczy nie są przesadnie długie.

Skoro jednak padły niedawno pewne deklaracji spróbuję podjąć rękawicę, choć podejrzewam, że zagadnienie samego Roblox Studio zostanie potraktowane nieco po macoszemu. To wszystko powoduje, że start właściwego kursu musi w takim układzie zostać nieco odroczony w czasie i być może nie będzie tak fantastyczny, jak pierwotnie zakładałem.