【Unity】初の自作アプリ「ゴーゴーゴロヤン」を振り返る

Unity
マイケル
マイケル
アプリがなんとか1つ完成したよエレキベア
エレキベア
エレキベア
急すぎて着いていけないクマ
マイケル
マイケル
実はここ1ヶ月ほど、
アプリを1つリリースするのを目標に開発を進めていたのさ
エレキベア
エレキベア
なるほどクマ・・・
前作ってた「ゆるモン」クマか?
マイケル
マイケル
いや、ゆるモンは初めて作るにしては
少し難易度も高いしボリームも大きすぎた・・・。
マイケル
マイケル
だから難易度を下げてまずは1本完成させてみよう!と思ったんだ。
そんな目標で作ったゲームがこちら!
\ゴーゴーゴロヤン/
IMG 6400
ゴーゴーゴロヤン

ゴーゴーゴロヤン

MOLEGORO無料posted withアプリーチ

エレキベア
エレキベア
こ、これは・・・・
マイケル
マイケル
そう、だいぶ前に作ったゴロヤンのゲームだよ


↓前回の作った記事はこちら

【Unity】マリオ風の縦スクロールゲームをつくってみた

マイケル
マイケル
まずは簡単なゴロヤンをカスタマイズして
1本完成させてみようと思ったわけさ
ゴロヤン
ゴロヤン
ゴロ〜〜〜〜〜〜〜〜〜〜〜
エレキベア
エレキベア
(クソゲー臭がすごいクマ・・・)
マイケル
マイケル
というわけで今回は、
このゲームを作った感想と振り返りについて書いていくよ!
マイケル
マイケル
これからゲーム開発を始めようと思っている方は、
どれくらいの規模のゲームをいつまでに完成させるべきなのか等、
参考にしていただけるとうれしいです!
エレキベア
エレキベア
たのしみクマ〜〜〜〜〜
スポンサーリンク

ゲームの全体構成

マイケル
マイケル
まずはゲームの全体構成がどんなものだったのかについて!
ゲーム構成
マイケル
マイケル
エピソードを進めながら縦・横のスクロール画面をクリアしていくストーリーモードと、
クリアした時間をランキング登録・SNS投稿できるタイムアタックモード
の2種類を用意しました!
IMG 6405

↑ストーリーモード:エピソード画面

IMG 6409

↑ストーリーモード:ステージ画面

ゴロヤン
ゴロヤン
ゴロロンヤンゴロロンヤン♪
マイケル
マイケル
それぞれ下記の通り、5種類ずつ作ったよ!


[ストーリーモード]
ステージ:5種類
エピソード:5種類

[タイムアタックモード]
ステージ:5種類


[その他機能]
SNS投稿機能
ランキング機能

エレキベア
エレキベア
このくらいならなんとか作れる気がするクマね
マイケル
マイケル
うん!ギリギリになってしまったけど、
仕事しながら大体一ヶ月くらいで作ることができたよ!
マイケル
マイケル
その他、外部サービスやUnityパッケージなどは、下記を使用させてもらいました!


[外部サービス]
広告表示: Google Admob
ランキング機能: NCMB

[Unityパッケージ]
SNS投稿:Social Connector
ボスキャラの動き:Anima 2D
会話機能:Fungus


エレキベア
エレキベア
いくつか聞いたことがあるクマね
マイケル
マイケル
他の記事でもいくつか紹介しているから、
よかったらそちらもご覧ください!

【Unity】自作ゲームにAdmob広告を実装する(バナー広告・インタースティシャル広告)
【Unity】Fungusを使ってセリフ機能を実装する
【Unity】Fungusでいろいろしてみる 〜サイズ調整とスキップ機能〜
【Unity】Anima 2Dを使ってボーンアニメーションを作成する【にぎりめし君】

エレキベア
エレキベア
なつかしクマ〜〜〜〜

規模とスケジュールについて

マイケル
マイケル
次はどのくらいの規模になったかと
スケジュールをどのように進めたかについて!

全体の規模

マイケル
マイケル
全体の開発規模は、ざっくり下記の通り!


[ソースコード]
ステップ数(全体):約2ks
クラス数(全体) :21クラス
– シーン管理 :5クラス
– キャラ操作 :6クラス
– コライダ  :5クラス
– システム共通:3クラス
– 広告表示  :2クラス

[画像]
敵キャラ・ギミック等: 34枚
会話キャラ     : 33枚
UI(ボタン等)   : 46枚
背景        : 14枚

[音楽]
BGM: 11種類
効果音: 12種類


トークキャラ画像

↑例)会話キャラの素材

