Typowe pytanie jak się używa czyjegoś SDK. Czasami można ochujać po prostu. Przykład:
Wydawca dostarcza Ci SDK które jest swoją drogą bardzo dobre – konkretny engine, ale dopiero co zaczął wspierać 3d. Okazuje się, że przez tydzień 50% czasu grafika i programisty idzie na to by ‚problemy z 3d zostały rozwiązane’. Wydawca sugeruje przejście na 2d, odmawiam. Po drugim tygodniu okazuje się, że prawie wszyscy programiści SDK ze strony wydawcy są na urlopie – developerzy dalej 50% swojego czasu męczą się z tym by 3d działało. Jedno rozwiązanie: przerzucamy się na 2d, wydawca się zgadza, ale po godzinie dochodzi do niego, że nie chce tego robić – wymusza 3d.
Przez grube 3 godziny spalam pół paczki fajek i negocjuje z wydawcą. Próbuje wszystkiego, od każdej strony:
– nie będziemy robić nadgodzin by naprawiać SDK
– programista nie będzie w stanie się skupić na samej grze tylko będzie musiał się babrać z tym by 3d w ogóle się odpaliło
– z doświadczenia wiem, że jak jakaś biblioteka nie działa tak jak ma działać trzeba ją porzucić jak najprędzej, albowiem problemy będą się mnożyć.
– jak mamy używać tego 3d API naprawcie wszystkie problemy w ciągu tygodnia – inaczej nie zdążymy z milestonem
– nasz plan ma wdrożyć wykonanie gry, a nie poprawienie 3d API, które jest WIP i to wydawca jest za niego odpowiedzialny
– gra będzie wyglądała znacznie lepiej w 2d na ekranie iphone/iPada
– zrobimy mockupy by Was przekonać
– zrobimy w parę dni prototyp by Was przekonać
– chcę jednego programistę od Was, który będzie odpowiedzialny za działanie 3d, jesteś w stanie to nam zapewnić?
Chuja, koleś ani drgnie, dalej jest przy 3d, aż do momentu jak mu powiedziałem coś w stylu:
– Sam chciałeś 2d 2 tygodnie temu, czemu teraz nagle zmieniasz zdanie, czego tak nagle się wystraszyłeś z tym 2d?
Nie potrafił mi odpowiedzieć. Zaakceptował zmianę 3d->2d i sam stwierdził, że mam racje, nie ma co tracić czasu na poprawianie czegoś co nie działa, lepiej skupić się na grze i samych terminach, a 2d tak czy siak będzie ładniejsze 🙂
Masakra jakaś. Jak byśmy używali 3d na pewno do końca projektu wszyscy w tym projekcie robili by nadgodziny by gra działała tak jak należy.
Do wszystkich używających SDK/Silnika od kogoś:
– Sprawdź zanim zaczniesz produkcje czy aby na pewno ma wszystkie featury takie jak są Ci potrzebne
– Sprawdź czy jest odpowiednia dokumentacja z samplami – jeśli jej nie ma, postaraj się taką wynegocjować, jeśli Ci jej ktoś nie jest w stanie dostarczyć – olej takie SDK/Silnik bo będziesz się męczył
– Wynegocjuj sobie programistę do pomocy ze strony SDK – tak by zawsze był dostępny dla Twoich programistów. Nawet konkretny i finalny engine ma problemy, które rozwiązać może tylko developer SDK/Silnika. Miej to na uwadze, jak taki jeden mały błąd ma rozstrzygnąć czy gra zostanie wykonana na czas fajnie jak by był ktoś kto może taki błąd naprawić efektywnie.
– Nie lekceważ małych problemów z Silnikiem/SDK, nie zostawiaj ich sobie na później. Najczęściej jest tak, że mały problem podczas produkcji przekształca się w problem typu: „robimy tą część od nowa”, a to jest zabójstwo projektu.
– Spisuj wszystkie problemy z SDKiem i staraj się załączyć je do kontraktu – tak by wydawca też miał milestone’y do wykonania jeśli pracujesz na jego technologi
– Naucz swoich programistów angielskiego – jeśli sam nie jesteś w stanie wytłumaczyć problemu, który występuje w SDK
– Męcz wydawce o szybkie poprawki – z rana, po obiedzie, wieczorem – niech czuje ,że projekt nie leci do przodu przez niego.
– Pamiętaj, że zawsze nad programistą, który pracuje przy SDK jest ktoś (Producent, Szef, Lead) – jak ktoś się obija, uderzaj do kogoś wyżej i zrób mu z dupy jesień średniowiecza. Bardzo szybko skutkuje, błędy naprawiają się bez narzekania i naprawiane są efektywnie.
– Jak czujesz, że programista Cię olewa (np. przy każdej próbie kontaktu mówi „mam meeting, muszę uciekać” nie lekceważ tego, to jest tylko początek olewki programisty (który może np. nie mieć czasu dla Ciebie) od razu kontaktuj się z wyższym kierownictwem byś zapewnił sobie kogoś do pomocy.
Reasumując zastanów się dwa razy czy chcesz używać jakiegoś SDK/biblioteki/Silnika – a jak jest jakiś problem nie zastanawiaj się tylko decyduj inaczej Twoje pytanie „what about engine issues?” będzie się pojawiało codziennie, a terminy będą coraz bliżej, okażę się, że nie masz akceptacji milestone’a bo coś w SDK nie działa, a to nie jest Twoja wina. Mi to się nigdy nie przytrafiło, ale ryzyko jest.
Najlepiej pracuje się na własnej technologii 🙂