Zaloguj się | Brak konta? Zarejestruj się!
Chatting with Akananto

Pogaduszki z głownym programistą CipSoftu

Napisane przez CipSoft (Przetłumaczone przez Korni) on piątek 06 listopad 2009
Wielu z Was zna już zapewne z nazwy głównego programistę CipSoftu - Akananto. Gdy nadchodzi czas testowania aktualizacji, Akananto jest doskonale znaną postacią wśród testerów. Jest jedną z osób odpowiedzialnych za odpowiadanie na pytania oraz informowanie Was na bieżąco o postępach w naprawie odnalezionych podczas okresu testowego błędów.
Gracze często zadawali pytania dotyczące niewspominanych nigdy programistów pracujących dla CipSoftu, dlatego postanowiliśmy ukraść Akananto jego przerwę na lunch i wykorzystać ją na krótką rozmowę.

Lunch with Akananto



CM: Akananto, powiedz nam co nieco o sobie. Jak długo pracujesz dla CipSoftu i czym dokładnie się zajmujesz?

Akananto: Pracę dla CipSoftu rozpocząłem prawie dokładnie 5 lat temu, co czyni mnie 'najstarszym' programistą w całej ekipie. Pierwsze półtorej roku spędziłem pracując nad nowym edytorem mapy gry, rozwijanym w celu ułatwienia pracy osobom zajmującym się rozbudową świata Tibii. Po ukończeniu tego zadania, powierzono mi pieczę nad klientem gry, czym zajmuję się aż do teraz. W miarę jak rozrastała się nasza firma, poszczególnym osobom przydzielano funkcję koordynatorów, a ja zostałem koordynatorem pracujących dla CipSoftu programistów. Od wtedy właśnie mam na głowie sporo nie zawsze wesołej pracy organizacyjnej, oczywiście jako dodatek do obowiązków programisty. Co więcej, kiedykolwiek ktoś stara się o pracę w charakterze programisty, jestem jedną z dwóch osób przepytujących takiego kandydata. Jest to prawdopodobnie najtrudniejsza część mojej pracy, na szczęście jest to też dość interesujące.

Bunch of programmersCM: Czy jako koordynator zespołu programistów, mógłbyś ich nam po krótce przedstawić?
Akananto: Jasne! Aktualnie pracuje dla nas 12 programistów oraz Stephan, jeden z Bogów, który w dalszym ciągu programuje co nieco. Dodatkowo, mamy tu jeszcze osobę piszącą pracę dyplomową oraz dwóch stażystów.
Sześciu z nas pracuje bezpośrednio nad Tibią. Stephan zajmuje się serwerami, dwie osoby pracują nad stroną gry i opracowywaniem narzędzi dla pracowników Działu Obsługi Klienta. Jeden programista zajmuje się serwerem płatności i płatnościami w ogóle, a kolejny rozwojem nowego, flashowego klienta. Ja natomiast odpowiadam dalej za klient gry, narzędzia dla pracowników i koordynuję nasze działania.
Trzech programistów pracuje nad TibiaME: jeden sprawuje pieczę nad serwerem, jeden nad klientem gry, a jeden nad stroną internetową. Edytor mapy do TibiaME jest w zasadzie ten sam, dzięki bardzo podobnej technologii, i zajmuję się nim ja.
Trzech programistów pracuje nad naszym najnowszym projektem - Fiction Fighters.
Ostatnia osoba testuje oprogramowanie klienta gry, serwerów, strony internetowej i narzędzia kontrolnego. W pozostałym czasie testuje też nową zawartość światów gry.


CMs: No dobrze, ale kto właściwie zajmuje się wprowadzaniem nowych funkcji? Ta sama osoba, która zajmuje się serwerem?
Akananto: Niekoniecznie, zależy to od tego jaką funkcję chcemy dodać. Czy dotyczy tylko serwera, czy może też klienta gry i strony internetowej? Zazwyczaj chodzi o wszystkie trzy. Na przykład nowy tryb wojen. Do klienta trzeba było dodać jedynie nowe ikonki. Większość zmian zaszła na serwerze gry, natomiast wypowiadanie wojen wymagało modyfikacji strony internetowej.

