ソフトクランチゲームズがFoxy Dumplingsをあらゆるプラットフォーム向けにどのように構築したか

Oct 16, 2026
Foxy Dumplings | Soft Crunch Games

このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。

PC (Windows、macOS、 Linux)向けにSteam、GOG、Epic Games Store、Microsoft Store(Xbox 再生 Anywhere対応)で、同時にNintendo Switch™ 2、Nintendo Switch、 PlayStation®4、 PlayStation 5、Xbox Series X|S、iOS、 Android向けに同じゲームを準備することは、どのスタジオにとっても野心的な技術的挑戦です。Soft Crunch Gamesの4人からなるコアチームにとって、それはクロスプラットフォーム開発をゲームのアーキテクチャ段階から組み込むことを意味した。

Foxy Dumplingsは、燃え尽き症候群から立ち直ろうとするプロのシェフ、リサが、家族伝来の餃子レシピとフードトラックで新たなスタートを切る、心温まる料理&経営ゲームです。プレイヤーは、実在する食文化にインスパイアされた12のロケーションを旅し、食材を栽培し、地域のレシピを学び、フードトラックを運転し、独自の料理を考案します。

グレゴシュ・ワトロバは、プログラミング、プラットフォームビルド、ビルドパイプライン、および認証作業全般を担当しています。1人のプログラマーがこれほど多くのターゲットを担当するプロジェクトは、以下の1つのルールに基づいて構築された。どのプラットフォームでも、同じコミットから同じゲームが提供される。

フォクシー・ダンプリングス

1つのプロジェクト、1つの支店、1つのゲーム

実際には、それは一切の妥協を許さないことを意味した。別々の支店はなく、半年後にモバイル版が登場することもなく、コンテンツが半分になったバージョンもありません。

それがいくつかのルールになった。それがいくつかのルールになった。それぞれの制御スキームは単独で完結している必要があり、プレイヤーはコントローラーのみ、タッチスクリーンのみ、またはマウスのみを使用してゲームをクリアできる必要があり、キーボードの有無は問わない。セーブファイルはどのデバイスでも同じバイナリ形式を使用しているため、デバイス間で進行状況を移行する際に変換は不要です。

セーブファイルはどのデバイスでも同じバイナリ形式を使用しているため、デバイス間で進行状況を移行する際に変換は不要です。

「私たちは開始から、認証要件を設計上の制約として捉えていました」とワトロバ氏は述べている。「例えば、 Foxy Dumplingsにはテキスト入力フィールドがないため、複数の異なるシステムで画面上のキーボードを扱う必要がありません。」SteamworksなどのPCストアSDKは、コンソールおよびモバイルのビルドから自動的に削除されます。」

彼は、誰もプロジェクト設定を手動で操作することなく、すべてのビルドが1つのメニューから実行できるようにしたかったのです。現在、そのメニューにはプラットフォーム、ビルドタイプ、デモ、テスタービルド、出力構成など、70以上の項目が掲載されています。

プラットフォームコードをエッジに保持する

Foxy Dumplingsは、1つのUnityプロジェクトと1つのブランチで構成されています。ゲームプレイは常に共有されます。プラットフォームコードは、ゲームがシステムと通信する部分、つまりセーブ、ユーザーアカウント、実績とトロフィー、クラウド同期、DLCチェック、システムダイアログ、写真のエクスポートといった部分でのみ許可されます。

ワトロバ氏は、「各システムはインターフェースの背後にあります」と述べています。ゲームプレイへのエントリーを一つにするためにファサードパターンを使用し、起動時に小さなファクトリーが適切なプラットフォームプロバイダーを選択します。ゲームプレイでは「この実績を解除してください」と表示されるかもしれませんが、それがSteam、 PlayStation Network、あるいはどこにも反映されないのかは分かりません。

実行時設定によって、プレイヤーがデスクトップに戻るか、ウェブリンクを開くかといったほとんどの差異が処理されます。スクリプトは、ビルドスクリプトによって渡されるシンボルを定義し、Steam 以外のPCビルドから Steamworks を除外するなどのケースを処理します。Unityプラットフォームの定義は、コードが他の方法でコンパイルできない場合にのみ使用される最終手段です。

テキストの差異もデータです。Localizationキーにはプラットフォームごとのバリアントがあるため、ゲームプレイコードを変更することなく、 PlayStationでは「実績」を「トロフィー」にすることができます。

フォクシー・ダンプリングス | ソフトクランチゲーム

2回発生する事象を自動化する

