てぃぐれのプログラマwiki

ワクワクに従う

LINE APIでポケモンバトル作ってみた


実際のプレイ画面

アイコンのニョロモは甥っ子作

ニョロトノ可愛い。

f:id:tigretic:20220223164141j:plain
f:id:tigretic:20220223164138j:plain
LINEでポケモンバトル


経緯

甥っ子が3人いる。

ゲーム機は買ってもらえず、スマホのゲームもやらせてもらえない。

ポケモンが大好きで長男は次男と想像でポケモンバトルをしてるという。

想像でポケモンバトルとはなんて尊い経験なんだ!!とも思いつつ、少し不憫にも思ったため、LINEなら新しくアプリを入れなくていいし、ちょっと遊べるものなら作れると思ったのがきっかけ。

便利なものが人を弱くしてしまうのではないかとジレンマはちょくちょく感じる。

でも人の笑顔は見たいよね。

 

技術

Python(Flask)

  ドキュメントが充実してることもあり採用。C#がなければとりあえず、Pythonで。美味しい日本酒がなければ、ビールで。いや、C#あってもPython使ってたかも。

  Flaskの採用に特に理由はなく、サンプルに使われてたため。

・LINE Messaging API 

  通信をお任せできる。新たにインストールしなくて良い。LINEをインターフェース    にして今後サービスはもっと発展すると思ってるので採用。

  ヤマト運輸の時間指定をLINEできるのはとても良いと感じたり、最近では私の住んでる県のワクチンの摂取予約や変更も簡単にできて、とても良いものと感じる。

・Redis

  過去に、RDBしか触ったことがなかったため、勉強がてら採用。どうしても思考がリレーションに頼ってしまい、構成もRDB寄りになってしまったところが反省点。DB好きだから、良い経験になった。

 

・Heroku

  サーバーはお任せします。


工夫点?

1. Quick Reply

 Quick Replyを使うことでワンタッチで技を出せるようにした。最初は、技を入力する形式だったが、面倒と少し思ってた。そんな時に、私が所属する自治体のLINE公式アカウントでQuick Replyを採用していて、使いやすかったため、採用した。

 

2. 画像を出すことによって、よりポケモンバトルに近づける。

 テキストベースだけだと、やはり味気ない。しかし、画像があるだけで、何そのポケモン!可愛い!!かっこいい!!となる。バトルするためというより、どうだ可愛いだろこのポケモンと人によってはなる。

 

3. 技の相性

 ポケモンバトルなんだから当然だが、ちゃんとポケモンのタイプと技の相性によってダメージが変化するようになっている。

 

4. 技は4つまでランダムで表示。

 ランダムにしたのは、せっかくたくさん技があっても「はかいこうせん」しか使わなかったら面白さにかける。なので、ランダムにしたが、ここはもっと改良しようとも思ってる。強い技は出る確率を低くしたりしようかなと。

 

もはや工夫というか仕様だろと書いてて思う(笑)。

 

感想と今後

最初はできそうと思っても、作ってみるとやはり、詰めるとこ詰めてくと大変だ!!と思う。(まだ詰めないといけないところがたくさんで)本家の仕様には到底及んでいない。ダメージが0の技(バフ、デバフ等)の効果の実装はできていない。特攻や特防などの考慮もしていない。そういうところも徐々に詰めれたらなと思っている。

 

しかし、最低限やりたいことはできて、使ってもらうというところに達成感がある。

 

人に触ってもらってそのフィードバックなどもちょこちょこ反映していった。

それがまた楽しい。

 

でもやっぱ作るのは楽しいよね。こうやってアウトプットするのも。

アウトプット元年。

 

著作権のことがあるので、個人でこっそり可愛がっていくことにする。

甥っ子とイチャイチャしてやるぜ!

 

追記 2022/3/1

今日、甥っ子と実際に遊んでみたが、結構、楽しんでくれて、ほっとしたし嬉しかった!!

改善することもちょこちょこ見つかった。

 

主な改修ログ

v56 2022/3/4 コイキング 技3つ以下検討と対応

v59 2022/3/4 push数節約 画像をテキストと一緒に送信