大学生が有料スマホゲームを作った全てを公開するよ（２）開発環境とゲームの構成

[大学生が有料スマホゲームを作った全てを公開するよ（１）イントロダクション](https://qiita.com/shoi_ito/items/2234414af441e448a85e)
の続き。

今回は、開発環境と大まかなゲームの構成について。

# 開発環境
###使ったパソコン
**Mac Book Air (13-inch, Early 2015)**を使って開発した。
ボクは**Macのノートパソコン**を使ってたんだけど、
先輩は**Windowsのノートパソコン**だった。
そんなに性能は高くないけど、充分作れたよ。

**iPhoneアプリ**をリリースしたかったら絶対に**Macが必要**なんだ。
iPhoneアプリを作るなら、MacかMacを持っている友達を確保しよう。

###使ったツール

- Unity 2017.2.0p4
- Git
- BitBucket
- Sourcetree
- Trello
- Slack

それぞれ簡単に説明しておくよ。

## Unity
![スクリーンショット Unity.png](https://qiita-image-store.s3.amazonaws.com/0/343309/79a2d2ec-9456-06b3-472d-5cda78cf98cf.png)
Unityはゲームを**感覚的に**作れるようにしたゲームエンジン。
２Dゲームも３Dゲームも作れる。
iPhoneアプリもAndroidアプリもパソコンのゲームも作れる。
これひとつあれば**大体のゲームは作れる**んだ。
でもiPhoneアプリをリリースするにはMacがいるから気をつけてね。

Unityは初心者から玄人まで多くの人が使ってる。
スーパーマリオランや白猫プロジェクト、ポケモンGOもUnityで出来てる。
有名でかなり人気があるよ。

ちなみに、今回使ったバージョンは2017.2.0p4。
ボクのゲームも全部Unityで作ったよ。

## Git
![スクリーンショット 2019-01-18 0.40.15.png](https://qiita-image-store.s3.amazonaws.com/0/343309/b0d6d8bb-7b5c-8f44-f900-e9a4cf988f1b.png)
いわゆる**バージョン管理ツール**。
たまに開発の状態を保存しておくと、後で**元に戻したり**出来るんだ。

しかも次に紹介するBitBucketと連携すると、もっと便利になる。
パソコンが壊れても**復旧出来る**し、
一緒に開発してる人と同じ開発状態を**共有出来る**。

実際、Gitを使わなかったら一緒に開発するのは大変だったと思う。
多分、コードをコピペしたりしないといけないよね。
共同開発をするならおすすめだよ。
少し勉強しないと難しいけど...。

## BitBucket
![スクリーンショット 2019-01-18 0.43.03.png](https://qiita-image-store.s3.amazonaws.com/0/343309/01591c5a-58c0-65b2-a7a4-62069e5c33fa.png)

Gitで管理している**データを置いておく場所**。
Gitと連携する事で、バックアップを保存したり、友達とデータの共有が出来るようになる。

実は、**GitHub**でもほぼ同じことが出来る。
**BitBucket**は無料版で**プライベートリポジトリ**が使えるから採用した。
でも最近、GitHubも無料でプライベートリポジトリが作れるようになったらしい。
今からやる人はGitHubの方が良いかもしれない。

## Sourcetree
![スクリーンショット 2019-01-18 0.44.48.png](https://qiita-image-store.s3.amazonaws.com/0/343309/4d2305aa-ca83-46ae-e320-f15f7a49ed4a.png)

Gitの機能を**視覚化**してくれる。
実はGitはコマンドを打って実行しないといけない。
でも、あんまりGitの知識がない人には**分かりにくい**。
それを初心者にも**見やすく**、**使いやすく**するのがSoucetree。
マウスでボタンを操作するだけでGitが使える。
ボクもGitはほとんど初めてだし、Sourcetreeは分かりやすいから使う事にした。

ボクはほとんどGitを知らないけど、これのおかげで何となく使えてるよ。

##Trello
![スクリーンショット 2019-01-18 0.51.30.png](https://qiita-image-store.s3.amazonaws.com/0/343309/892df788-2acc-75ba-172d-46933a922fc4.png)

**タスク管理ツール。**
やる事やメモを１つの**カード**として作って、タスクの管理が出来る。
自由につかんで移動させられるし、チェックリストみたいな便利な機能もある。
共同開発をする場合も**リアルタイム**で**状態が共有できる**。
結構おすすめ。

##Slack
![スクリーンショット 2019-01-18 12.33.11.png](https://qiita-image-store.s3.amazonaws.com/0/343309/1a030a2f-70dd-3099-3ca6-1e329b8257f4.png)


主に**チャット用**のツール。
エンジニア向けのLINEみたいな感じ。
色んな**カスタマイズ**が出来る。
今回はBitBucketと連携して、pushすると自動で内容がSlackに送られるようにした（してくれた）。

#ゲームの構成
これから紹介するのは、ボクが今回作ったゲームでの構成だ。
ボクは未熟だし、絶対良いとは言えない。
もっと良い作り方もあるだろう。
でも、ボクのやり方でも最低限動作はした。
良いところ、悪いところを分析して自分の開発に活かしてくれると嬉しい。

##必要なシーン
このゲーム([pertica](https://itunes.apple.com/jp/app/id1445813632?mt=8&ign-mpt=uo%3D4))は**３つの場面**で出来ている。
これからは**場面**の事を**シーン**と呼ぶよ。

- メニューシーン (Menu)
- ゲームシーン (DecodeStage)
- リザルトシーン (Clear)

この３つ。
(　)の中は実際の開発で使ったUnityの中でのシーンの名前。
それぞれのシーンが持つ機能を説明するね。

###メニューシーン
メニューシーンが持つ機能は

- **ステージを選ぶこと**

このゲーム([pertica](https://itunes.apple.com/jp/app/id1445813632?mt=8&ign-mpt=uo%3D4))はステージ制のパズルゲームだから、ステージを選ぶ画面を作らなきゃいけない。
よくあるのは、数字が書かれたボタンがあって選んだステージが遊べるやつ。
パズドラとかでもダンジョンを選択するよね。
ゲームによっては、**設定画面**とか**ショップ**とかに行くボタンがいるかもしれない。
でもボクが必要だった機能は、ステージを選択することだけだった。
だから今回、メニューシーンはほとんど**ステージ選択画面**と一緒だ。


###ゲームシーン
ゲームシーンが持つ機能は**３つ**。

- **メニューで選択したステージを生成する**
- **ステージが遊べる**
- **クリアしたら保存する**

ゲームを遊べる機能は最初に作っちゃう。
でもちゃんと遊ぶためには、**ステージが必要**だ。
だから、ステージは**ゲーム開始の前に生成**する事にした。
そうすると後でステージを追加するのが楽になる。
でもまだ足りない。
ゲームをクリアしたら、クリアしたことを**保存**しないと。
今どこまでクリアしたかが分からないと、次のステージに進めなくなっちゃう。

###リザルトシーン
リザルトシーンの機能はたった一つ。

- Clearって文字を表示する

これだけ。
演出とかをかっこよくするために一つの場面として分けてみた。
スコアとかを表示しても良いんだけど、
このゲーム([pertica](https://itunes.apple.com/jp/app/id1445813632?mt=8&ign-mpt=uo%3D4))はあんまり文字を入れたくなかったから、やめたんだ。

#コメント
今回書いたのは、ゲームを作り始める前からなんとなく考えていた事だ。
ゲームは実際に遊ぶ部分だけじゃない。
メニュー画面とかリザルト画面も必要なんだ。
しかも結構時間がかかる。
実際、メニュー画面が完成したのはリリースの２週間前なんだ。
２ヶ月くらい悩んで、
３回くらい見た目を変えた...。

気が付いた人もいるかもしれないけど、
実はこのゲーム、タイトルシーンが無いんだ。
普通はゲームを開いたら、
「画面をタップしてね」
っていう文字と、ゲームの名前が出てくるよね。
ボクの作ったゲームはいきなり、メニュー画面から始まる。
でも、それはタイトル画面も兼ねている。
「どういう事？」ってなるよね。
簡単に言うと、タイトルロゴで遊べるんだよ！
これは説明するより見た方が早いんだけど...。

perticaは下のリンクからインストール出来るよ。

- [AppStore](https://itunes.apple.com/jp/app/id1445813632?mt=8&ign-mpt=uo%3D4)
- [Android](https://play.google.com/store/apps/details?id=tmy.jack.pertica)

[大学生が有料スマホゲームを作った全てを公開するよ（１）イントロダクション](https://qiita.com/shoi_ito/items/2234414af441e448a85e)
[大学生が有料スマホゲームを作った全てを公開するよ（２）開発環境とゲームの構成](
https://qiita.com/shoi_ito/private/b9acd13f5fe80536fd0d)
[大学生が有料スマホゲームを作った全てを公開するよ（３）ゲームの構造・パズルとアクションの仕組み（前編）](https://qiita.com/shoi_ito/items/a2adf87dd783c8379178)
[大学生が有料スマホゲームを作った全てを公開するよ（４）ゲームの成り立ち・パズルとアクションの仕組み（後編）](https://qiita.com/shoi_ito/items/ed485d4f956959e6cd36)