ワトロバが仕事量を管理しやすい範囲に抑えているのは、経験と、同じことを二度繰り返さないという姿勢の両方によるところが大きい。複数のプラットフォームで繰り返される内容は、最終的にスクリプトやメニューアイテムになった。

適切な定義、出力フォルダー、および設定を指定するだけで、特定のビルドをワンクリックで作成できます。彼らはまた、約40種類のプラットフォームとストア構成に対してコンパイルチェックを実行し、「 WindowsではコンパイルできるがPlayStationではエラーになる」という典型的な問題を、品質保証部門が発見する前に検出している。

範囲も重要です。「プラットフォームの作業量を増やすような機能、例えばテキスト入力、私たちがホストまたは管理しなければならないオンライン機能、ゲーム内課金などは採用しませんでした。」「PlayStation 4とPlayStation 5の両方で動作するPlayStationビルドも出荷しています」と彼は述べています。

請負業者はプラットフォームについて考える必要はありません。UIは4Kキャンバス上で一度設計され、プラットフォームごとにスケーリングされます。サウンドチームは1つのFMODプロジェクトで活動している。ゲームデザイナーは、あらゆる場所で同じデータアセットを使用してコンテンツを構築する。彼は「政策の違いは私の仕事であって、彼らの仕事ではない」と述べている。

フォクシー・ダンプリングス | ソフトクランチゲーム

コードを書く前に、入力とUIを設計する

Wątrobaにとって最初のステップは、Foxy DumplingsチームのUXデザイナーと共に紙の上でデザインを行うことだった。

「私は、プロジェクトの初期段階で入力とUXが十分に検討されていなかったために、プロジェクトが失敗に終わるのを目の当たりにしてきました」とワトロバは語る。「私たちのアプローチは基本的に次のとおりでした。」これは我々のゲームだ。あらゆるプラットフォームで動作するようにしろ。」

最初のコードを書く前に紙の上でこれらの問題を解決しておいたことで、チームは後々の多くのトラブルを回避することができた。

ユーザーエクスペリエンスが完成すると、彼らはInput Systemを中心に、1つのアクションセットと3つのコントロール方法(ゲームパッド、キーボードとマウス、タッチ)を備えたコントロールを構築した。ゲームはプレイヤーが最後に使用した設定に基づいてリアルタイムで切り替えを行い、UIも自動的にそれに合わせて変化します。

チームは、ボタンプロンプト付きのプレハブを約200箇所で使用した。各プラットフォームの入力を理解します。「コントローラーを手に取ると指示が変わり、マウスを動かすとまた変わる」と彼は言う。

料理のミニゲームは、それぞれがすべての入力メソッドに対応しなければならないため、最も難しい部分でした。Steam Deckは彼らに重要なルールを教えた。デバイスが存在するかどうかを問うのではなく、実際に必要な入力を生成できるかどうかを問うべきです。

ワトロバ氏は、「タッチスクリーンがマウスと左ボタンとして認識されるため、以前は両方のマウスボタンを必要とするミニゲームをクリアすることが不可能だった」と説明する。デバイスではなく機能を中心に設計することで、古いAndroidハードウェアでも効果を発揮しました。

フォクシー・ダンプリングス | ソフトクランチゲーム

最も性能の低いハードウェアからプロファイリングを行う

Foxy DumplingsはSpineキャラクターと非ライティング素材を使用した2Dゲームなので、GPUが負荷を受ける場合は、通常、全画面レイヤーが多すぎるか、ピクセル数が多すぎることが原因です。

一例として、キッチンが挙げられる。一部のエフェクトは4Kレンダーテクスチャにレンダリングされ、UI上に合成されています。これは1080pまたは720pディスプレイでは不要です。Watrobaはレンダリングするテクスチャを実際の画面解像度に合わせるように変更し、ゲームで一度も使用されなかったHDRと深度テクスチャを無効にした。見た目には何も変化はないが、Steam Deckではそのレイヤーが毎フレーム占めるピクセル数が約8分の1に減り、レンダーテクスチャも約32MBから約4MBに縮小した。

ワトロバのプロファイリング手法は、彼が何年も前に習得したものと同じだ。彼はデバイス上で開発ビルドを作成し、 Unity Profilerを接続し、負荷の高い箇所を特定し、測定し、修正し、そして再度測定する。彼は「デバイスこそが王様だ」と言う。

