私はゲーム開発をUnityで行っており、開発マシンにはWindowsを使っています。私と同じような環境の人も少なくないでしょう。
そうなると、悩みは一つ「iOSのアプリのビルドができない!」ということですね。
そこで幾つか手段はありますが、Unity Cloud Buildを使ってiOSで動作するゲームのビルドをやってみました。で、結論から言うと、「Unity Cloud Build・・・。使えねぇ」ということで、使うのはいったん辞めようと思います。
ということで、この記事では、Unity Cloud BuildでiOSビルドをしてみた時の、体験談というか、感想というか、Unity Cloud Buildについて私見をまとめておこうと思います。
UnityのiOSビルドをWindowsで実行するためUnity Cloud Buildを実施した結果
私がUnity Cloud Buildを「使えねぇ」と結論付けた理由は大きく下記3点です。
- ビルドが遅い
- App Storeへリリースできない
- 広告が実装できない
それぞれについて、詳しく語っていきます。
ビルドが遅い
単純にビルドが遅いです。プロジェクトを作っただけのゲームをビルドするのにも20分近くかかりました。
いや、遅すぎでしょ。デバッグできんやん。
このままだと、普通にゲーム作った時にどれだけビルドで待たされるか分かったものじゃありません。
開発途中だと何度もビルドする必要があるので、ビルド時間が長いのは開発効率が悪すぎるので、個人的にはかなりのマイナスですね。
App Storeへリリースできない
私の最終目的はビルドすることではなく、App Storeへゲームをリリースすることです。ビルドは通過点にすぎません。
しかし、ご存知だとは思いますが、App StoreへリリースするにはMac OSが動くマシンが必要です。
つまり、ビルドだけできても意味無いやん。ということです。
Unity CloudのサービスでApp Storeへリリースできるなら、まだ一考の余地はあったのですが、結局ビルドまでしかできないのであれば、用はありません。
広告を実装できない
致命的というべきか、Unity Cloud BuildでビルドするとAdMobやUnity Adsで広告が実装できませんでした。
AdMobは実装してビルドするとビルドエラーになるし、Unity Adsはビルドは通るけど初期化でクラッシュしてゲームが動きませんでした。
AdMobに関してはXCode12を使ってビルドすればいけるかもしれませんが、Unity Cloud Buildは2020年12月時点でサポートされていませんでした。
またUnity Adsの初期化でクラッシュする件についてはクラッシュレポートを解析すれば大丈夫かもしれませんが、解析にはMac OSマシンがあった方が断然便利です。
広告を実装できないというのは、結果として現れた一つの現象ですが、その本質は
自分で自由に扱えるビルド環境がないとエラーに手前で対処できないことが多く、結局開発効率が落ちる
ということに他なりません。
クラウドサービスというのは、自分に物理的なリソースを所有しなくていい分、自分でコントロールできない領域が多すぎます。普通のWebサービスの提供を受けている分には何も問題はありませんが、開発者目線で見ると不便な面もあり、それが致命的なケースも少なくありません。
以上のような理由で「Unity Cloud Buildは使えない」という結論に達しました。
Unity Cloud Buildは万人に使えないわけではないと思う理由
さて、私個人としてはUnity Cloud Buildは使えないなぁと思いましたが、未来永劫使わないと決めたわけでもありません。要は使い方次第で、Unity Cloud Buildは便利なツールになりえるということです。
Unity Cloud Buildの恩恵を受けるのは、次の2つのケースだと思います。
- それなりの人数のいるチームでゲームを開発している場合
- 保守フェーズに入った場合
これについても詳細を語ります。
それなりの人数のいるチームでゲームを開発している場合
Unity Cloud Buildを使うためには「Unity teams Advanced」のライセンスが必要な通り、チーム開発をするためのツールとも言えます。そのためGitを使ったソース管理が必須となっています。
Gitを使うことでソース管理は楽にできますし、最終的な成果物もUnity Cloud Buildの一カ所で管理できます。
原始的なファイル管理を不要として、「どこのマシンにマスターが入っているの?」という状況をなくすことができ、余計なコミュニケーションやしょーもないミスを防ぐことができるわけですね。
私のように一人で開発していると、コミュニケーションなんてありませんし、自分ですべて把握できるので、あまり恩恵は感じられないんですよね。
保守フェーズに入った場合
個人レベルであっても、保守フェーズに入ったら使ってもいいかなとは思います。保守フェーズとは、アプリをリリースした後の段階ですね。
手元にある環境で動作確認まで終わってしまったもので、先に挙げた広告が実装できない!みたいな状況もすべて解決した後なら、Unity Cloud Buildでビルドしてもいいかなとは思います。
手元の環境だと、AndroidやiOSなどのビルドを切り替えるときビルド設定で「Switch Platform」を都度行わないといけません。
しかしUnity Cloud Buildだと、その必要がないので楽です。またビルドに時間がかかるといっても、保守フェーズなら頻繁にビルドすることもないので、ビルドが遅い程度ならそれほど開発効率に影響しないと言えるでしょう。
【結論】Unity Cloud Buildは一通り開発環境が整った上での便利ツールにしよう
Unity Cloud Buildを使ってみた感想としては、
やっぱり開発環境はローカルで一通り整えた方がいい。その上でUnity Cloud Buildを使えるシーンで補助的に使う。
というのが一番いい感じだと思います。
個人的にはMacOSのマシンを手に入れるのがおすすめですが、どうしてもWindows環境でiOSのゲームを開発したいと考えていている人はUnity Cloud Buildを使うよりは、AWSのMacインスタンスを使う方向で考えた方がいいと思います。その方がXCodeも使えますし、App Storeへのリリースもできると思いますよ。