[PL] Porozmawiajmy o tworzeniu gier – wywiad z Maciejem Siniło z CDP-Red – cz. 4

Spis Treści:
Wstęp
I. Ogólnie o branży GameDev w Polsce i za granicą, akcent Wiedzmina.
II. O społecznościaciach i nostalgii demoscenowej
III. Zawód – twórca gier komputerowych.
IV. Technologie wykorzystywane przy tworzeniu gierV. Słowniczek slangu branżowego oraz nietypowych zwrotów użytych w rozmowie.

{Poprzednia część: Zawód – twórca gier komputerowych }

Technologie wykorzystywane przy tworzeniu gier
DB: Wracając do programowania, święta wojna: DirectX czy OpenGL? Nie mogłem się powstrzymać. :)

MS: Jeżeli chodzi o możliwości nie ma to gigantycznego znaczenia. Natomiast nie da się ukryć, że DirectX zdobył ostatnio większą popularność w branży i mam wrażenie, że więcej się w jego obszarze dzieje.

DB: Jakąkolwiek technologię (pipeline do renderingu) by się nie wybrało to jednak tak czy siak między grą a tą technologią stoją gotowe silniki odpowiedzialne za poszczególne komponenty w grze. Wy z tego, co kojarzę używaliście Aurorę od Bioware (stworzony i wykorzystany na potrzeby Neverwinter Nights), zapewne używaliście też Havoca (do fizyki). Dużo jest takich elementów w grze, które można zaadresować gotowym silnikiem (komponentem od firm trzecich)?

MS: Coraz więcej. Nie wymienię pewnie wszystkich, ale podstawowe obszary, które są "zagospodarowane" to rendering, dźwięk, odtwarzanie filmów, fizyka, języki skryptowe, interfejs użytkownika, nawigacja, warstwa sieciowa. Do tego dochodzą oczywiście rozwiązanie kompleksowe łączące te zagadnienia. Myślę, że z czasem bibliotek będzie tylko przybywało, bo jak już wspominałem -- gry robią się coraz bardziej zaawansowane i jeżeli tylko da się wyeliminować obszary potencjalnego ryzyka i pozwolić zespołowi skupić się na samej rdzeniu rozgrywki, to pewnie warto to zrobić. Osobiście z radością powitałbym jakiś fajny system do streamowania danych, z tego co obiło mi się o uszy coś w tym stylu powstaje, ale na razie nie wiem nic konkretniejszego. Na pewno jest to bardzo obiecująca działka, a firmy, które będą w stanie na niej zaistnieć mogą z nadzieją patrzeć w przyszłość.
(do fizyki akurat używaliśmy Karmy :)

DB: A propos samej Aurory. Jak to jest z re-używalnością gotowych silników dla gier. Duży to nakład pracy, aby dostosować go do konkretnego, specyficznego projektu gry?

MS: Nie znam silników prawdziwie uniwersalnych. Nawet tak popularny UE najlepiej sprawdza się jednak w strzelankach. Robi sie na nim gry innego typu, ale to mniejszość i nie zawsze idzie to gładko. Z Aurora sytuacja była o tyle fajna, że był to silnik do gry RPG. Zupełnie innego rodzaju niż nasza, ale jednak RPG. Było to o tyle istotne, że zaczynaliśmy z naprawdę małym zespołem, gdy przyszedłem do CDP byłem bodaj ich trzecim programistą. Przez prawie dwa lata rozwijaliśmy to w czwórkę, dopiero poźniej zespół zaczął się intensywniej rozrastać.
Graficy/designerzy nie mogli na nas czekać, potrzebowaliśmy więc silnika z gotowym zestawem narzędzi i ustalonymi formatami assetów.
Później wiele rzeczy uległo zmianie, przepisaliśmy całkowicie edytor, ale cały czas zachowana została kompatybilność i w skończonej grze są zasoby, które powstały w 2004 roku i były w naszym pierwszym demie na E3. Najwięcej pracy programistów poszło właśnie w przepisanie edytora, usprawnienia do renderera i zmiany w gameplayu (system walki, AI). Są też obszary, których właściwie nie musieliśmy ruszać albo dodawaliśmy tylko jakieś szczególiki typy cache'owanie -- interpreter skryptów, wiekszość formatów plików. Kluczowe jest dobieranie silnika pod projekt.

DB: Co sądzisz na temat XNA, bawiłeś się może?

MS: Bardzo pobieżnie. Prototypowałem trochę, ale szczerze mowiąc mam raczej negatywne doświadczenia, bo okazało sie, że w dosyć podstawowych funkcjach pakietu są po prostu błędy. Mam też kilka zastrzeżeń co do ogólnej filozofii, głównie zarządzania zasobami w przypadku dużych tytułów. Myślę natomiast, że z czasem XNA świetnie może się sprawdzać dla mniejszych tytułów. Już zresztą powstało kilka ciekawych gier.