記憶力にも注意を払う必要がある。チームは中国語、日本語、韓国語、タイ語を含む14言語をサポートしており、それぞれに独自のフォントアトラスが用意されています。言語変更時にメモリ使用量が急増する現象が見られたため、チームはアロケーションパスをプロファイリングしたところ、静的アトラスに存在しない文字がランタイム時に4096×4096の特大サイズのフォールバックアトラスにラスタライズされ、新しい文字ごとに16MBものアトラスが再アップロードされていることが判明した。

修正は、フォールバックフォントを2048×2048ピクセルのページ数で再生成し、切り替え前にグリフをバッチ処理で追加することでした。これにより、日本語の新しいアトラスに必要なメモリ容量がフォントあたり約48MBから4~8MBに削減されました。

チームはプロジェクトでAddressablesを使用しました。なぜなら、 UnityのLocalizationはAddressableを基盤として構築されているからです。全14言語の文字列テーブルとアセットテーブルは、アドレス指定可能なグループに格納され、言語ごとにロード。「すべてのデータは依然としてローカルで発送されますが、 Addressablesのおかげで、データとメモリを効率的に管理できるようになりました。」

フォクシー・ダンプリングス | ソフトクランチゲーム

共有ゲームプレイのテストは1回、プラットフォームの動作のテストは複数回実施

チームは大規模な自動テストスイートは持っていませんが、ゲーム内経済が崩壊する可能性があるかどうかを検証するシミュレーションなど、一部のシステムを自動化しています。

彼らにとってQAを管理しやすくしているのは、プラットフォーム間でコードのほぼ全てが共有からだ。ゲームプレイはPC上で徹底的にテストされ、そこで最も迅速にイテレーションが重ねられます。コンソールやモバイルでは、テストはプラットフォームレイヤーに重点を置いています。具体的には、認証要件、保存と読み込み、サスペンドと再開、コントローラーの切り替え、コントローラーの切断、トロフィーと実績、ストレージ不足などです。

「当社の外部QAパートナーは、リリース、デバッグ、そしてデバッグツール付きの『完全アンロックリリース』を入手できます」とワトロバ氏は述べています。「テスターはどのチャプターやミッションにもジャンプして、お金、エネルギー、時間を操作できるので、1つのバグを確認するために5時間もプレイし直す必要はありません。」

公開デモは、テストを行う上で重要なソースともなってきた。1万8000人以上がプレイし、開発チームは1000件以上のアンケート回答を受け取り、それに基づいてアクセシビリティ機能の追加、バグ修正、調整、そして利便性の向上を実現しました。

クロスプラットフォームのセーブデータをまずポータブルにする

クロスプラットフォームでの進行は、セーブデータ自体をポータブルにすることから始まった。Progressは暗号化されたバイナリファイルであり、どのプラットフォームでもバイト単位で同じ形式です。モバイルで保存したデータは、 PCで読み込むことができます。

同期には2つの層がある。まず一つ目は、各プラットフォームに搭載されているネイティブのクラウドセーブ機能です。2つ目はUnity Cloud Saveで、これは複数のエコシステム間で進行状況を共有する機能です。両者とも同じインターフェースの背後に配置され、その上にマージロジックが配置されている。

各セーブスロットは、最終更新日時のタイムスタンプに基づいて比較されます。削除されたスロットにはマーカーが残るため、クラウドから復元されることはありません。マージはメインメニューでのみ発生し、ゲームプレイ中に発生することはありません。なぜなら、 Foxy Dumplingsはプレイヤーが睡眠をとるとセーブするからです。ネットワークがない場合はアップロードを静かに再試行し、ゲームが中断された場合はデータをフラッシュします。

チームはUnityAuthenticationコード連携を使用してコンソールとPCを連携させるため、プレイヤーは別のアカウントを用意する必要はありません。クロスプログレッションはオプトイン方式であり、ゲームはオフラインでも完全にPlayableです。

ワトロバ氏は、「最大の教訓は、ストレージは簡単な部分であり、ID管理は難しい部分だということだった」と述べている。各エコシステムはそれぞれ独自のプレイヤー認識を持っているため、AuthenticationはSteamチケット、 PlayStationトークン、Xboxトークンをそれぞれ個別に信頼する必要がある。」

フォクシー・ダンプリングス | ソフトクランチゲーム

Foxtagramを構築する際に、新たなプラットフォームの問題を生み出さないようにする。

Foxtagramは、リサのゲーム内携帯電話に搭載されているアプリで、プレイヤーは皿、食器、食材、餃子、フィルター、フレーム、ステッカーなどを使って料理の写真を合成し、投稿することでレストランの人気をビルド。

主な設計上の決定事項は、エディタを通常のUnity UIで構成し、プラットフォーム固有のコードを一切含めないことでした。ワトロバ氏は、「その50種類のフィルターは、フォトマテリアルに重ね合わせるのではなく、1つのシェーダーをプリセットしたものです」と説明する。写真を撮ると、専用カメラが写真領域を出力解像度で正方形のレンダーテクスチャにレンダリングします。AsyncGPUReadbackを使用してデータを読み込み、結果をJPG形式でエンコードします。そのフレームはカメラのフラッシュのように見える。

出力解像度とJPG品質は、プラットフォームごとの設定によって決まります。エディタはマウス、コントローラー、タッチ操作に対応しています。デスクトップ上ではドラッグとマウスホイール、コントローラーではスティックとトリガー、タッチ操作ではピンチとツイストが可能です。

ゲーム外での共有は、各プラットフォーム独自のツールを介して行われます。PC写真フォルダーまたはSteamメディアライブラリを使用でき、コンソールではシステムアルバムを使用でき、モバイルではシステム共有シートを使用します。小規模チームの場合、プラットフォームの既存の共有機能を利用することで、認証やモデレーションの作業を大幅に削減できます。

フォクシー・ダンプリングス | ソフトクランチゲーム

Unity 6.3 LTSへの移行

「 Unity 6.3 LTSがもたらした最も価値のある点は、私たちが依存しているすべての要素が整合し、サポートウィンドウがローンチ時のニーズをカバーしているLTSリリースだったことです」とワトロバ氏は述べています。

チームは、ScriptableObjectの編集などの分野で6.3の方が安定性が高いことを発見し、古いAndroidデバイスはVulkanの修正の恩恵を受けた。

ビルド時間も短縮されました。「IL2CPPを使用すると、プラットフォームやイテレーションの種類にもよりますが、ビルド速度はおよそ10~15%向上すると推定しています。」実行時パフォーマンスも数パーセント向上し、特に性能の低いハードウェアで顕著でした。

アップグレードは概ね滑らかなだった。移行中にシェーダー参照が失われたため、すべてのVFX Graphエフェクトが一時的に表示されなくなりましたが、グラフを再インポートすることで迅速に解決しました。

ポートができる前にポートの計画を立てる

チームにとって最も大きな影響を与えた決定は、ブランチを1つに絞り、最初からプラットフォームの違いを厳しいに管理することだった。「ゲームプレイのコードは、どのプラットフォームで実行されているかを一切尋ねません。」「もし何かが異なっているとしたら、それはデータ、品質設定、あるいはインターフェースの背後にあるプロバイダーのいずれかです」とワトロバ氏は述べている。

チームは、ゲーム設計ドキュメント、アートバイブル、ナラティブバイブルと並行して、技術アーキテクチャドキュメントを作成しました。これは彼らが推奨する手順です。ワトロバ氏は、「制作前にゲームの技術的なレイヤーを描き出すことで、責任の所在を明確にし、プラットフォームの追加をはるかに容易にすることができました」と述べている。

次回は、チームはすべての開発キットでビルドを実行できる状態をはるかに早く実現するだろう。「アーキテクチャは正しかったのですが、提出前の数ヶ月間は実際のコンソール作業がかなり多く発生し、ハードウェアは常にエディターでは見つけられないものを見つけ出すものです。」

フォクシー・ダンプリングス | ソフトクランチゲーム

世界中に1つのゲームを出荷

Foxy Dumplingsは、シンプルな技術的約束に基づいて構築されています。それは、 PC、コンソール、モバイルのすべてにおいて、同じコードベースから同じゲームを提供するということです。小規模チームの場合、クロスプラットフォーム開発を終了に残された移植作業としてではなく、アーキテクチャ上のコンストレイントとして扱う場合にのみ、この方法は有効です。

「ゲームプレイを共有し、プラットフォームの統合を分離し、反復的なビルド作業を自動化し、最も脆弱なターゲットに対して早期にテストを行うことで、同時リリースを、 Foxy Dumplingsの多くのバージョンを維持することから、1つのゲームをあらゆる場所に配信することへと変えていきたいと考えています」とワトロバ氏は述べています。

フォクシー・ダンプリングス2027年には、Steam、GOG、Epic Games Store、Microsoft Store(Xbox 再生 Anywhere対応)を通じてPC (Windows、macOS、 Linux )で、またNintendo Switch 2、Nintendo Switch、 PlayStation 4、 PlayStation 5、Xbox Series X|S、iOS、 Androidで利用可能になる予定です。Unity開発者によるその他の記事は、 Unityブログとリソースハブをご覧ください。

※Nintendo Switchは任天堂の商標です。