Przepis na indyka – Michał Marcinkowski

Przepis na Indyka – czyli nasz nowy cykl, w którym producenci opowiadają o swoich dokonaniach spotkał się z ciepłym przyjęciem. Dlatego też idziemy za ciosem i w każdą środę możecie spodziewać się kolejnych artykułów. Dzisiejszego dnia swoją pasją podzieli się z Wami Michał Marcinkowski, znany chociażby ze stworzenia takich tytułów jak Soldat czy King Arthur’s Gold. Zapraszamy na kolejny odcinek Przepisu na Indyka!

Jestem Michał Marcinkowski i możecie mnie znać z takiej gry 2d multiplayer Soldat. Teraz stworzyłem nową grę multiplayer w podobnym szybkim wojennym klimacie ale osadzoną w średniowieczu. Nazywa się King Arthur’s Gold i może mieliście szansę zagrać w wersję alpha. Właśnie wypuściłem po cichu nową wersję beta, nad którą pracowałem przez ostatni rok. Postanowiłem opisać jeden dzień z produkcji tej gry. Ale dzień nie byle jaki bo dzień release’a.

Sam akt wypuszczenia gry na rynek jest najtrudniejszym zadaniem jakie stoi przed twórcą i dlatego jest to najrzadszy etap do którego nieliczni tylko dochodzą. Znam tysiące twórców gier którzy chcą, tworzą gry ale nigdy ich nie wypuszczają na rynek. Dlaczego? Po części jest to syndrom rodzica który nie chce się rozstać ze swoim dzieckiem. Wiadomo klepiemy coś 2 lata i jest to nasz wychuchany dzidziuś. Ale musi przyjść ten dzień kiedy trzeba go oddać w ręcę graczy i wtedy tracimy nad nim kontrolę. Nie wiadomo czy wpadnie w złe towarzystwo komentatorów na Youtube, czy zostanie pożarty przez wilki prasy internetowej czy po prostu przepadnie w niepamięć i będziemy musieli się zmierzyć, że właśnie zmarnowaliśmy ponad 20 miesięcy życia. Poza tym samo doszlifowanie produktu jest z pozoru błachym ale cholernie ciężkim zadaniem. Może ten artykuł przybliży Wam dlaczego niektórzy nawet nie chcą myśleć o wydaniu gry. Zobaczycie jak fajnie się wszystko sypie. Zaczynamy mój dzień z życia niezależnego twórcy gry.

2 Maj 2013.
Dzień wyznaczony na tzw. Silent Release wersji beta King Arthur’s Gold.

Plan jest taki by wypuścić grę z samego rana po naprawienia trywialnego problemu.

7:05

Pobudka. Miała być 6:00 ale i tak jest dobrze. Kawy nie pije, za to magnez w tabletce i żeń-szeń. Pomaga na tzw. syndrom starczy:). U mnie przejawia się tym że naprawiam jakiś błąd ale w tym samym miejscu widzę inny i skupiając się na tym drugim zapominam co w ogóle tutaj robiłem.

7:50

Pakuję jeszcze dwie tabletki do plecaka, laptop i jadę do biura (za dużo powiedziane, wynająłem pokój w centrum żeby nie pracować w domu).

(teraz będzie dokładna kronika bo czytam z repozytorium kodu)

8:11

Dodaje możliwość rozpakowania kontenera z katapultą w rękach (przedtem trzeba było postawić na ziemi co było męczące)

8:21

Zwiększam promień wybuchu beczki z prochem o 20 pikseli. Im bliżej wypuszczenia gry tym bardziej myślę że nigdy za wiele rozwałki.

8:27

Orientuję się że kontener ma 250kg masy. Pewnie dlatego było go tak ciężko używać. Zmniejszam do 50kg.

8:39

