2019年6月12日
System Era Softworks が UE4 を活用して Astroneer のすばらしい世界を創造
もう 1 つインスピレーションの源泉となったのは、ゲームではなく、2015 年に華々しく公開された映画、オデッセイです。この作品も Astroneer の開発において重要な役割を果たしました。Bromell 氏は次のように述べています。「この作品を通じて、自分たちと同じようにこの種のエクスペリエンスを待ち望んでいる人たちがいるのだということがわかりました。オデッセイは、さまざまな面で、私たちにとっての『アイデアの経典』となりました。生き残れるかどうかという場面で湧き起こる感情や、小さなパーツをまとめて大きな目標とすることなどについて、オデッセイからインスピレーションを得ました。オデッセイでは、過酷な環境の無人惑星でサバイバルするという直接的で具体的な経験を目にすることができました。Astroneer では、プレイヤーに同じような時間を過ごしてもらえるように、サンドボックス エクスペリエンスを作りたいと考えました。また、映画よりも個別のものにして、さまざまな種類の惑星を舞台にして、個人の関心に沿ったものにしたいと考えました」
インスピレーションとゲームのデザインをテストするために、System Era Softworks は Astroneer のアーリー アクセス版を 2016 年の 12 月 16 日にリリースしました。このプロセスは、同社にとって非常に貴重な経験となりました。Wolpert 氏は次のように述べています。「技術的な観点からは、システムをどう設計するべきかを深く理解できました。システムは、オープン ワールドのコンテキストで十分なパフォーマンスを発揮し、コンテンツを継続的に追加するパイプラインとして機能する必要がありました。また、マルチプレイヤー ゲームの開発には付き物の課題についても多くを学ぶことができました。ゲームプレイに新機能を追加するときはいつもマルチプレイヤーのことを考慮する必要があり、シングルプレイヤー限定のエクスペリエンスと比べると時間も手間もかかります」そうした教訓を踏まえて、Wolpert 氏はこう述べています。「Astroneer のコード ベース、エンジニアリングのガイドライン、ベスト プラクティスは、アーリー アクセスの過程を通じて大きく変化しました」
Astroneer はアーリー アクセス版から先に進むことができました。そうできないタイトルも数多く存在します。このプロセスを通じて、System Era Softworks は、ゲームを長期的に拡大する方法について理解を深めることができました。「また、コア システムの多くについて、基本的な設計を変更しました。主な目的は、バージョン 1.0 で魅力的なエクスペリエンスをサポートするだけでなく、システムに奥行きを与え、さらにその先に拡張の余地を残すようにすることでした」
Astroneer は System Era Softworks が初めてリリースするタイトルです。アーリー アクセスのプロセスによって、同社に強固な基盤ができあがりました。Wolpert 氏は次のように述べています。「System Era Softworks について多くのことを学び、チームとして進歩して、Astroneer にできる限りのものを詰め込むことができました。アーリー アクセスで得られたすばらしい環境を活用して、自分たちについて学び、協力して働くための最適な方法と、目標に向けて必要な調整を行う方法を身に付けることができました」
Astroneer は宇宙時代の冒険という設定ですが、ゲームに 1 つの物語があるわけではありません。オープンなプレイグラウンドで、プレイヤー独自のストーリーが現れてくるようになっています。Bromell 氏は次のように述べています。「Astroneer は、当初からずっとサンドボックス エクスペリエンスとして設計されていました。ストーリーをプレイヤーに示すのではなく、プレイヤー自身にストーリーを定義してもらいたかったのです。オデッセイにはとても具体的なストーリーがありましたが、Astroneer は多数のストーリーがあるものにして、プレイヤーが実際に経験した視点から語られるようにしたいと考えました」イマーシブな形でストーリーが現れ、語られるようにするためには、楽しいサンドボックスを作るだけでは不十分でした。エクスペリエンスを魅力的なものにする要素を提供する必要がありました。「ストーリーに関する課題と発見を、サンドボックス エクスペリエンスの改善に役立てています」と Bromell 氏は述べ、その判断の影響についてこう振り返っています。「プレイヤーが直面する課題は同じでも、それを発見し、挑んでいく過程は、プレイヤーごとにまったく違ったものになり、そう語られていくでしょう。直線的な、選ばれたストーリーのエクスペリエンスでは、このような成果は得られないだろうと、開発中も今も感じています」
ゲームのコミュニティ内でもプレイヤーの一瞬一瞬のエクスペリエンスがユニークなものとなっている理由の一部は、Astroneer の世界がプロシージャルに生成されているからです。この方法は、適切に取り入れないと大量の問題を生じさせてしまいます。System Era Softworks は苦労しながら学んでいく必要がありました。「プロシージャルな生成のテクノロジーは、アーリー アクセスの過程を通じて完全に書き換えられました。2016 年 12 月に最初に公開したバージョンでは、プレイヤーが調査する世界は、現在の Astroneer 1.0 とはまったく異なる方法で構築されていました。元の方法では、階層化されたアクタに、ワールド生成に関するさまざまなパラメータがあり、ロード時にアクタをスポーンして惑星全体を前もって生成しました」と Wolpert 氏は述べ、また、問題点については次のように付け加えています。「当然ながら、その方法には、各惑星をあまり複雑なものにできないという問題がありました。惑星のどの場所についても、テレインやデコレーターを解決するためにアクタの階層全体が必要になるのです。複雑さが増すと、事前生成の負荷が高くなりすぎるため、元のバージョンのゲームでは惑星がすかすかになっていました」
System Era Softworks はプロシージャルな生成テクノロジーを書き換え、ビジョンに沿ったものにしました。その新しいシステムについて、Wolpert 氏は次のように述べています。「レイヤー化したノイズ関数を使ってテレインの生成とオブジェクトの配置をその場で行います。惑星の隣接する部分について把握する必要はないですし、ロード時に何かを生成する必要もありません。それに加えて、生物群系と洞窟のレイヤーを分離するためにいくつかレイヤーがあります。こうすると、惑星のオーサリング プロセスを行いやすくなり、システムのパフォーマンス改善にもつながります。また、緑豊かなランドスケープには、UE4 のフォリッジ システムを活用しています。以前よりもはるかに多くの植物、岩、資源などのデコレーターを利用できるようになりました。Astroneer 1.0 の惑星では、惑星の核まで到達する洞窟のシステム、密林、岩の多い砂漠平原、大草原などがあります」
デザインについて累積的に判断を下していった Astroneer は、多くのプレイヤーにとって心穏やかな探検のエクスペリエンスとなりました。Wccftech によるレビューでは、「Astroneer はリラックスできるすてきなサバイバル ゲームです」と評されました。これには意図していなかったメリットがあることがわかりました。Bromell 氏は次のように述べています。「癒やしの効果があるような、あるいは『チル』なゲームを作ろうとしたわけではなく、探検と発見の要素をエクスペリエンスの前面に出そうとしていました。Astroneer では、サバイバルよりも、何を発見し、それをどうするか、という点に重点を置いています。空気、食糧、水、睡眠などが必要なつらい状況に絶えず置かれていたとしたら、発見の瞬間と向き合う機会は少なくなってしまうでしょう。もっと 0 か 1 かというような (空気が必要で、ないと死んでしまうというような) アプローチでサバイバルの面を扱うことで、発見の面を本当に重視できるようになったのです」Shacknews による Astroneer のレビューでは、「プレイヤーはほとんどの時間を楽しいことに割くことができ、ステータス バーを気にすることはほとんどありません」と述べられています。このことからわかるように、System Era Softworks の下した設計上の判断は、すばらしいものでした。
オンラインで友人たちと一緒に探検できるということによって、このゲームの発見の感覚はさらに高まっています。しかし、co-op プレイを取り入れるには課題もありました。Wolpert 氏は次のように述べています。「技術的な面では、すべてがマルチプレイヤーで動作するようにして、マルチプレイヤーのパフォーマンスをモニタリングするために、チームでの調整とハードワークが必要になりました。また、マルチプレイヤーへの対応に慣れる必要がありました。先ほどお話しした 2 つの点に対応するために、追加の作業が必要になったほか、集団としてすぐれたマルチプレイヤー ネットワーク プログラマーになる方法を学ぶ必要がありました」そして、こうした問題を解決するために、エンジニアリング チームはそのアプローチを変革する必要があったとして、「多様なコンテンツをサポートできてネットワーク面で安全なシステムを構築する方法を学ぶ必要がありました」と述べています。幸い、そのハードワークは実を結んだようです。Shacknews は次のように述べています。「Astroneer は、バージョン 1.0 で co-op をうまく扱うことができています。アーリー アクセスのころに見られたような接続の問題はなくなったようです。ほかのプレイヤーは問題なく私との co-op プレイに参加して、そこから離脱できています」
宇宙の探検を扱う Astroneer は、そのグラフィックスのカラフルさとスタイルが称賛されています。Video Chums のレビューでは、「私はこのカラフルで、テクスチャは最小限で、アニメーションが控え目な世界がとても好きです」と評されています。しかし、このスタイルは元々必要に駆られて生み出されたものでした。Bromell 氏は次のように述べています。「最初はチームに 4 人しかおらず、そのうち 2 人がアーティストでした。アート作成の技術的な面に多くの時間をかけることになり、その結果として、アイデアをプレイできるコンテンツにするためのプロダクションが遅れるだろうとわかっていました。すぐれたコンテンツをすばやく制作することに早い段階から力を注ぐべきであったのですが、モデルのアンラップ、高解像度バージョンの作成、メッシュのテクスチャの作成には大変な時間がかかると考えられました。当時、私はちょうどローポリの個人的なアート プロジェクトを作り終えたところで、とても速く作成できたと思っていたところでした。1 回の週末のうちに、Canabalt のファンアートである完全にインタラクティブなジオラマを作成できたのです。そこで、Astroneer でそのスタイルを使うというアイデアを試すことにしました。するとアートをとてもすばやく作成できることがわかりました。制作スピードのメリットを考慮して、そのスタイルを Astroneer で採用し、本格的に工夫していくことに決めました」
ミニマリズム指向のビジュアルには、意図していなかったメリットもありました。メモリの面では、パフォーマンスの最適化に役立ちました。Wolpert 氏は次のように述べています。「ゲームのコンテンツと一緒にパッケージして、ランタイムでメモリに読み込む必要があるテクスチャはごくわずかです」ほかにもプラスに働く副作用がありました。Wolpert 氏はこう付け加えています。「ゲーム内の人工的なオブジェクトで共有されるマスター マテリアルについて、おもしろいことができました。そのマテリアルは動的なエミッシブ『ライト』をサポートします。このライトは、オンオフを切り換えたり、色を変えたり、オブジェクトの任意の部分に動的に変化するアイコンを表示したりすることができます。テクスチャ アトラスを移動する UV を使ってこれを実現しています。こうすることで、レンダリングのドローコールは 1 つしか必要ないままで、プレイヤーの行動に視覚的に反応するオブジェクトを利用できます。これは、Astroneer でプレイヤーがインタラクションする各種のコントロール パネルで使われています。アイテムがパッケージされている箱や、着陸スポットの着陸灯などです」
ブループリントも System Era Softworks にとって役立ちました。Wolpert 氏はブループリントを「新機能の概念実証のプロトタイプをエンジニアの関与なしで作成するための強力なツール」と説明しています。また、System Era Softworks はブループリントを効率的に活用するためのワークフローを構築しました。Wolpert 氏は次のように述べています。「エンジニアリングの作業の大半はデザイナー向けのツールキットの作成を中心に整理されています。デザイナーはそのツールキットを使用して、比較的少数のブループリント ノードからゲームの新しいオブジェクトを作成できます。それらのブループリント ノードは、ネットワークの処理、パフォーマンス、内部でのゲームの重要な機能の保護のために自分たちで実装したものです」System Era Softworks は、テレインのプロシージャル生成ツールを実装するために、UE4 のノードベースのグラフ エディタも使用しました。「惑星を生成するために使用したノイズ関数とオブジェクト配置関数は、エンジンが提供するノード エディタのインターフェイス上に作成したカスタム ノードを使って構築されました。これは大変役に立ちました」と Wolpert 氏は述べています。
ソース コードへのアクセスは、System Era Softworks が活用した Unreal Engine 4 の重要な機能の 1 つでした。Wolpert 氏は次のように述べています。「ソース コードへのアクセスなしには Astroneer を完成させることはできなかったでしょう。最初期のチームは、実際に最初のプロトタイプを Unity で開発しましたが、開発の初期で Unreal に切り換えました。この決定に至った最大の要因の 1 つは、ソース コードへのアクセスでした。テレイン生成システムのパフォーマンス要件の都合上、許容できるフレーム レートでゲームを実行できるようにするためのメカニズムを適切に実装するには、エンジンのネイティブ コードにアクセスできる必要がありました。テレインのほかにも、オープン ワールドの性質上、ゲームのオブジェクトとシステムの多くについて、開発方法を再検討する必要がありました。ソース コードにアクセスできなければ、エンジンの既存の機能やシステムをどう活用するかについて選択肢が減り、これらの対応はずっと難しくなっていたでしょう。また、デバッグ、ネットワーク関連の実装、パフォーマンスのプロファイリングにも大きく役立っています。繰り返しになりますが、ソース コードへのアクセスなしには Astroneer を完成させることはできなかったと思います」
バージョン 1.0 が公開され、レビューで高い評価を受けています。たとえば Videochums は、「Astroneer の感想を一言にまとめるとしたら、楽しい、ということになるでしょう。穏やかな美しさを備えた世界とのんびりとしたゲームプレイがうまく結び付いて、驚くほどくせになるスペース サバイバル ゲームができあがっています。あなたもきっと、何か満足感を得られる装置を作り出すことになるでしょう」と評価しています。Astroneer は正式に発売されましたが、System Era Softworks はそこで手を止めることなく、引き続きアップデートと改善に取り組んでいく予定です。詳しくは、https://astroneer.space/ をご覧ください。
ゲーム開発に関心をお持ちの場合は、Unreal Engine 4 を無料でダウンロードしてお試しいただけます。