UnityやUnreal Engine 5、Blenderなど、昨今のゲーム開発には数多くのオープンソース・ソフトウェア(OSS)が活用されている。
3月に開催された「Game Developers Conference 2023」(GDC 2023)でも大きな枠組みとして、オープンソースを用いたゲーム開発に特化したカンファレンス「Open Source Game Development Summit」が行われ、オープンソースによるゲーム開発時に課題になる点や今後の展開などについて数多くの登壇者が議論を展開した。
今回は、その中でもAmazon Lumberyardの後続ソフトウェア「Open 3D Engine」の開発責任者Royal O'Brien/ロイヤル・オブライエン氏による講演「The Future of Game Development Is Open Source」の内容を基に、オープンソースを用いたゲーム開発に必要な知識をまとめて紹介していく。
ますく(坂本一樹)
1991年生まれ、多摩美術大学卒。
原型・ゲームモデリングの専門会社で修行を積み、大手ゲーム会社 R&D部門にてAIを活用したアバター生成技術の特許を取得したのち独立。アプリケーションやゲームなどリアルタイム分野のモデリングに特化したCGスタジオ「KATASHIRO+」を設立。CGWORLDの執筆に多く携わり、 ブログやFanboxなどのメディアに力を入れており、3Dモデリングやゲームエンジン、CG原型、3Dスキャンなどの指導を教育機関・個人へ行なっている。制作依頼、企業への技術顧問、教育機関・個人指導について、お気軽にお問い合わせください。
X(Twitter):@mask_3dcg
Amazon LumberyardとOpen 3D Engine
かつてAmazon AWSがCRYENGINEをベースに開発を始めたゲームエンジン「Lumberyard」をご存知だろうか。Amazonのゲームエンジンへの参入に期待して注目していた読者も多いと思うが、現在その計画がどうなっているかを知る人は多くないかもしれない。
現在Amazonは、AmazonとLinuxが主体となり、Adobe・Intel・SideFX等と共同でOpen 3D Foundationを設立し、Amazon Lumberyardの後継としてOpen 3D Engineの開発を行なっているという。
GDCの講演「The Future of Game Development Is Open Source」の登壇者オブライエン氏は、Open 3D Foundationのエグゼクティブディレクターであり、The Linux Foundationのゼネラルマネージャーでもある。オブライエン氏が語るオープンソースを用いてゲーム開発をする際に大切なことやオープンソース開発環境の未来についての議論を紐解いて紹介していく。
オープンソースはホビーユーザー向け?
オープンソースはホビーユーザーのためのもので、商業で利用するには十分でないと考える人もいるだろう。しかし、“車輪の再開発”を避けるために、実際に商業のゲーム開発で使用するデータの半数はオープンソースで構成されている。例えばKubernetesやDockerなどはその代表的なツールで、無償で堅牢なパッケージのツールをわれわれはすでに一般的に使用している。
“車輪の再開発”とは、世の中にすでにあるものをもう一度インハウスで作り直すことを指し、効率が悪く発展を遅らせる、技術者の中では忌むべき行為とされている。つまり、開発したい内容のデータがオープンソースで公開されている場合、自社でゼロから作り直す必要はないため、積極的にオープンソースを利用していくことが重要になる。
サポート体制に不安がある?
オープンソースのソフトウェアは、一般的な企業がリリースしているソフトウェアと比べてサブスクリプションやライセンスに対して料金を取っていないため、サポート体制に不安がある人も多いだろう。しかし、人気のあるオープンソースプロジェクトは、広範なコミュニティのメンバーによって支えられている。
これらのコミュニティはソフトウェアの開発者、専門家、熱心な利用者などから構成されていて、彼らはソフトウェアのバグ修正や機能追加など様々な面で積極的に貢献している。Blenderの例を見るとわかるが、オープンソースであることで様々な開発者、専門家、利用者、パトロンやスポンサーが集まり、結果的にどの類似ソフトウェアよりも驚異的なスピードで開発が進み話題になった。
オープンソースであることで、企業よりも堅牢なサポート体制が構築できる例も昨今では多く見受けられるため、オープンソースであることを理由に不安になる必要はない。それよりも、自分が使用するツールが今後も生き残っていくものなのかを見抜く力が必要だ。
オープンソースの選択に重要な3つの要素
オープンソースだけに限った話ではないが、久しぶりに開発中のデータを開こうとしたら必要なソフトを誰もサポートしておらず、データを開けなくなってしまった。このような事態は避けなければいけない悪夢だ。
企業が提供するソフトでも、オープンソースのソフトでも、サポートが打ち切られて現在は配布もされていない過去のパイプラインツールは非常に多く、過去の開発資産を未来に活かせない事例も多くある。
同氏はBlenderの成功事例を挙げ、オープンソース開発環境を選ぶときに最も意識しなければいけない3つの要素を紹介している。
先述したBlenderの成功の背景には、オープンソース、オープンスタンダード、オープンコミュニティの3つの要素があるため、その3要素について詳しく紹介していく。
オープンソース
まずは、オープンソースの要件がしっかり守られていることが重要だ。オープンソースに見せかけて、実はオープンソースではないものも存在する。
オープンソースの要件は、ソフトウェアの自由な利用・研究・改変・再配布が可能であること。これには、ソースコードの公開、派生作品の許可、技術的な制約の欠如、利用者の権利の保護、ライセンスの継承などが含まれる。
オープンソースは透明性・共同作業・イノベーションの促進を重視し、柔軟性・カスタマイズ性・信頼性を提供するひとつの指標になっている。
オープンスタンダード
オープンスタンダードであるかどうかも重要な指標だ。これは、囲い込みにより開発やサポートが先細りになって断絶してしまうことを防ぐ指標になる。オープン標準の特徴は誰でも実装可能であり、競争市場を形成しベンダーやグループによる囲い込みを避けるものだ。
また無料で実装できるが、標準化団体の認証には料金がかかる場合もある。オープン標準は差別せず認証も無料または低価格で提供されるべきで、拡張やサブセットの実装も可能だが、認証団体によって制限がある場合もある。
さらに、略奪的な戦略に対処するために、オープン標準には独自の拡張もオープンであるとする条項が付与されることもある。オープンスタンダードに則り個人利用は無料だが、大きな企業や収益を上げたプロジェクトに対してリターンを要求するオープンソースも多いのではないだろうか。
オープンコミュニティ
開発に使用するオープンソースのパイプラインが今後もサポートされ続けるかどうかは、強固なオープンコミュニティが存在するかどうかを見ることがとても重要になる。
オープンコミュニティは異なる背景や専門知識をもつ人々が集まり、共同でプロジェクトやイニシアチブを進めるコミュニティのことを指す。オープンコミュニティは透明性、協力、共有の価値観に基づき、参加者は自由に意見を交換して情報や知識を共有し、アイデアやソフトウェアの開発に取り組む。オープンコミュニティはオープンソースソフトウェアの開発、プロジェクトの共同作業、問題解決、学習の場として活用される。
このようなコミュニティは多様な視点とアイデアの融合により、イノベーションや成果の創出を促進しソフトウェア開発を持続的なものにしていく。
オープンソースとライセンス
オープンソースを用いた開発では様々なライセンスのデータが混在するため、ライセンスの知識が必要不可欠になってくる。オープンソースを用いた開発を行う場合、ライセンスの理解がなければ様々なリスクが存在するため、ライセンスについてここで少しだけ深掘りしていこう。
ApacheとMITライセンスのちがい
オープンソースでは特にApacheライセンスやMITライセンス、クリエイティブ・コモンズライセンスが用いられることが多い。
Apacheライセンスは、派生物の広告や著作権表示に関する特定の要件をもっている。これにより、派生物のソースコードに対する出典表示が明示的に求められる。一方、MITライセンスは出典表示の要件がより簡潔で、ソフトウェアの著作権表示やライセンス条項を含めることが要求されるものの、派生物の広告表示は必要ない。
ゲームを遊ぶときにオープニングタイトルの後にゲームとは関係ないロゴが表示されているのを見たことがある人も多いと思うが、これはApacheライセンスのアセットを組み込んでいる場合が多い。
ほかにも、独自のライセンスをもっているソースコードも多く存在する。例えば、物理エンジンで有名なHavokはApacheライセンスに似ていて基本的に無料で使用できるものの、広告表示の義務があり、タイトルの直後にロゴを表示する必要がある。
一見するとMITライセンスが最も自由で安全なように思えるが、落とし穴もある。MITライセンスには特許条項がないため、MITライセンスのソースコードに特許権侵害が含まれていた場合、訴訟リスクがある。
一方で、Apacheライセンスには特許の使用許可と継承のライセンス条項を含めることができるため、仕事で使用する際は特許条項のあるApacheライセンスを用いるのが最も安全だ。ゲーム業界の訴訟は数十億円、数百億円規模にも及ぶことが多く、リスク管理を十分にする必要がある。
代表的なライセンスと特徴
そのほか、オープンソースでよく利用するライセンスの一覧をまとめた。
コピーレフトは二次配布や改変後に、出典元や同じライセンスを継承する必要があるかどうかという点。特許条項が含まれていないライセンスを使用する場合は特許を侵害していないかに十分注意し、特許に対する詳細情報や規約があれば別途添付することを推奨する。
ゲームエンジンの選択
UnityとUnreal Engineは無料で利用できるゲームエンジンであり、多くの開発者によって利用されている。それ以外にも、各種大手ゲーム会社がリリースしている有名ゲームエンジンは数多く存在している。
開発で積み上げたデータやアセットを異なるエンジンに転用することは難しいため、ゲーム開発初期におけるゲームエンジンの選択は、常にオール・オア・ナッシングの究極の選択を迫られる。3Dアセットを制作するDCCツールとは異なり、ゲームエンジンはどれかひとつを選ぶことになるため、慎重に検討する必要がある。
また、Unityは例外だが、Unreal Engine、Frostbite、Snowdropをはじめ、最近のゲームエンジンのほとんどはC++で作成されていることも注目すべき点だ。
過去の開発の遺産を将来の開発に活かすためには、主流の言語を使用しているツールを選ぶのも大切な観点だろう。
また、ゲーム開発ではPythonのサポートがとても重要になってくる。通常のゲーム開発では、Blender、Substance 3D、MayaといったDCCツールをゲームエンジンと連携させて開発を効率化していくことが一般的だ。
DCCツールの大半がPythonをサポートしているため、連携や拡張をしやすくするためにゲームエンジンがPythonをサポートしていることも非常に重要だ。
次世代表現とGPUのAPI
また、講演の中では、レイトレーシングやPBRなどのAAAタイトルに必須のグラフィックス機能をサポートするVulkan、Metal、DirectX 12、OpenXRなどの次世代型のAPIについても触れられた。これらのAPIは、特定のハードウェア環境でGPUの性能を引き出しグラフィック描画を行うために必要なものである。
例えばiPhoneでグラフィックス重視のゲームをつくる場合、Metalを用いることで性能をフルに発揮した美しいゲームをつくることができる。
Metalは、Appleが提供する低オーバーヘッドのコンピュータグラフィックスAPIで、低オーバーヘッドのAPI、ハイレベルのシェーディング言語、緊密に統合されたグラフィックスと演算プログラム、GPUのプロファイル/デバッグ用の高度なツールセットが用意されているため、Appleプラットフォームでハードウェアアクセラレータを使用するグラフィックスの強化が可能だ。
DirectX 12はMicrosoftが開発したAPIの総称で、Windows上のアプリケーションがGPUを使用してグラフィックスや計算処理を行うための機能を提供するAPIだ。ゲームや動画などのマルチメディアコンテンツをWindows上で処理させるために使用される。
Vulkanはクロノス・グループが策定している、オープンスタンダード・ロイヤリティフリー・クロスプラットフォームなリアルタイム3Dグラフィックス・コンピュートAPIだ。グラフィックスハードウェア層に近いローレベルな制御を目的としており、これによりオーバーヘッドを低減しハードウェアの限界性能を引き出すことが可能となる。
OpenXRはバーチャルリアリティおよび拡張現実プラットフォームおよびデバイスへのアクセスに関するオープンでロイヤリティフリーの規格。VR、ARプラットフォームデバイスやアプリ間の仕様を統一し、プラットフォームごとの最適化の手間を減らすことができるのが特徴だ。
Open 3D Engine
オブライエン氏は、講演の中でオープンソースとライセンスの重要性について説いてくれた。また、これまでのオープンソースのエッセンスを全て注ぎ込んだ新しいゲームエンジンとして、彼自身が開発に深く関わっているOpen 3D Engineについても紹介がなされた。
Open 3D EngineはCRYENGINE、Amazon Lumberyardを経て開発されてはいるものの、CRYENGINEのソースコードは0.6%程度を残すのみという、まったく新しいゲームエンジンとしてリニューアルされている。オープンソース開発の強みを最大に活かし、Blenderの成功例と同様にオープンソース、オープンスタンダード、オープンコミュニティを重視して開発が進められている。
多くのゲームエンジンと同様にOpen 3D EngineもC++で開発されており、Pythonをサポートする。ライセンス形式はApache 2.0で、次世代型のAAAゲーム開発に向けたマルチプラットフォーム対応のまったく新しいゲームエンジンと言えるだろう。
Open 3D Engineは新しいマルチスレッドのフォトリアリスティックレンダラ、拡張可能な3Dコンテンツエディタ、データ駆動型のキャラクターアニメーションシステム、リアルタイム物理エンジン、高性能ネットワーク層を備え、Windows 10とLinuxをサポートし、Windows 10、Linux、macOS、iOS、Android向けにビルドすることができる。
Open 3D Engineの最小システム要件にはDirectX 12またはVulkan互換のビデオカードが含まれており、前述したDirectX 12やVulkan、Metal、OpenXRにも対応している。
Open 3D Engineの強みとしては、幅広いGPUAPIに対応しており、各種プラットフォームへのコンパイル時にGPU描画をDirectX 12を通したエミュレートではなく、VulkanやMetalをネイティブで運用させることで低価格帯のモバイルデバイスやデッドエンドのモバイルデバイスでもレイトレーシングを行うことができることなどが挙げられ、オープンソースならではの自由で柔軟な使用例が紹介された。
Open 3D Engineはまだまだ開発中ではあるものの、誰でも無料で使用できるオープンソースのゲームエンジンである。読者の皆さんにはオブライエン氏が自信をもって開発するOpen 3D Engineの実力を、実際にその目で確かめていただきたい。
TEXT_KATASHIRO+ けろりん4410/ますく
EDIT_小村仁美 / Hitomi Komura(CGWORLD)