UnityでMVPパターンの勉強をした話
プログラム記述の方式の1つに「MVPパターン」というのがあるらしい
【始まり】
お仕事でMVPパターンで記述するのを推奨という事がありまして、MVCじゃなくてMVOなんだ?MVPって最優秀選手ではないのかい、とか思いましたが、どうやらプログラムの記述の方式というのでしょうかそれのMVCとは少し違う方式のようです。Viewで画面上の表示、Modelで変数の記述、PresenterはVとMの橋渡し、ですかね。
【VとM】
VとMを分けることがちょっとおもしろいなと思いまして勉強し始めました。というのも、今まで本当に好き勝手に記述していたので、MVCもMVPもさっぱりわからなかったのです。しかしネット上には勉強を開始できる記事がいっぱいありますね、書いてくれた方々ありがとうございました!(最後にリンクを貼りました)
とはいえ単に記述方式の勉強だけではすまないんですよね、UniRXのReactiveProperty は理解必須と思いました。あとObservable.EveryUpdate() も知ると便利でした。
【勉強用のサンプル】
弾を撃つ事とマガジンチェンジをMVPパターンで作ってみました。要件定義(?)をリストにしておきました。
- ショットボタンで弾を1発撃てる
- 弾はマガジンに10発入っている
- 残りの弾が0になったときにショットボタンを押すと、マガジンの入れ替え作業を行う
- 入れ替え中はインジケータにより、いつ終わるかが視覚的にわかる
- マガジンの入れ替え中はショットを撃てない
- マガジン内の弾が最大値より1つでも少ない場合はマグチェンジボタンでマガジンの交換ができる
記述するときに、Vは表示のみ、Mに変数のみとしたわけですが、これ本当にいいですね。一番いいと思えたのは、後日ソース見ても何をしているか意味がわかった事です。なにせ今までの作り方だと後日ソースを見るとたいてい「これなにしたいんだ??」となっておりまして・・・。(ソースはつまらないと思うので省略)
【これから】
ということなので、これからは基本的にMVPで記述していきたいと思います。今回はたんなる勉強用のプロジェクトでしたが次回ゲームを作成するときには!
【UnityでMVPパターンの勉強に参考になった記事】
2019年をふりかえってみた話
【年始】
年明けの1月6日がRESASアプリコンテンストの締め切り日だったので、年末年始はずっと「ぐりぐり都道府県」を制作、というか調整。この頃はAndroidのβ版でごまかす 対応してなんとか提出💦 その頃は平日は渋谷にあるWeb会社様に週3回ほど通勤。残念ながらなにも貢献できないままでやめてしまいましたが、いろいろ勉強になりました。
【2月は内閣府主催のアプリコンテンストでプレゼン】
1月24日に「アプリコンテンストの予選通過したので、2月16日に内閣府の会場でプレゼンしてください」みたいなメールが来ました。正直コンテンストに応募はしたものの受かるわけないと思っておりました。それゆえに驚きが! 内閣府に行きまして10分間のプレゼンをしてきました。10組中の3位以下ではありましたがアプリの宣伝にもなりとてもありがたかったです。
【伝説はここから始まった?】
私はフリーランスなのですが学習コンテンツの受注制作を主な仕事としております。この「ぐりぐり都道府県」というアプリが学習ゲームというコンセプトだったため、アプリ制作をたのみたいお客様、そして学習ゲームをつくりたいお客様のどちらにもアピールできたようでして、今年いただいたお仕事はほとんどが「こんなアプリリリースしたんですよ〜」から繋がることができました。
【4月はApp Storeにてフィーチャー】
4月16日、ぐりぐり都道府県がなんとApp Storeでフィーチャーされました。実は1ヶ月くらい前にAppleから連絡があり「フィーチャーするかもしれないので素材用意してね」と言われておりました。このフィーチャーの7日間でダウンロード数は約6000ほど増えました、ありがとうございます!
【7月は憧れの東京ゲームショウに出展】
2017、2018と知り合いのアプリ開発者が出展していた東京ゲームショウ、うちは出せるようなアプリ作れないから見るだけと思っておりました。ただ今年はアプリコンテストの例もあり、一応エントリーしてみたところ無料枠の選考に通りました!! いやもう追い風が吹きまくりです。展示の4日間は立ちっぱなしで足が痛かったですがいろいろ勉強になり知り合いも増えました。ありがとうございます!
【9月に内閣府から連絡】
9月20日に内閣府の方から連絡がありました。今年の2月のアプリコンテンストで名刺交換させていただいた方からでした。「先日ゲームショウというイベントにぐりぐり都道府県を出展しました」という挨拶メールはしておいたのですが返事をいただけるだけで嬉しかったです。いろいろ話した結果、なんとお仕事をいただけました。内容は秘密ですが日本の将来をよくするためのプロジェクトです😤 まさかアプリを作ったら内閣府から仕事をいただけるとは思いませんでした。縁なのか運なのかなんなのか? これだけはいえます、ありがとうございます!
【11月はデジゲー博】
ぐりぐり都道府県フィーバー(?)が冷めてきたので次回作を作り始めました。「ぐりぐりヨーロッパ」計画が開始されたのです。まだまだできてはいないのですが「デジゲー博」というイベントがあるのでちょうどいいと思いましてエントリーしました。9月16日に当選メールが届きましたので、急いで11月17日に間に合うように調整してなんとか展示。課題が増えましたが、多くの方にあそんでいただき意見をいただきありがたかったです。
【まとめ】
今年はアプリをリリースした事、形にしたことで、1年分の仕事がもらえたと言っても過言ではないです。今年はMacBook Proの16インチと13インチが余裕で買えるくらいには利益が出ました。ちなみにぐりぐり都道府県の広告収入は約11ヶ月間でだいたい15万円でした。(広告はバナーのみです)
みなさま、2020年も頑張りましょう!
良いお年をお迎えください。
東京ゲームショウに出展した話 その3
さて東京ゲームショウですが、木金のビジネスデーが終わり、土日の一般デーが始まりました。統計では木金にくらべて4倍程度のお客様が見込まれるとの事。始まる前は「へー」だったのですが始まってから混み具合に驚きました。他のブースに行く気がおきないくらいに通路に人がおりました。
【開場】
そもそもですね・・土曜日の朝、まだ開場されていないのにどうも周りがざわついているなと思ったら、いつのまにか開場時刻が30分早まるとか! どうやら土日はお客様が多いので30分早く開場するというのが毎年恒例になっているそうです。一般参加の場合はいつも午後から参加していたのでそんなしきたり初めて知りました💦
急いで用意はしましたが、さすがにすぐにお客様がわらわらくるほどではなかったです、お客様は最初に企業のブースに行きますよね、ええ。
【ありがたい助っ人】
12時近くなってきて実感しましたがたしかにお客様の数が多いです、土曜日も日曜日も12時から女性アルバイトが来てくれまして、ばっちり説明をしてくれました。2人とも説明する事に慣れている方だったので非常に助かりました。ありがとうございました!
まあただ・・土日は一般デーですので、残念ながらビジネス系のお客様はほぼいらっしゃらなかったと思います。ビジネスにつながらないのならば、せめて大きなメディアの取材とかあってほしかったけれど、これはしょうがないですね。
【そして閉場へ…】
4日間、10時〜17時まで説明を頑張りました、疲れましたし、足は痛いし、ダウンロード数はちょっとしか増えないし、いろいろ大変ではありました。ありましたが、やはり楽しい方の気持ちが強いかもしれません。ついに閉場2分前に・・・。
【熱い夏が終わった】
このあと1時間かけてブースの片付けをして幕張メッセを出ました。ちょうど帰り道で一緒になった関西の開発者の方々と軽く打ち上げをしていただきました、ありがとうございました!
今回の出展ですが、「選考ブース」を無料で使用させてもらったのがとてもありがたかったですが、それ以上に「東京ゲームショウ」というイベントの選考に合格できた事が一番ありがたく、嬉しかったです。去年まで開発仲間は出展していましたが、まさか自分たちが出られるとは思いもしませんでした。2019年は追い風が吹いています。