Fork me on GitLab
Pierwszy dzień jesieni… 2012-09-24 - sir_herrbatka

W tym tygodniu nie mam zbyt wiele do przekazania, a to z racji szczególnych okoliczności. Wersja 0.18.0 jest już na ukończeniu, to jest w fazie RC. Cykl tej wersji trwał krócej niż zazwyczaj dzięki wysiłkowi programistów pracujących z godną podziwu (i naśladowania!) intensywnością.

Niestety przed finalnym wydaniem powstrzymały nas zaskakująco liczne i dość poważne problemy występujące jedynie na systemach operacyjnych z rodziny OSX.

Wśród członków zespołu znajduje się tylko jeden używający komputera Apple, a to oznacza kłopoty; tym poważniejsze im więcej zmian wprowadzono od ostatniego wydania. Zdolność przewidzenia przeszkody nie jest oczywiście jednoznaczna z możliwością jej uniknięcia.

Na szczęście dzięki trudowi Scrawla i Corristo udało się już rozwiązać dolegliwości trapiące build dla OSX, a to oznacza, że lada dzień do pobrania zostanie udostępniona „najnowsza wersja OpenMW — najlepsza od czasów poprzedniej”.

Oprócz tego niespokojny duchem Scrawl ukończył dwie zupełnie nowe funkcje: korekcję gamma („chcesz widzieć przeciwników i tym samym mieć możliwość ich trafienia, czy też ci na tym nie zależy?”) oraz okno czekania i snu („trzy miecze w brzuchu i strzała w barku — pora na drzemkę!”); dzięki pomocy nieocenionego w takich momentach Hrnchamd mamy pewność, że szybkości regeneracji zdrowia oraz many pokrywają się z tymi obecnymi w Morrowind.

Ponadto Scrawl zajął się mapą globalną, status prac nad nią można określić jako połowicznie zakończony. Nie wygląda dokładnie tak samo jak w Morrowind ale osobiście nie uznaję tego za wadę, a wręcz przeciwnie; w tym przypadku OpenMW prezentuje się znowu lepiej niż Morrowind.

Tymczasem jhooks1 podąża ze swoimi pracami naprzód. Pmove powrócił, a kontrolery postaci znowu działają wraz z szeregiem powiązanych, istotnych funkcji.