CM: Dzięki za wyjaśnienie Smile Nad czym pracujesz dokładnie teraz?
Akananto: Cóż, wszyscy dalej mamy ręce pełne roboty związanej z wprowadzeniem jesiennego patcha, choć w momencie ukazania się tego wywiadu powinniśmy to już mieć za sobą. Patch ma niestety lekkie opóźnienie z racji ilości wprowadzonych w nim zmian.
Programista zajmujący się serwerem obsługującym płatności miał dużo pracy związanej z wprowadzeniem opcji kupowania Recovery Key'ów i innych usług, które zostaną udostępnione w najbliższym czasie.
ebmasterzy kończą pracę nad wprowadzeniem wszystkich funkcji związanych z jesiennym patchem i udostępnieniem nowych rodzajów płatności na stronie. Dodatkowo, wprowadzili oni niedawno opcje pozwalające rozpocząć nam współpracę z pośrednikami w sprzedaży naszych produktów.
Zarówno klient gry jak i edytor mapy nie wymagały wielkich zmian, jednakże planuję już kilka modyfikacji do wspomnianego edytora, tak, aby umożliwić przyszłoroczne zmiany i nowinki - ale ciiii, to sekret!



CM: Sekret? Szkoda...
Ale idźmy dalej. Wielu graczy pyta o używane w rozwoju gry języki programowania. Czy mógłbyś przybliżyć to pokrótce w zrozumiałym w miarę dla wszystkich języku?

Akananto: Err...postaram się Smile Praktycznie wszystkie usługi po stronie serwera programowane są w języku C++ i działają na serwerach Linuxowych. Ważna jest dla nas przede wszystkim płynność i szybkość działania, a C++ jest dalej jednym z liderów w tej dziedzinie.
Strona internetowa napisana jest w PHP, udostępniana jest natomiast na serwerze Linuxowym z zainstalowanym Apache.
Klient gry napisany jest także w C++, zarówno pod Windowsa jak i Linuxa. Eksperymentalny klient flashowy pisany jest w Action Script 3 i rozwijany za pomocą Flex SDK.


CMs: Powiedziałeś "eksperymentalny" klient flashowy. Jak tam postępy w jego rozwoju?
Akananto: Po pierwsze chcę powiedzieć, że klient ten nie jest jeszcze niczym pewnym, a tylko naszym wewnętrznym projektem. Mamy duże nadzieje na wprowadzenie do Tibii klienta wykonanego w technologii Flash.
Gdy przyszedł nam do głowy ten pomysł, wykonaliśmy kilka szybkich testów, z pozytywnym rezultatem. Zatrudniliśmy więc na pełny etat programistę wyłącznie do tego projektu. Dzięki temu już widzimy znaczne postępy na naszym wewnętrznym test serverze. Przykładowo - działa już logowanie, prawidłowo wybierany jest świat gry, jest on też prawidłowo wyświetlany: krajobraz, potwory, animacje, wypowiedzi i kilka rzeczy, których nie ma jeszcze w Tibii. Systemy kanałów wypowiedzi działają też całkiem dobrze.
Niestety poruszanie się i interakcje dalej troszkę kuleją – mamy więc przed sobą jeszcze trochę pracy. Napotkaliśmy też na problemy z hotkey'ami i menu kontekstowymi, ale ciężko nad tym pracujemy i postaramy się znaleźć wyjście z tej sytuacji. Jeżeli nam się uda, Flash klient będzie dostępny, jeżeli nie - trudno, zostaniemy z tym co mamy. Zapewniamy natomiast, że dołożymy wszelkich starań, żeby nasze plany jednak się powiodły.


CM: Trzymamy kciuki żeby wszystko wypaliło!
Powróćmy jednak do dzisiejszej Tibii. Planowanie patcha czy też aktualizacji – pokrótce, co i jak?

Akananto: Postaram się opisać to na przykładzie aktualnego patcha. Po wprowadzeniu do gry czarnych czaszek, dodany teraz system wojen jest drugim efektem wewnętrznych dyskusji. Po zakończeniu takich dyskusji, Product Managers, czyli Guido i Craban, dali nam listę planowanych zmian. Zazwyczaj potrzebne jest też ustalenie kilku szczegółów pomiędzy programistami a Product Managerami. Gdy wszystko jest już uzgodnione w każdym detalu, bierzemy się do programowania i przenoszenia nowości na nasz test server, tak, by można było testować wszystko już od samego początku. Jest też wyznaczona data, po której nie dodajemy już niczego nowego, skupiamy się jedynie na poprawkach. Dopiero gdy Product Managers otrzymają zielone światło od testera, mogą zająć się przygotowaniem zmian na prawdziwych serwerach gry.
Oczywiście jeden tester nie ma szans odnaleźć wszystkich błędów, dlatego do testów zapraszamy inne osoby, pracowników, tutorów, senatorów, przedstawicieli stron fanowskich, a czasem i wszystkich graczy.


CM: Czy programiści grają w Tibię?
Akananto: Przez pewien czas faktycznie graliśmy i dołączyliśmy do sekretnej gildii członków CipSoftu, z czasem jednak nasza aktywność znacznie spadła. Może to zabrzmieć dziwnie, ale Tibia to nasza praca, i po powrocie do domu wolimy się od niej zdystansować i myśleć o czym innym. Ale cóż - ja jestem bardzo aktywny na test serverach! Zabawnie jest patrzeć co gracze wyprawiają, jak próbują rozwiązać pewne problemy, sytuacje i naturalne ograniczenia. I oczywiście zawsze można poprawić ewentualne błędy.

