RustとVulkanで書かれたリアルタイムプロシージャル生成ゲーム Tiny Glade デモ版リリース – 開発者が Bevy、プロシージャル化について語る

Tiny Glade でリアルタイムプロシージャル生成を実現するために、開発言語にC++ではなくRust、そしてOpenGLではなくVulkanを使用した理由についてEmbark Studiosのプロシージャル アーティスト、Anastasia Oparaが語ります。

Tiny Glade のデモ版のリリースを記念して、Pounce Light の Anastasia Opara 氏と Tomasz Stachowiak 氏が 80 Level に出演し、ゲームの歴史、プロシージャル化、Bevy、Rust、セルフパブリッシング、および「居心地の良いゲーム」のジャンルについて話し合いました。

過去数年間、世間から隔絶した生活を送っていたわけでもなく、インディーゲーム開発業界に少しでも興味があるのなら、おそらく Tiny Glade をすでにご存知でしょう。これは、ソーシャル メディアで大流行し、現在 Steam で最もウィッシュリストに載っているゲームの 1 つとして目立っている、リラックスできる城建築シミュレーターです。

80 Level では、このゲームに初めて注目したのは開発のかなり初期で、 Rust プログラミング言語で動作するデータ駆動型ゲーム エンジンである Bevy を使用して週末プロジェクトとして作成された手続き型壁ジェネレーターに過ぎなかった頃でした。このジェネレーターからビデオ ゲームへの素晴らしい変換の全過程を通じて、私たちは数々の印象的なデモを目の当たりにする機会に恵まれ、それを何度も皆さん と 共有してきました。

本日、コミュニティはついに、Steam でデモ版がリリースされ、Tiny Glade を直接体験できるようになりました。この記念すべきイベントを記念し、80 Level チーム全員が待ち望んでいたゲームについてさらに詳しく知るために、開発者の Anastasia Opara 氏と Tomasz Stachowiak 氏を招き、Tiny Glade の歴史、プロシージャル化、Bevy、Rust、ビデオ ゲームの自主出版、および「コジー ゲーム」ジャンルについて話し合いました。

なぜTiny Glade のデモ版をリリースすることにしたのですか? リリース前にフィードバックを集めるため、または次のゲームを宣伝するため、あるいはまったく別の目的のためですか?

Anastasia Opara:これは、購入前にゲームを試す機会を人々に提供する手段だったと思います。プレイヤーからのフィードバックについての最初のポイントについては、コミュニティの反応を楽しみにしていますが、すでに綿密なプレイテストを実施しているので、何も問題がないことを願っています。

主に、このゲームが好みかどうか、そして実際に気に入っているかどうかを人々に確認してもらいたかったのです。Tiny Glade は、ジオラマを作るためのおもちゃ箱と表現されるような、あまり伝統的なゲームではありません。一部のプレイヤーは、このゲームが気に入っていることに驚くかもしれませんが、他のプレイヤーは、プレイしてみて「良かったけど、私の好みではない」と思うかもしれません。それは当然ですが、後者ではなく前者であればいいと思っています。

すでにプレイテストを実施したとおっしゃっていましたが、それについて教えていただけますか? それはパイプラインにどのように役立ちましたか?

Tomasz Stachowiak : 私たちが継続的に取り組んでいる最大の問題の 1 つは、すぐに解決できない問題であるため、ユーザー エクスペリエンスです。基本的に、これはゲームの最も重要な側面です。この城を建てるゲームの開発の重要な部分は、やりとりが満足のいくものであることを確認することであるため、コントロールに問題があったり、十分に直感的でないと感じたりすると、ゲームの楽しさが損なわれます。

