Gra od kuchni – Technologia

Jeśli jesteś ciekaw jakiej głównej technologi używamy w grze – oto wpis dla Ciebie! Zacznijmy jednak od historii.

Pierwsza część gry była zrobiona wiele lat temu. W tamtych średniowiecznych czasach nie było dużego wyboru w kategorii technologii sieciowych. Jako, że gra miała działać w przeglądarce, trzeba było skorzystać z czegoś, co nie tylko obsługiwało taki przypadek ale również było dostępne u dostawców hostingu. W praktyce oznaczało to korzystanie z PHP, czy się tego chciało czy nie. Rezultat był średnio zadowalający – sporo błędów (często wykrywanych dopiero przez Was) i niska wydajność. Od tamtej pory, kiedy tylko pojawiał się temat wskrzeszenia gry, wiedzieliśmy, że trzeba do problemu podejść inaczej.

Pierwszą decyzją było odejście od PHP i stworzenie dedykowanego serwera gry od zera. Oryginalny wybór padł na C++ (dojrzałość i mnogość bibliotek) i przez długi czas Vis Arcana była tworzona w tej technologii. Początkowo progres był całkiem dobry – kod rósł w miarę szybko, wydajność była na wysokim poziomie i pojawił się nowe możliwości interakcji między graczami. Niestety, z czasem progres zaczął spadać, a zaczęły coraz bardziej doskwierać różnego rodzaju bugi. Gdy zrozumieliśmy, że najpierw musimy przywrócić poprzednią wersję gry, zamiast iść w pełną rewolucję, musieliśmy jeszcze raz zweryfikować użyte technologie.

Tym razem wygrał Rust – przyszłościowy język, nastawiony na wydajność i wysoki poziom bezpieczeństwa kodu. Co to oznaczało w praktyce? Oczywiście rozpoczęcie od nowa z nadzieją, że atuty nowej technologii przerosną koszty startowania od zera. Rust reklamuje się jako bardzo produktywny język, w którym większość błędów (pomijając logiczne) jest wyłapywana już na etapie kompilacji. Po ponad roku pracy z nim, muszę przyznać całkowitą rację – nowe moduły gry dodają się wyjątkowo szybko, a ilość błędów spadła praktycznie do zera. Dzięki temu mogę skupić się na dodawaniu faktycznych elementów rozgrywki, zamiast na debugowaniu przez godziny. Filozofia Rust jest prosta – jak się gra zbudowała, to działa 👍

Relatywnie niedawno został ustabilizowany feature wbudowanej w język asynchroniczności, co pozytywnie wpłynęło na grę. Dzięki temu możemy obsłużyć jeszcze więcej graczy, bez konieczności inwestowania w lepszy sprzęt. Wszystko to ostatecznie przełoży się na Was – całą społeczność. Możemy więcej czasu przeznaczyć na rozwój rozgrywki i wymyślanie kolejnych usprawnień, zamiast bić się z technologią. Dlatego też, każdemu kto pracuje z natywnymi językami, bardzo polecam przesiadkę na Rust – po pokonaniu progu wejścia, produktywność wręcz wystrzeliwuje w górę wraz z poziomem pewności, że wszystko działa jak należy. A gra idzie dzięki temu do przodu.

Dodaj komentarz