DB: Czyli jakbym miał początkującemu programiście gier doradzić jak zaczać to mogę spokojnie zarekomendować XNA z myśla o drobnych projektach ala Xbox Live Arcade, jeśli marzą mu się duże komercyjne, pudełkowe tytuły to już jednak tylko natywna platforma?

MS: Na dzień dzisiejszy - tak. Nie znam żadnego dużego, full-price'owego tytułu AAA pisanego w czymś innym niż C/C++. Początkujący programista powinien jednak spróbować XNA tak czy inaczej, to bardzo fajna platforma na początek.

DB: Czy myślisz, że platforma zarządzana (.NET/Java/itd.) ma szansę kiedyś wkraść się do projektów na skalę Wiedźmina?

MS: Kluczowe jest tutaj słówko "kiedyś" :). Ciężko powiedzieć. Z jednej strony moc komputerów/konsol rośnie, z drugiej w wielu aspektach siedzimy teraz bliżej sprzętu niż niedawno. Osobiście jestem rozdarty, bo choć lubię grzebanie na niskim poziomie (taka skaza scenowa), to programowanie w .NET też ma swoje uroki. Myślę, że zmiana będzie raczej stopniowa niż na zasadzie rewolucji. Po prostu zacznie pojawiać się coraz więcej gier pisanych w C#/Java/innych, C/C++ może zostać zepchnięte do roli assemblera. Tytuły bardziej wymagające będą miały inne proporcje, gierki prostsze -- inne. Tak czy inaczej, wszystko to zajmie jeszcze przynajmniej kilka lat.

DB: Na platformach, które nie mają tak dużych możliwości i raczej tworzy się gry jak w głównym nurcie 10 lat temu platforma zarządzana zaczyna jednak królować od razu. Pisałeś gry na urzadzenia mobilne, gry napisane w Javie czy w .NET Framework raczej nie są rzadkością, mimo że wydawało by się, że tam właśnie wciąż jeszcze opłaca się zabawa w Assembler. Jak to wytłumaczyć?

MS: Myślę, że tutaj wytłumaczenie jest akurat stosunkowo proste. Gry na telefony komórkowe płyną trochę koło głównego nurtu. Inny target, inny cykl życia (dużo krótszy). Klienci nie oczekują jakiejś specjalnie zaawansowanej technologii. Gdyby pisać je w assemblerze/C byłyby by na pewno bardziej efektowne, ale jednocześnie produkcja zajęłaby dużo więcej czasu, nie wspominając o problemach z przenośnością. Zauważ, że małe "konsolki" są traktowane inaczej, na GBA, DS czy PSP cały czas koduje sie w assemblerze/C/C++ (czasami nawet ten ostatni uważając za robiący zbyt wiele za plecami).

DB: Xbox development. Jakieś doświadczenia? Trudniej/inaczej niż na PC?

MS: Pod niektórymi względami trudniej, pod niektórymi łatwiej, na pewno trochę inaczej. Z X360 sprawa jest o tyle przyjemna, że środowisko jest znajome i mamy dostęp do tych samych, świetnych, narzędzi. Nadal pracujemy pod Visual Studio, jest PIX, jest kilka innych tooli Microsoftu. Nawet sprzęt to tak naprawdę trochę zmutowany PC. Jasne, są ograniczenia, ale paradoksalnie mogą one skutkować lepszym (obiektywnie) kodem. Programowanie na pecety mocno rozleniwia, hulaj dusza, piekła nie ma. Nawet jeżeli ktoś nie planuje portowania na konsole, to niektóre praktyki są jak najbardziej zalecane, choćby trzymanie się budżetu pamięciowego. Inaczej sprawa ma się z PS3 (jak to zwykle bywa z japońskimi konsolami), tutaj różnice są już dużo bardziej wyraźne.

DB: Okay Maćku, podyskutowaliśmy sobie trochę. Mam nadzieję, że dla Ciebie ta rozmowa była równie interesująca jak dla mnie. Pogadaliśmy o polskim gamedevie, trochę sugestii o tym jak zostać programistą gier, wyszła też nostalgia demoscenowa no i temat społeczności wokół tematu gier komputerowych. Mam nadzieję, że zarówno polski gamedev jak i społeczności wokół będą w Polsce tylko rosnąć. Na koniec mam tylko ostatnie pytanko, a raczej prośbę. Wiem, że od czasu do czasu zaglądasz na mojego bloga. Czy mogę sobie zatem zarezerwować trochę Twojego czasu na odpowiedź na dodatkowe pytania od czytelników (w komentarzach, jeśli się pojawią)?

MS: Dzięki za rozmowę. Oczywiście chętnie odpowiem na wszelkie pytania, jeżeli tylko będę w stanie.

{Następna część: Słowniczek slangu branżowego oraz nietypowych zwrotów }

Technorati Tags: Polish Posts,gamedev