はじめに
今回は『SYNC 2022』の講演の動画を見て勉強しつつ、
ついでに記事にまとめちゃおうという感じのやつです。
そして、題材にする講演は、
「コアメンバー3人で作り上げた『レッツプレイ!オインクゲームズ』から学ぶゲーム開発効率化術!」
です!
『レッツプレイ!オインクゲームズ』は、コアメンバー3人、開発期間も1年弱と、近ごろのオンラインプレイ対応タイトルとしては規模の小さなプロジェクトでした。
この限られた人的リソースの中で、いかに作業を効率化し発売にこぎつけたかを「ゲーム開発効率化術」と名付けて紹介します。効率化にあたり最も難しいのは、いつも当たり前に行っている作業/時間が「非効率/無駄だと気づくこと」です。
本講演では、実例を挙げて「なぜこの作業が非効率だと気づけたのか」「どのようにして解決したのか」をお話しします。ゲームの仕様検討の方法など、エンジニアリング以外の部分については触れません。
こんな人におすすめ:
・効率的なゲーム開発に興味があるプログラマー
・ゲームの本質的な実装に集中できるよう、開発環境を改善したいと考えているプログラマー
・少人数チームでゲーム開発を行なっている方受講者が得られる知見:
・非効率な作業を認識する方法
・チームの規模に依らず活用できる開発効率化術の実例出演:
きゅぶんず / 浦 義裕 (株式会社オインクゲームズ)
なお、自分が気になった所を抜粋してまとめているため内容に抜けがある点はあしからず。
講演内容
この講演は『レッツプレイ!オインクゲームズ』という複数のボードゲームがデジタルで遊べる
一見シンプルだけど実装内容としては結構ボリューミーなゲームを開発していく上で、
いかに非効率や無駄な事に気付いたか(+それをどう効率化したか)という内容でした。
なお、発表(スライド)としては最後の方ですが非効率や無駄な事に気付くための指標として
「繰り返し」「待ち時間」「ストレス」「当たり前じゃない」
という例を挙げており
それらを解決するための方法として
「自動化」「開発用最適化」「トラブル防止」
という具体例を挙げています。
自動化
まずは自動化についてですが、そもそも自動化とは
人間がやらなくても良い作業を機械に任せることで、
対象ゲームではサムネイル画像の自動生成等を行っているそうです。
その「サムネイル画像の自動生成」をするにいたった理由として
どうやって作ったかという思い出す作業が発生した事を挙げています。
つまり、思い出す = 何かを繰り返そうとしている = 非効率という感じです。
他にも遊び方の説明画面を全て自動撮影出来るようにしているそうです。
この画像はゲーム内で使うのではなく、テキスト確認用で
そのテキストを書いているのがUnityユーザーではないので画像化しているそうです。
なぜならテキストが変わる度にビルドしていると
確認にかかる時間は同じでもビルド待ちの時間、つまり拘束時間が増えてしまうからです。
この拘束時間というのも効率化の指標として使えるとの事でした。
開発用最適化
次に開発用最適化についてですが、そもそも開発用最適化とは
開発時専用の便利機能をゲーム内に実装する事で、
対象ゲームではどのシーン(ゲーム)でも再生が開始出来るようにしており、
さらにどこでも中断及び再開が出来るようにもしているとの事でした。
こういう最適化をした方が良い無駄に気付くタイミングというのが
ちょっとしたストレスを感じた時だそうです。
ちなみに開発用最適化にはバグを増やす危険性を持っており、
その原因は開発専用のフローが出来てしまう事にあるそうです。
なので、出来る限り通常と同じフローを使って開発用の機能を作るのがオススメだそうです。
トラブル防止
最後にトラブル防止についてですが、そもそもトラブル防止とは
予定外の作業が発生しないように、一度起きたトラブルが再発しないようにする事です。
対象ゲームでは「(日本語だと大丈夫だけど)英語だとテキストが入らない」という事を防止するために、
ローカライズ対象のテキストを2倍の長さにする機能が実装されているそうです。
さらに「誰も触っていない(確認していない)機能がいつの間にかバグってた」を防止するために、
決められた手順でゲームを自動進行し、各画面のスクショ撮影も自動で行う機能もあるそうです。
なお、トラブル防止は他のプロジェクトや講演を見る事(インプットを増やす事)によって
そのトラブルが防止出来る物だと気付く事が大事なようです。
おわりに
開発効率化の講演は結構ありますが、意外と「どこを効率化すればいいかの」みたいな話は珍しく、
ありがちな「面白いけど技術的もしくは内容的に自分(自社)では活かせない」とならない、
ゲーム開発初心者を含めた万人にオススメ出来る内容でした。