Skompilowany jak kaktus programisty
Tydzień temu rozważaliśmy jakże ważką kwestię znaczenia wodotrysków graficznych dla cRPG. Tym razem weźmiemy na warsztat kolejny klasyczny gatunek: RTS. Tu też w ostatnich latach dokonał się przełom. W zasadzie co najmniej tak samo sensowny jak w cRPG.
Przez długie lata graczom zupełnie wystarczał w RTS rzut izometryczny. Pierwsza znacząca rewolucja pojawiła się wraz z możliwością obracania kamery. Mówiło się wtedy, że gra jest w pełnym 3D. Pełen wypas i technologia z najwyższej półki, a jeszcze jak dawało się lekki zoom zrobić... Dziś tym terminem określamy coś zupełnie innego, nowe 3D jest teraz prawdziwe, w odróżnieniu od tamtego. Cóż, zobaczymy jak się nam semantyka zmodyfikuje za jakiś czas.
Pierwszą grą RTS oferującą dokładne zbliżenia i swobodę ustawiania pola widzenia była niebyt mądra produkcja Empires: Dawn of the Modern World. Coś w stylu Empire Earth, tylko słodsze: pięćdziesiąt chińskich lotników podwieszonych na latawcach z łuku rozbijało w perzynę tuzin pancerników Bismarck. Mniejsza o smaczki historyczne, grunt że każdą walkę mogliśmy tam oglądać z bliska, niemal jak w FPP. Dziś ta tradycja jest kontynuowana, weźmy chociażby hit tego roku, czyli Company of Heroes.
Zastanówmy się jednak, po jakiego grzyba nam takie możliwości w RTSach? Jeszcze grając w kampanię idzie się napawać widokami, pod warunkiem jednak, że nie zapomnimy przedtem zapisać jej stanu. W innym wypadku podczas gdy będziemy zachwycać się guzikami na mundurze szeregowca Ryana, wróg zajdzie nas z flanki i na rzeczonym mundurze rzeczonego szeregowca zaczniemy liczyć plamki krwi. W sumie też jakaś rozrywka, ale za chwilę zostaniemy zmuszeni do kontemplacji ekranu ładowania gry. A to już jest mniej zabawne.
Za to gdy użyjemy danego RTS-a do tego, do czego został stworzony, czyli do sieciowej rozwałki, to opcja zbliżeń kamery przestanie nas w ogóle obchodzić. Walcząc przeciwko innym graczom najnormalniej w świecie nie znajdziemy nawet odrobiny czasu na podziwianie wodotrysków. Z kamerą ustawioną tak, by uzyskać rzut izometryczny, będziemy pocinali jak za dawnych lat, nim zaczęto nam robić dobrze bez pytania o zgodę.
Oczywiście dzisiejsze maszyny są naprawdę wydajne i nawet sprzęt ze średniej półki pociągnąłby większość tytułów bez trudu. Jest jednak inaczej. Dlaczego? Bo od dawna nikt nie staje na rzęsach by maksymalnie zoptymalizować silnik – przecież nie ma sensu się szarpać, skoro podzespoły są tak wydajne, prawda? Po co biedny deweloper ma się zaharowywać nad jednym perfekcyjnym projektem, skoro może odwalić w tym czasie trzy tandetne chałtury.
Brak optymalizacji to jeszcze pikuś. Prawdziwy cyrk czeka nas, gdy rozprujemy pliki gry. Można tam znaleźć cuda. Na przykład w koszmarnie zarobaczonej i dziurawej I Wojnie Światowej w jednym ze skompresowanych plików z danymi gry znajdowała się śliczna fotka kwitnącego kaktusa w formacie JPEG. Musi co jeden z twórców potrzebował się kumplom pochwalić roślinką i wrzucił zdjęcie do katalogu roboczego idąc do pracy. No i tak zostało...
W innym przypadku, sprzed bodajże trzech lat, w samym kodzie gry, w silniku, niestabilność powodowały wpisy pozostawione przez programistów. Z grubsza chodziło o to, że obywatel A padał na pysk mimo kolejnej kawy i nie dał rady dokończyć fragmentu kodu. Napisał więc do obywatela B, by ten dopisał co trzeba za niego. Tamten, jako że kumpel był, nie świnia, zrobił to, po czym poinformował obywatela A. Nikt tych didaskaliów nie usunął, a w jednym miejscu dziwnym zbiegiem okoliczności kolidowały one z procedurą wykonawczą. Mówimy w obu przypadkach o produktach finalnych ze sklepu, nie wersjach beta.
W ten sposób dobrnęliśmy do miejsca, w którym warto przerwać wywód i sprawdzić, czy nie bije już południe. Za tydzień jeszcze nieco podrążymy temat, może nawet i za dwa… Póki co życzę Wam i sobie jak najmniej prywatnych notek programistów wewnątrz kodów gier. Czy te życzenia mają szansę się spełnić? Być może, choć podejrzewam, ze prędzej mi kaktus na pliku wyrośnie...