Od pierwszej linijki kodu

Od pierwszej linijku kodu, czyli w jakim języku napisano Minecrafta?

Sprzedany w ponad 23.993.266 egzemplarzach, dostępny w 77 językach na 15 platformach. Minecraft to obecnie najpopularniejsza sandboksówka, która w pełni oddaje sens stwierdzeniu, że najlepsze pomysły to te najprostsze. W odróżnieniu od wydawanych gier AAA, na których budżet schodzą miliony, dzieło Markusa “Notcha” Perssona kupiło serca graczy otwartym światem, którego limity istnieją jedynie w wyobraźni użytkownika.

Świat Minecrafta umożliwia dowolne modyfikowanie powierzchni gry, w trybie kreatywnym a także ryzgrywkę opierającą się na systemie survivalowym i craftingowym (w którym, aby przetrwać należy tworzyć odpowiednie narzędzia uzyskane z połączeń innych) Gra w dwóch trybach opiera się na zasadzie wirtualnej piaskownicy – do dyspozycji jest praktycznie nieskończony zasób cyfrowego budulca (bloków) z którego gracz może “zbudować” dowolny obiekt. Znajomość języka, w którym Minecraft został napisany (czyli tak naprawdę programowanie w Java) pozwoli na tworzenie modyfikacji i odpowiednich pluginów poszerzających jego możliwości.

Java – Serce Minecrafta

Minecraft2_Photo credit hobbymb via Foter.com  CC BY

Gra została stworzona w najpopularniejszym języku programowania (wg. Rankingu TIOBE z Marca 2016 roku) – Javie. Wydany w 1995 roku przez firmę Sun Microsystem obiektowy język programowania w założeniach projektowych opiera się min. na prostocie, niezawodności (kompilator Javy), bezpieczeństwu i niezależności (wirtualna maszyna Javy) Wśród społeczności graczy mówi się, że to właśnie specyfika javy sprawia, że Minecraft jest programem wymagającym sporej mocy obliczeniowej i cierpliwości użytkownika (częste “klatkowanie” etc) jednak jest to pogląd całkowicie fałszywy – mimo wątpliwości co do prędkości wykonywania kodu w pierwszych wersjach, tak już w następnych problem ów został ograniczony. To nie język wpływa na działanie gry – płynność Minecrafta wiąże się z “obsługą” grafiki, która wbrew wszelkim pozorom nie jest tak prymitywna jak mógłby sugerować sam gameplay. Jak w takim razie kod gry tworzy grafikę?

Z pomocą przychodzą biblioteki graficzne – to pliki zawierające zbiór danych koniecznych do renderowania grafiki. Opis danych oraz reguły ich wykorzystania określa tzw. API, (Z ang. Interfejs programowania aplikacji), definiowany na poziomie kodu źródłowego biblioteki. W Javie funkcjonują dwie podstawowe biblioteki graficzne – AWT oraz SWING – dostarczają programiście narzędzia niezbędne do tworzenia interfejsu programu (elementy GUI takie jak przyciski, togglebox’y etc) Wbudowane biblioteki graficznie nie posiadają jednak odpowiednich zasobów aby stworzyć grę pokroju minecrafta. Istnieją różne zewnętrzne biblioteki – takie jak SWT, JOGL czy właśnie JWJGL – niektóre z nich zapewniają dostęp do OpenGL – biblioteki do implementacji 3D zgodnej z większością kart graficznych obecnych na rynku.

JWJGL, czyli źródło kultowej już grafiki.

Minecraft3_Photo credit ejk via Foter.com  CC BY-SA

Lightweight Java Game Library to biblioteka typu open source, która zapewnia dostęp do natywnych API (skrót z ang. Interfejsów programistycznych aplikacji) takich jak OpenGL (z ang. Open graphic library) umożliwiających tworzenie docelowej grafiki 2D/3D, OpenAL (z ang. Open audio library) do generowania dźwięku i OpenCL (z ang. Open Computing language) do tworzenia aplikacji działających na różnych platformach o odmiennych rodzajach GPU, czy CPU. JWJGL jest niezwykle przydatna w procesie tworzenia gier opartych na javie – dobrze udokumentowana, open-sourcowa, wspierająca cross-platform otwiera przed developerem szereg przydatnych funkcji, bez których Steve – główny bohater Minecrafta, nie byłby w stanie ścinać drzew, pływać łódką czy błąkać się po wygenerowanych przez kod jaskiniach. JWJGL zapewnia nisko-poziomowy dostęp do wspomnianych wyżej, popularnych API, “Notch” – twórca minecrafta wykorzystał bibliotekę do stworzenia silnika na którym funkcjonuje minecraft. Początkującym jednakże zaleca się naukę tworzenia gier w specjalnie do tego stworzonych frameworkach, zanim rozpocznie się pracę bezpośrednio z JWJGL.

Świat moderów, czyli operacje na sercu gry

Jak już wiadomo kod źródłowy Minecrafta opiera się na Javie z wykorzystaniem biblioteki JWJGL do stworzenia audiowizualnej strony gry. Ingerencja w kod przez osobę o zerowych umiejętnościach programistycznych najprawdopodobniej skończyłaby się katastrofą, jednak dla osób ze znajomością tego języka możliwe jest wprowadzenie zmian, które wzbogaciłyby rozgrywkę – owe zmiany potocznie nazywane są modami. Moderzy minecrafta dodają nowe bronie do dostępnego arsenału, nowe potwory do wirtualnego bestiariusza i szereg innych bardziej, lub mniej wymyślnych funkcjonalności. Do godnych wspomnienia modów można zaliczyć Mo’Creatures, które wprowadza do gry 40 nowych gatunków stworzeń, Biomes O’Plenty poszerzający liczbę biomów (typów środowisk w świecie) o dodatkowe 75, czy Pixelmon Mod, który ku uciesze starszych fanów wprowadza pokemony do klockowatego świata gry.

Minecraft obudowany jest tysiącem linijek kodu – jego zrozumienie jest konieczne (a przynajmniej interesujących części) i stanowi niezbędny krok w próbach implementacji własnych wersji gry.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *