W pierwotnym dokumencie projektowym MecHorde do grywalnej alfy potrzebowałem jednej areny, jednego przeciwnika, jednego bossa i prostego dasha. Obecnie mogę ustawić mechowi stopień korozji, kupić części i dostać po śmierci rachunek za amunicję. Uważam, że projekt pozostaje pod kontrolą. Kim jest kontrola?
Zawodowo zajmuję się jakością gier. Najwyraźniej po całym dniu patrzenia, jak coś nie działa, uznałem, że brakuje mi własnego czegoś, co też nie działa. Tak zaczęło powstawać MecHorde: strzelanka o mechu, hordach przeciwników i podejmowaniu coraz gorszych decyzji przy wyborze coraz lepszych ulepszeń.
Dzisiaj można w nią zagrać bezpośrednio na Wciśnij Start po zapisaniu się przez Discord.. Ma sześciomisyjną kampanię (obecnie tylko za NDA), tryb Endless, wyzwania dzienne, hangar z wymiennymi częściami, kolekcję kart i rankingi. Ale znacznie ciekawsze od listy funkcji jest to, jak do tego doszło. Bo między „chcę postrzelać robotem” a „czy regeneracja tarczy tej jeżdżącej elektrowni nie jest jednak przesadzona” wydarzyło się parę rzeczy.

Na początku był GDD. I bardzo dużo wiary.
GDD, czyli Game Design Document, to dokument, w którym zapisujesz, jak będzie działała gra, zanim gra zacznie udowadniać, że się mylisz. Mój miał dziewięć stron. Tytuł „MecHorde” był jeszcze roboczy, grafika miała być neo-retro 2D, a w planach przewijał się Godot. Rdzeń pomysłu był prosty: twin-stick shooter, czyli poruszanie się niezależnie od kierunku strzelania, z falami wrogów, unikami i bossami sypiącymi pociskami. Trochę hordowej młócki, trochę bullet hellu, dużo ciężkiego żelastwa.
Minimalny zakres wyglądał wręcz ascetycznie. Jeden sprite mecha. Jeden typ przeciwnika. Jedna arena. Jeden zapętlony utwór. Dwa–trzy efekty dźwiękowe. Dash mógł nawet nie mieć animacji, wystarczyłoby przesunięcie i kilka cząsteczek.
W tym samym dokumencie miałem jednak pociąg-fortecę, trzy frakcje, sześć misji, cyfrowy kult i finał ingerujący w interfejs gracza. To ważna lekcja projektowa: jeżeli na jednej stronie piszesz „jeden przeciwnik”, a na poprzedniej projektujesz manifestację Boga przez sieć neuronową, to być może słowo „minimalny” rozumiecie z projektem nieco inaczej.
Jedna z końcowych notatek brzmiała: „Performance optimization (soon, not needed now)”. Zachowałem ją w historii. Lubię dokumenty historyczne pokazujące ludzi tuż przed katastrofą.
Trzy frakcje, żadnego dobrego pracodawcy
Od początku chciałem, żeby za strzelaniem stało coś więcej niż komunikat „oni są czerwoni, więc proszę nacisnąć lewy przycisk myszy”. Pilot eksperymentalnego mecha trafia w konflikt między imperialnym Związkiem Fukuryjskim, korporacyjnym Konsorcjum i cyfrową wspólnotą. Każda strona ma własną estetykę, własny język i przekonującą odpowiedź na pytanie, dlaczego akurat jej należy oddać władzę. Gorzej z odpowiedzią na pytanie, co z tego będzie miał ktokolwiek poza nią.
Kai sprzedaje posłuszeństwo w opakowaniu obowiązku wobec narodu. Gina potrafi tę samą relację opisać znacznie ładniejszym językiem kontraktu. Cyfrowa wspólnota obiecuje wyjście z tego układu, co w świecie MecHorde powinno od razu wzbudzić podejrzenia. Jeżeli trzecia oferta pracy wygląda idealnie, warto sprawdzić, czy w benefitach nie ma utraty osobowości.
Fundament przetrwał, ale konkretne misje się zmieniały. Pierwotna trzecia misja zakładała walkę na froncie i niszczenie artylerii. Później stała się przejęciem składu Ash Guard na zlecenie Giny. Dzięki temu działania gracza lepiej pokazywały, jak działa Konsorcjum: dostajesz zadanie, wykonujesz je sprawnie, a po drodze zaczyna być coraz mniej jasne, komu właściwie pomagasz.
Jeszcze mocniej zmieniały się sposoby opowiadania tej historii. W GDD były pomysły na rytmiczne uniki niczym w DDR i finał ściśle związany z muzyką. W późniejszej realizacji większą rolę dostały osłony, awarie systemów, ograniczenie widoczności, zapamiętywanie bezpiecznych przejść i walka z otoczeniem. Nie wszystko, co dobrze wygląda jako zdanie w dokumencie, dobrze działa z padem w ręce. Szczególnie gdy to zdanie brzmi „a teraz zrobimy jeszcze inną grę w środku tej gry”.
Najtrudniejszy przeciwnik kampanii: czekanie, aż ktoś skończy gadać
Pilotowi towarzyszy AIda. Jej komentarze i rozmowy z dowódcami pomagają nadać temu wszystkiemu charakter, ale szybko pojawił się problem typowy dla gry, która chce jednocześnie strzelać i opowiadać: co zrobić, gdy gracz już wszystkich rozwalił, a scenariusz ma jeszcze trzy akapity?
Można kazać mu czekać. Można też uznać, że przyszedł pograć robotem bojowym, a nie w symulator infolinii.
Praca nad misjami zaczęła więc obejmować także miejsce tekstu w rozgrywce. Kiedy ma wejść kolejna fala? Kiedy pojawia się cel do zbadania? Co można powiedzieć przez radio podczas walki, a co powinno dostać osobną, zatrzymaną scenę? Dialog nie może być jak wiata przystankowa w czasie podróży, pod którą gracz stoi i sprawdza telefon.
Doszły czytelniejsze komunikaty i zasady pomijania scen. W Endless AIda dostała reakcje na sytuację na polu walki, a później nagrane kwestie głosowe. To już nie jest samo okienko z tekstem, które próbuje konkurować o uwagę z pociskiem lecącym prosto w twarz. Choć nadal trzeba pilnować, żeby radio nie zmieniło się w podcast puszczony na głośniku w autobusie.
Endless miał być tym, co zostaje po kampanii. Został drugim projektem.
W pierwotnym GDD tryb nieskończony miał również sens fabularny: wojna nie kończy się tylko dlatego, że pokonałeś kilku ludzi przekonanych o własnej wyjątkowości. W praktyce Endless stał się wielkim laboratorium walki i rozwoju mecha.
Jego pierwsza opisana wersja miała piętnaście ulepszeń. Po fali wybierało się jedną z trzech kart, a kolejne kopie wzmacniały dany efekt. Bardzo zdrowa konstrukcja. W sam raz, żeby chwilę później zapytać: a co, gdyby strzałów było więcej? A gdyby się odbijały? A gdyby wróg po śmierci wybuchał? A gdyby od tego wybuchał następny?
I tak zamiast jednego pomarańczowego robota z karabinem pojawiła się możliwość zbudowania mobilnego naruszenia przepisów przeciwpożarowych.
Karty zaczęły tworzyć kombinacje. Drony osłaniające gracza mogą dostać uzbrojenie. Miecz zyskuje większy zamach, falę i kolejne efekty. Mixed Mortal Arms otwiera współdzielenie efektów trafienia między dodatkowymi źródłami obrażeń. Później doszły paczki kart z animacją otwierania, specjalne rzadkości i przeklęte ulepszenia oferujące moc za konkretną cenę. Bo zwykłe „+20% obrażeń” nie zawsze wystarcza.
Równolegle trzeba było uczyć tę maszynę umiaru. Eksplozje wywołujące kolejne eksplozje dostały wygaszanie siły w łańcuchu. Drony mają limit liczby aktywnych jednostek. Karty potrzebują warunków, wykluczeń i opisów pokazujących, co naprawdę zmieni kolejna kopia. Chcę pozwalać na absurdalnie mocne buildy, ale dojście do nich powinno wymagać czegoś więcej niż znalezienia jednego błędu w regulaminie wszechświata.

Feedback: „nie zwiększaj HP, pozwól mi się ruszyć”
Jedne z najważniejszych zmian zaczynały się od kogoś, kto zagrał i powiedział, że coś jest zwyczajnie wkurwiające.
Dobry przykład: kończysz falę przy krawędzi mapy, wybierasz kartę, a następni przeciwnicy pojawiają się tak, że od razu jesteś w potrzasku. Na papierze można odpowiedzieć „dajmy więcej życia”. Tylko że wtedy nadal jesteś w potrzasku, po prostu nieco dłużej. Rozwiązaniem były dwie sekundy na przemieszczenie po ostatnim wyborze nagrody. Mała zmiana w czasie, duża zmiana w poczuciu, że masz na coś wpływ.
Inny przypadek: samochody samobójcy potrafiły dogonić mecha, a potem dziwnie wisieć mu na zderzaku. Do tego dochodziły problemy na narożnikach budynków. Z perspektywy gracza wyglądało to podejrzanie. Z perspektywy kodu też, tylko bardziej szczegółowo. Poprawki dotyczyły pościgu, skręcania i wyznaczania trasy. Później same auta dostały kolejne iteracje zapalników, wraków i ostrzeżeń. Ta jedna jednostka przeszła więcej konsultacji niż niejeden projekt drogowy.
Były też rzeczy mniejsze, dopóki samemu się na nie nie nadziało: pauza zasłaniająca wybór kart po utracie fokusu, za małe opisy, mało widoczny reroll, dash w lewo lecący w lewo ekranu zamiast w bok względem mecha. Żadna z tych poprawek nie wygląda jak wielka funkcja na plakacie. Wszystkie razem decydują, czy chce się zagrać następny run.
Mech dorobił się hangaru. I kosztów utrzymania.
Ulepszenia zdobywane w runie to jedno. Drugą warstwą stało się przygotowanie maszyny przed wyjazdem: nogi, korpus, głowa, ramiona, generator i broń. Części zmieniają mobilność, odporność, gospodarowanie energią i sposób prowadzenia walki. Można iść w ciężką maszynę, szybszy zestaw albo bardziej wyspecjalizowaną konstrukcję. Do tego dochodzą laser, snajperka, granatnik i pociski naprowadzane.
To zmieniło także projektowanie kart. Ulepszenie pasujące do karabinu nie musi mieć sensu przy laserze. Snajperka inaczej traktuje rytm strzelania i pozycję gracza. Granatnik ma eksplozję, zasięg i własne zależności. Każda nowa zabawka oznacza coraz więcej pytań o połączenia z już istniejącymi zabawkami. Odpowiedź „pewnie nic złego” jest bardzo wydajnym sposobem produkowania regresji.
Po runie jest też rachunek: naprawy, strzelanie, boostowanie. Ostateczny wynik i zarobek pilota nie są tym samym. Mech potrafi więc wygrać bitwę i dopiero przy rozliczeniu odkryć, że prowadzi działalność gospodarczą.
A skoro gracz ma spędzać czas ze swoją maszyną, dostała ona kolory, kamuflaże, regulowane światła, a ostatnio osobne ustawienia zabrudzeń, rys, obtarć i korozji. Zaczynałem od jednego sprite’a. Dotarłem do miejsca, w którym mogę zdecydować, czy mój robot wygląda na serwisowany, czy na sprowadzony z zapewnieniem „Niemiec płakał, jak strzelał”.
A potem ta gra zrobiła się trójwymiarowa
Droga od pierwotnego pomysłu w Godocie doprowadziła do działającej wersji przeglądarkowej. Jej wcześniejsza oprawa budowała głębię projekcją 2.5D, bryłami budynków i warstwami. Później pojawił się eksperymentalny tryb 3D, odseparowany od normalnych wyników i postępów. Następnie nową oprawę dostała kampania, a potem zwykłe tryby Endless.
Nie sprowadzało się to do wstawienia modelu robota. Trzeba było zgrać geometrię, animacje, celowanie, przeszkody i ostrzeżenia o atakach. Jeżeli czerwone kółko mówi „tutaj wybuchnie”, to musi wybuchnąć tutaj. Perspektywa nie może być wymówką dla artylerii.
Doszły poruszające się nogi i gąsienice, cienie, uszkodzenia elewacji, tłuczone szyby, niszczone elementy ulic i ślady walki. Pociąg dostał rozbudowane wagony i maszynerię. Hangar zmienił się w warsztatową dioramę, a ekran tytułowy pokazuje aktualnie wyposażonego mecha przemierzającego przemysłowy tunel. W Endless pojawił się cykl dnia i nocy. Później odbicia, oświetlenie i kolejne ustawienia jakości.
W tym miejscu wróciła do mnie notatka „optymalizacja — później”. Później przyszło. Miało ze sobą profiler.
Przy tylu efektach stale wraca pytanie: czy wciąż widać, co gracz ma zrobić? Dlatego ustawienia grafiki rozdzielają dekoracje od informacji bojowych. Kurz może zniknąć. Ostrzeżenie przed pociskiem musi zostać czytelne.
AI, testy i ludzie, którzy próbują to zepsuć
MecHorde powstaje z pomocą AI, ale zanim wyłączycie odbiornik to musimy sobie coś wyjaśnić. Ja nie jestem programistą, ale ktoś mnie kiedyś nazwał artystą. Jestem w stanie sam zrobić grafikę, i ta będzie jeszcze „odręczna” podobnie jak muzyka. Znam tylko podstawy kodowania i AI dużo mnie uczy, także przy iteracjach i testach. To istotna część sposobu pracy nad projektem. Pozwala szybko sprawdzić pomysł, przebudować system i przejść do kolejnej wersji. Jednocześnie bardzo szybko okazuje się, że samo dodanie funkcji nie odpowiada na pytanie, czy gra się lepiej.
Trzeba określić zachowanie, sprawdzić efekt w działaniu i wychwycić rzeczy, które formalnie działają, ale są bez sensu. W grze pełnej wzajemnie wpływających na siebie ulepszeń szczególnie łatwo dostać dokładnie to, o co się poprosiło, i zupełnie nie to, czego się chciało.
Dlatego obok normalnej gry rozrastały się testy logiki i interfejsu oraz narzędzia diagnostyczne. Mogę uruchomić konkretną falę z określonymi wrogami i kartami, zamiast za każdym razem uczciwie przeżywać pół wojny, żeby zobaczyć jeden atak bossa. Takie próby są oddzielone od rankingu i nagród. Nawet moje własne oszustwa potrzebują procedury.
Doszła anonimowa telemetria: dane o przebiegu rozgrywek, buildach, obrażeniach i wyborach kart. Można zajrzeć do zakończonego runa i zobaczyć, z czym ktoś dotarł tak daleko. To pozwala skonfrontować „wydaje mi się, że ta karta jest dobra” z tym, co faktycznie dzieje się w grze.
Ale liczby nie zastępują playtesterów. Wykres nie napisze, że menu scrolluje się „w chuj mocno w dół”. Człowiek napisze. I od razu wiadomo, co poprawić.
Nawet Credits nie udało się zostawić w spokoju
Muzyka miała początkowo być jednym zapętlonym utworem. Rozrosła się do soundtracku przypisanego do poszczególnych części gry. A ekran Credits dostał zsynchronizowane napisy z pliku SRT, boczne equalizery oraz logo i tekst reagujące na rzeczywisty dźwięk.
W ten sposób lista nazwisk została małym teledyskiem. To prawdopodobnie najdokładniejszy model rozwoju całego MecHorde: pojawia się prosty element, przyglądam mu się chwilę i pada pytanie „a gdyby jeszcze…”.