zapomniałem wpisać tytuł :( 2012-09-17 - sir_herrbatka

Witajcie ponownie moi drodzy czytelnicy.

W tym tygodniu działo się tyle, że ho-ho i jeszcze ciut-ciut. Wcale nie łatwo jest podjąć decyzję o kształcie początku, ale później narracja jakoś popłynie i pozostaje tylko ufać, że znajdzie swój szczęśliwy finał w okolicach wyczerpania tematu.

Z rzeczy które pozostały do zrobienia w ramach wstępu to przeproszenie za samą jego obecność. Uzasadnienie, które może zostać potraktowane przez osoby obdarzone empatią również jako usprawiedliwienie przedstawiłem, już wcześniej.

Do rzeczy!

Scrawl, znany i kochany programista, osoba której pracę trudno przecenić, władca shaderów i nie tylko, właśnie wszedł w tryb turbo-programowania. Najpierw wyodrębnił (sic!) kilka gałęzi w których zamierzał pracować nad nowymi funkcjami, a następnie rozpoczął faktyczne programowanie. Efekty są, oględnie rzecz ujmując, dość spektakularne.

Na lewo od okna ekwipunku pojawił się doskonale znany z morrowinda portret postaci (anglojęzyczni gracze często stosują słowo „paperdoll”) wraz z przyodzieniem i zbroją jaką ma na sobie.

W oknie wyboru rasy można teraz ujrzeć aktualnie wybraną twarz, w odróżnieniu od morrowinda w formie popiersia.

Silnik potrafi już ukrywać markery stosowane do oznaczanie rozmaitych ale nieodmiennie istotnych z punktu widzenia mechaniki gry punktów: przykładowo te znaczące świątynie trójcy i kaplice bóstw ustalają miejsce w którym pojawi się gracz używający zaklęć interwencji.

Pojawiły się ekrany ładowania gry wraz z paskiem postępu. Znaczny postęp względem pustego, czarnego ekranu sprawiającego wrażenie zawieszenia.

Kolizja z obiektami z flagą NCO (przykładowo pajęcze sieci) nareszcie jest prawidłowo wyłączana…

A jakby tego był jeszcze mało, to teraz Scrawl zabrał się za implementowanie podnoszenia poziomu postaci: zarówno od strony interfejsu graficznego jak i statystyk postaci. Teraz już rozumiecie co miałem na myśli pisząc o „turbo-programowaniu”.

jhooks zaś nadal pracuje z fizyką w grze. Jak już wspomniałem, przyszło mu zmierzyć się z dość rozległym zadaniem. Tak czy owak mamy już actors physics, wraz z funkcją skalowania ale wciąż bez obrotu.

Aurix to świeży dla projektu programista który jednak zdążył już uporać się okno kupowania zaklęć, a teraz ma w zamiarze zająć się interfejsem odpoczynku i czekania.

Zini wprowadził długo oczekiwaną funkcją zjadania składników alchemicznych. Jak zapewne pamiętacie picie napojów było obecne już wcześniej.

Co prawda na githubie wciąż nie mamy okna treningu ale Dgdiniz twierdzi, że wciąż pracuje i brakuje jeszcze jedynie efektu wyciemnienia ekranu i upływu czasu. Wkrótce z pewnością funkcja zostanie ukończona.

Jak więc widzicie nowe wydanie wniesie wiele, a nawet bardzo wiele nowych funkcji. Szkoda, że wśród nich raczej nie znajdzie się wsparcie dla systemu pluginów, animacje chodu ani nawet renderowanie dzierżonego oręża. Wciąż jednak efektowne wydanie.

Chciałbym także podać wam link do najnowszego wideo autorstwa nieocenionego WeirdSexy z listą odpowiedzi na najczęściej zadawane (i siłą rzeczy w mojej prywatnej ocenie najbardziej upierdliwe) pytania tak, że możecie poznać odpowiedzi nawet jeśli uważacie czytanie za przestarzały wymysł rodem ze starożytności, choć oczywiście wtedy zapewne nie dotarlibyście do końca tego wpisu. Nie roztrząsając już dalszych wątpliwości i paradoksów chciałbym polecić wszystkim fanom wyczynów wokalnych WeirdSexy następujący link: OpenMW FAQ #1

Trolololo… Trololololo… 2012-09-11 - sir_herrbatka

Ponieważ jestem osobą z gruntu przeżartą zarazą lenistwa w najgorszym wydaniu, będę posiłkować się już od samego początku wypowiedzią jhooks1.

I am still working on the NPC/creature correct collision shapes task.

I had the task done, but I decided instead of scrapping the PhysicActor class that I would redesign it (too much valuable code). The new class is going to incorporate the Rigid Bodies (based on box shapes) and use pmove to allow the creature/NPC to collide with the world around it. Right now only the player gets to collide with the world through pmove, so this work is essential to having NPCs and creatures running about.

This is a lot to take in and change around though (and it seems like 3x the work of the original task I set out to do). I hope I can get a solution up and running soon.

Co jak widzicie, właśnie popełniłem. 🙂

Niestety oznacza to ni mniej, ni więcej a tyle, że animacja chodu musi poczekać. Niepokoić może ewentualność całkowitego wypadnięcia tej funkcji z nowego wydania, więc wszyscy trzymajmy kciuki za jhooksa!

Oprócz tego chciałbym dodać, iż poprawka wygładzająca animacje o której wspominałem w jednym z dawnych postów, została włączona do gałęzi głównej. Zachęcam do wypróbowania, obserwacji i porównywania wyglądu względem starszej wersji.

Tymczasem Zini pracował nad zagadnieniem numer 370 dotyczącym przeniesienia „Target Handling” do klasy „Action”. Zadanie zostało zakończone, a pozycja na liście zamknięta: efekt prac możecie podziwiać w gałęzi master.

Eli2 tradycyjnie pracuje nad edytorem, kierując większość wysiłków w stronę obsługi filtrów. Nie powinno to dziwić osób znających dyrektywy i koncepcje interfejsu opracowane przez nasz zespół, gdyż filtry stanowią jeden z filarów na którym wspierać ma się użytkownik korzystając z edytora. Oczywiście status elementu wiąże się również z kłębowiskiem dyskusji rosnącym, i karmiącym się nawet drobnymi wątpliwościami przy każdym wprowadzaniu istotnych zmian — nie inaczej jest i tym razem, ale jak sami rozumiecie ta sytuacja naturalnie wynika z troski podzielanej przez programistów.

Hrnchamd kontynuuje zbożne dzieło patroszenia Morrowind w poszukiwaniu szczegółowych informacji o mechanizmach rozgrywki. Na czole listy priorytetów był, rzecz jasna, koszt ćwiczenia umiejętności u trenerów, jako, że funkcja ta figuruje w planie na najbliższe wydanie.

Dgdiniz, jak widać na załączonym obrazku dokonał znakomitych postępów w implementacji tego okienka. Warto zwrócić uwagę na obecność, całkowicie pozbawionego sensu, paska przewijania w oryginalnym interfejsie. Oczywiście nie musimy duplikować absurdów, do której to kategorii zaliczyć można, jak wszyscy wiecie, nie tylko przewijanie trójelementowej listy…

Może was to zaskoczy, ale dopiero Scrawl uświadomił mi zbędność paska w oknie treningu; do tej pory przechodziłem nad nim do porządku dziennego. Z drugiej jednak strony nie jest to jedyny fakt z którego nie zdawałem sobie sprawę…

Przykładowo, jak się ostatnio (przynajmniej dla mnie, Zini z pewnością pisał już o tym na forum) okazało mamy o to kolejny przykład wyższości OpenMW nad Morrowindem, tym razem dotyczący skryptów.

Stworzenie skryptu przenoszącego gracza do komórki, w punkt o zadanych koordynatach jest zadaniem trywialnym — o ile tylko nie zamierzacie użyć zmiennych ze skryptu jako położenia, w takim bowiem wypadku okaże się to po prostu niemożliwe. To głupie, sztuczne ograniczenie doprowadzające modderów do szału już od dekady, ten błąd który jako jeden z wielu skatalizował powstanie MSE… jest nieobecny w OpenMW.

Po prostu.

Zadziwiające obejścia zastosowane np. w modzie dodającym do dyspozycji gracza przenośny namiot popielnych, nie będą potrzebne w OpenMW.

Nareszcie!

Wypróbowaliście już OpenMW 0.17.0? Podobało się wam? Mogło się wam nie podobać z racji na to, że akurat to wydanie nie zawiera zbyt wielu spektakularnych nowych funkcji ale jednak należy podkreślić, że to co wydarzyło się w trzewiach silnika można określić jako przełomowe.

I to wcale nie jest jakaś tam moja gadanina — wystarczy spojrzeć na otwarte dla 0.18.0 zadania. Nie przypominam sobie byśmy mieli równie bogate możliwości od czasów…

Chyba jednak nigdy nie mieliśmy, aż takiego urodzaju. 🙂

Można dodać nowe umiejętności. Wszystko jest gotowe by poprawnie zaimplementować kupiectwo, w pozostałych przypadkach może brakować formuł ale jest z nami Hrnchamd (zawodnik wagi superciężkiej — to właśnie on stworzył MCP) i pomoże je rozwikłać. Wiele wzorów zdążyło zostać odkrytych i czeka potulnie w cieplutkiej niczym zimowa pierzyna wikipedi.

Gdyby komuś zamarzyło się zaimplementowanie awansu na wyższy poziom doświadczenia to droga jest wolna, wszak umiejętności mogą być już rozwijane — przynajmniej te spośród nich które są zaimplementowanie, i choć może nie jest ich wiele to sednem sprawy jest sama obecność mechanizmu, a nie skala jego wykorzystania.

Jeśli jeszcze tego mało to co powiecie na animacje? Przykładowo teraz już możemy dodać animację chodzenia, a być może również biegania.

Oczywiście można również zaimplementować odpoczynek i czekanie, podobnie jak rozmaite elementy GUI który był zaniedbywane zdecydowanie zdecydowanie zbyt często. Okno treningu lub kupowania zaklęć czekają, w przeciwieństwie do okna skrótów klawiszowych bo te zdążył już zaimplementować scrawl.

Oprócz tego scrawl dokonał licznych poprawek naprawiając błędy o zróżnicowanej istotności oraz wprowadził nową funkcję: ukrywanie wszystkich elementów GUI po naciśnięciu klawisza F12.

Greye o którym już wielokrotnie wspominałem, co prawda przedstawił się nam jako specjalista od AI, ale ponieważ OpenMW nie posiada absolutnie niczego związanego ze sztuczną inteligencją zajmował się innymi zadaniami. Do teraz.

Pierwszym zadaniem związanym z AI jest ładowanie potrzebnych informacji z plików. Dzięki pracy Greye jest to już możliwe.

Dgdiniz to z kolei nowy deweloper, który dopiero co skończył ze swoim pierwszym zadaniem — już chyba tradycyjnie wszyscy zaczynają od refaktoryzacji jakiegoś kawałka kodu, w tym wypadku chodziło o przeniesienie Sounds do Action. Poza tym programista dał się poznać jako dżentelmen o nienagannej net-etykiecie oraz pochwalił czytelność i jakość naszego kodu.

Można by to potraktować jako lizusostwo ale nie jest to pierwsza osoba która o tym wspomina. To efekt ciągłej refaktoryzacji oraz pracy ziniego który kontroluje projekt z precyzją zegarmistrza.

Zadanie zostało ukończone, a Dgdiniz zabrał się za implementację okna treningu. Dokumentacja MyGUI jest daleka od ideału, co jest tym gorsze, że biblioteka ma duże możliwości i wiele funkcji. Z drugiej strony dorobiliśmy się już własnych ekspertów którzy mogą służyć poradą i wskazówką.

Zini robi to samo co zwykle: włącza kolejne gałęzie do main i sprawdza czy po zakończeniu operacji OpenMW dalej działa… 😉 Znalazł też chwilę by rozwiązać kilka błędów.

By włączyć nową, poprawioną kolizję głównej gałęzi trzeba wpierw usunąć stare rozwiązania (kinematic controller oraz fizyka postaci), więc jhooks1 zajął się naprawą schodów.

Nie, nie! Nie tych na drugie piętro!

Schodów w grze. W wielu przypadkach nie sposób na nie wejść — kłopotliwy jest zwłaszcza ostatni stopień. Bez obaw, wkrótce powinno się to zmienić…