piątek, 31 sierpnia 2012

Uruchomienie gier Core Online pod Linuksem

Square Enix uraczyło nas całkiem ładnymi grami (albo ich brakiem) uruchamianymi w przeglądarce na stronie beta.coreonline.com.
Niestety CoreOnline oficjalnie nie wspiera Linuksa. Pow pierwszym uruchomieniu pojawia się tableka informująca, że wspierany jest Windows i OS X (za wyjątkiem gry Hitman). Jest to o tyle dziwne, że używa Google NaCl, który jest dostępny w Chrome zarówno na Windows jak i OS X i Linuksa. Ot, czysta złośliwość ze strony Square Enix. Na szczęście można to naprawić. Uwaga: poniższe instrukcje odnoszą się tylko do gier uruchamianych w Google NaCl (Mini Ninjas i niebawem dostępna Lara Croft - GOL). Wymagana jest przeglądarka Chrome ze wsparciem NaCl.

Przyczyną problemów jest instrukcja warunkowa w pliku http://cdn3.beta.coreonline.com/coreonline/web/rev/2805/web/js/aaa.game.js
 
if (BrowserDetect.OS == "Linux") { console.log('BrowserDetect.OS == "Linux" -- going to /wrong_browser"'); window.location = '/wrong_browser/';

Należy go wyszukać (po pierwszej próbie uruchomienia!) w cache przeglądarki znajdującym się w katalogu ~/.cache/google-chrome/Cache. Sam plik rozpoczyna się od ciągu var isRunning = false;

Następnie wystarczy zmienić instrukcję warunkową, bez zmiany długości pliku. Zrobiłem to w ten sposób:

if (BrowserDetect.OS == "Fikus") { console.log('BrowserDetect.OS == "Linux" -- going to /wrong_browser"'); window.location = '/wrong_browser/';


Teraz można ponownie udać się na stronę beta.coreonline.com by po krótkiej reklamie zobaczyć pożądany widok:


Instrukcja napisana na podstawie posta na forum Phoronix.

niedziela, 26 sierpnia 2012

Unreal Engine 3 we Flashu - brzydki i powolny

Można już uruchomić pod Linuksem demo Epic Citadel korzystające z Flasha i API Stage3D. Epic Citadel powstało by zaprezentować możliwość przeniesienia Unreal Engine 3 do przeglądarek.

Do uruchomienia potrzebne jest najnowsze Chrome z Flashem 11.3. W chrome://flags/ trzeba włączyć Zastąp listę renderowania programowego tak aby w chrome://gpu-internals/ widzieć:

Graphics Feature Status

  • Canvas: Hardware accelerated
  • Compositing: Hardware accelerated
  • 3D CSS: Hardware accelerated
  • CSS Animation: Accelerated
  • WebGL: Hardware accelerated
  • WebGL multisampling: Hardware accelerated
  • Flash 3D: Hardware accelerated
  • Flash Stage3D: Hardware accelerated
  • Texture Sharing: Hardware accelerated
  • undefined: Hardware accelerated
Teraz wystarczy uruchomić demo i delektować się jego widokiem. Warto też włączyć opcję Licznik FPS by sprawdzić wydajność.

Niestety ani wygląd ani wydajność nie zachwyca. Epic Citadel okrojone zostało niemal ze wszystkich efektów (Stage3D bazuje pod Linuksem i OS X na OpenGL 1.3). Subiektywnie określiłbym je jako brzydsze niż Unreal Tournament 2003 czy Unreal II. Wydajność jest marna - Radeon HD 6670 i Catalyst 12.8 wystarczyły na zaledwie 25-30 kl./s w ok. 1280x720. Nawet napisany w JavaScript i niezoptymalizowany BananaBread jest dwukrotnie szybszy.



Na deser inne porównanie:

poniedziałek, 13 sierpnia 2012

Dlaczego jaram się portem silnika Source na Linuksa?

Source to z pozoru nic ciekawego, często podsumowywany jako silnik z 2004 roku bez obsługi DirectX 10 i 11. Są jednak powody dla których Source może mieć większe znaczenie niż Unity 4 czy Unigine.

Poniżej znajduje się prezentacja Source z 2003 roku.


Jaka jest różnica względem prezentacji innych silników (np. Unreal Engine, id Tech czy Unigine)? Nie skupiono się na grafice. Wtedy, choć oszałamiająca, była tylko jedną z wielu nowinek obsługiwanych przez Source.
Na samym początku widoczna jest animacja mimiki twarzy (w póżniejszych wersjach nawet 80 sprzętowo akcelerowanych [1] "mięśni") oraz ruch warg generowany w locie na bazie ścieżki dźwiękowej.

Późniejsze etapy prezentacji przedstawiają interakcję ze środowiskiem, "fizykę" (tu w akcji zmodyfikowany Havok 2) czy zachowanie postaci kierowanych przez komputer. I w tym miejscu chcę się na chwilę zatrzymać.
Jak wiele znacie modów/samodzielnych gier utworzonych na silnikach id Tech po ich uwolnieniu? Sporo. A ile z nich to kampanie dla jednego gracza? Znajdzie się coś poza klonami Quake 3 Arena?
W przypadku Source nie można narzekać na brak (darmowych) modów singleplayer. Niektóre z nich prezentują wręcz rozmach i jakość godną komercyjnych produkcji. 

Sporym ukłonem w stronę twórczej części społeczności są narzędzia niespotykane u innych wydawców. Tu wsparcie nie kończy się na samodzielnym edytorze map (Hammer). W Portalu 2 zintegrowano prosty w obsłudze edytor komór testowych, a urodzeni reżyserzy mogą spróbować swoich sił w programie Source FilmMaker.

Trudno nazywać Source silnikiem z 2004, bo jest cały czas rozwijany. Największe zmiany przeszedł w 2007 roku przy okazji Orange Boksa.



Przyniósł on nie tylko zmiany w oświetleniu ale i wsparcie dla prerenderowanej "fizyki", która pozwalała na wielkie sceny destrukcji bez przeciążania CPU, system cząstek i roślinności.


Kolejne gry przyniosły rendering dynamicznie tworzonych ran (Left 4 Dead 2), symulacje płynów (Portal 2) czy symulacje ubrań (Dota 2).

Dlaczego Source nie wspiera Direct3D 11/OpenGL 4.0? Nie wiem, może w Valve odbyła się taka rozmowa:
- Zróbmy Portala 2 pod DirectX 11!
- Po co?
- Będziemy mogli wykorzystać tesselację!
- Do czego?
- Do Companion Cube! Chwila...

Source to dalej bardzo zaawansowany twór i niebawem pewnie także najbardziej zaawansowany silnik dostępny na Linuksa. Serio!

 Autor obrazu: Klow. Licencja CC-BY-SA.

Zapomniałbym: prezentacja Valve na temat portowania L4D2 na Linuksa.

[1] Sprzętowa akceleracja mimiki wymaga karty klasy DX10 lub wyższej (w oryginalnym komunikacje Radeona HD2000), mimo iż cały czas mówiły o grze pod DX9!

Więcej o silniku Source half-life.wikia.com/wiki/Source i en.wikipedia.org/wiki/Source_(game_engine)

PS Wykradziona w 2003 roku beta pozwalała wybierać między rendererami OpenGL/Software/Direct3D. Wersja ostateczna wspierała wyłącznie Direct3D. Tu trzeba nadmienić, że OpenGL 2.0 ze wsparciem GLSL był gotowy dopiero rok po DirectX 9.0b (odpowiednio druga połowa 2004 i 2003 roku). Zdecydowanie zbyt późno.

czwartek, 2 sierpnia 2012

"Okulary" VR Oculus Rift pojawiły się na Kickstarterze...

... i błyskawicznie zebrały kwotę wymaganą do wprowadzenia projektu. Prototyp nowych okularów VR (Virtual Reality) prezentował wcześniej John Carmack:


Można by powiedzieć "ale to już było...". Tylko, że nowe rozwiązanie ma być rewolucją pod względem jakościowym (kąty widzenia, brak opóźnień) jak i cenowym.

Oculus Rift ma być wspierany pod systemami Windows, GNU/Linux, OS X, Android i iOS oraz ma wpierany przez silniki Unreal i Unity.

W projekcie maczały palce takie legendy gier 3D jak John Carmack (id Software), Cliff Bleszinski (Epic Games), Michael Abrash i Gabe Newell (Valve Software). Abrash i Carmack będą zajmować się tą tematyką na Quakecon 2012, już w najbliższy piątek.