【Unity】ゲームのビルドは後に回さず早めにやってエラーを拾おう
Unityでゲームを作った後は、ユーザーが遊べるようにゲームをビルドします。
PC向けならWindows用やMac用でビルドし、スマホ向けならiOS用やAndroid用でビルドしていきますが、ビルドをなるべく早めにやっておくことをお勧めします。
というのも、Unityエディタでゲームを実行している時には見つからなかったエラーや修正箇所が見つかる可能性があるためです。
プロジェクトの後半、リリースも目の前というタイミングで新しくエラーを検知すると心に対するダメージが大きいため、なるべく早い段階でビルドして、予期しないエラーが出てこないか確認しておきましょう。
コンパイルがOKでも……
Unityのエディタは、スクリプトに変更があると自動的にコンパイルしてくれます。コンパイル時にはスクリプトのエラーを拾ってコンソールで教えてくれるので、多くの場合スクリプトのエラーを逃すことはないはずです。スクリプトのエラーについてはWeb上で情報を残してくれている人も多いので、解決もそこまで大変ではないと思います。
このようにスクリプトの動作に関してはUnityエディタで確認すればOKですが、Unityのプロジェクトに関わる部分、例えば画像の大きさだったり、インポート設定だったり、Editor拡張を使っているならそのフォルダ構成などでエラーが出てビルドできないことがあります。
例えば、「Editor」フォルダ以外の場所で「using UnityEditor;」としてエディタで使える処理を呼んでいたりするとビルド時にエラーが表示されます。以下の例は「Editor」クラスを継承したクラスを作って、「Editor」フォルダではなく「Images」フォルダに配置してビルドしたときに表示されたエラーです。
規模の小さいプロジェクトなら問題に遭遇することもそんなにありませんが、個人開発でもある程度規模が大きくなるとファイル数も増え、何らかの問題が起きる可能性が高くなります。使っていたアセットの内部でEditor拡張をしていて、たまたま配置した場所が悪くてエラーが起きた、なんてことも。
Editor拡張のスクリプトだけではなく、例えばAndroidならProject Settingsでキーストアやキーのパスワードを入力してなくてエラーが出たり、権限の問題でSDKに含まれているDLLを使うことができなくて必要な処理が読み込めずにエラーになったりします。
他にもインポートしたアセットで使われている処理が古くて、最悪の場合エラー扱いで表示されたり、シェーダースクリプトに問題があって止まったり、シェーダーキーワードの長さで引っかかったりと、それはそれはたくさんのエラーに出会います(遠い目)
「Unityエディタで全部バグを潰した! 今、万感の思いを込めて、ビルドする!」
なんてビルドボタンを押したら大量の見たことないエラーに遭遇するなんてのはよくある光景です。
ビルドまでいく人は実はそんなに多くない
ビルド時に出会うエラーは、スクリプトのコンパイルエラーに比べるとちょっと情報が少ない印象です。この理由としては、ビルドするまでちゃんとゲームを作る人は実はそんなに多くないからです。
エディタ上ですぐ確認できるスクリプトのコンパイルエラーは、エラーメッセージでググれば大抵の場合すぐに原因や解決策が見つかります。プロジェクト初期の余裕がある時期にも確認できるので、こうした情報はWeb上に残しやすいんですよね。
一方でビルドエラーの場合、そもそもゲームを完成させるまで進む人が多くないので、情報も減っちゃいます。実のところゲームが完成していなくたって早めにビルドしてもいい……というかした方が良いのですが、「テストが終わってからビルド!」というイメージは結構あるんじゃないでしょうか。
となると、ビルドするところまで進む人が少なく、それに比例して情報を残す人も減っていくのです。
また、普段からゲームを完成させている人でもビルドは後回しになりがちです。そうするとリリース前にビルドを行うことも多く、スケジュールと格闘しながらトラブルシューティングを行うことになり、余裕のある時期のようにWeb上で情報を残しているわけにもいかなくなるんですよね。
情報をまとめるのって結構時間がかかりますし、読んだ人に分かりやすくするためにはスクリーンショットも用意する必要があります。何より、トラブルシューティング中に考えた仮説が正しいかどうかはまだ分からない状態ですから、手戻りがある作業をリリース前にできるかというと……なかなか難しいですよね。
個人でやっている自分のゲームならリリース時期をずらすというのも可能ですが、リリース時期が決まっているゲームだと時間が貴重なのでここまでできないんですよね。
ちょっと想像してみてください。いつものように会社のブログを書くネタとして、リリース前の時期になってビルドしたときに出会ったエラーを選んだとします。差し迫る納期のなか、ビルドエラーを解決したもののその内容をブログに書くことに集中してしまいリリース作業が押しています。そんなあなたの後ろに上司が立っていました。上司の顔を見ると……。
きゃー! ちょっとしたホラーになってしまいましたが、リリース前の時期は忙しいので情報を残す人も減るという点は頭に留めておくと良いでしょう。
そうは言っても英語の情報でも良ければUnityのフォーラムで検索すればすぐに見つかったりしますけどね(笑)
プロジェクト後半のビルドは時間がかかる
ビルドに関して忘れてはいけないのがその所要時間です。一般に、ゲームプロジェクト内のファイルが増えてくるプロジェクト後半ではビルド時間が伸びてきます。これはそれぞれのファイルについて「ビルドに含める/含めない」を判断したり、ビルドに適切な形で含めるように加工したりの作業が発生するためです。
ビルドエラーが解決されたことを確認するには再度ビルドを実行する必要があるため、プロジェクトの後半にエラーを見つけると、その分解決にも時間がかかってしまうことになります。
早く結果を確認したいのに、ビルドはコンピュータ任せなので私たちではどうすることもできない、このもどかしい時間は辛いものです。
そのためなるべく早いうちにビルドを試しておくことは開発期間の短縮にもつながります。
早めに知れば早めに対策を打てる
ビルドの作業は実行ファイルを出力することからゲーム開発の一区切りのようなイメージがありますが、リリース作業の中のプロセスというよりもテストの一環だと思っておくと良いでしょう。
テストが終わってからエラーに遭遇すると精神面へのダメージが大きいんです。なのでなるべく早めにビルドしてエラーを洗い出しておくと快適にゲーム開発ができます。
ゲーム開発の攻略チャートを作りました!
-
前の記事
今更だけど好き勝手妄想した真女神転生1の感想記事のまとめ 2020.07.13
-
次の記事
【Unity】ちょっとコードを書いたらすぐテストしてバグを積み立てない 2020.07.15
コメントを書く