趣味でUnity製のゲームモバイルアプリを作っています。今は、3個のゲームアプリをGoogle Play・AppStoreに公開しています。
- 復活勇者 (Google Play、App Store)
- スライムハンター (Google Play・App Store)
- にげろ、スライム (Google Play・App Store)
2018年から2019年の年末年始でこれらのゲームアプリを、Unity 2017.4からUnity 2018.3にアップデートしました。アップデートしたものは、すでにアプリストアに反映されています。
この投稿ではその背景と作業内容を説明します。
Unityのアップデートサイクル
2018年の年末、TechリリースであるUnity 2018.3が出ました。これはLTSになるUnity 2018.4とほぼ機能的に差はないバージョンですね。
「LTSってなんだっけ? 」「Unityのアップデートサイクルってどうだっけ」という人は、次に紹介するブログ・資料でぜひUnityのアップデートサイクルを確認してみてください。
Unity の新しいリリースプラン:TECH ストリームと長期サポート(LTS)ストリームの導入 | Unity Blog
こちらのブログより。
TECH ストリームでの、あるメジャーリリースのサポートは、そのメジャーリリースの次のバージョンがリリースされると同時に終了します。
LTS ストリームでのリリースは 2 年間サポートされます。それぞれのリリースへの Unity のアプローチは上記に述べた以外の点でも変化します:
またこちらのユニティ・テクノロジーズ・ジャパンの黒河さんの発表がまとまっていて、とても参考になります。
アップデートした理由
このタイミングで私がアップデートした理由を紹介します。
Q : Unity 2017.4 LTSがサポート期間があと1年間あるのに、なんで今したの?
A :
確かにサポート期間はあと1年あるね。 だから1年後に「Unity 2017.4 LTS => Unity 2019.4 LTS」ってアップデートも可能かもしれないね。 けれど2年間前のUnityからアップデートするのってかなり大変そうだから、Unity 2017.4 => Unity 2018.3ってアップデートにしたよ!
「あと1年間ある」っていうか「あと1年しかない」と思っているよ!
それからUnity 2018.xが.NET Standard対応してたからだよ。
Q : Unity 2018.3って今はまだバグが多いって聞いたけどなんで今したの?Unity 2018.4 LTSを待った方がよかったんじゃない?
A :
そうだね。Unity 2018.4 LTSを待つのもアリだと思うよ!
俺は年末年始のこのタイミングでしか、まとまった時間を取れない可能性があったから、今やったよ! 2018.4(LTS)がリリースされたら、またアップデートするよ! 2018.3は2018.4(LTS)とほぼ機能は一緒だから、2018.3から2018.4(LTS)へのアップデートはすぐできると予想しているよ。
会社のプロダクトとか、個人でも時間をかけているプロダクトとかの場合は、LTSの正式公開を待った方がいいと思うよ! だけどそんな場合でも、今からUnity 2018.3を試して技術調査とか、問題が出ないかとかをやってみた方が、いいと思うよ!
Q : Unity 2018.1や2018.2は試していなかったの?アップデートしていなかったの?
A :
Unity 2018.1や2018.2は面白そうな機能だけ試していたよ!
実は2018.2にアップデートできないか試したことがあったよ。1個のゲームアプリのアップデートを、実機デバックする所までしていたのだけれども、リリースする所までやっていなかったよ。(結局その作業ブランチは破棄したよ!)
アップデートして「はい、終わり!」じゃなくて、リリースするところまでやるのが大事だって思ったよ!
公開済みのゲームは、使いたい機能がない限り、LTSバージョンにだけアップデートする作戦、結構アリかなって思ったよ。
Q : アップデートしなきゃダメかな?今使っているUnity〇〇〇をずっと使うのはダメかな?
A :
「アプリストアのアプリをアップデートするためにXXX対応が必要、そのためにはUnityをアップデートしないといけない」みたいなことになると思うよ。
やっぱり継続的にアプリストアに公開し続けたいならば、どこかでUnityのアップデートはしないといけないと思うよ。
LTSサポートの方には、そういう対応が入ってくるだろうから、TECHストリームは無視するとしても、LTSストリームのUnityにはアップデートした方がいいんじゃないかな?
LTSのサポート期間は2年間だから、Unity 2017.4 => Unity 2019.4って更新もありだと思うけれど、2年間の差分を一気に更新するのは大変だと思うよ。
アップデートのための作業
自分のゲームは規模が小さく、Unityの利用機能も多くなく、使っているアセットも少ないので、作業量は多くありませんでした。
アップデートのための作業として、やったことは
- 「Unity 2018.1からBuildPipeline APIは、文字列じゃなくてBuildReportっていうオブジェクトを返すようになった」からその対応
- 「Unity 2018.3からPlayerPrefsを全削除するメニューアイテムが標準で追加された」から過去のEditor拡張のコードを削除
- SerializeField利用箇所に大量発生するCS0649警告を抑制するための
csc.rsp
を作成 - UniRx、DoTween、SpriteParticleEmitterなどのライブラリをアップデート
- Firebaseのライブラリをアップデート
- AdMobをアップデート(Androidで不具合が発生した)
- Api Compability Levelを.NET Standardに変更
です。
ちなみに、
- コードはほぼそのまま。新しいC#の文法で書き換えとかはやっていない。
- ライブラリはアップデートしただけ。SpriteParticleEmitterはLegacyなコードのままで新しいのに置き換えていない。
って感じで、今回はコンパイルエラーと実行時エラー、警告を修正しました。今の環境として適切なコード・綺麗なコードにするのは、次回のアップデートですることにしました。まずは問題なく動くものを、世の中に公開することを優先したかったからです。
下記のアップグレードマニュアルも見よう!
まとめ
自分の今年2019年の目標の一つは「作って公開したものはメンテナンスを続ける」です。
だから、作っている趣味個人ゲームアプリ3個は、しっかりとメンテナンスしていきます。まずその第一歩として、Unity 2017.4 => Unity 2018.3というアップデートを行いました。
まとまった時間がなかなか取りにくい可能性があったので、まとまった時間があった方が圧倒的に効率のいいUnityのアップデートを、年末年始休みに行いました。
多くの人はUnity 2018.4のリリース・その安定化を待つのもいいと思います。もし地雷踏んだら、情報共有してくれると嬉しいな!
みんなものゲームもUnityアップデートしていこうぜ!
アップデートしたゲーム
最後にアップデートしたゲームを紹介します。
遊んでね!
復活勇者 (Google Play・App Store)
スライムハンター (Google Play・App Store)
にげろ、スライム (Google Play・App Store)