Fork me on GitLab
Wydanie 0.35.0 2015-02-17 - Vedyimyn

Zespół OpenMW ma zaszczyt ogłosić wydanie wersji 0.35.0! Miało to miejsce wczoraj. Nowe wydanie można pobrać, jak zwykle, tutaj, dla wszystkich platform. Obejmuje ono ponad 100 poprawek i udoskonaleń, co oczywiście przybliża nas jeszcze bardziej do wersji „1.0”. Z nowości: pojawił się zalążek narzędzia służącego do importowania zapisanych gier z oryginalnego Morrowinda, czar Uspokojenie  działa już poprawnie, NPC zmieniają swoje położenie przy przewijaniu czasu czekaniem/spaniem. Zmieniono parę nazw, na przykład OpenCS nazywa się teraz OpenMW-CS. Zmieniono okno wyboru plików w launcherze (docenimy każdą opinię na jego temat). Poniżej pełna lista zmian, obrazująca, jak wiele pracy włożono w to wydanie. Miłej lektury!

Znane problemy:

Lista zmian:

Zapraszamy do komentowania tutaj.

Zmiana silnika na OpenSceneGraph 2015-02-16 - Vedyimyn

Ogre3D to silnik graficzny wykorzystywany przez OpenMW od samego początku. Teraz zespół ogłasza rezygnację z niego.

W okresie naszych wersji alpha, Ogre3D był niezwykle użyteczny i umożliwiał szybki rozwój projektu. Dzięki Ogre3D, możesz już teraz grać w mniej więcej kompletnego Morrowinda poprzez OpenMW, co jest dużym wyczynem.

Jednakże, żeby doprowadzić OpenMW do stanu w pełni wyszlifowanego, i żeby dodać pozostałe kilka funkcji, musielibyśmy albo utworzyć swoją wersję Ogre3D (forka), dopasowaną do naszych potrzeb, albo zmienić silnik. Obie opcje są zadaniami trudnymi. Po długiej dyskusji wybraliśmy drugą opcję.

Dlaczego zmiana?

Nie ma jednego prostego powodu. Złożyło się na to kilka czynników.

Pierwszą blokadą dla wydania OpenMW 1.0 jest mała liczba klatek na sekundę w porównaniu z oryginalnym Morrowindem. Wynika to z pewnych właściwości Ogre3D 1.x, które stanowiły często wąskie gardło. W Ogre3D 2.x zostało to poprawione, toteż początkowym pomysłem było przeportowanie OpenMW na nowe wydanie tego silnika. Byłoby to duże przedsięwzięcie, ponieważ pod względem interfejsu programistycznego zaszły spore zmiany. Jest jednak kilka problemów z tym związanych:

Poza tym jest jeszcze kilka spraw, które stanowią problem od dłuższego czasu:

Nowy silnik

W świetle powyższych uwag, rozejrzeliśmy się za alternatywami i znaleźliśmy OpenSceneGraph, które świetnie spełnia nasze oczekwania, oferując do tego wysoką wydajność. Dokładnie sprawdziliśmy, czy ma wymagane funkcje, lub czy da się je łatwo dodać poprzez wtyczkę. W niedalekiej przyszłości przedstawimy harmonogram prac nad przeportowywaniem gry. Będziemy informować na bieżącą o ich postępie.

Dużą różnicą jest to, że OpenSceneGraph (w skróce OSG) wspiera tylko OpenGl. Ogre3D wspierał też DirectX, co jest dużym atutem. W idealnym świecie moglibyśmy zatem oferować wybór między jednym i drugim bez dodatkowej pracy z naszej strony. Niestety świat nie jest idealny. Nastręczyłoby to trudności w pisaniu shaderów (podejście zależy od systemu renderowania). Poza tym wiele błędów ujawniało się tylko przy użyciu Direct3D. Wspieranie tylko OpenGL raczej nas cieszy, bo w tej sytuacji nie musimy wspierać dwóch różnych systemów. Poza tym większość naszych developerów używa Linuksa, co uniemożliwia testowanie Direct3D.

Wstępne FAQ:

Q: Jak długo potrwa zmiana?

A: Dobra wiadomość jest taka, że Ogre3D to tylko silnik renderujący, i tylko do tego jest przez nas używany. Kod OpenMW jest podzielony na różne podsystemy, a zmiana silnika wpłynie co najwyżej na jeden nich, to jest „mwrender”. Jest to jakieś 8% kodu z naszej bazy.

Q: Co się stanie tymczasem z OpenMW, które używa OGRE? Dalszy rozwój (nowe funkcje), tylko poprawki błędów, czy kompletne zignorowanie?

A: Będziemy normalnie dalej rozwijać gałąź OGRE, dodając nowe funkcje i poprawki, tak długo jak port na OSG będzie na etapie rozwoju. Wiemy, że w OpenMW gra wiele osób, pomimo, że to tylko wersja alpha, więc ta ciągłość jest dla nas istotna.

