音声書き起こし
1. オープニング
Guest
こんにちは、
Guest
こんにちは。
Guest
それでは、今日もテンサイドをやっていきましょう。イテンサイドは、ユーザーインターフェースと、テクノロジーを愛する開発者のためのポットキャストです。
Guest
最新のウェブ標準や開発、フレームワークの変遷、uyレックスに関することまで、様々なフロントエンドの情報をキャッチアップできるポットキャストをお送りしております。
Guest
でえ、今回はですね。フロントエンドン、ジニアのゴールデンウィークの最終回ということで。私と井上さんで
Guest
おえ、お送りしたいと思いますそれでは、井上さんよろしくお願いします。
2. 自己紹介
Guest
はいでえ、今回はいの井上さんがまあ、ゴールデンウィークにされたことについて。紹介したいと思うんですけども。
Guest
まずその前に、自己紹介をえよさんお願いします。
Guest
はい、フロントエンド開発、センターセンターのUIT1室に所属しております。え、井上あのと申します。
Guest
普段はえ。LINEでは、newsのアプリの方、フロントエンドのアプリの方を開発していましています、よろしくお願いします。
Guest
あ、はいよろしくお願いします。はい、
3. GW の研究内容とテーマ選定の経緯
Guest
でそうですね、今回のさんが、ゴールデンウィークにされたというのは、ラストで、ゲームフレームワークを作るという、
Guest
すごい骨太なプロジェクトをされておりました。じゃあ、まずまラス、そのゲーム、フレイワークの詳細の前にま。
Guest
まず、そもそもゲフリマーク。なぜ、エコを作ろうと思ったのかっていうところから、ちょっとお伺いしたいと思います。
Guest
そうですね、僕、フロントエンドの開発を主にやってるんですけど、趣味でゲーム作るのが好きで。はい
Guest
まあ、アプリの方を以前作ったりもしてたんですね。ではいそん時はま
Guest
シとかシープラで、あ、あの、そのまま作ったりもしてたんですけど、最近だと、そのプロプラットホームをちょっと意識しつつ
Guest
ま開発しやすいという言語を選んでて、で、コトリンでゲームフレームワークを作ったりしてたんですね。
Guest
ただ、まあ、はいはいはい、あの、自分の作りたいゲームがあって、どういうゲームかって言うとすごいなんですかね。
Guest
オブジェクトとか、ゲームのオブジェクトがいっぱいあって、リアルタイムにそれらが圧倒的に動くようなゲームを作りたくて、
Guest
で、そんな時にやっぱりその元々作っていたゲームフレマでは、あのクロスプラットホームにも、実はコトリンネイティブを使うと対応できるんで。
Guest
おお。はい、
Guest
それでま開発のしやすさもあって、いろんなオブジェクトを動かすってなると、結構そのデータ依存だったりとかっていうのがあるんで、
Guest
なるべく開発しやすく、依存関係も少ないような形で作りたかったんで、まことりんを使って作ってたっていうのがあります。と、
Guest
ただ、やっぱりそのなんていうんですかね。いろんなオブジェクトを動かすっていう風になると、パフォーマンスの問題で結構問題があって、で、ことりんだと。ま
Guest
あのガベジコレクションがあって、メモリ管理みたいな自動で行われるんで、ある程度パフォーマンスをなんて言うんすかね。推測できないというか、
Guest
実行時にどういう風にあの、どう作するかっていうのが推測できないんで、チューニングがすごい難しかったんですね。なんで、
Guest
他のいろんな言語を探し見てみて、なんか、他にクロスプラットホームでゲーム作りがしやすいようなものはないかなっていうことで、
Guest
ちょうどラストができるのではないか、という形で、ちょっと挑戦してみたか。挑戦してみたかになりますね。
Guest
はい、おお、ありがとうございますすごいあれですね、すごいな、なんて言うんすかねふ。普段の仕事とは結構離れてるんですけど、割とそういう
Guest
ほんとにそのゲームエンジンから作り始めるっていうのは、なんなんですか。なんか、こうまゲーム自体の興味もそうですけど、そのコンピューターサイエンスというか、その実装を深く知りたいっていうところとかっていうところが
Guest
もあったりとかするん。
Guest
そうですね、あの、今だと、やっぱりゲームエンジンを作って、作りたいゲームのが
Guest
あの作るのが一般的だと思うんで。はいはいはいで、結構そこまでの式もすごい高くて、あの、ごめんなさい。
Guest
芸名人を使わない場合の資金も結構高くて、逆にゲームを作りたいっていう理由だけだったら、
Guest
やっぱりフレイマークゲーム、フレイマークだったり、エンジンを使うのがいいと思うんですけど、
Guest
やっぱ、パフォーマンスのところの部分をもちょ、もう少しチューニングしたいとか、そのチューニングのためには、どういう仕組みになれば、定なのかっていう学習面でも、結構自分自身でゲーム作るっていう人は
Guest
わりかし多い気はしてますね。
Guest
ああ、なるほど、そうですよね、うん、いや、なかなか
Guest
あれあれなんですよ。そのゲームエンジンを作ろうっていうのは、その簡単に言うんですけれども、めちゃくちゃ難しくて、僕、あのあの
Guest
むほんとにあのオープンジーの触りであの三角出すやつとかところまではやって、そこから
Guest
どうやったら、あんな。3dのバリバリモリモリ置くやつが作れるのか。っていうのとから、ほんとに
Guest
想像を絶する努力が必要だと思うんですよね。それをまあかんか、成あの、ゴールデンウィーク中
Guest
だけでも、そのそれはできるっていうのはすごいところだなと思います。
Guest
はい、そうですね、で、
Guest
うん、
Guest
ゴールデンウィーク中だとさすがにあの期間が短かったんで、あ、
Guest
グラフィック系の部分だけをとりあえず実装したっていう形にはなるんですけど、確かに、そのゲームエンジンって、グラフィック以外にも、なんか
Guest
コンピューター、サイエンスの全てを凝縮されてるような。自分個人的には思ってて、例えばですけど、まあ、対戦ゲーム作るってなったら、ネットワーク周り
Guest
で、しかもネットワークって、まあ、フロントエンドエンジニアだったら、結構ウェブ標準で作ればいいと思うんですけど、
Guest
ゲーム系だとレスポンス重要視したりとか、どこでセキュリティをまあの管理するかとか、あとは、あの
Guest
パケットのサイズを意識して、なるべくレスポンス早くするみたいなところまで考えないといけないんで、
Guest
うん、わりかし、ネットワークの部分もコアななんていうんですかね。知識が必要だとかだったりとか、あとまudp基本的に使ったりするんで、そういったところとか、
Guest
あとptpなのかとか、そういうところの知識とか、あとはあのまセキュリティ関係も、あのセーブデータとか、
Guest
まさあの、どこに保存するかとか、そういったところもあったりとか。あと、音楽おオーディオ部分も、あの音声再生させたりとか、
Guest
それだけじゃなくて、例えばあの車とかですね。車のエンジン音とか、トンネル入った時にはどう反射させるかとか、そういったところ、
Guest
知識も必要だったりとか、結構いろんなものが詰まってて、で、やっぱゲームエンジンまで作るとなると、あのユーザーに使いやすいところまで提供するんで、そういったなんていうんですかね。ツールチェーンっていうか、
Guest
そういうところも全てカバーしてるっていうところでは、やっぱり
Guest
あのま個人が作るにはかなり立ち打ちできない領域ではあるんですけど、まあまあまあそうですね、かなりそうですね、いろんな範囲を
Guest
必要とする分野ではあるとは思ってますね。
Guest
はい、ありがとうございます。今、
4. Rustを選定した理由
Guest
ちょうどそのソースコードとかをさせてもらってるんですけど、もは回そのゴールデンウィーク中で、あの作業されたところってのは、主にそのグラフィック
Guest
の周りっていう認識で大丈夫ですかね。
Guest
はい、そうです
Guest
うん、うん、うん、うん、
Guest
主にそうですねあの、ラストのそうですね、ラストまずの1番の決め手っていうのが、実はそのクロスト、フォクロス、プロットフォームでもあるんですけど、
Guest
実はそのグラフィック系のところって、もちろんそのジハードウェアに依存してる部分があって、あのはい、このライブラリーを使えば、
Guest
あの、どこのプラットホームで動くってわけじゃなくて、まあ特に言ってしまう言ってしまうと、あの結構os依存で、
Guest
aapple系、apple系のおいしさとあのメタルっていう。
Guest
はい、
Guest
あのグラフィックなAPIがありますし、windows系だとそうですね、ダイレクトx系です。はいがあってで、あ、
Guest
あとそうですね、オープンglが制定したクロノスグループが作ってる。クロスプラットホームの次世代
Guest
gpのグラフィックAPIとしては、バルカンっていうのがあったりして、で、そこらへん結構似てるはいるんですけど、提供してるAPIもと全然違うんで、
Guest
あのま意外と使い回せないと言いますか。
Guest
そこらへんが全てカバーできてる、ちょっと言語じゃないと、割とクロスプラットホームでゲーム作りをするっていうのができなくて、
Guest
はいはい
Guest
で、ラストで実はその決めてのったのが、このgfxrsっていうライブラリーで。
Guest
はい、
Guest
これは何かって言うと、あのま、ラストのライブラリーのグラフィックスの系のライブラリーなんですけど、
Guest
そのさっき言ったメタルだったり、ダイレクティックスだったり、バルカンだったりっていう。あの、ハードウェアのあの、バックエンドの部分を抽象化して、
Guest
APIとして提供してくれる。ライブラリーで、直接そういったメタルとか、バルカンとか触らなくても、
Guest
まあ、次世代のあのグラフィックAPI系として、あの扱うことができるっていうことで、
Guest
これが結構決め手になってますね。今回、ラストの選定した理由として
Guest
で、そうですね。今回はそれを使って、あのグラフィックス系のコアの部分をつく。あのゲーム、フレーゲーム、フレーマークのグラフィックス系の部分を作ったっていう形に
Guest
なります。
Guest
はいはいはい、じゃああれですね、そのgfrs上に乗っかるまあ、もっとこう汎用的なえ、そのゲームフリーマークっていうのを今回は
Guest
雑したという認識で
Guest
合ってる
Guest
そうです。
Guest
はい、ほうほうほうあれですね、いや、結構ぐらいそのけ、あのェブウェブからだと、ほんとにそういう
Guest
み見える範囲ってのせいぜいwebglとかですよね。ウェブglwebglは、あのオーブンglの
Guest
なんかサブセットみたいな。そうですね、にそうですね、でま、それ以外にもまあ
Guest
ダイレクトやったり、メタルですか。メタルであったりっていうのかとか、もまカバーできるので、ほんとにその真の
Guest
マルチプラットフォームができる
Guest
ですね。あの、もちろんwebglとか、オープンgl系っても、クラスプラットホームで、結構今まで使われてきてて、
Guest
そちらを使うこともできたんですね。そのわざわざメタルとかそういうま次世代なんで使うメリットはもちろんあるんですけど、ただ、そのiosの方が
Guest
オープンglはちょっと非水晶になってしまいまして。ああ、はいごぞご存知ですかね、
Guest
あ、あのあれですよね、そのメタルにこう
Guest
そうですね、ヘタルに移行して、ちょっとそのオープンああじゃないですね、クロスプラットホームの近郊みたいのが崩れて、
Guest
ただまあ、ウェブglはまだ全然対応されるんで、多分そうですね。サファリとかでは、そこらへんは特に気にしなくていいとは思うんですけど、
Guest
あの、なんでウェブだと意外とwebglでいいと思うんですけど、ネイティブの方だと結構そうですね。色々
Guest
なんかゲーム、フレマーク界隈がちょっと騒がしくなったやですよね、多分、
Guest
すごいそういう決断をしちゃうのが
Guest
アップですよね。
Guest
そうですね、ですね、なんで。あと、結構そのオープンglって結構古い
Guest
もので制定されたもの。はいはいえ、結構昔はコンピューターそのハードウェアって結構抽象化されてて、ゲームあの
Guest
ゲームじゃないですね。あの、描画する時に大体こういう風に描画するだろうっていう仕組みが、もうgpu内に乗っかってたんで、オープンglはその
Guest
なんていうんですかね。ハードウェアに沿った形で提供してたんですけど、もう結構時代が変わって、今ってゲームとかだとすごい
Guest
fpsを重視してて、はいはい、あの、今普通のモニターだと60
Guest
フレームぐらいしか、1秒間に60フレームぐらいしか更新されないと思うんですけど、結構最近のゲームとかだと、もうほんとに1秒間に100
Guest
40とか200とかいうものがあって、で、それでもオープンglだとできなくて、
Guest
なんかいろんな制限からできないんですより、そういうパフォーマンスもどっちかって言うと、あの1フレームあたりの
Guest
秒数をなるべく減らすっていう方のパフォーマンスになるんですけど、そういう場合って、なるべく並列でじなんて言うんですかね。実行する
Guest
っていうのが重視されてて、もう1フレーム描画してる最中には、すすでに次のフレームのものを処理してるみたいな
Guest
仕組化が必要で、オープンglにはそういうのがないんですよね。昔のハードウェアに沿って作られちゃってたんで、で、
Guest
そのAPIも一気に変えるみたいなことができなくて、それをズルズル引きずって、オープンgl44まで確か行ったんだと思うんですけど、うんで、オープンglesとかもそれに引き継いで行ってて、
Guest
ただまそこら辺でちょっとハードウェアの帰りがあったんで、あの、ネクストglとしてバルカンだったり、見たりだったり、
Guest
ダイレクトだったりができたみたいな話
Guest
ほう。なんで、今後はやっぱりウェブもwebglも結構パフォーマンスをごい要求してくるものが、もし今後出てくるとすると、webgpuに
Guest
思ってますね。なるほど、あれですよね、そのフレームは、コーフレームレートっていうのだと、あの主にvrとかの文脈とかが
Guest
ですかね。うん、結構そういうvrだと、そのなんかろ60fpsだとこう酔う酔うみたいな
Guest
話とかも、なんか、そこら辺とかもあったりして、やっぱりそういうこうこうこう。フレームレートだと、やっぱりうん、そういう汎用化みたいなのはどうしても難しい
Guest
そうですね。じ
Guest
ビールごとのなるほどって、そういうところがあって、今はそうだ。脱オープンジみたいな流れが生まれてい
Guest
そうですね。ま、結構前から実は起きてたかもしれないんですけど、そうですね、みんな結構でもオープンglって作れば、あのクロスプロットホームなんで。
Guest
で、そんなapsとか必要ないものとかも、しかも結構よ。glってすごいあ、使いやすさはあるんで、
Guest
うん、あ、そう。まあそうです。それはなんでもかんでもオープンじるっていうわけでは、もうこれからはいかない、
Guest
もうど、
Guest
どうなんですかね、そのそうですね、パフォーマンスとか、すごい重視していくと、ほんとにそういう風な壁に当たるんで、あんまり言ってないんですけど、この
Guest
バルカンっていうえ、あ、このgfrsっていうのが、そのバルカンライクのAPIで、基本的にはバルカンを知ってれば、こちらも扱えるって形なんですけど、
Guest
そのバルカンの理解はめちゃくちゃ大変ですね。これもほんとによくなんか
Guest
あれなんですけど、三角形を表示するまでもすごい何百行と書かなきゃいけなくて、30400行以上書かないといけなくて、
Guest
なんでいや、恐ろしい。やっと三角が出たみたいなのを報告する人が多数いるらしいんですけど、恐ろしいコンピュータークス系って、
Guest
頑張って頑張って作れば、結果として目に見える形で現れるんで、達成感はすごい高いですよね。
5. Web とグラフィック
Guest
ああ、そうですね、あと、さっきちょっと出たwebgtu
Guest
はいっていうところなんですけど、まあ、せっかくそのレフロントエンドのポットキャストなので、もうちょっとこうegtuについてこう
Guest
知りたいなっていうところ、結構あの、webgtuって、そのebglとは全く別物で、あのアップルがこうそれこそま
Guest
メタルをつく作り上げるみたいな感じで。あの、
Guest
rgpuっていうのが、まあ立ち上がったっていう認識なんですけれども、なんかももうちょっとこうgpuについて知ってることがあれば、知りたいなと。
Guest
そうですね、実はこのチーフエアレスって、そのさっき言ったろいな。色んなハードウェアを抽象化する
Guest
ま、hlっていうそうあの、あの抽象化する層があってはい
Guest
で、それを利用して、実はそのwebgpuのコア部分をこれを利用して書かれたりしてるんですよね。
Guest
うんうん、
Guest
で、もうちょっと多分いきなりそのバルカンライクのAPIをウェブの方に。
Guest
提供するんじゃなくて、もう少し抽象化した形で、webgpががその抽象化して渡してるんで、
Guest
もう少し扱いやすいとは思うんですけど。なるほど、基本的にはそのwebgpu、そのバルカンライクの
Guest
APIだとは思いますね。ちょっと僕もあんまりwebgpについて触ったことは一切ないんですけど、
Guest
ああいうん、うん、
Guest
ただちょっとそうですね。読んだ形だとし、あのさっき言ったバルカンの
Guest
難しいっていうところは、若干引きつ、引き継ぎつつ、あのま、もう少し
Guest
扱いやすくはなってるんですかね。でも、少なくともあのウェブgp、えウェブglよりもよりあの最近のじあのハードウェアの
Guest
アーキテクチャーに沿ったAPIの提供の仕方をしてると思いますね。
Guest
なるほど、そっか、結構あのウェブでvrをやる試みみたいなのって、まあ割と
Guest
始まってるとは思うんですけど、も、はい、なんかそうですね、ほんとにやっぱりどうしてもその
Guest
数分見てみて、ああ、動いてるなで終わってしまうみたいなことが結構あって、ほんとにそのま
Guest
ウェブでやる意味っていうのが飛ぶとうとことにもなってしまうと思うんですけど、ほんとにそのvrっていうのをウェブでやろうとも
Guest
うっていうのを将来考えた時は、やっぱりそういうegpuみたいなのをも扱えるようになっていると、そのやっぱり最新の
Guest
そのgpuのまに沿ったあのパフォーマンスのいいものが作れる。ま、そういう意味でも、やっぱりそう。
Guest
結構ジフェックアースっていう勉強の勉強自体がま、bbgpuの勉強にもなるかも。
Guest
そうですね。そうですね、あの、
Guest
多分vrって結構パフォーマンス的に重い処理してて、普通に表示するのと、vrだと普通にあのま
Guest
右目、左目分描画しらしなきゃいけない分、パフォーマンスかかりますし、それに普通にびょなんなんでしたっけ。あの画面でひょ描画するよりも、改造度高くしないと、さっきの画面酔いみたいなのがかなり起きるんで、
Guest
結構スペックを要求されるものだと思うんですね。vr
Guest
で、まあ、もちろんネイティブのものを動かす。その需要っていうのは元々あって、ただ、ウェブで動かしたいって需要も多分あると思うんで、
Guest
そうするとは、webglでも多分できなくはないと思うんですけど、よりgpuの
Guest
パフォーマンス。あの、最大限に活かすのであれば、egpを使わざるを得ないとは思いますね。
Guest
ちょっとそういう面で見ると興味出てきましたね、結構ラスト
Guest
だとま、私の興味で言うとはいわ分への出力みたいなの。そうですね、もう興味がではあったんですけども、そういう
Guest
gfrsだと、ま、webgpuの勉強にもなる
Guest
そうですね。まあ、うんてどどっちかっていうと、バルカンを勉強していただくのが
Guest
かもしれないんですけど、
Guest
ほんとにバルクは難しいんで、なんか人間が扱うには早すぎたみたいに
Guest
難しい、そんなに難しいそうにね、興味出てきましたね
Guest
でも、あの絶対今後そのvrとかになったら絶対必要だと思います。そのmgpがまだ多分ちゃんとはて
Guest
されてないものだと思うので、いつできるかにも、普及率とかもかなり重要だとは思うんですけど、
Guest
うん、かなり重要だとは個人的には思ってますね。
Guest
はあ、いや、そうェブからはもう全く知れない世界が知れて、ほんとにいい機会。ほんとにありがとうございます。
6. クロージング
Guest
というわけでえ。今回はいの井上さんをお呼びして、ラストでゲームフレームワークを作るという壮大なテーマについてお送りしました。
Guest
私達、UITのメンバーが所属するLINE株式会社では、このような。まあ、今回はフロントインド
Guest
ではないですけど、まあ、ほんとにそのま、色々な議論を日々思っております。
Guest
で、えま、今回のような、そのゴールデンウィークに中にやった成果であったりま、ビュースリースタディのようなま、
Guest
フロントエンドに関する企画は、毎週行われている社内勉強会での成果でもあります。今後も
Guest
tサイドでは社内社会問わず、どんどん情報を発信していきたいと思っております。
Guest
また、twitterでのえ、情報のはえ、ご意見やご感想をお待ちしております。ハッシュタグはシャープUIT、アンダースコアインサイド
Guest
エピソードのご意見やご感想、リクエストなど、ぜひぜひお気軽にツイートしてください。それではえ、また
Guest
今回はえーゴールデンウィークロンテデジャのゴールデンウィーク最終回ということで、え、井上さんとえハタさんでお送りしました、
Guest
ありがとうございました、
Guest
ありがとうございます。