↑例)作成したBGM

エレキベア
エレキベア
こう見たら結構多いクマね〜〜
マイケル
マイケル
敵やオブジェクトも各ステージでなるべく共通にしたけど
それでもこの数だったからね
マイケル
マイケル
基本ベクターソフトで作るようにして、
表情の違いで作る場合等は、前つくったものを流用して短縮しました!

開発スケジュール

マイケル
マイケル
スケジュールはざっくりとこんな感じ!
スケジュール
マイケル
マイケル
平日は大体1〜3時間、休日は5〜7時間くらい作業して、

開発:約1ヶ月
テスト:約1週間

ほどかかりました!
エレキベア
エレキベア
がっつり仕事って感じクマね
マイケル
マイケル
コロナで基本家だったから集中して作業できたんだよね〜
エレキベア
エレキベア
この黒い部分は何クマ?
マイケル
マイケル
仕事で死んでました
エレキベア
エレキベア
(気の毒にクマ・・・)

感想と振り返り

マイケル
マイケル
以上のものを、実際に作ってみての感想と振り返りをするよ!

よかった点

マイケル
マイケル
よかった点を3つあげると、

・ソースコードを整理して進めることができた
・程よいボリューム感だった
・リリースまでの一連の流れを経験できた

だったかなと思ってます!

ソースコードの整理

マイケル
マイケル
ソースコード等は、整理して進めることができたので、
いわゆるスパゲティコードみたいにならなかったのでよかったと思っています!
マイケル
マイケル
タグ名や音源のファイル名等は、
定数クラスを作って管理するようにしたり、
「システム共通用」「コライダ用」等、フォルダを分けて管理しました!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace GameUtil
{
    public static class Const
    {

・・・略・・・

        /** シーン名 */
        public const string SCENE_NAME_TITLE = "TitleScene";
        public const string SCENE_NAME_EVENT = "EventScene";
        public const string SCENE_NAME_STAGE1 = "Stage1Scene";
        public const string SCENE_NAME_STAGE2 = "Stage2Scene";
        public const string SCENE_NAME_STAGE3 = "Stage3Scene";
        public const string SCENE_NAME_STAGE4 = "Stage4Scene";
        public const string SCENE_NAME_STAGE5 = "Stage5Scene";
        public const string SCENE_NAME_END    = "EndScene";
        public const string SCENE_NAME_ADMOB  = "AdmobScene";
        public const string SCENE_NAME_TIMEATTACK_CLEAR = "TimeAttackClearScene";

        /** SoundAssetsキー(ファイル名) */
        public const string BGM_KEY_STOP = "StopBGM";
        public const string BGM_KEY_GOROTHEMA = "GOROTHEMA";
        public const string BGM_KEY_FOREST = "FOREST";
        public const string BGM_KEY_SEA = "SEA";
        public const string BGM_KEY_HOPING = "HOPING";
        public const string BGM_KEY_DOOR = "DOOR";
        public const string BGM_KEY_BANANAMIDA = "BANANAMIDA";
        public const string BGM_KEY_BANANAMAN = "BANANAMAN";
        public const string BGM_KEY_FLAY = "FLAY";
        public const string BGM_KEY_SUPERSTAR = "SUPERSTAR";
        public const string BGM_KEY_ATTENSION = "aTTension!!";
        public const string SOUND_KEY_ATTACK = "se_attack";       // 攻撃音
        public const string SOUND_KEY_JUMP = "se_jump";           // ジャンプ音
        public const string SOUND_KEY_JUMP_LONG = "se_jump_long"; // ジャンプ音(長い)
        public const string SOUND_KEY_WIND = "se_wind";           // 風
        public const string SOUND_KEY_DELETE = "se_delete";       // デリート音
        public const string SOUND_KEY_CLICK = "se_click";         // クリック音
        public const string SOUND_KEY_GAMEOVER = "se_gameover";  // ゲームオーバー音
        public const string SOUND_KEY_BOYON = "se_boyon";        // ボヨン音
        public const string SOUND_KEY_BANE = "se_bane";          // バネ音
        public const string SOUND_KEY_BOMB = "se_bomb";          // 爆発音
        public const string SOUND_KEY_DIMAX = "se_dimax";                 // ダイマックス音
        public const string SOUND_KEY_DIMAX_RELEASE = "se_dimax_release"; // ダイマックス解除音

・・・略・・・

    }
}

↑定数クラスの作成

エレキベア
エレキベア
確かにこれなら分かりやすいクマね

程よいボリューム感

