Scritchy Scratchyを様々なプラットフォームに展開する
Adam Axler - Unity
Senior Content Marketing Manager
このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。
Scritchy ScratchyをPCとモバイルに持ち込むにあたり、Nintendo Switchᵀᴹ 2とNintendo Switch向けに準備する過程で、非常に異なるデバイス間で触覚的なインタラクションを適応させる必要がありました。
同じ応答性をコントコントローラーで実現するには、チームは入力、UIの動作、ハプティクス、そしてゲームが異なる画面サイズやアスペクト比にどのように適応するかを再考する必要がありました。
移植プロセスは、パフォーマンスと保守性のバランスを取ることも意味しました。チームは、個別のプラットフォームブランチを作成するのではなく、ゲームを単一のUnityプロジェクトに保ち、最適化、バグ修正、新しいコンテンツをプラットフォーム間で共有できるようにしました。
発売以来、 このゲームはSteamで125万本以上、 モバイルで25万本以上を販売 し、14,000件以上のレビューで94%のポジティブなSteam評価を獲得しています。
私たちは、Lunch Money Gamesのクリエイティブディレクターであるコンスタンティン・ラーヴィグ、Lunch Money GamesのCEOであるハンニバル・シグフソン、Funday GamesでモバイルおよびNintendo Switch移植に取り組んでいるプログラマーのクリスティアン・ビスコプスト・トムセン、そしてFunday Gamesのプロダクトおよびパートナー責任者であるエミル・キェーアと、Scritchy Scratchyの最大の移植上の課題について話しました。
*Nintendo Switch は任天堂の商標です。
これらのプラットフォーム間での移植プロセスに入るにあたって、主な技術的目標は何でしたか?
クリスティアン・ビスコプスト・トムセン私たちが問題になる可能性があると知っていた主なことはパフォーマンスでした。シームレスに動作すること、60 FPSをターゲットにすること、サポートしたい解像度すべてで動作すること、そして最終的にすべてのプラットフォームで良いネイティブ体験だと感じられること以外に、非常に具体的な目標は多くありませんでした。
コンスタンティン・レルヴィグ異なる解像度に合わせてUI要素を移動させることや、キーボード入力に依存しない体験を確実に行うことなど、より小さな設計上の考慮事項もありました。しかし、私たちは最初からゲームを比較的ポートしやすいように設計したので、その基盤の多くはすでに存在していました。