hackingCM: Chyba faktycznie lubisz spędzać czas na testserverach!
Mamy jeszcze kilka pytań bardziej ogólnej natury, które natomiast trapią wielu graczy. Przykładowo - hacking. Są gracze, którzy twierdzą, że klient gry nie jest bezpieczny.

Akananto: Klient gry jest tak bezpieczny tak, jak komputer, na którym jest on zainstalowany.
Nie możemy tak naprawdę zrobić nic, jeżeli komputer jest już zainfekowany wirusami czy też instalujecie na nim nielegalne oprogramowanie. Oczywiście, możemy próbować jeszcze bardziej zabezpieczać niektóre rzeczy, ale osobom, które zainfekowały wasz komputer, nie zajęłoby wiele czasu przełamanie takich fikcyjnych zabezpieczeń. Grajcie tylko na komputerze, którego jesteście pewni. Komputerze, który jest na pewno wolny od złośliwego oprogramowania. Dopóki gracie na "czystym" komputerze, połączenie pomiędzy klientem i serwerem jest całkowicie bezpieczne. Kładziemy wielki nacisk na technologie szyfrowania danych, znane zresztą dobrze wszystkim programistom - technologie te zapewniają że będziecie mogli grać bez przeszkód i bez ryzyka utraty danych konta.


CM: Niektórzy gracze mówią, że do bezpiecznego grania wystarczy stała aktualizacja antywirusów, czy to prawda?
Akananto: Właściwie nie. Oczywiście to pomaga, ale niekoniecznie pomoże w przypadku keyloggerów przygotowanych pod Tibię. Antywirusy wyszukują tylko znane im wersje keyloggerów, mogą natomiast nie wykryć ukrytego, przykładowo w liczniku doświadczenia, złośliwego kodu, przygotowanego wyłącznie do Tibii i nieznanego twórcom oprogramowania antywirusowego.

CM: Kolejną rzeczą, o którą obwiniani są programiści Tibii, są lagi, kicki i freezy. Co możesz powiedzieć na ten temat?
Akananto: Mamy tu zazwyczaj do czynienia z trzema rodzajami "lagów":
Lag w kliencie, kiedy nie nadąża on z wyświetlaniem grafiki i liczba klatek na sekundę spada znacząco. W Tibii może się to zdarzyć na przykład wtedy, gdy po raz pierwszy wchodzimy do pomieszczenia z dużą ilością potworów. Klient musi wtedy przesłać dużą ilość danych do karty graficznej, a to zajmuje sporo czasu.
Potem lagi na serwerze. Zdarzają się, gdy serwer potrzebuje zbyt dużo czasu do przetworzenia danych. Pamiętam przypadek, gdy gracz, lider gildii, pchał plecak z całą zawartością swojego GH, które zostało wyczyszczone podczas update'u. Znajdowało się tam około 80 000 przedmiotów. Server lagował przez kilka sekund po każdym przeniesieniu plecaka. Ten problem został już naprawiony. Jeżeli sytuacja tego typu zdarzy się jeszcze kiedyś, odkryjemy to szybko dzięki temu, że lagi po stronie serwera są logowane. Jako że wszystko jest zapisane, łatwo odnajdziemy i naprawimy taki problem.
Ostatnim i najpowszechniejszym powodem lagów jest sieć internetowa. Programiści nie mają tu nic do gadania. Jest na to proste wyjaśnienie: Lagi tego typu zdarzają się, gdy opóźnia się komunikacja pomiędzy klientem gry i serwerem. Wszystkie drobne pakiety muszą przebyć długą drogę od Waszych komputerów do naszego serwera. Przechodzą przez cały świat, masę routerów i dostawców internetu. Na każdym kroku mogą zdarzyć się opóźnienia. CipSoft, tak jak i gracze, może kontrolować tylko sieć od swoich komputerów do dostawców internetu, dalej jesteśmy zdani na łaskę i niełaskę internetu.


CMs: Miejmy nadzieję, że internet będzie działał bez zarzutów!
Nie mamy w zanadrzu większej ilości pytań, tak więc pozwolimy Ci teraz wrócić do swoich obowiązków. Dziękujemy Ci za poświęcenie nam swojej przerwy na lunch!

Akananto: Nie ma sprawy, cała przyjemność po mojej stronie Smile

Mamy nadzieje, że podobał Wam się wywiad z Akananto oraz że zapewnił on odpowiedzi na kilka z nurtujących Was pytań,
Wasi Community Managers