プレイテスト中に遭遇した具体的な問題について言及できるかどうかはわかりません。なぜなら、通常は「ああ、何かが期待通りに動作しない」とか、「よかった、もっと直感的にできる。ああ、これはこれを台無しにする、これはあれを意味する。ドアを個別に配置することはできるだろうか」といった感じだからです。そして、5 回のブレインストーミング セッションを経て、私たちは「ドア – それはどういう意味だろう?」ということになります。つまり、ゲームで改善できる点についての表面的な提案は、内部にあるクレイジーな手続き型メカニズムに組み込むと、それほど単純ではないことが判明します。

アナスタシア・オパラ:ある意味、私たちは、人々がそれを使って何を作り、ゲームをどの方向に持っていきたいのかを知りたかったのです。例えば、丘や崖の上にクレイジーな城を作ろうとすると、問題点は何でしょうか?あるいは、何かをやろうとすると、簡単にできるでしょうか、それとも、それを達成するには多くのハードルを乗り越えて、ゲームのツールを再利用する必要がありますか?

私たちの目標は、面倒な手続きを省き、全体的な体験を少しでも速く、より良くすることだったので、最大の苦労は UX の繰り返しだったという Tom の意見には私も同意します。Tiny Glade の機能の一部は 5 回または 6 回の繰り返しを経ており、これは驚くべきことですが、プレイテストのおかげで、今ではうまく機能するものに落ち着きました。

Tomasz Stachowiak:ゲームのツールの再利用といえば、プレイテスト段階での素晴らしい例として、あるプレイヤーがランタン (正確には、ランタンの木製要素) を積み重ねて、木製の壁のようなものを作ったことがあります。もう 1 つの例は、階段を正しく配置すると、壁のマチコレーションのように見えることがわかったことです。このため、マチコレーションを追加する適切な方法を組み込むことにしました。

アナスタシア・オパラ:もう 1 つの例は橋です。これは当初はまったく計画されていませんでした。しかし、多くの人が橋を作りたがったため、「では、どうやって橋を作るか」と考えました。これは実際には、建物を持ち上げるためのシステム全体に発展しました。現在、すべてが 2D ではなく 3D になっています。これは、元の設計ではすべてが地形に張り付くだけだったためです。

幸運なことに、Tiny Glade のプロシージャル システムに新しい機能が追加されたとき、何も爆発しなかったので、私たちは「すごい、橋やその他のクールなものが作れる」と思いました。しかし、その後、「建物を高くできるようになったので、支える必要がある。重なったらどうなるか」という状況になりました。これは非常に反復的な設計プロセスです。

プロシージャルについて話しているところですが、プロシージャル アーティストとしてのあなたの経験について詳しく教えていただけますか?

Anastasia Opara: 最近数えていたとき、プロシージャル アートを始めてもう 10 年近く経っていることに気づきました。80 Level が私の最初のジェネレーターについて記事を書いたときのことを今でも覚えています。とても光栄に思いました。「おお、認められた。すごくクールだ」。中国の建物のジェネレーターか何かだったと思います。その後、湖畔の家のジェネレーターがあり、今は Tiny Glade です。こうした経験が少しずつ積み重なって、前のステップで学んだことすべてが少しずつ自分を高く上げてくれるような感じです。

Tiny Glade は、実際にはレンダリングをテストするための趣味の週末プロジェクトとして始まりましたが、シーンに何かが必要でした。そこで、「これはすごい。オフラインではなく、GPU で手続き型生成をリアルタイムで実行できる」と思い、それが完全なゲームへと進化し、今では元の小さなプロトタイプよりもはるかに多くの要素を網羅しています。

手続き型ジェネレーターを、「ボタンを押すだけですべてが実行される」生成 AI と比較する人もいます。この比較は公平だと思いますか?

アナスタシア・オパラ:それは、どのように解釈するかによると思います。私にとって、プロシージャル アートはとても親密なものです。なぜなら、システムに組み込まれるすべてのルールを私が作成するからです。Tiny Glade では、すべてトムと私が手作りしたので、そこから得られる体験を正確にキュレートしています。これは、ボタンを押すだけで巨大なニューラル ネットワークが何かを吐き出す、現在伝統的に AI と見なされているものとはかなり異なると思います。それが、根本的な違いだと思います。