Q: Co z platformami, na których zadziała OpenMW (Linux, Windows, Mac OS X, Android)?

A: Będziemy dalej wspierać je wszystkie.

Q: Galeria na stronie OpenSceneGraph jest raczej skromna. Jeśli ten silnik jest taki super, to czemu nie robi się gier z jego użyciem?

A: Pod względem możliwości OSG dorównuje Ogre3D (a nawet go przewyższa), zatem ta „skromność” galerii OSG jest dla nas zaskoczeniem. Twórca tego silnika, Robert Osfield, ma swoją teorię na to (wolne tłumaczenie, oryginalna wypowiedź jest tutaj: „As a general note”…):

Generalnie, jeśli chodzi o gry i konflikt OSG vs Ogre, podejrzewam, że to kwestia korzeni każdego projektu i kultury w jakiej się rozwijał. OSG wywodzi się ze świata VisSim i przez lata wyrósł na przenośną bibliotekę graficzną ogólnego przeznaczenia. Społeczność zgromadzona wokół niego zajmowała się profesjonalnymi symulacjami, wizualizacjami, rzeczywistością wirtualną i sprawami naukowymi. Ogre natomiast od początku był tworzony jako API dla gier, choć może być używany do wielu innych rzeczy niż gry. Jednakże to do gier jest wykorzystywany najczęściej.

Q: Mam obawy co do zakończenia wsparcia dla Direct3D, bo to przy jego użyciu mam więcej klatek na sekundę w porównaniu z OpenGL.

A: Jesteśmy świadomi różnicy w wydajności między jednym i drugim. Wynika ona z kiepskej implementacji OpenGL w Ogre3D 1.x. Valve pokazał (tutaj), że poprawna jego implementacja gwarantuje wydajność na poziomie Direct3D, a nawet większą.

Ostatnie podziękowania

Wiele zawdzięczamy Ogre3D i mamy nadzieję, że dobrze się temu projektowi odwdzięczyliśmy przyczyniając się do wielu poprawek.

Chcemy podziękować wszystkim, którzy pracowali nad Ogre3D i jakkolwiek przyczynili się do jego rozwoju, za ich wielki wysiłek w to włożony. Wszystkim, z którymi pisaliśmy na forum, za wsparcie i zachetę z ich strony. Szczególnie dziękujemy Kojackowi za pomoc w debugowaniu tekstur DDS.

Zapraszamy do komentowania tutaj.

To Ogr(e)! 2015-02-15 - Vedyimyn

Ostatnio niecierpliwie wyczekiwaliśmy Ogre 2.0, silnika używanego w OpenMW. Druga wersja jest kamieniem milowym w jego rozwoju. Pozwoli nam to uczynić OpenMW jeszcze lepszym niż przedtem. Niestety dostosowanie OpenMW do nowej wersji silnika nie jest kwestią poprawki paru linijek kodu. Ogre 2 różni się znacznie od Ogre 1, a OpenMW musi razem z nim ewoluować.

Część problemów dotyczy „sklejania” części ciała tak, żeby stanowiły całość. Jak wiadomo, postaci w Morrowindzie składają się z torsu, głowy, rąk i nóg. Muszą także być w stanie trzymać przedmioty, co także oznacza „sklejanie”. Jako że takiej możliwości jeszcze nie ma w Ogre 2, implementacja tego silnika pozbawiła grę istotnej funkcjonalności.

Ostatni post Scrawla na jego stronie dotyczy problemów takich jak ten powyżej, więc jeśli interesujesz się takimi technikaliami, koniecznie zajrzyj tutaj.

Oczywiście poza pracą nad silnikiem, pracowano też nad samym OpenMW. Naprawiono ponad 100 bugów z trackera oraz dodano parę funkcji. Teraz, jeśli „przewiniesz czas” czekając lub śpiąc, NPC będą w innych miejscach niż byli przedtem (w końcu chodzili w międzyczasie, czyż nie?).

Zbliżamy się do wydania 0.35.0 dość szybko, więc założono już blokadę kodu. Obecna praca skupia się na wydaniu następnym, w którym już poprawiono tor ruchu słońca. Ktoś zauważył, mianowicie Yann GOUY, że słońce nie wschodzi i nie zachodzi we właściwych miejscach. Księżyce, co prawda, też mają tę przypadłość, ale muszą trochę poczekać na naprawę. W wersji 0.36.0 dodano też możliwość ubierania zwłok.

Pełna lista zmian dla 0.35.0 jest już napisana. Jest to kwestia paru dni, zanim się pojawi, więc miejcie oko na naszą stronę internetową. Albo zlećcie to aptowi/yumowi/pacmanowi…

Zapraszamy do komentowania tutaj.