移植中に直面した最大の技術的課題は何でしたか?
CBT:最大のモバイルの課題はプラットプラットフォーム固有の部分でした。アプリストアとgoogle playでビルドを正しく動作させること、証明書を扱うこと、プラットプラットフォームSDKを統合すること、クラウドセーブなどのシステムを処理することです。
入力は、私たちがゲームをマウスとタッチを中心に設計したため、最大の課題の一つとなりました。ゲームパッドでスクラッチがどのように機能すべきかを決定する必要がありました。それはデザインの議論といくつかの反復を経て、しっくりくるものにたどり着きました。
エミル・ケアーチケットを開いてスクラッチを始める際に、入力が関連領域にスナップするように、インタラクションがどのように機能すべきかをマッピングしました。
Nintendo Switch 2に特化して、マウス機能のサポートも行いたかったのです。
モバイルでは、スクラッチ時に触覚フィードバックを追加しました。ハプティクスは、特にAndroidにおいて、非常に幅広いデバイスで異なる動作をします。ユーザーから携帯電話が強すぎる振動をしているという報告があったケースがあったので、そこにはいくつかのイテレーションが必要でした。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
プラットフォーム間でコアな操作を触覚的に感じさせる上で、何か特別な課題はありましたか?
CBT:ゲームパッドは間違いなく翻訳が最も難しかったインタラクションでした。タッチで、スクラッチのメカニクスはほぼすぐに非常にうまく機能しました。コントローラーを使うことで、単にカーソルを一つずつ対応付けるのではなく、同じアクションがどのように感じられるべきかを考え直さなければなりませんでした。
EK:私たち4人はワークショップのために座り、PC版をまっすぐに見ました。私たちはそのインタラクションを分解し、他のプラットフォーム用のワイヤーフレームとして再構築しました。
そうすると、直感的なアプローチがかなり消去になりました。それはまた、クロスプラットフォームフォームの透視からオリジナルの設計をどれだけ徹底的に考え抜いたかを示しています。ゲームをモバイルで立ち上げ、後でコントローラー用のインタラクションを適応させたことで、多くの時間を節約できました。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
どのような移植戦略を採用しましたか?プラットフォームごとに適応させた単一のビルドですか、それともプラットフォーム固有の別々のブランチですか?なぜ?
CBT:各プラットフォームごとに長期的なブランチを維持するのではなく、単一のUnityプロジェクトとコードベースを選択しました。
プラットフォームのブランチは離れていく傾向があります。あるブランチで何かを修正し、それを他のブランチに統合する必要がある。4つ以上のターゲットをサポートし始めると、すぐに面倒になります。
単一のプロジェクトでは、コード全体に条件付きコンパイルやプラットプラットフォーム固有のチェックが終了られるため、独自の欠点があります。しかし、Scritchy Scratchyのサイズと複雑さを考慮して、管理可能なレベルに抑えました。
CL:単一プロジェクトのもう一つの大きな利点は、すべての小さな最適化やバグ修正がすべてのビルドに適用されることです。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
Unityプロファイラ は、プラットフォーム固有のボトルネックを見つけ、修正するのにどのように役立ちましたか?
CBT:パフォーマンス作業中にUnityプロファイラーをたくさん使いました。私のワークフローは基本的に、まずプロファイルを取り、実際に何が遅いのかを確認してから、推測するのではなくそれを修正するというものです。
最も大きな例はスクラッチ粒子でした。チケットを削ると、テクスチャから情報を取得し、削っているものの色に一致するパーティクルを生成します。PCではとてもうまくいきましたが、元の方法はモバイルでは重すぎました。
その解決策は、それらのパーティクルにGPU インスタンシングを使用することでした。その変更を行った後、それはポートにおける最も重要なパフォーマンス最適化の一つとなりました。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
インプットシステム は、どのようにして異なるコントロールスキームをサポートするのに役立ちましたか?
CBT:タッチがInput Systemでほぼそのまま動作したという事実は非常に有用で、多くの時間を節約できました。
コントローラーをPCに接続し、エディターで直接操作を再生してテストした後、Nintendo Switch用にゲームをビルドできます。コントローラーのマッピングはInput Systemを通じて引き継がれるため、イテレーションがずっと速くなります。
HS:プロジェクトの開始時から、Input Systemと残りのコードの間にレイヤーを構築しました。ゲームコードは、あらゆる種類のハードウェア入力に直接配慮する必要はありません。そのレイヤーを使用して、入力がポインターをアクティブにしたかどうか、ポインターがどこにあるか、またはそのワールド上の位置を判断できます。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
各プラットフォームに対してどのようなパフォーマンス目標を設定し、どれくらい達成できましたか?
EK:モバイルでサポートする最小OSおよびAPIレベルを確立し、その範囲の下限に近いデバイスでテストを行いました。
パーティクルシステムに対するGPUインスタンシングの修正を実装した後、それらのデバイスでは意味のあるフレームレートの問題は見られなくなりました。
iOSでは、サポートしたいハードウェアでゲームが適切に動作することを確認するため、iPhone XやiPhone XSを含む特定のデバイスでテストを行いました。私たちはAndroidでも同じ哲学に従いました。
CL:Scritchy Scratchy は、ゲームがラグるとすぐに満足感が失われるため、滑らかに感じられる必要があります。
要件は、指で物理的なスクラッチーオフを引っ掻いているような感覚であることでした。実際には、60 FPS前後で得られる滑らかさを目指すということでした。
CBT:解像度もまた一つの課題でした。私たちはオリジナルのゲームをワイドスクリーンPCディスプレイ向けに設計しました。ほとんどのランドスケープの電話解像度はかなり自然に翻訳されましたが、iPadのアスペクト比はより困難でした。
リリースまでに十分な時間があったので、iPad版も動作するようにできました。それは、プレゼンテーションを調整し、レイアウトが自然に収まるようにズームの出し入れを行ったことを含みます。
目標は、誰かが最初にScritchy ScratchyにPC、携帯電話、またはiPadで遭遇したかどうかにかかわらず、それが侵害されたポートのように感じられるのではなく、そのデバイスに属しているように感じられるようにすることでした。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
どのDeploymentの決定がプラットフォームをまたいだ品質に最も大きな違いをもたらしましたか?
EK:最大のDeploymentの決定は、すべてを一つのプロジェクトに保つことでした。
それは最初のポートだけでなく、その後の保守性にとっても重要です。新しいコンテンツがゲームに導入されることについて話すとき、そのコンテンツを複数の独立したプラットフォームブランチにパイプで流し込むのにどれくらい時間がかかるか心配する必要はありません。
CL:それによって、タスク間の人員移動も容易になりました。PCのバグを修正するのを手伝ってくれた開発者が、別のモバイルのコードベースを学ぶ必要なく、直接モバイルの問題の修正に移ることができました。

Scritchy Scratchy | ランチマネーゲーム | Fundayゲーム
複数のプラットフォームにゲームを移植する予定の開発者への最良のヒントは何ですか?
CL:デザインの透視点から、ゲームがどのプラットフォームで可能になる可能性があるかを早期に決定してください。私たちは最初からゲームパッドに重点を置かないという選択をしましたが、後になってそれが追加の作業を生み出すことがわかりました。
HS:入力、解像度、アスペクト比、そしてゲームが異なるプラットフォームでどのように感じられるべきかを最初から考える。それらのことは後から追加するのがずっと難しいです。
Scritchy Scratchy は Steam、App Store、および Google Play で利用可能です。Unity開発者による他のストーリーをUnity BlogとResource Hubでご覧ください。