ゲーム作ってみたので、参考になりそうなデータ公開します。
夏コミという締め切りに追われながら、PC/Android/iOS用に1本ゲームを作りました。
いろいろな理由でゲームを作っていたのですが、
その理由の一つとして、今後のゲーム作りに参考になりそうなデータが取れればと、作業履歴をメモっていたので公開します。
◆作ったゲームについて
「マカロン」となぞって繋ぐパズルゲームです。advパートもあります。(advのボリュームは背景3 キャラ1 衣装3 表情差分12 テキスト量は800文字程度 フルボイス)
AppStore
https://itunes.apple.com/jp/app/arisunomakaron/id1030357536?l=ja
GooglePlay
https://play.google.com/store/apps/details?id=li.fumi.macaron
◆開発の期間と規模と進捗状況
開発期間は2015年1月〜2015年8月までで、トータルの規模はおよそ400時間(2.5人月)。
企画開発は自分一人で、イラストとボイスは発注する形式でした。
当初の予定では継続してコツコツと…と考えていたものの、
コミケ受からなかったらどうしようとかやっぱりそういうことは思うわけで、
振り返ってみると途中の何もしてない感がひどく、
結果手が付けられていない夏休みの宿題状態になりました。
※このグラフは自分担当分のみです
◆分野別の作業時間
今回のゲームではこういう感じになりました。
カウント方法は作業開始時と終了時に時間をメモというアナログな方法で、
自分以外の作業時間は後日ヒアリングした時間を追加してます。
分野 | 時間 | 割合 |
企画 | 54.5h | 13.65% |
デザイン | 114.5h | 28.68% |
サウンド | 58.5h | 14.65% |
プログラム | 125.3h | 31.37% |
その他 | 46.5h | 11.65% |
合計 | 399.3h | 100.00% |
※企画:主にGoogleSpreedSheetで作業している時。企画作成 シナリオ作成 素材管理シート作成 発注書作成 資料集めなど
デザイン:主にPhotoshopやIllstratorで作業している時。仮UI作成や本画像作成など
サウンド:主にLogicやAudacityでサウンド作成/加工、ボイス収録時。se bgm voiceなど
プログラム:主にUnityで作業している時。バランス調整も含まれる。
その他:webサイト作成 CI環境整備 動画撮影 マーケット申請など
プログラムの比率もう少し高いかな?と考えていたものの、案外違うみたいで全体の30%ほどでした。ただ、これは他の分野が苦手で時間がかかっていただけかもしれません。
◆開発のこと
ゲームエンジンはUnity5.1を使用しました。
特に思ったことやアセットなど紹介します。
◯描画
主にuGUI、時々2DSpriteとParticleSystemを使用しています。
◯NGUI: Next-Gen UI
https://www.assetstore.unity3d.com/jp/#!/content/2413
DOTweenなどいろいろ試しましたが、最終的にアニメーションはNGUIのTweenを使っています。(リザルトのマカロンが降ってくる箇所は物理演算)
uGUIへのカラー対応はTweenAlpha.csにImageとTextとCanvasGroupについて追記して使いました。
◯宴(Unity Text Adventure Game Engine)
https://www.assetstore.unity3d.com/jp/#!/content/15905
advパートで使用。
表情差分やキャラの前に背景置く場合は以下の様な感じでLayer重ねて対応しました。(表情については、別のやり方があるかもしれません。)
LayerName | Type | X | Y | Order |
背景 | Bg | 0 | 0 | 0 |
キャラ | Character | 0 | -300 | 100 |
表情 | Character | 0 | 193 | 101 |
背景(前面) | Sprite | 0 | -502 | 200 |
◯Particle Playground
https://www.assetstore.unity3d.com/jp/#!/content/13325
テクスチャをエフェクト類に使用。機能そのものは使っていません。
◯UniRx
https://www.assetstore.unity3d.com/jp/#!/content/17276
ボタン制御に使用。
◯EasyMaskingTransition
https://www.assetstore.unity3d.com/jp/#!/content/8734
画面遷移のエフェクトに使用。とても使いやすくて便利です。
◯MusicEngine
https://github.com/geekdrums/MusicEngine
音楽と演出の同期に使用。
Actionを渡して指定したタイミングで実行する機能を追加して使っています。
Music.csのUpdateでそのアクション行うようにしていて、最大1/60秒程度タイミングが変わるので、シビアなものはデータ側で対応しています。
(例えばパズル中のメロディーやリザルトのメロディーは遅れて鳴ってもある程度許容できるように、ディレイ掛かった音にしてあります。)
◯VisualStudio+ReSharper
https://www.visualstudio.com/
http://samuraism.com/products/jetbrains/resharper
MacBookProで開発していたので、最初はVisualStudioCodeを使っていましたが、
最終的にPalallelsで起動のVisualStudio+ReSharperに落ち着きました。
若干動作重いのと外部で作ったファイルの認識にVS再起動が必要だったりでめんどくさかったですが、ReShaerperがそれを上回る便利さを提供してくれておすすめです。
◯Bitbucket
https://bitbucket.org/
gitのホスティングサービス。
一人で開発なので、主な役割はデータのバックアップとUnityCloudBuildとの中継役。
◯UnityCloudBuild
https://build.cloud.unity3d.com/
自動ビルド。プランはFree。
ビルドエラーが出たときはクリーンビルドを選ぶとだいたい直ります。
webplayer版で現状を関係者に共有したり、
平日夜開発してプッシュ→翌朝ダウンロードして電車内でデバッグしたりなど、時間節約にかなり便利でした。
◯スマホ版開発
主に行ったことはシーンロード時間の短縮と音ズレ問題の解決。
シーンロード時間はサウンドの読み込み設定をCompressd In Memoryに変更、
音ズレに関しては、AudioClipのプリロードと
m_DSPBufferSizeを0から256とかに変更するとそれなりに効果があったように思えました。
◆マーケット公開
◯iOS審査について
8/14 申請
8/22 メタデータリジェクト(=>当日再申請)
8/29 通過
メタデータリジェクトの理由は、審査のためにアプリ内に含まれる全ての画像をくれとのことだったので、zipでアップロードしたら通りました。(それでも審査入るまで遅くて9/4に公開できるかドキドキでした。)
◯公開日について
iOSは9/4の0時1分に公開ボタンを押して、公開日は9/4
Androidも同時刻に公開ボタンを押して、公開日は9/3
Androidの場合に表示の日付を合わせたいなら日本時間ではなくどこかの時間の0時に合わせる必要がありそうです。
以上です。なにか一つでもゲーム開発の参考になれば幸いです。