言葉遊びを、対戦ゲームにする
2026年7月、オーストラリア留学中に、日本語の言葉遊びを題材にしたゲームアプリ「ことばと!」の開発を始めました。
きっかけとなったのは、しりとりやカルタのような身近な遊びに、対戦ゲームとしての戦略性や駆け引きを加えられないかという発想でした。
目指したのは、単に言葉を入力して正誤を判定するアプリではなく、プレイヤーが考え、選択し、対戦を楽しめるゲームです。
また、個人開発である以上、開発費や運用費を抑え、長期的に維持できる仕組みにすることも重要な条件でした。
そこで、AIコーディングツールのClaude Codeを利用し、私自身は企画、仕様決定、ゲームバランス、優先順位の判断、実機での検証を担当する開発方式を採用しました。
ゲームのルールを設計する
「ことばと!」では、しりとり、カルタ、文字札など、複数のゲームモードを開発しました。
例えば、しりとりでは文字数を得点とする方式を採用しました。
長い言葉を考えること自体が戦略になる一方、先攻・後攻の有利不利や、対戦が一方的にならないための仕組みも必要でした。
そのため、当初の減点方式を見直して残機制を採用し、先攻有利を緩和するための最終反撃権なども設計しました。
また、文字札モードでは、ひらがなの札から言葉を組み立てる遊びを採用しています。
札をタップして濁点、半濁点、小文字へ変換する仕組みなど、限られた文字から多様な言葉を作れるように工夫しました。
こうしたルールは、実際にプレイしながら調整を重ねています。
約14.6万語の辞書をどう扱うか
言葉を使うゲームでは、辞書の規模と品質がゲーム体験に直接影響します。
収録語数が少ないと、実際に存在する言葉を入力しても認められず、不自然な体験になってしまいます。
一方で、収録されている言葉をすべてCPUが使用すると、一般的でない言葉ばかり選択する問題が起こります。
そこで、辞書を二層に分けました。
約2.2万語の一般的な語彙をCPUの行動や画面表示に使用し、より広い語彙を入力判定に利用する構成です。
また、約14.6万語を効率的に処理するため、辞書データを起動時にSetやMapなどのデータ構造へ変換しています。
この設計では、単に処理を高速化するだけでなく、ゲームの自然さと入力判定の柔軟性を両立させることを目指しました。
開発環境の制約から技術を選ぶ
開発にはWindowsのノートPCを使用していました。
iOSアプリを制作するうえで、Macを用意せずにビルド・配布する方法が必要でした。
そこで、React NativeとExpo、EAS Cloud Buildを利用しました。
iOSアプリのビルドをクラウド上で実行することで、Windows環境からアプリの開発と提出を進めることができました。
また、オンライン対戦にはFirebase Realtime Databaseを採用しました。
自前のサーバーを維持する方式と比較して、初期段階の費用や保守負担を抑えやすいことが選定理由です。
技術の流行や知名度ではなく、開発環境、運用コスト、保守能力という制約から構成を考える経験になりました。
オンライン対戦で直面した問題
オンライン対戦では、複数端末が同じ試合の情報を共有する必要があります。
特に難しかったのは、同時操作や通信遅延によるデータの不整合です。
例えば、2人がほぼ同時に言葉を入力した場合、それぞれの画面に表示されている情報だけで判定すると、両方の操作が成立してしまう可能性があります。
そこで、Firebaseのトランザクションを利用し、書き込み時点の最新データを再確認する仕組みを採用しました。
また、プレイヤーの通信が切断された場合にも、一定時間後に他端末が時間切れ処理を代行できるようにしています。
開発中には、部屋作成直後のクラッシュや、開始直後に時間切れと誤判定される不具合などが発生しました。
これらは、データが存在しない場合の処理や、画面描画とタイマー更新の順序を見直すことで改善しました。
オンライン機能を追加したことで、画面上の操作だけでなく、複数端末間の状態管理や通信失敗を考慮する重要性を学びました。
App Store審査までの経験
2026年8月には、EAS Cloud Buildを利用してiOSアプリをビルドし、TestFlightでの検証とApp Storeへの提出を進めました。
最初の審査では、使用していた音声ライブラリに由来するマイク権限の設定が問題となり、審査を通過できませんでした。
実際には使用していないマイク権限の設定を見直して再提出し、8月11日にv1.0.0が審査を通過しました。
その後もオンライン対戦機能の追加や不具合の修正を継続し、TestFlightを利用しながら段階的に機能を拡張しました。
開発記録では、v1.5.6までの実装と、オンライン対戦3モードを含むv1.6の審査提出が記録されています。
※App Storeの審査・公開状況については、当時の開発記録に基づいています。
AIとの役割分担
今回の開発では、コードの記述をClaude Codeに任せ、私はゲームの企画、仕様決定、優先順位づけ、ゲームバランスの調整、実機での品質検証を担当しました。
AIによってコードを生成できることは、開発の速度を高める一方で、生成されたものが必ずしも期待どおりに動作することを意味しません。
実際にプレイしてみると、仕様としては成立していても操作が分かりにくい場面や、特定の条件で不自然な挙動が発生する場面がありました。
そのため、実際のゲーム体験を通じて問題を発見し、原因の調査や修正方針の検討を重ねました。
一方で、コードの詳細な理解や自動テストの整備については、今後さらに改善する必要があると考えています。
開発を通じて学んだこと
今回の開発で特に重要だと感じたのは、アイデアを思いつくことと、それを継続的に利用できる製品へ仕上げることは別の課題だという点です。
ゲームの面白さを考えるだけでなく、仕様の整合性、操作性、通信の安定性、運用コスト、ストア審査など、さまざまな要件を検討する必要がありました。
また、一つの問題を改善すると、別の問題が生じることもあります。
例えば、辞書の語彙数を増やせば入力判定の柔軟性は向上しますが、CPUが一般的でない言葉を使用する可能性も高まります。
このようなトレードオフに対して、目的を明確にし、複数の観点から解決方法を考えることの重要性を学びました。
今後について
「ことばと!」の開発を通じて、企画から仕様決定、技術選定、実装指示、検証、App Store審査まで、一連のプロダクト開発を経験しました。
今後は、こうした経験をAIやクラウド技術を活用したシステム開発にも広げ、より幅広い課題に取り組みたいと考えています。
特に関心があるのは、技術を導入すること自体ではなく、目的や制約に応じて適切な方法を選び、実際に利用できる仕組みへ落とし込むことです。
次の個人開発では、AWSとOpenAI APIを利用し、RAGによる文書検索機能を備えた個人向けLLMシステムの構築に取り組みました。
ゲームアプリの企画・開発から、クラウドを利用したシステム設計へ。
今後も、企画と技術の両面から課題解決に関わる経験を積んでいきたいと考えています。
GitHub・開発資料
「ことばと!」の企画・設計・開発履歴、技術選定、実装内容、検証結果については、GitHubのポートフォリオにまとめています。
GitHub:ことばと! 開発ポートフォリオ
https://github.com/git-aro0717/kotobato-portfolio
AI支援による実装と、自身が担当した仕様決定・設計判断・品質検証の役割分担についても記載しています。