私の記憶が正しければ、Tiny Glade はシンプルな手続き型壁ジェネレーターとして始まったと思いますが、プロジェクトの初期の頃について詳しく教えていただけますか?

Anastasia Opara: Tiny Glade の初期の頃、私はまだ Embark Studios でフルタイムで働いていました。そのため、これはレンダリングについてもっと学びたいという欲求から生まれた趣味のサイド プロジェクトでした。最初のプロトタイプは、当時も今も最大の Rust エンジンである Bevy Engine を使用して構築されましたが、追加の制約があったため、レンダリングの仕組みを理解するために独自のレンダリング ソリューションを書き始めました。最初はとても楽しかったのですが、少し疲れました。フルタイムの仕事と並行してサイド プロジェクトに取り組む場合、多くの時間を割く必要があるからです。実際の仕事が始まる午前 9 時までに何かを終わらせるために、午前 4 時に起きていました。

実際に、私が最初にツイートした作品が人々に好評だったことには驚きました。そこからどんどん進化していき、「もしゲームになったらどうだろう?」という話になりました。ゲームになるかどうかテストする必要があったので、ゲーム開発にまったく興味がない人たちに Tiny Glade を見せるために TikTok アカウントを作りました。技術的に素晴らしいので人々は感銘を受けるかもしれませんが、実際にプレイしたいとは思わないだろうと考えました。そこで TikTok アカウントを作り、投稿を始めました。そのとき、プロジェクトは大きな関心を集め、これは実際にゲームになる可能性があると分かりました。

Tomasz Stachowiak:ある時点で、なぜ人々が壁を描くだけのゲームをプレイしたいのか、少し驚きました。しかし、昔のビデオを振り返ってみると、自動的に再配置される手続き型の壁には確かに少し魅惑的なところがありました。満足感があり、Tiny Glade に追加してきたすべての要素の中で、これが最も重要な要素だと思います。目の前で何かが構築されるのを見るのは、実に楽しいです。

アナスタシア・オパラ: ある意味、ゲームが会話の選択肢を認識したり、このキャラクターと恋愛関係になったことや敵対関係になったことを覚えていて、この組み合わせを認めてくれるのと同じ、本能的な喜びだと思います。ゲームがあなたに注目し、あなたがしていることを気にかけているのと同じ感覚で、あなたの気まぐれで、これらすべての要素があなたのためだけにこの瞬間に集まっているという感覚が生まれます。

Embark Studios と AAA 業界を離れ、インディー ゲーム開発者の道を歩むことを決めたのはなぜですか?

アナスタシア・オパラ: 私はずっと、個人的で親密なもの、しかし他の人が楽しめるビデオ ゲームという形で、そしてできればプレイヤーの顔に笑顔をもたらすようなインディー ゲームを作りたいと思っていました。業界に入ったときも、母と話して Indie Game: The Movie を見せたのを覚えています。母は「何がしたいの?」と聞いてきて、私は「それ!」と答え、母は「はい!」と答えました。母はとても協力的でした。しかし、常にこの意欲、この情熱が、何かを作り、できる限り最高のものにしたいという気持ちにさせたのです。私にとって、AAA かインディーかは関係なく、自分のスキルと創造性を最大限に活かしたいという気持ちが大切でした。

さて、Tiny Glade のエンジンについてお話ししましょう。現在でも、どのゲーム エンジンを使用しているのか知らない人が多いので、Bevy、Rust、および手続き型処理全般について詳しく教えていただけますか。

Tomasz Stachowiak:私たちにとっての入り口は Rust 言語でした。Anastasia が Tiny Glade に取り組み始めたころには (Tiny Glade という名前が付く前から)、私たちは 2 人とも Rust に夢中になっていて、仕事で毎日使っていました。私もその何年も前からこの言語を早期に採用していたので、システムのコンポーネントを簡単に組み合わせたり、コードを簡単に書けることにすでに夢中になっていました。それが、この技術にこだわることにした理由の 1 つです。また、非常に人間工学的で、クラッシュすることもなく、すべてをゼロから書かなければならない C++ などに比べると、新鮮な気分になります。

