Unity helps indie win the performance game

Putting Professional Services on the roster enables Canuck Play to meet key production and performance milestones.

Canuck Play: A Unity case study

ある小規模なスタジオはどのようにして 60 毎秒フレーム(fps)のパフォーマンスを実現したユニークなコンソールゲームを見事制作したのでしょうか?Canuck Play にとって、その回答の大きな部分を占めるのが Unity プロフェッショナルサービスです。Unity のバージョンを移行し、パフォーマンスを最適化して、Unity の新機能を活用するうえでその支援を受けることで、同スタジオはプレイヤーが独自のサッカー界を作成できるゲーム『Maximum Football』の準備を整えています。

 

  • 課題

    To help a small indie team deliver a high-quality and performant console game on time and on budget

  • Platforms

    PlayStation 4, Xbox One

  • Project staff

    1 core developer, 1 UI/UX specialist, and 1 feature specialist

  • Company

    6 team members in Peterborough, Canada

Getting warmed up with the right development platform

Canuck Play の創業者 Dave Winter 氏は、DirectX 8 をベースに構築された API ライブラリを使用した独自のゲームエンジンを活用して『Maximum Football』の制作を開始しました。ゲームのポテンシャルについてさらに自信を持つようになり、コンソール市場に進出することを決めました。「ほとんどのインディースタジオは Steam やモバイルプラットフォームに注力しますが、コンソールは別リーグであるため、私が使っているツールでは不十分であることはわかっていました。それが C# コアであり、巨大なユーザーベースが存在し、複数プラットフォーム向け開発に定評があることから、Unity に切り替え、ゲームを一から書き直しました。」Winter 氏はこう説明しています。開発面で課題に突き当たり、ゲームをレベルアップさせたいという考えから、彼は Unity のプロフェッショナルサービスチームに接触しました。

The results

  • Migrated to the latest Unity version in several days, saving weeks of effort
  • Much smoother player performance, going from a frame rate of ~30 fps to 60 fps
  • Improved lighting, game physics, the replay system, and obstacle/player avoidance 
  • Delivered tooling, visual, and gameplay improvements for a custom animation system

Recruiting the right team

Winter 氏は独立する以前、複数の大規模なスタジオで 15 年以上働いていました。当時、予算は大きかったものの、ワークフローは彼の納得のいくものではありませんでした。そこで彼は、自身のクリエイティブビジョンを独自の方法で実現しようと決意したのです。彼は 2016 年に、個人経営の独立系スタジオとして Canuck Play を立ち上げ、自宅の地下室で仕事を始めました。 

彼のビジョンはフットボールゲームの制作だったのですが、従来のプレイヤー向けではなく、ルールやプレイヤー、戦略などを熟知した本格的なフットボールファンをターゲットにし、大学とプロのいずれを問わず、米国のチームもカナダのチームもプレイできるようにするというものでした。「私はゲーマーが独自のフットボール環境を作成できるサンドボックスを作りたかったんです。独自のユニフォームやロゴデザインを作りたいというコアなファンにも対応したいと思っていました。NFL だけでは駄目なんです。」(Winter 氏談)。

5 年後、Canuck Play のチームは The Cube と呼ばれるオフィスで、『Doug Flutie’s Maximum Football 2020』を完成させました。Winter 氏は中核的なゲームプレイの開発をすべて担当し、Eric S. 氏がビジネス開発とコミュニティ管理を統括しました。また、画面とメニューをデザインする UI スペシャリストや、特定の機能を担当する専任開発者、さらには新製品ディレクターも参加していました。

Updating the playbook to eliminate weak spots

A big part of Winter’s winning strategy is to constantly update the game. “One of the things I try to do with each edition is offer substantial changes from the previous one. Other annual football titles may just change their team rosters, but I try to make Maximum Football very different from year to year. And improving overall performance was a big goal for 2020.”

To get started, Winter decided to update his Unity 2017 codebase to Unity 2019 to take advantage of many powerful new features. At the same time, he didn’t want the migration to affect his productivity or tight release schedule. “With any software upgrade there are bound to be compatibility issues you don’t anticipate, so you need to consider how you’ll resolve them,” he says. And that includes getting expert advice. 

He also had to improve performance. “When you have a close-up of a quarterback cocking his arm and throwing, when a receiver runs his route, jumps, and grabs the football, you have to have super-smooth animations at 60 frames per second,” Winter explains. “We had sequences captured at really high frame rates, but things were still coming out choppy.” Stadium crowds were another issue. “I had 60,000-plus 3D meshes cheering independently, but I just didn’t have it dialed in. Shadows weren’t rendering the way I expected them to.”

In addition, Microsoft and Sony have a number of strict requirements for their console games such as load times and updating sequences. Maximum Football was getting much bigger and, from a development standpoint, much more complex, so complying with added rules was putting a real strain on the production schedule.

Scouting the free agents

「私は膨大な作業を自分自身で行っていましたが、その中で技術的な問題やパフォーマンス上の課題に直面したんです。期限が間近に迫る中で、私は今こそ作業を外注するべきはないかと考えました。」(Winter 氏談)。偶然にも、彼はその頃 Unity Professional Services からの広告メールを受け取っていました。Unity の実績あるベストプラクティスを活用したいと思った彼は、チャットや電話会議で相談を始めました。一方、Professional Services のチームは、通常なら大規模なスタジオで多数のチームによって作られるようなゲームを、小規模なスタジオが完成させたことに深い感銘を受けました。 

