
asm.js で Unreal Engine 3 がたった 5 日で移植される 40
ストーリー by reo
お昼からはいつも通りです 部門より
お昼からはいつも通りです 部門より
ある Anonymous Coward 曰く、
Mozilla が asm.js と Emscripton を使用し Unreal Engine 3 をたった 5 日で移植したと発表した (4Gamer.net の記事より) 。
5 日といってもほとんどが 1 日で完了し、OpenAL を WebAudio へ変換するラッパーなどを書いたりするのに 4 日かかったとのこと。まだ asm.js が不安定だが、Mozilla と連携して安定化させていくとのこと。
手馴れた人たちがやったから手早く済んだという話 (スコア:3, 興味深い)
https://twitter.com/makoto_kato/status/317448568845774848 [twitter.com]
ということのようです。
Re:手馴れた人たちがやったから手早く済んだという話 (スコア:2)
セッションでは、移植の実作業はEpic Gamesの方という感じでしたが。
無論、お二人の全面バックアップ体制はあるかもしれませんけど。
Epic Gamesの方が、いろいろ問題をリポートすると激速でgitに反映してくれて
ありがたい的なことも言ってましたし。
あとIE&MSを揶揄するような発言も何度か出ました。IEどうすんでしょうね?
Re: (スコア:0)
IEのJavaScriptエンジンは想像ですけどCOMズブズブでasm.js搭載は無理なんじゃないですか?
Re:手馴れた人たちがやったから手早く済んだという話 (スコア:2)
いやIEにはWebGLがそもそも載ってないという話で。asm.jsも含めて、Firefoxオンリー的な
話ではありますからねえ。
FirefoxのOS載せたスマフォがいろいろ出て、そっちでもバリバリ動くとなれば変わってくるかも
しれないけど、現状、Firefoxオンリーではちょいと難しいかな的なところはあります。
GDCで見た時にはインパクトあって感心したんだけど、色々考えるとどうなのかな~という。
技術デモとしては面白いですけど。
Re: (スコア:0)
多少なりともIEへの圧力にはなるんではないでしょうか。少なくとも、ユーザーにIE以外を選択させる圧力には。
普通のWebサービスだとIEで動かないものはちょっと採用しにくいですが、ゲームなら「動かしたいならFirefox使ってね」と言いやすいですしね。
Re: (スコア:0)
IE9以降のJavascriptエンジンはCOMから切り離して一から作り直されているはず。
http://en.wikipedia.org/wiki/Chakra_(JScript_engine) [wikipedia.org]
Re: (スコア:0)
一から書きなおしたとは書いてあるけど、COMから切り離したって書いてないよ? #下位互換性を保ってCOM切り離せるのか疑問
Re: (スコア:0)
実際につかってみたらわかるけど、OpenGLES2.0で書いてればそのままコンパイル出来るからWebGLの知識なんて殆どいらないよ。
ジェバンニが一晩でやってくれました (スコア:2)
忘れ去られかけたセリフを思い出しました。
ところでreo氏、働き過ぎですよ?
はいはいエイプリールフールエイp (スコア:1)
・・・ん?
Re:はいはいエイプリールフールエイp (スコア:1)
!!
時代はOpenGLなのか (スコア:1)
OpenGL対応なら、ブラウザ(WebGL)で動かすのはわりと簡単だよ、
みたいに読めたわけなんですが、どうなんでしょうかね。
ValveがLinuxに注力する話とか、
あちこちでOpenGLがキーワードになってる気がする。
Re: (スコア:0)
時代はっつーか、一部環境以外では昔からOpenGLだった気がしますが。
その割には書籍とか少ないけどね!
Re: (スコア:0)
その「一部環境」ってDirectX?
業界的にはほとんど全てと言ってさしつかえなかったような…?
Re: (スコア:0)
DirectXはゲームだけじゃないの。OpenGLの方が登場がはやいし、ゲーム以外なら移行する理由もないでしょ。
Re:時代はOpenGLなのか (スコア:1)
でも、パイからいけばゲームがその大多数だったわけだし。Windows VistaがOpenGLを潰しにかかっていた(ように見えた)時は、このVladimir Vukicevic氏は怒り狂っていたよ。少なくとも、Windowsでは「DirectXの代わりにOpenGLを使うと損をする」っていう時代があったわけだ。
http://lists.cairographics.org/archives/cairo/2006-January/006059.html [cairographics.org]
でも、まあ、長期的に考えるとOpenGLの方が筋がいいのは当たり前だよね。移植性を考えると特に。
Re:時代はOpenGLなのか (スコア:2)
なるほど、こういうことがあったんですねえ。
GDCでValveが「Source EngineのLinuxへの移植で僕らが学んだこと」的なセッションをやってて
その中で、DirectX 10以降のフィーチャーは新しいWindowsがいるけどOpenGLを使えば
そういう壁はないからWindows XPが多いアジア方面を狙うときはいいよ、といったことを
言っていて、話の流れ的にWindows上の話かなふんふん、と思っていたのですが、
いまはOpenGLを使ったほうがいい局面もあるってことなんですかね
# Windows XP言われてももう手元にねーからなあ
Re: (スコア:0)
最近じゃガッツリDirectXは成長を止めてしまったなんてゲーム業界側からも批判を浴びてるみたいですよ。
最新のOpenGLの方がDirectXよりも高性能なのだとか。
このままゲームでもOpenGLの速度が重要になる時代が来て、グラボメーカーもOpenGLのためにチューニングしたグラボを安く出す時代が来ないかなー。高いんですよQuartoやFireGL…。
Re: (スコア:0)
DirectXはプログラマブルシェーダを普及させただけでも貢献したと思うので、もう休んでもいいかと。
ゲーム機と違って年単位で新しい実験を出来たWindowsのゲーム市場が存在し、そこでお金を稼げたからこそグラフィックチップの開発に投資できたと言えるわけで。
モバイル環境なんかを考慮するとこれからはOpenGLの時代だとは思いますが、DirectXが果たした役目のうち評価すべきところは正当に評価すべきかと。
Re: (スコア:0)
ゲーム(unreal engine)のトピックでゲーム以外の話をするなら先にそう言ってくれ。
# 一応OpenGLのほうが歴史が長いことぐらい知ってるよ。
Re: (スコア:0)
Playstation3がOpenGLライクなライブラリを提供するなど、ゲーム業界とのつながりも意外と長いわけですが、iOS/Android端末が出たことで、OpenGL/ESが勢いづいたのは確かでしょうねぇ。
Re: (スコア:0)
OpenGL ES2.0対応ならその部分はそのままコンパイル通って動くよって話
ひとえにOpenGLと言ってもバージョン色々あるからバージョンによっては同じ世代のDirect3Dからポートするより面倒な事もあるよ
えーっと、マジ? (スコア:0)
元記事見たら3/29の日付だから、マジってことでOKっすかね。
そんな魔法のようなトランスレータがあるのか!?
asm.jsとFirefox (スコア:0)
現行のゲームエンジン移植にも耐えうる実用性がある事が実証された。
OS非依存でゲームが提供される日も近い・・・かどうかは知らない。
Re: (スコア:0)
FirefoxOSに搭載されると面白いね。
Re: (スコア:0)
一種のVM扱いってことかしら。
しかしバージョン依存性が厳しそうですね。用途限定であればfirefoxの特定versionとのbundleってのも今時ありかもしれませんが(SSDのみな環境だとちょっとイヤだが)
Re: (スコア:0)
asm.jsはJavaScriptなんだから、不具合はパフォーマンスにしか現れない。つまり、動くことは動く、はず。そういう意味でのバージョン依存性はない。
いってみれば、JavaScriptが中間言語みたいなもんだけど、JavaScriptエンジン(ブラウザ側)はそのJavaScriptを読み込んだ後に速度を上げる工夫をいろいろやっているわけで、最適化されたJavaScriptを実行する能力がバージョン依存なだけだから。
もちろん、webGLの実装には依存するだろうけれど、こっちは言い出してから長いし、わりと枯れてるんでしょ。
Re: (スコア:0)
まぁ、ゲームにもよるとは思いますが、ひとりのゲーマーとしては「動くには動く」は動いたうちには入らん! と叫んでおきます :-(
Re: (スコア:0)
IE6に対応するために血反吐を履いてる開発者の前で同じセリフが言えますか?
Re: (スコア:0)
Webkit依存コード削除してから言ってくれよ、そういうことはよー。
Re: (スコア:0)
> asm.jsはJavaScriptなんだから、不具合はパフォーマンスにしか現れない。つまり、動くことは動く、はず。そういう意味でのバージョン依存性はない。
現実はそう簡単ではないと思いますよ。特にスマートフォンやタブレットでは。実際に、 40MBのasm.jsコードをパースするのに現状メモリを1.5GB消費 [mozilla.org]したりしていますので。Firefoxでは最適化で平気になるとしても他のエンジンはどうなるの?という。速度面も含め、他のブラウザもOdinMonkey相当のものを開発し実装しないと事実上互換性は保たれないでしょう。
asm.jsはJavaScriptであるというよりは、「ECMAScriptの仕様上辛うじてぎりぎりJavaScriptと呼べる」まったく別物かと思います。
まずいのは、すでにV8の開発者の [mrale.ph]
Re: (スコア:0)
>こういうことをするならJavaScriptの外でやれ
それは無理でしょう (NaCl、CSSの独自拡張でさえ・・・) 遅くても他のブラウザで動く互換性がasm.jsの強みなのです。ほらFirefox以外のブラウザは遅いでしょってベンチマークを提示すれば他のブラウザは渋々追随せざる得ないのです
Re: (スコア:0)
asm.jsをもの凄く簡単に言うと、コンパイラ向けの最適化ヒントをコード内に書いて高速化する、ってことでしょ?
そんなの殆どの言語や、SQLにだってあるありふれた手法だと思う。
別物だと思うのは良いが宗派戦争みたいなもので、ヒント無しでも動く、ていう所が最重要ポイントでしょう。
簡単に言い過ぎて認識が違ってる気がしないでもない。 (スコア:0)
肝心なのは「すでにJavaScriptでさえない、コンパイラ向けサブセットである」という点だと思うので、簡単に言い過ぎて誤解招く表現だと思うです。
asm.jsは最適化ヒントどころか、現状OdinMonkey専用の謎言語なんだし。
それを、トリック多様によってJavaScriptパーサ上でも動く状態をキープしているという構図が物議をかもしている訳で。
この黒魔術っぷりには感服ですし、個人的にはリリース楽しみですがw
Re: (スコア:0)
名前の通り、シンタックスをJavaScriptにしたアセンブラですね
とてもlisp的
Re: (スコア:0)
>>すでにJavaScriptでさえない
いやだからトリックでもなんでもなくJavaScript互換だってば。
ソース読んでみた?
Re: (スコア:0)
さすがにJavascriptとの互換性は外さないと思うよ。
ハンドアセンブル始めるようなやつはどんな環境だって似たような事をやるだろうし、
Emscriptenで出力したJavascriptが読めないっていうのであれば、Google陣営のやってるClosureCompilerも似たようなもんだし。ソースと実行コードが違うという点でね。
個人的にはC++で書いたコードがそのままWebで使えてJavascriptで書き直さなくていいなんてそれだけで魅力的。それで自分で書くより高速だなんて一石二鳥だわ。
Re: (スコア:0)
これなんだけど、もう、Javascriptじゃなくて別言語としてブラウザに扱わせればいいんじゃないかなぁ。
ただ、RPythonの例もあるし、最近の流行りなんじゃない?
シンプルなサブセットを作ってからチューニングするのが。
要は今の高級言語は、マシン語との間に距離がありすぎるってことじゃないかと思う。
一気に埋めるのはエンジン開発者にも負担が大きいし、こんどはそこがボトルネックになるかもしれない。
間に休憩点として、中間言語のようなものを挟むのは、試みとしては面白いと思う。
移植って何? (スコア:0)
移植ってのはどこからどこまでをする作業なのでしょうか?
5日で移植はいいですが、そんな短期間ではテスト・検証の時間は含まれてませんよね。
Re: (スコア:0)
本文にも書かれているが、移植自体は1日で終了、
検証テストの結果動かないパーツがあったので、その改修に4日ってところじゃないかな?
まあどこまでのクオリティをゴールにするかはまた別に議論が有ると思うけど。