エンジンと技術に関して言えば、アナスタシアは Bevy から始めました。最も簡単に始められたからです。そして、私たちは今でも Bevy の修正版を使用しています。技術的には、基本レベルでは ECS (Entity Component System) と呼ばれるフレームワークがあります。これは、ゲーム オブジェクトとその動作を定義する方法であり、基本的にゲーム内で発生するすべてのものの生命線です。当初、アナスタシアのプロトタイプはレンダリングを含むすべての用途に Bevy を使用していましたが、最終的には、プロジェクトで GPU 上でより美しいグラフィックスとより優れた手続き型生成が必要になったため、私たちのニーズは当時の Bevy で提供できる範囲を超えてしまいました。

Anastasia Opara: Tiny Glade の初期の頃は、Bevy を使って OpenGL で書いていました。OpenGL を選んだのは、非常にわかりやすいチュートリアルがあったからです。当時は Vulkan の方が複雑に思えたので、幾何学的に表現したものが画面上でどのように見えるかを学びたかったので、OpenGL に集中しました。

Tomasz Stachowiak:プロジェクトが成長し始め、フルタイムで取り組み始めたとき、OpenGL は使えないことがわかりました。なぜなら、たとえば Vulkan には検証レイヤー機能があり、これを有効にすると、何か間違ったことをするとそれを指摘し、API の要件と仕様に簡単に準拠できるようになるからです。OpenGL にはその機能に少し似ていますが、罠に陥ることがよくあります。これは、数十年にわたって進化し、非常に巨大な API であることを考えると、驚くことではありません。

この怪物のような API では、最新の GPU で良好なパフォーマンスを得るために従うべきパスが非常に狭いため、実際に使用するのは非常に困難です。何を使用するかを正確に把握する必要があり、そのパスから少しでも外れると… つまり、自分のコンピューターでは動作するかもしれませんが、他のコンピューターではクラッシュして失敗します。この問題は、シェーディング言語を含む、あらゆるレベルの操作に及んでいます。そのため、私は以前から OpenGL を使用していましたが、これは出荷可能ではなく、私たちの顔に爆発するだろうとわかっていました。唯一の解決策は、より現代的な API に移行することでした。最終的に、Tiny Glade を Linux で動作させ、一般的にクロスプラットフォームにしたかったため、Vulkan を選択しました。

Anastasia Opara:大量のコンピュート シェーダーも必要でしたが、当時は Bevy では不可能でした。Vulkan への移行により、テクスチャやアセットの作成からゲーム内での最終的な表示方法、すべてのレンダリング パス、CPU と GPU のすべての生成まで、パイプラインのほぼ全体を制御できるようになりました。そのため、作業しなければならない制限を優先するのではなく、ターゲット エクスペリエンスと、すべての外観と操作感について考え、それをサポートするパイプラインを設計することができました。

「すべてを備えたアルゴリズムは 1 つだけですか?」と尋ねる人が時々いますが、実際には、ゲームの特定の要素とその動作に合わせて調整されたアルゴリズムとジェネレーターが多数あります。これらの各要素に対して、作成、組み立て、モーフィング、変形など、目的の外観を実現するために必要なあらゆる操作をサポートするパイプラインを設計しました。

また、初心者のゲーム開発者にとって、頼りになるゲーム エンジンとして Bevy を使用することをお勧めしますか?

Tomasz Stachowiak:これはかなり難しい質問です。Bevy は Bevy だけのものではありません。習得が難しいという評判のある Rust も扱っています。この言語が本当に好きなので、偏りがあるのは否めません。Anastasia は 2 日間で Rust の基礎を習得し、生産的に使えるようになったので、経験はさまざまかもしれません。高度なエンジニアリングを恐れないのであれば、良い選択かもしれません。