Winter 氏、Eric S. 氏、そして Professional Services は、目標と期限を明確に定めたカスタムのアクションプランを作成しました。Eric S. 氏は次のように述べています。「Unity Professional Services との連携は最初からスムーズに行えました。彼らは、我々の技術的に求めているものを理解していただけでなく、小規模のスタジオにおいては、コストや成果物について明確な見通しが必要とされることも理解していました。Unity Professional Services との共同作業は最初から最後まで充実したもので、その成果は金額に代えられないものでした。」

Turning pit drills into easy workouts

エンゲージメントの一環として、次のことを行うために 2 人の Unity のエンジニアがオンサイトに派遣されました。 

  • Unity バージョンの移行を完了する
  • ゲームコードをレビューしてボトルネックとパフォーマンスの問題を特定する
  • 必要に応じてカスタムシステムを書く/書き直す
  • Canuck Play が Unity 2019 の新機能のいくつかを利用するのを支援する

パフォーマンスの最適化は多岐にわたりました。たとえば、シングルスレッドの経路検索システム(プレイヤーがゴールポストなどの障害物を迂回するのを許可するなど)がパフォーマンスのボトルネックとして特定されました。Winter 氏はこう説明しています。「既存のコードも機能しましたが、CPU の容量を食い尽くしてしまいました。プロフェッショナルサービスは、新しい Unity C# Job System でマルチスレッディングを使用する方法を見せてくれました。それははるかに効率的で、フレームレートが大幅に改善されました。」別の例では、Unity チームがゲームプレイの数々の状況でインバースキネマティクスとブレンドツリーを微調整しました。

「プロフェッショナルサービスは、ポストプロセッシングレンダリングの使用を減らし、使われている API の使い方を改善する方法を指摘してくれました。」Winter 氏はこう述べています。また、Unity のネイティブコンテナーを使用して、メモリの使用率を改善することで、ゲームの録画機能を改善するのを支援してくれました。そして、観戦者のシャドウイングの問題に対処するために、Unity は観戦システムをカリンググループを使用するように変更し、インスタンスのバッチングを改善して、ビジュアルアーティファクトを除去しました。

The Unity home-field advantage

プロフェッショナルサービスからの支援に加えて、Winter 氏は自身の生産性を高めるうえで、Unity の幅広い開発者コミュニティの恩恵があると考えています。「Unity フォーラムは情報量が豊富です。改善するためのヒントが必ず見つかります。」彼はこう言っています。もう 1 つの重要なリソースは、Unity アセットストアです。彼はさまざまな形で使用してきました。たとえば、ゲームの練習モードの空のスタジアムに、アセットストアに用意されている数々の素材の中から背景にビルや景色を追加しています。 

開発初期に、彼はオープンソースの PuppetMaster キャラクター物理演算システムを購入し、何年もかけて、自身の具体的なニーズに合わせてほぼ完全に書き換えました。その一方で、インテリジェントなホットプラギングのために、コンソール用の Rewired 入力システムを、コードに「そのまま」落とし込みました。

Winter 氏には、Vince Lombardi 氏、Wally Buono 氏、Joe Montana 氏、Doug Flutie 氏などの勝者に特有の自信を持っていました。「私には素晴らしいチームに加えて、Unity、Unity の開発者コミュニティ、Unity のサポート、そして Canuck Play のスペシャリストが付いています。」Winter 氏はこう言っています。「敵わないスタジオもゲームも存在しないと考えています。」Unity プロフェッショナルサービスの支援により、最も困難なパフォーマンスの問題に対処し、Unity のリアルタイム 3D 開発プラットフォームを最大限発揮することで、今年の後半にリリースされる『Doug Flutie’s Maximum Football 2020』は、きっとサッカーゲーム愛好家をうならせることでしょう。

Dave Winter, President/Founder and Lead Developer, Canuck Play

“I had done an enormous amount of work on my own, but then I hit some technical and performance roadblocks. With some serious deadlines approaching, I realized it was time to reach out to ... Unity Professional Services.”

Dave Winter, President/Founder and Lead Developer, Canuck Play
Eric S., Business Development Manager, Canuck Play

“From the start, working with Unity Professional Services was smooth and easy. They understood our technical needs as well as the fact that a small studio needs clear, unambiguous costs and deliverables. It was a pleasure working with Unity Professional Services from start to finish, and the results were priceless.”

Eric S., Business Development Manager, Canuck Play
Dave Winter, President/Founder and Lead Developer, Canuck Play

「既存のコードも機能しましたが、CPU の容量を食い尽くしてしまいました。プロフェッショナルサービスは、新しい Unity C# Job System でマルチスレッディングを使用する方法を見せてくれました。それははるかに効率的で、フレームレートが大幅に改善されました。」

Dave Winter, President/Founder and Lead Developer, Canuck Play
Dave Winter, President/Founder and Lead Developer, Canuck Play

“I have an incredible team with Unity, its developer community, its support, and our Canuck Play specialists. I don’t think there’s any studio or game out there that we couldn’t take on.”

Dave Winter, President/Founder and Lead Developer, Canuck Play

弊社のウェブサイトは最善のユーザー体験をお届けするためにクッキーを使用しています。詳細については、クッキーポリシーのページをご覧ください。

OK