Niektórzy z was (wierzę w to z siłą zrodzoną z desperacji) zapewne odwiedzają forum projektu, a skoro tak, to mogli zorientować się w planach wydania 0.23.0. Planujemy już od dłuższego momentu, ale jak do tej pory słowo nie stało się ciałem.
Dlaczego?
Powody są proste. Tym razem proces jest wyjątkowo trudny, a przez to wymagający przedłużonego czasu. Głównym problemem były dwa błędy powodujące „nieoczekiwane zakończenie programu” albo, jak kto woli crash. Pierwszy bug był zaskakująco trudny do znalezienia, ale naprawienie okazało się na szczęście dużo prostsze więc scrawl uporał się z nim szybko i bez trudu. Drugi bug był prawdopodobnie najbardziej tajemniczym błędem projektu OpenMW w jego (zdecydowanie zbyt długiej jak na aktualny stan) historii.
Crash był wybredny i upodobał sobie jedynie system Chrisa, pozostali programiści nie mogli w żaden sposób odtworzyć scenariusza prowadzącego do jego wystąpienia. Już samo to jest co najmniej dziwne, jednak co gorsza okazało się, że zmiana kompilatora z gcc na clang skutkowała brakiem błędu. Wyglądało to bardzo nieprzyjemnie, a mówiąc wprost wręcz paskudnie. Zini zapowiadał już, że gotowy jest wyciąć z wydania 0.23.0 sztuczną inteligencję jeżeli rozwiązanie nie pojawi się na czas, a ja zastanawiałem się nad zaangażowanie Antoniego Macierewicza który jako osoba o intelekcie przenikliwym niczym zimne światło księżyca z pewnością rozwiązałaby i tą zagadkę.
Na szczęście gus jakimś cudem naprawił bug i tym samym przewidywać należy rychłe wydanie wersji 0.23.0. Nie zawadzi też wspomnieć o planach odnośnie 0.24.0.
Aktualnie kluczowym wydaje się wprowadzenie warstw animacji oraz renderowania broni. Jeśli uda się tego dokonać lista zadań do wykonania dla wydania 0.25.0 będzie jednoelementowa: „cała reszta, bez określonej kolejności”.
W tej chwili Chris zajął się usprawnianiem naszej obsługi formatu nif, zwłaszcza w sferze cząsteczek których implementacja wciąż ma charakter ledwie szkieletu. Scrawl pracuje w wielu miejscach równocześnie by uporać się z pomniejszymi problemami przed wydaniem 0.23.0. Glorf także kontynuuje swoją krucjatę wymierzoną w bugi…
Zini jest co prawda chwilowo zajęty przygotowaniami do wydania 0.23.0 i nie ma zbyt wiele czasu do zagospodarowania, jednak pomiędzy jednym mergem, a drugim udało mu się zaimplementować tabelę komórek w edytorze. Jest to po prostu kolejny krok naprzód w długim marszu ─ bez takich prostych ruchów po prostu tkwilibyśmy w miejscu i nigdy nie dotarlibyśmy do mety.
Zeszły tydzień zaliczyć należy do tych udanych gdyż wydarzyło się wiele pozytywnych rzeczy, a projekt posunął się znacznie do przodu.
Zacznijmy od scrawla. Dodał on obsługę „leveled list”, to jest list określających zawartość skrzyń z losową, zależną od poziomu postaci zawartością.
Oprócz tego scrawl wprowadził również nową funkcję, nieobecną w oryginalnym silniku. Nie wnikając w szczegóły techniczne można ograniczyć się do stwierdzenia, że od teraz wspieramy nieograniczoną ilość tekstur, wliczając to również tekstury terenu. Dzięki temu w przyszłości, po stworzeniu ulepszonego formatu plików gry możliwy stanie się uzyskanie o wiele bardziej szczegółowych krajobrazów, co powinno wlać odrobinę radości do serc moderów oraz rozpalić w nich entuzjazm dla OpenMW ─ przynajmniej w ograniczonym zakresie.
Praca gusa wprowadzające podstawy AI została niedawno wprowadzona do gałęzi main.
Tymczasem lgro powrócił z powodzeniem do planu skonfigurowania serwera automatycznie budującego OpenMW. Jest to rzecz użyteczna ponieważ pozwala nam natychmiast zauważyć fakt utraty możliwości kompilacji na skutek błędów, a co więcej w przyszłości pozwoli wprowadzić testy jednostkowe. Co prawda testy jednostkowe nie są szczególnie przydatne dla gry wideo; jednak wciąż potrafią pomóc, a poza tym: oprócz samego silnika tworzymy przecież edytor OpenCS.
OpenCS rozwija się znakomicie dzięki ziniemu. Pojawiły się nowe tabele: skryptów, dźwięków, regionów jak również edytor skryptów z podświetlaną składnią.
Oprócz tego, jak co tydzień rozwiązaliśmy wiele bugów. Szczególne uznanie w tym względzie należy się Glorfowi, scrawlowi, pvdk oraz wheybags.
…i tak o to stała się rzecz niezwykła i zgoła niesłychana, choć w oczach świeżych i nie znużonych horyzontem stałego obserwatora OpenMW być może jawiąca się jako wręcz nieunikniona. O to bowiem Chris najwyraźniej wydoił ostatnią porcję frajdy jaka jeszcze pozostawała w Skyrim i zajął się na powrót programowaniem OpenMW.
A efekty tego są zaiste znakomite. Nowa instrukcja isWerewolf została zaimplementowana co jest oczywiście rzeczą dobrą, mimo, że niezbyt wybitnie prezentującą się na zrzutach ekranów. Na szczęście oprócz tego pojawiły się efekty cząsteczkowe co oznacza, że w końcu można zobaczyć płomienie świec i pochodni. Co prawda obecny status trudno określić jako ukończone ale przynajmniej jest co pokazać na filmie.
Co prawda efekty cząsteczkowe wciąż pozostają nie do końca poznane, jednak Chris posuwa się do przodu pewnie i przypuszczać należy, że raczej prędzej niż później rozwikła całą kwestię.
Oprócz tego umiejętność zaklinania została ukończona i bez wątpliwości ujrzymy ją w wydaniu 0.23.0.
Prace nad OpenCS postępują sprawnie. Zini dodał tabelę frakcji, zawierającą informacje je charakteryzujące. Nomadic1 rysuje śliczne ikony, a graffy ślicznie zaimplementował ustawienia użytkownika.
Gus tymczasem nabył nowy komputer dzięki czemu może zmagać się z nowymi trudnościami w dziedzinie AI. Tym razem okazało się że wprowadzone ostatnio zmiany dość efektywnie uniemożliwiają działanie napisanego kodu.
Scrawl dodał obsługę dla bump maps i glow maps, ponadto ustanowił nową hierarchię znaczenia plików zgodnie z którą pliki zarchiwizowane w BSA mają niższy priorytet niż niespakowane. Oznacza to, że mody podmieniające tekstury powinny zacząć działać.
Oprócz tego rozwiązaliśmy dość sporą gromadkę problemów która uzbierała się na naszym bugtrackerze, pojawiło się nowe zadanie do wykonania; tym razem dotyczy uprzątnięcia mwgui.
Mimo, że Natka Natura przygotowała nam niespodziankę na Wielkanoc OpenMW ma się nieźle.
Przede wszystkim prace nad zaklinaniem przedmiotów postępują naprzód dzięki wysiłkom Glorfa, scrawl zaś pracował odrobinę nad światłami dzięki czemu wyglądają jeszcze lepiej niż wcześniej.
Tak naprawdę scrawla zajmuje jego biblioteka shiny, stworzona by ułatwić i przyśpieszyć tworzenie shaderów. Wraz z wydaniem wersji 1.0 dodana zostanie możliwość uzyskania podglądu shaderów bez konieczności restartowania gry co powinno znacząco umilić testowanie naszego dzieła.
Niestety prace nad AI zostały chwilowo zatrzymane, ponieważ laptop gusa właśnie nieodwołalnie umarł. Co prawda gus kupił już nowy sprzęt ale ustawienie wszystkich bibliotek na windowsie raczej nie należy do kategorii „zadań prostych”, za to z całą pewnością do „grupy czasochłonnych”.
Zini do spółki z graffym tak jak każdego tygodnia pracują nad edytorem.
Tydzień pewnie należało by uznać za jeden z tych mizernych, gdyby nie kolejna chmara bugów poskromiona przez odważnych deweloperów OpenMW. Aktualnie liczba otwartych raportów wciąż wzrasta, więc pracy nie powinno zabraknąć.