Kontenery czasem spadają na spadochronie. Okazało się że wiatr je teraz wywiewa poza mapę :(.

9:00

Zjawia się Max z Australii na gtalk, właśnie wrócił z uczelni, u niego jest jakaś 17-ta. Max jest moim partnerem w tej grze, narysował wszystkie grafiki, razem wymyślamy tą grę i kodujemy. Wszystko online.

10:00

Rozmawiamy z Max’em o naszych odczuciach w związku z release’em. W taki dzień wychodzą na wierzch wszystkie rzeczy które spychaliśmy pod dywan nieświadomości. Uprawa zboża w grze jest bezsensowna. Wystarczy ściąć jedną rośline, żeby jednym ziarnkiem pszenicy wyprodukować 10,000 chlebów w kuchni.

10:31

Zmniejszamy ilość do 3-ech chlebów na ziarno. (będzie to dalej temat do tworzenia memów ale trudno).

18:30 (czas australijski)

Max wychrzania cały system budowania drabin w grze by zastąpić go lepszym sposobem. Kiepski pomysł by robić coś takiego na parę godzin przed wypuszceniem gry ale daję mu zielone światło.

11:32

Naprawiam błąd gdzie gracze poza ekranem czasem pojawiali się w twoim polu widzenia jako zombie (po prostu używali ostatnio otrzymanych przez siec klawiszy z sieci). Był to okropny błąd którego nie mogłem naprawić od tygodnia. To dodaje mi pewności siebie.

13:54

Wypuszczam test aby zagrać w naszym małym 10-15 osobowym gronie testerów. Spotykamy się na kanale #kag.testing na IRC. Podczas gry wychodzi na wierzch błąd który powoduje szerokie horyzontalne pasma na mapie po których można chodzić jak po drabinie ale w powietrzu. Drugi błąd – przy budowaniu drabiny można nagle latać. Główkuje czemu to się stało. Dośc poważne. Ale chyba powód jest oczywisty.

14:11

Używam mojej magicznej mocy szybkiego kodowania i błąd jest naprawiony.

Jesteśmy w sumie gotowi, mówie do Maxa że muszę iść coś zjeść bo po wypuszczeniu gry będę przykuty do kompa bez jedzenia. Co będzie prawdą jak się zaraz okaże.

14:30

Wychodzę na ulicę zjeść coś. Czego nie przewidziałem to że jest 2 Maj i tzw. normalni ludzie wcale nie pracują tylko siedzą w domu albo na działce i mają życie towarzyskie.

14:45

Warszawa jest pusta, wszystko pozamykane. Podchodzę do mojego ulubionego miejsca z żarciem, witają mnie tylko panowie którzy malują drzwi. Okazuje się że każda knajpa wybrała właśnie ten dzień na remont lokalu.

Teraz będę mierzył czas odległością gdyż czas to też przestrzeń.
Z ulicy Pięknej przechodzę na Hożą w poszukiwaniu jedzenia (1km).

Całuje malowaną klamkę.

Z Hożej idę Marszałkowską do placu Konstytucji (1km). Nic.

Na drugi plac Zbawiciela (0.5km). Nic.

Muszę się wrócić (0.5km).

Idę na trzeci plac Politechniki (0.5km).

Ratuje mnie chińczyk na rogu. Szef wietnamczyk najwyraźniej nie ma pojęcia o polskich świętach i bardzo dobrze. W środku kolejka takich samych osób jak ja które muszą pracować w długi weekend i są głodne (ochroniarz, kierowcy karetki, strażak).

16:41

Wracam do biura, miałem przynajmniej spacer w tym dniu. Naprawiam błąd w którym sektory mapy w których nie wolno budować nie były przesyłane do gracza. Oznaczało to że można było zabudować graczy pojawiających się na respawnie i uniemożliwić im grę :(.

17:00

Max przez cały czas grał z testerami. Jest OK można wypuszczać poza drobnym szczegółem. Połowa testerów nie może zupdate’ować do najnowszej wersji. Update jest automatyczny po uruchomieniu gry. Przymykam oko na ten fakt i obwiniam ich za nieumiejętność prawidłowego kliknięcia na ikonkę z grą.

17:08

Wysyłam kod do repozytorium „release”. Oznacza to że nasz Build Serwer zacznie budować wersję gry do oficjalnego wydania. To już prawie ta chwila. Testerzy zaczynają się podniecać na IRC.

17:21

Jeden z testerów dla żartu mówi, że teraz sobie zwiększy wysokośc skoku i prędkośc gracza żeby pokonać wszystkich noob’ów – edytując po prostu skrypt. Śmieje się z niego że to niemożliwe bo gra używa skryptów serwera – przy podłaczeniu są ściągane – nie można tak po prostu sobie zedytować własnych skryptów.

18:07

Naprawiam błąd który umożliwiał edycję własnych skryptów co umożliwiało zwiększenie wysokości skoku i prędkości gracza.

18:40

Dostaję instalator od Toma (anglik który pomaga w różnych rzeczach). Wściekam się na niego bo ikonka po instalacji ma tytuł „King Arthur’s Gold Full”, powinno być Beta nie Full.

18:44

Mój gniew szybko przemienia się w marazm gdy okazuję się że gra, czy Beta czy Full i tak nie działa po instalacji. Update’uje się do jakiejś starej wersji sprzed 7-miu miesięcy. Zaczynam rozumieć o co chodziło testerom.

19:45

Po godzinie bezowocnych poszukiwań błędów postanawiam przeczytać logi z Build Serwera. Okazuję się że serwer Windows ma jakiś problem z jednym plikiem. Nie może uzyskać praw dostępu dla niego. Usunięcie pliku nic nie daje. Windows już tak ma. Ryan (nasz admin w USA) na szczęście przygotował skrypt na tę okazję o nazwie „rebootwindows.php”. Skrypt zadziałał, serwer się zrestartował i problemy zniknęły. Dwie lekcje:

1. Jednak warto czytać logi gdy coś idzie nie tak, po to są.

2. Restart Windows pomaga na wszystko.

20:00

Zaczynam już wysiadać ze zmęczenia po 12-tu godzinach. Wszystko mnie boli. Zaczynam czuć nietypowo nudności. Za długo patrzę w monitor. Biorę dwie tabletki żeń-szeń.

20:14

Testerzy alarmują że przy ścięciu drugiego drzewa gra się zawiesza. Początkowo zlewam ten fakt bo przecież wszystko działało godzinę temu, a ja nic nie zmieniałem w skryptach drzew. Na szczęście żeń-szeń zaczyna działać i sprawdzam. Rzeczywiście jest problem.

20:30

Okazuję się że naprawienie błędu z sektorami mapy spowodowało powstanie błędu z drzewami.

20:41

Wszystko jest, instalator pod Windows działa, gra się odpala. Mam już ogłaszać ten fakt na forum gdy coś mnie tchnęło i postanowiłem zagrać z wersji z instalatora jak przeciętny gracz (wcześniej grałem zawsze z poziomu Visual Studio).

21:25

Naprawiam błąd który powodował że nie pojawiała się w ogóle lista z serwerami więc nie można było nigdzie grać (przypominam że gra jest tylko multiplayer). Oczywiście tylko jeśli się grało normalnie nie z Visual’a jak to wcześniej robiłem.

Wszystko idzie mi już topornie, jestem cholernie zmęczony. Coś co powinno zająć 5 minut zajmuje 35.

21:56

Naprawiam błąd gdzie niektóre grafiki były zupełnie przezroczyste. Oczywiście tylko w wersji z instalatora.

22:00

Dobra, idę ogłosić wreszcie sprawę na forum. Post jest już wcześniej przygotowany przez Max’a. Wystarczy tylko zamieścić linki do plików, odpowiednio Windows, Linux, Mac i Linux serwer dedykowany.

22:15

Ostatnie 15 minut szukam gdzie są zlokalizowane zipy i instalatory stworzone przez Build Serwer. Nigdzie ich nie mogę znaleźć. Zawsze były?! Jestem kompletnie ogłupiały tym faktem. Mam grę gotową ale nie mam jak jej dystrybuować do graczy. Ryan który zarządza serwerem śpi smacznie w Chicago. Max też już poszedł spać bo było po północy. Jestem zdany tylko na siebie.

22:27

Mówię testerom na IRC że sorry, trzaskam pokrywą od laptopa i idę do domu spać.
Nazajutrz Ryan mi tłumaczy, że Build Serwer nigdy nie miał tworzyć zipów w wersji release. Muszą być ręcznie przygotowane. Ustaliliśmy tak parę miesięcy temu aby zapobiec przeciekom. Zupełnie o tym zapomniałem. Tak jest gdy mózg przestaję już funkcjonować. Przypomina fabrykę która bo kilkunastu godzinach po prostu zaczyna wyłączać pewne funkcje.

Żeby nie przedłużać już, następny dzień 3 Maja wyglądał podobnie do południa kiedy to wreszcie gra została wydana po cichu na forum. Obyło się bez większych problemów. Poza tym że wersja na Maca w ogóle nie działała bo nikomu wcześniej się nie chciało sprawdzić czy działa. Mimo to przyznam że był to jeden z najszczęśliwszych dni w moim życiu. Tak samo jak następny kiedy widziałem że gra hula i mogłem sobie spokojnie pograć we własną grę z innymi graczami. Gra jest po prostu najlepsza na świecie, nie ma niczego równie fajnego, nie mam żadnych oporów w ten sposób o tym mówić. Warto robić gry! Warto je wydać!

Poniżej kilka przykładów pochlebstw które otrzymałem od graczy podczas gry. Wyciąłem je z chat’a wewnątrz gry:

Wewnatrz