マイケル
マイケル
1ヶ月で作り切るという目標に対してギリギリで終わるくらいだったので、
ちょうどいいボリューム感だったと思います!
エレキベア
エレキベア
これでゆるモンでも作ってたりしていたら
全然終わらずに嘆くハメになっていたクマね
マイケル
マイケル
非常によき判断であった・・・
ゴロヤン
ゴロヤン
ゴロロ〜〜〜〜〜ン

一連の流れを経験できた

マイケル
マイケル
そしてやはり開発からリリースまでの一連の流れを経験できたこと!
これが一番大きいです!
エレキベア
エレキベア
これで次回以降もイメージつけやすくなるクマね
マイケル
マイケル
よく「一つ作りきったら違う自分になれる」と聞くけれど、
正にその通りだと思いました。
マイケル
マイケル
しかしこれでやっとスタート地点に立てたという感じです・・・。
これからどう進めていくかが肝ですね
エレキベア
エレキベア
ひとまずおつかれさまだったクマね

反省点

マイケル
マイケル
そして反省点も3つあげるすると、

・レイアウトの考慮が不足していた
・未経験の技術を見様見真似ねで実装した
・妥協した機能もいくつかあった

という点だったかなと思っています。

レイアウト考慮不足

マイケル
マイケル
レイアウトの考慮が不足していた点についてですが、
こちらはテストでこの類の障害が一番多く、苦労しました。
マイケル
マイケル
例えばこちらは、開発直後の画面を
iPadの画面サイズで表示した際の障害なのですが・・・
1 5 iPad
マイケル
マイケル
このように画面が崩壊してしまいました。
エレキベア
エレキベア
これはひどい
マイケル
マイケル
これは画面サイズを固定で開発を進めてしまったのが原因です。
開発時から複数の画面サイズでレイアウトを確認したり等、
もう少し考慮していれば防げたと思います。

未経験の技術を見よう見真似で実装した

マイケル
マイケル
こちらは未経験の技術を取り入れる際、
時間が限られているために、えいやで実装してしまったことです。
マイケル
マイケル
結果、様々な不具合を生むことになり、
結果的にスケジュールも想像していたよりかかってしまいました。
エレキベア
エレキベア
いろいろな機能を試せたのはよかったクマが
時間がなくてあたふたしてしまったクマね
マイケル
マイケル
スケジュールを立てる前に、
ある程度の下調べは必要だったのかもね・・・。

妥協した機能もいくつか

マイケル
マイケル
そしてこちらも時間の関係上、
実装したくても断念した機能があったことです。
マイケル
マイケル
しかし全てを取り入れてしまってはいくら時間があっても
キリがないので、やむをえなかったことかもしれません。
エレキベア
エレキベア
しかし心残りもできてしまったクマね
マイケル
マイケル
こちらは本当に必要かどうか、もう一度考えた上で
アップデートで実装していければと思っています!

おわりに

マイケル
マイケル
というわけで今回は、
初アプリ開発完了の振り返りでした!
エレキベア
エレキベア
よくがんばったクマね
マイケル
マイケル
1つ完成させることで自信にも経験にもなったので
トライしてみてよかったなと思うよ!
マイケル
マイケル
まあ、今はリリースの審査待ちの状態だから、
まだこれからリジェクトが入ると思うけどね・・・
エレキベア
エレキベア
リリースが楽しみクマね
マイケル
マイケル
うん!
リリースが完了したら一緒に遊ぼうね!
エレキベア
エレキベア
いいクマよ
(でもクソゲーだしなぁ・・・)
マイケル
マイケル
それでは今日はこの辺で!
アデュー!!
ゴロヤン
ゴロヤン
ゴロ〜〜〜〜〜〜〜


*** 追記 ***
iOS、Androidともに審査が通り、無事リリースされました!
結局一度もリジェクトされませんでした。(いいのだろうか・・・?)

マイケル
マイケル
ダウンロード数は少ないものの、楽しそうにプレイしてくれる友達をみて、
作ってよかったなって心から思いました。
マイケル
マイケル
直接は恥ずかしいので、この場で言わせてもらいます・・・。
マイケル
マイケル
THANK YOU FOR PLAYING!!
エレキベア
エレキベア
クマ〜〜〜〜!!
マイケル
マイケル
次はもっとクオリティが高いものを作るぞ〜〜!
エレキベア
エレキベア
ランキング欄の名前を下品なワードで埋め尽くすのはやめてね

↓ダウンロードはこちらから

ゴーゴーゴロヤン

ゴーゴーゴロヤン

MOLEGORO無料posted withアプリーチ

【振り返り】初の自作アプリ「ゴーゴーゴロヤン」を振り返る 〜完〜

コメント