お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2010/09/01 17:44

イベント

[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」

スクウェア・エニックス オンライン事業部 クリエイティブ・プログラマー 久道 羊宇太氏。スクウェア・エニックス メンバーズ内3Dアバターゲームの開発を元にした実例を交えつつ,3Dアバターゲームや3Dブラウザゲーム開発時の,ロードやレンダリングなどボトルネックになり得る各種処理における負荷対策法を紹介した
画像集#001のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」
 CEDECでは,聞き手が一定の知識や技術を持っていることを前提とした講演も行われている。スクウェア・エニックス オンライン事業部 クリエイティブ・プログラマー 久道 羊宇太氏による「3Dブラウザゲームのボトルネック対処法」という講演はそのひとつで,「初歩的なプログラムの知識のある方」「初歩的な3Dの知識のある方」「3Dブラウザゲームを検討・開発・リニューアル予定の方」といった受講スキルが掲げられていた。逆に言えば,これは「その程度の知識がないと聞いても分かりませんよ」という警告でもある。
 当然,この講演は技術的な内容がほとんどで,それをひとつひとつレポートしてもあまり有益な記事にはならないのだが,筆者としては非常に興味深い事例の紹介があったので,その部分をとくに強調する形でお届けしてみたい。

 講演の中心となるのは,「ブラウザゲーム」で「3D表示」をすると,どうしても遅く・重くなりがちなのを,どう克服するかというテーマだった。
 3Dグラフィックスのブラウザゲームなんて滅多にないだろうと思うかもしれないが,最近この手のゲームは増加傾向にあり,ソーシャルゲームでポリゴンのキャラクターを操作できることも珍しくない。FPSがまるごとブラウザの上で動くケースもある(「Quake Live」など)。
 だが,ポリゴンを使ったブラウザゲームは,とにかく重いという問題がある。プレイ時におけるキャラクターの挙動そのものはともかく,ローディングが長いゲームが多いのだ。このことは講演でも指摘されていて,要するにそれは2Dのゲームよりも読み込むべきデータが圧倒的に多いのが最大の理由となる。簡単な理屈だ。

PSP程度のポリゴン表示が可能。だがそれでも重い
画像集#002のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」 画像集#003のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」

1秒,1msを刻む戦い。「面白いゲームならローディングは気にならない」とは言うものの,「ローディングが長すぎてダメ」だったゲームも多い
画像集#004のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」
 というわけで,この読み込み時間をどうやって短くするか,ゲーム内の処理をどうやって軽くするかといった技術が,1時間かけて語られたのだが,筆者としてはこれを聞いていて,とても懐かしい気持ちになった。
 というのも,この「高速化」は,基本的には「100ms(ミリ秒)かかる処理を,90msに短縮するために知恵を絞る」ことの繰り返しなのだ。ときにはコードの書き方によって高速化を図り,ときには処理の工夫によって高速化を図る――これは「このゲームを遊びたかったらもっと強力なPCを買ってください」あるいは「重くて無理だから2Dで我慢しましょう」という姿勢とは正反対の考え方だ。

 かつてPCが「マイコン」だった時代(だいたい25〜30年くらい前),ゲームを作ることは,1バイト・1サイクル(CPUの動作の最小単位)をめぐって鎬を削ることだった。なにしろコンピュータのメインメモリは32KBだの64KBだのしかなく,またCPUのクロックは2Mhzや4Mhzで,1バイト・1サイクルの差が甚大な結果の差へとつながるのが当然だったのだ。
 この明らかな「無理ゲー」状況下で,かつてのクリエイター達はゲームを作り続けた。PCのスペックはゆっくりと向上していったが,それでも1バイト・1サイクルを争う時代からはなかなか抜け出せなかった。Cのような高級言語が普及しはじめてなお,「本格的なプログラムを書くならアセンブラが必須」とされる時代が,長く続いた。そしてそういう「無理ゲー」環境下で,いくつもの傑作が生み出され,不可能は可能にされていったのだ。

 やがてゲーム開発は,プログラムが一人では作れない「プロジェクト」になり,チームでの開発が当然となった。そして,この段階で職人芸的なプログラムよりも,可読性の高いプログラムが重宝されるようになった。また,ソフト上の技術革新より,ハードのパワー向上で問題を解決するほうが効率的になっていったことにより,「芸術的なプログラム」は純粋な害悪へと成り下がっていった。個人的にも,情報処理の講義で「if」なんて冗長なものを廃し論理式を使ってコンパクトに書いたら,烈火のごとく全面否定されたことを懐かしく思い出す(こんな死んだ技術,何言ってんのか分かんなくて全然オッケーですはい)。

画像集#005のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」 画像集#006のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」

 そして時代は大規模開発の時代となり,「可読性」「共有性」の高さはもはや不可欠となった。一方ではミドルウェアが発展し,「ゲームを作るツールで作ったゲーム」がヒットするようにもなっていく。もはやここにかつての職人芸を活かせる余地はなく,もしあったとしても非常に限られた分野,それが時代の流れなのであると,誰もが思っていたのではないだろうか。

 ところが,ブラウザ上で動く3Dゲームにおいては,ミリ秒を削るために「同じ動作をする,違う命令を書く」といった類の努力が復活している。これは驚くべきことであると同時に,時代の徒花,一過性の技術で終わることもないのではないか,という予想が成り立つ。
 というのも,スマートフォンなどのように,性能にある程度限界のある環境が,今後のネットゲーム環境としてクローズアップされていくことがほぼ疑いないからだ。スマートフォンの性能も確実に上昇はするだろうが,発熱や電源のことを考えると,PCほど急激に成長するとは考えにくい(電池の性能はムーアの法則に従っていない)。そしてブラウザでの3D表示は,「標準的なPCでも,普通にやったら今なお重い」のだ。

待ち時間が2〜5秒でここまでいける,というサンプル
画像集#007のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」

 個人的な感覚だが,こういった場面で要求される「職人芸的なそぎ落とし」は,日本の開発者が得意な分野であるように思う。少なくとも,かつてはそうだった。
 限定された環境で,その制限を活かしながら新旧のアイデアをよりあわせ,誰も見たことがない大傑作を作るというのは,巨大な成功例があるためにそれこそが唯一の真実に見えてしまうこともあるが,そんなことができた(できる)のは一握りの天才だけだ。10msを削り続けて不可能を可能とする努力を,軽視してはならない。

 講演者の久道 羊宇太氏(スクウェア・エニックス)は,講演のなかで「ブラウザでの3D表示を円滑にすることで,Webとゲームの垣根がなくなる」という指摘をしている。この壮大な夢は素晴らしいが,同様に「15年前,コンシューマーが3D化していった時代に,高い技術への挑戦と工夫を通して不可能を可能とした,その魂を継承する」という見解も評価されるべきだろう――その挑戦と工夫は,15年前だけでなく,25年前にも(そしておそらくはもっと前から)成されていた,「コンピューターゲームを作る」情熱のひとつの側面だったのだ。

画像集#008のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」 画像集#009のサムネイル/[CEDEC 2010]ゲームの垣根をなくす鍵は“職人芸的なそぎ落とし”にあり。スクエニ流「3Dブラウザゲームのボトルネック対処法」
  • 関連タイトル:

    スクエニ メンバーズ

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:12月27日〜12月28日