ポケカデッキ構築アプリ「ptcgnote」をリリースしました。よければお使いください。
本記事では ptcgnote の開発経緯などについて記します。
GWにデッキ構築アプリを開発してリリースしました
今年は嫁が2回目の大学に行くことになり、嫁の進学で諸経費やら参考書代やらでお金が入用になってしまい金欠状態になってしまいました。2019年のGWは10連休もあったにも関わらず、どこに旅行することもできず、まるっと暇していました。
Twitterでたまたま「#一人GWハッカソン」のハッシュタグをみつけて、長い連休の暇をつぶすため、一人GWハッカソンに乗っかって、かねてより開発したいと考えていたアプリを作ることにしました。
ポケカツール作るよ!ダミーの画像リソース作ったよ! #一人GWハッカソン pic.twitter.com/lLXX4ayZPr
— さくさん (@ch3cooh) 2019年4月27日
最初に作ったのはダミーの基本エネルギーカードでした。たったこれだけを作るのに2時間くらいかかりました……
GWの最終日に一通り完成していて、そこから2週間くらい掛けて機能を増やさずに完成度を上げることに費やしました。カードデータベースを整備したり、致命的なバグを修正したりです。
ptcgnoteを作ったきっかけ
トレーディングカードゲームはボッチには厳しいゲームです。カードショップへ行って対戦する時間はなんとか頑張るとしても、デッキを構築して調整する部分に関しては、ITの力でなんとかできないかと考えました。
僕はポケカをイーブイのカード欲しさに「GXスタートバトル」から始めました。その時がポケカに対するモチベーションがMAXでした。同じレベルのデッキで、強い人が握っても弱い人が握ってもある程度同等に対戦できるのが楽しかったです。
本格的にポケカを始めようとしたときには、ポケカバブルの始まり頃でシングルカードが高騰して、「カプ・テテフGX」が2,500円くらいになっていました。まだ「グズマ」あたりも500円くらいだったのですが、カード1枚にそんな大金をかけるなんて!と抵抗がある時期でした。
その後「カプ・テテフGX」「シロナ」「グズマ」が最高値になる頃には、拡張パックを買えない。大会に行っても人が多すぎて対戦できない……と、徐々にモチベーションが下がっていました。
増産体制が整い始めたタッグボルトあたりでは、TAG TEAM GX環境についていけなくなって「ポケカやめるかー」と思うほどでした。
ポケカへの意欲が一番落ち込んでいた時期に「いまからやりましょうよ!」と誘って一緒に遊んでくれる方がいて、自分にとってポケカというのは「カードをコレクションする」よりも「カードで対戦する」のが楽しいのだと理解しました。
対面に人間がいないとポケカを楽しむことができません。高校・大学で対戦相手に事欠かない環境であれば、デッキ構築しながら対戦して調整も楽しめるのだと思います。
既婚社会人で友人のいないボッチとなると、対戦しながらデッキを調整するのはとても贅沢でした。デッキを構築して「ひとり回し」で調整していくしかありません。
僕はエネルギー加速が好きでクワガノンを使います。ひとり回しで「デンジ」「カプ・テテフGX」「ふしぎなアメ」を使って、クワガノンを立たせる練習はできても、立たせたクワガノンはダメージを受けることはないので立ち回りの練習ができません。
相手が適切にダメカンを投げてくる「ひとり回し」をしたい。そして練習して相手に勝ちたい!というのが開発するきっかけでした。
カードデータを整えるのが大変
アプリ開発で一番大変だったのは、カードデータベースを整える作業でした。
日本国内には、ポケモンカードゲームのカード情報をまとめたサイトはありません。ここでいう「カード情報をまとめたサイト」はカードの構造化データを公開しているサイトを指します。カードそのもののレビュー情報に関しては多々ありますし、noteでも新弾とシナジーのある既存カードを紹介されている方はたくさんいます。
海外であれば有志でカードデータをjson形式にしています。ただしアメリカ発売の拡張パックがベースのようで英語ですし、その他の付加情報(エクスパンションマーク等)も異なります。
試行錯誤の結果、下記のようなデータに落とし込むことができました。
[ { "id": "sm8-047", "convertedRetreatCost": 1, "series": "サン&ムーン", "retreatCost": [ "Colorless" ], "setCode": "sm8", "type": [ "Psychic" ], "attacks": [ { "text": "ウラになっている自分のサイドのオモテをすべて見てから、もとにもどす。", "name": "アイオープナー", "convertedEnergyCost": 1, "cost": [ "Colorless" ] }, { "text": "", "damage": "20", "name": "つつく", "convertedEnergyCost": 2, "cost": [ "Colorless", "Colorless" ] } ], "weaknesses": [ { "type": "Psychic", "value": "×2" } ], "number": "047", "supertype": "pokemon", "hp": "70", "artist": "Hitoshi Ariga", "subtype": "basic_pokemon", "name": "ベベノム" } ]
それでも扱わないといけない種類があまりにも多かったので、自分が使わないエクストラ・殿堂レギュレーションのカードに関しては見なかったことにしました。
これの問題はデータ収集が困難であるというよりも、アプリのカードリスト画面で「イケてるUI」が思いつかず大量のカード情報が扱えないのが問題です。他にも思いつくだけでも解決できていない問題はたくさんあります。
解決できていない問題
2019年5月15日、ようやくv1.0.0をリリースすることができました。自分用に作ったのでiOS版のみですが、ダウンロード数が増える気配がないのでAndroid版を作ることはなさそうです。ごめんね。
現時点で、細かなバグをfixしたv1.0.2をリリースしていますが、解決できていない問題はとても多いです。
なかでも大きいのが「デッキ構築するのが面倒くさい」です。カードを選択して枚数をポチポチするのが思ったよりも苦痛で、もう少し良いUI設計ができないのか頭を抱えています。
もうひとつが開発のきっかけでもあった「ひとり回し」が実装できていません。現行のptcgnoteには初期手札・山札・サイドをずらっと並べた「デッキの簡易シミュレート」画面しかありません。
手札を配って、たねポケモンを出して、サイドを出して、最初の山札を引くだけでもかなり手間がかかり実現までかなり時間がかかってしまいそうです。
おわりに
まだまだ発展途上中とは認識しているのですが、自分で使う分としては機能的に満足しているので「使っています!」「こんな機能が欲しい」と連絡いただけるとアップデートの意欲が湧きます。
いただいた要望は Trello で管理していますので、実装状況の確認等はこちらをご覧ください。
それでは……
やるか!ポケカ!!
v1.0.0以降の更新内容に関しては、リリースノートを書いています。アプリからは以下の記事を参照しています。どちらでも都合の良い方を追いかけれていただければと思います🙇♀️