ただし、Unity や Unreal Engine と同様に、Bevy は特定のゲーム サブセットに特化していることに留意することが重要です。エンジンを選択する前に、まずどのようなゲームを作りたいかを考えてみましょう。そこから、特定のゲーム要件を実現できる最適な技術的ソリューションを見つけます。私たちの場合、ゲームは非常に体系的であり、手続き型ジェネレーターを調整して時計のように動作させるには、かなり高度なエンジニアリングが必要です。Rust と Bevy は、複雑さやクラッシュなしですべてを必要な方法でエンジニアリングするために必要な精度を提供してくれるため、ここでは最適です。

Tiny Glade のゲームプレイ機能について詳しく教えてください。プレイヤーにとってゲームが楽しい理由は何ですか?

Tomasz Stachowiak: Tiny Glade では、プレイヤーを惹きつけようとしすぎないようにしたいと考えました。そうすると、プレイヤーがストーリー展開から脱線してしまい、少しイライラしてしまう可能性があるからです。私たちが目指しているのは、プレイヤーが仮想ゲーム環境に没頭できる空間を提供し、リラックスしてくつろげる自分だけの居心地の良い隠れ家のように感じられるようにすることです。これは、プレイヤーに次から次へとイベントを提供し続け、何も起こらない瞬間をゲーム デザインの失敗と見なす従来のアクション ベースのゲームとは大きく異なります。

Tiny Glade は異なるアプローチを採用しています。イベントを人工的に膨らませることはありません。代わりに、プレイヤーにツールを提供して楽しんでもらいます。これは、子供にレゴ ブロックをたくさん与えて、創造力が燃え上がるのを待つのと似ています。プレイヤーが「ゾーン」に入ったら、それを邪魔したくはありません。私たちの役割は、すべてがスムーズに流れ、バグ、不具合、または体験を台無しにするような奇妙なことがないようにすることです。

Anastasia Opara: 「LEGO ブロックを持つ子供」の比喩について言えば、Tiny Glade の開発者としての私たちの役割は、プレイヤーがストーリーテリングに参加するための入り口となる適切な LEGO ピースをプレイヤーに提供することです。そして、それが私たちのゲームのすべての構築ツールの背後にあるアイデアです。なぜなら、私たちはそれらのツールがどれだけ多くのストーリーを語れるかを検証しているからです。

Tomasz Stachowiak: 同じことがゲームの Glade にも当てはまります。Glade にはさまざまなテーマと季節があり、さまざまな初期建物が用意されており、これまで見たことのない追加の建物要素をいくつか紹介するとともに、各 Glade に独特の雰囲気を醸し出すように設計されています。

Tiny Glade は、市場で最も期待されているコージー ゲームの 1 つですが、「コージー ゲーム」というジャンル全体についてのご意見と、そもそもこのジャンルを選んだ理由についてお聞かせいただけますか。

アナスタシア・オパラ: プロトタイプ作成段階のかなり早い段階で、Tiny Glade をアットホームなゲームにすることが決まりました。そのインスピレーションは、当時私がアットホームなゲームを多く楽しんでいて、その方向性が気に入っていたことから生まれました。私は Townscaper、Unpacking、A Little to the Left などのゲームをプレイしましたが、これらのゲームはどれも普通のゲームとはまったく違うと感じました。とても元気が出る、優しい体験でした。おそらく、当時の私にとって、そのような体験は重要だったのでしょう。これらのゲームから得られる感覚はとても暖かくて甘く、ジブリ映画を見た後のふわふわした暖かさを少し思い出させてくれました。

