2023年の振り返り
去年から始めた振り返りを今年も書いていきます!
今年は年の初めには予想もしていなかった出来事をいろいろ経験出来たのでボリュームが多めです 👏🏻
去年の振り返りは↓です。
# 今年のできごと
👶🏻 怒涛の成長
去年の7月に生まれた息子が怒涛の成長で毎日驚かされています。
1月の時には寝返りとハイハイで精一杯だった子が、今では走り回って大人とほぼ同じ食事をしているからびっくりです。
うちの子は本当によく食べる子で、朝寝起きの自分の倍くらい食べる時があるので逆に心配ですが、すくすく成長してくれるなら何よりだと思います。
365日記念日のメジャーアップデート
今年の8月にローカルで完結していた記念日記録アプリに、アカウント基盤とデータのクラウド保存の基盤を提供しました。
バックエンドはAWSを採用し、AppSync+Lambda の構成でAPIを実装しています。
S3への権限をクライアント側に持たせないようにして、コンテンツの保存/取得のためのPreSignedURLをバックエンド内で扱うように設計しました。
画像の扱いに関しては、アプリ側でキャッシュを持たせる(cached_network_image パッケージ)ために CloudFront+Lambda@Edge を通して恒久的なURLでアクセスできるよう設計しています。
この技術構成は一般的ですが、コストも従量課金でスケーラビリティも高いため、MVPのプロダクト開発では十分採用できる構成だと思います。
いつか時間をとって記事にして知見を共有できればと思います。
タイニーズマージのリリース
去年の冬に放送されたアトムの童に感化されてゲーム開発に着手し、今年の3月にパズルゲームにオートバトルの要素を加えたカジュアルゲームの「タイニーズマージ」をリリースしました。
自分のスキルスタックを考慮してFlutterを採用しました。
そして2Dゲームのフレームワーク(ゲームループやオブジェクトの衝突検知)を提供してくれる flameパッケージ を使用しています。
その他にも多言語対応や単発課金の実装など、このアプリを通して初めて実装する機能も多かったのでいい経験となりました。
Google インディーゲームフェスティバルに選ばれる
そして今年リリースしたタイニーズマージがGoogleのインディゲームフェスティバル(IGF)にて ファイナリストに選出 されました。
応募はとても簡単で、GooglePlayのアプリURLとゲームの魅力を簡潔にまとめて提出するのみでした。
(軽い気持ちで応募したらファイナリスト選出の連絡が来てびっくり)
ファイナリストに選出されてからは、諸々の準備でとても慌ただしかったです。
イベントではファイナリスト20作品のプレゼンの機会があり、そのプレゼン資料の作成を数ヶ月かけて行いました。
また、プレゼン発表前に紹介VTRを流すとのことで、インタビューの取材に来ていただいたりもしました。
後は、イベントの準備の中でアプリの概要を効果的に伝えるために紹介動画を作ってストアに公開したりもして、普段の開発では使わないことに時間を割いた数ヶ月でした。
イベント当日はトップ3, トップ10, +個別賞という形で結果が出るのですが、タイニーズマージはどれにも引っかかることはできませんでした 🥺
ただし、このイベントを通して、発表のため自分のプロダクトを深掘りして相手に魅力を伝えるために、改めて開発したゲームについて再度深く考えることができました。
またファイナリストの方々と話していく中で、どんなゲームにどんなゲーム体験が必要かを学べたので、今後のゲーム開発にかなり良い影響を与えてくれたイベントとなりました。
Google PlayTime2023 にスピーカーとして招待される
先ほどのIGFの選出をきっかけに、Flutterを使ったゲーム開発者として認知していただき、毎年年末に開催されるGoogle PlayTimeにスピーカーとして招待してもらいました。
自分はメディア向けセッションにIGFファイナリストについて話すスピーカーとして登壇したのと、イベントの展示ブース用にFlutterゲームのデモを開発しました。
メディア向けセッションでは記者を前にIGFに参加した感想や、個人の開発者としてGoogleに期待することを話しました。
すぐに記事になっていて、自分の話が記事になることは初めてなので少し感動しました 👏🏻
そして、展示ブースでは自分がPlayTime用に開発したデモゲームを展示しました。
Flutterは最近カジュアルゲームの開発手段としても力を入れており、Flutter Casual Games Toolkit というテンプレや知見がまとまったものが公式から公開されていたりします。
このPlayTime前に Flutter3.16.0 のリリースとともにCasual Games Toolkitもアップデートされたので、そのToolkitを使ったゲームの例としてイベントに合わせて開発を行いました。
ベースはタイニーズマージを流用して工数を削減しつつ、Toolkitをうまく使いながらパズル要素は全く新しいものを実装しました。
イベント中は終日自分のゲームが展示されていて、色々な方に触ってもらっていたので、デモレベルで恥ずかしい気持ちと自分のゲームに興味を持ってもらっていることで嬉しさを半々に感じていました 👏🏻
イベントの本編が始まって最初の基調講演では、Flutterの取り組みとして自分の個人名とデモブースのことを話に出していただき、これまた滅多にできない経験となりました。
# やりたかったこと
365日記念日のマネタイズ
「365日記念日」は自分の1作目の記念日を記録するアプリなんですが、あまり時間が割けなかったことが残念です。
まだ実装できていないコア機能や、魅力的な機能を用意してサブスクで展開したりと、計画だけはあるので来年はしっかり時間を割いていきたいです。
知見のアウトプット
今年はいろんな経験ができましたが、それをほとんどアウトプットできずに終わってしまったことが心残りです。
イベント登壇などで忙しかったこと、情報をどこまでオープンにするべきか難しかったなど理由はいろいろありますが、IGFやPlaytimeに登壇するような経験は簡単にできることではないので、どんどんアウトプットを出していきたいなと思いました。
# 来年やりたいこと
結婚式
来年の1月に結婚式を執り行う予定で絶賛準備中です!
👶🏻 も含めて家族3人で行う結婚式になるので、良い式になるように準備を進めていきます!
(この振り返りもプロフィールムービーを作りながら深夜4時に書いてました)
新作ゲームの開発とIGFリベンジ
来年も新規でゲームを開発して、IGFのファイナリストに連続して選ばれるように頑張りたいなと思っています。
一度ファイナリストとして登壇したことで自分に足りないものが見えたので、その点を改善してゲームに反映して、より面白い新作をリリースしたいなと思っています。
FlutterKaigiのカンファレンス登壇
前から自分のFlutterエンジニアとしてのプレゼンスを高めたいなと密かに思っており、今年は初のオフライン開催ということもあったのでFlutterKaigiに応募したいと思っていました。
しかし今年はIGFのプレゼン準備とガッツリ被ってしまい、応募期限に間に合わなかったので来年リベンジしたいなと思っています。
Flutter+Flameでゲームをリリースした知見などを話せたらいいなと思っています。
365日記念日のマネタイズ
上に書いたやり残しをしっかりやりたい!
まとめ
今年はありがたいことに年の初めには予想もしていなかった色々な経験ができた1年となりました。
個人開発は趣味の延長で粛々と取り組んでいましたが、それをプラットフォーム側に評価してもらえたことがとても大きな出来事でした。
来年からは妻の育休も終わるので、今まで頼っていた部分は一緒にこなしながら、スキマ時間を有効活用して開発ができればいいなと思っています 🙌🏻
地味に念願だったDash(Dart, Flutterのマスコットキャラクター)を手に入れることができたので大満足 😊
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?