Co zostało z pierwotnego pomysłu?
Całkiem dużo. Nadal chodzi o ciężkiego mecha, ruch między pociskami, sensowne uniki i broń, której używanie daje przyjemność. Nadal jest kampania o ludziach próbujących sprzedać pilotowi własną wersję porządku. Nadal jest wojna, która nie ma zamiaru skończyć się razem z ostatnią planszą.
Zmieniła się skala i liczba sposobów, na jakie można w tym świecie narobić problemów. Endless dostał własne warianty, w tym All Random i wspólne wyzwania dzienne. Doszły osiągnięcia, rozbudowane buildy i coraz więcej charakteru samej maszyny.
GDD pomógł ustalić, co chcę zrobić. Prototyp pokazał, co da się uruchomić. Testerzy pokazali, w co warto grać. Te trzy rzeczy czasem się zgadzają. W pozostałych przypadkach jest następna wersja.
Jeżeli chcecie sprawdzić, gdzie ten eksperyment dotarł, zapraszam na Discord Wciśnij Start – możecie poprosić o dostęp do wersji Alpha. Dajcie znać, co daje frajdę, co jest nieczytelne i w którym momencie gra zaczyna zachowywać się jak złośliwy sprzęt AGD. Szczególnie interesują mnie sytuacje, w których po śmierci myślicie „jeszcze raz”, oraz te, w których myślicie „co za debil to projektował” czy „no chyba cię pojebało”. To są dwie różne kategorie feedbacku. Obie bardzo przydatne.
A ja wracam do tej małej gry o dużym robocie.