Tiny Glade の開発を始めたとき、私たちはこれまでで最も居心地の良いゲームを作る方法について論文を書きたかったわけではなかったと思いますが、ゲーム自体が自然にその方向に向かっていきました。また、TikTok で「これは居心地の良いゲームになります。戦闘や管理のプレッシャーはありません」と伝えようとしていました。居心地の良いゲームを開発することの素晴らしいボーナスは、Twitter でゲームについて何かを共有すると、誰かが必ず返信で「傘の上にいる羊とか、そういう間抜けな物を見ただけで笑顔になった」と言ってくれることです。とても心温まります。Tiny Glade のようなゲームに取り組む機会を得られたことに感謝しています。

昨今、大手出版社が次々とスタジオを閉鎖しているため、多くのインディー開発者にとって、単独で活動するか出版社と提携するかの決定は大きな頭痛の種となっています。あなたの見解と、Tiny Glade を自費出版することにした理由を説明していただけますか?

アナスタシア・オパラ: Tiny Glade は私たちにとって初めてのビデオゲームなので、かなり早い段階で自費出版にしようと決めました。その決断には 2 つの大きな理由がありました。1 つ目は、単にゲームを出版するとはどういうことかを学びたかったからです。そうすれば、将来パブリッシャーと協力することになったときに、彼らが何をしているのかをよりよく理解できるからです。2 つ目は、いつリリースするか、どの側面に重点を置くかなど、ゲームを完全にコントロールしたかったからです。また、このプロセスを通じて必要な経験を積み、将来再び自費出版するか、パブリッシャーと協力するかについて十分な情報に基づいた決定を下すのに役立つことも狙いでした。

Tomasz Stachowiak:  AAA 業界で働いた経験も影響しています。AAA 業界では、何が起きてもあまり口出しせずにただ自分の仕事をこなすだけでしたが、私たちはそれとは正反対の、自分たちだけのものを作りたかったのです。自費出版は、誰かに監視されて「いや、こうしなきゃいけない。もっと売れるようにしなきゃ。羊にはこの帽子をかぶせなきゃいけない」などと言われることなく、クリエイティブなコントロールを完全に得るための手段でした。こうした要求は、必ずしも私たちの好みに合うとは限りません。

現時点で、今後のゲームについて何かお話できることはありますか?

Tomasz Stachowiak:現時点では、私たちの心は完全に Tiny Glade の世界に入っています。常にブレインストーミングを行っており、たくさんのアイデアが浮かんでいますが、それらは単なるテキスト メモとコンセプトです。将来的にはもっと多くのゲームを作る予定ですが、それが何になるかはわかりません。追求したい競合するアイデアはたくさんありますが、どれを最初に採用するかは明確ではありません。ダーク サイドがすべてを覆い隠しています。

Tiny Glade のリリース日について何かニュースはありますか?

Tomasz Stachowiak:現時点では、まだ手探り状態なので、具体的な日付は決めていません。リリース時期についてはある程度の見通しはついていますが、同時に、どのようなイベントが突然発生するか、予想よりも時間がかかる可能性があるかはわかりません。また、皆さんに誤った期待を与えて、後になって締め切りを変更したり、圧倒されたりして謝罪したりするのは避けたいのです。

アナスタシア・オパラ: 私たちは、ゲームを待っている人々の期待に応えたいと考えていますが、同時に自分たち自身にも公平でありたいと考えています。そして、自分たちが良いとは思わないことをしなければいけない立場に自分たちを置かないようにしたいのです。しかし、自信を持って守れる日付と、私たちが誇りに思える完成版が決まり次第、必ず皆さんにお知らせします。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Anastasia Opara

Embark Studios プロシージャル アーティスト & インディー ゲーム開発者

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

Tomasz Stachowiak

元Embark Studios、元EA レンダリング アーティスト & インディー ゲーム開発者

https://80.lv/articles/exclusive-tiny-glade-developers-discuss-bevy-proceduralism-publishers-cozy-games/

Next Post

日本のゲーマーとゲーム市場調査

水 6月 12 , 2024
日本人はゲームとYouTubeが好き