【Unity】ちょっとコードを書いたらすぐテストしてバグを積み立てない
Unityでゲームを作る時にプログラミングは避けて通れません。
プログラミングといえばテスト。ちゃんと動くかどうかを確かめるのはとても大切です。正確に言えばコードを書かない方法でゲームを作ることもできますが、その場合でもテストは必ず行います。このページでは主にコードを書く場合について触れます。
コード(スクリプト)を書いたらその動作を確認するために単体テストを行いますが、このテストをこまめに行なっておくと、あとの苦労が減っていきます。
「いやいや、何を当たり前な……」
と思ったあなた。すばらしいです。思い描いた通りに動いているか確認するのは本当に大切なので、ぜひこれからも続けてください。
テストとは
いや、流石にプログラミングをやっていてテストを知らないなんてことはないと思いますが、足並みを揃える意味でも一応触れておきましょう。
テストとはざっくり言えば思った通りにプログラムが動いているか確認するものです。人によっては「試験する」という言い方をする人もいます。
プログラマにとっては悲しいことに、プログラムは思った通りには動かず、書いた通りに動きます。頭の中にある振る舞いと、実際の書かれたコードが同じであるとは限らないんですよね。なので、テストという形でちゃんと思った通りになっているか確認するんです。
IT系の会社にいる人だったら、単体テスト、結合テスト、システムテスト、といったようにテストにもフェーズがあることは多分承知のことと思いますが、IT系の会社ではないところからUnityを使い始めた人だと、いきなりこうしたフェーズを意識するのも辛いと思うので、まずは「作ったものを実行して動きを確かめるもの」くらいの認識でいいと思います。慣れてきたらだんだん自然と名前も覚えてくるでしょうからね。
細かくテストしてみよう
ちょっとコードを書いたら、すぐにゲームを実行して動きを確認してみましょう。幸い、Unityではゲームの実行ボタンを押せばすぐそのシーンを開始してくれるので、確認がしやすいです。
多くの場合はインスペクターウィンドウで参照をセットし忘れる「NullReference」のエラーに出会います。Unityではコードを書く作業に加えてエディタ内で操作する作業もあるので、コードの修正に夢中になるとエディタでの操作をついつい忘れちゃったりするんですよね(笑)
普段からこまめにテストをやっているとエラーが出たとしてもすぐに修正箇所が分かります。早め早めにこうしたエラーを拾って修正するとリリース前のテストプレイがスムーズに進みますし、細かいところで止まらないため、より実際のプレイに近い形での確認がしやすいです。
リリース前のテストではゲーム全体のバランス調整とかプレイしている時のUIの反応や画面遷移のスムーズさなど、プレイヤーがどう感じるかに重きを置いて確認したいですからね。
リリース前のテストで細かいバグに遭遇すると「今更これか……」とメンタルに地味なダメージが入ります。
それが実機テストの途中だったりした時にはもう……(遠い目)
実機でテストするためにはゲームをビルドする必要があります。実機でテストするくらいの時期だと、プロジェクトも大きくなっているので、ビルドに時間がかかるんですよね。そうすると実機でエラーに出会ったら、Unityでちょっと直して再びビルドして実機にインストールして……と待ち時間が多くなってしまうんです。この時間が結構もどかしいんです。
たくさんコードを変えたら気を付けよう
私はノリノリでコードを書いていると結構広い範囲で変更をかけていることもあるので、意識してなるべく狭い範囲でコードに書いた機能を確かめるようにしています。
例えば主人公を移動させる機能を作ったら、すぐにゲームを実行してちゃんと思った通りに動かせるかを試しています。
if文の条件チェックなどはコードが膨らむと確認が大変です。というのも、if文を書いたらその条件を全て通るようにテストをしないといけませんから、パターンが多くなるとちょっと億劫になります。
シーンを跨ぐレベルでコードを修正した日には単体テストと呼べない範囲で確認が必要で……(遠い目)(2回目)
幸い、Unityでは実行ボタンを押せばすぐにそのシーンでテストできるのでテストがしやすい環境です。
という訳でなるべく頻繁にテストを行なっていくことをオススメします。
テストした内容はできればメモしたい
IT系の会社のプロジェクトだと、ちゃんとテストケースと呼ばれるものを作ります。これは、
- 何を確認するのか
- どうやって確認するのか
- OKとする基準はなにか
- 誰がテストしたのか
- いつテストしたのか
を記載したもので、テストした内容が他の人にもちゃんと分かるように作ります。実際には基準をクリアした証拠写真としてスクリーンショットも残す必要があったりします。
個人でゲームを作っているときにここまで作るとしんどいので、ノートにメモ書きする程度でいいかもしれません。大事なのは、何をテストしたかの情報を残すことです。可能なら日付ぐらいは残しておきましょう。
まとめ
ゲームを作っているときはなるべく細かい単位でテストして動きを確認しましょう。あとで一気にやろうとすると、原因が複雑に絡み合って解決が難しくなることもあります。
もし可能なら、テストした内容はメモ書きでもいいのであとで分かるように残しておくと、テストしたところ、していないところが分かるので開発が進めやすくなります。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】ゲームのビルドは後に回さず早めにやってエラーを拾おう 2020.07.14
-
次の記事
【Unity】テスト範囲は設計と照らし合わせて(フェーズもあるよ) 2020.07.16
コメントを書く