Building my son a Minecraft phonics game with AI

Alex O'Callaghan

AIで息子のためにマインクラフトのフォニックスゲームを作った

息子は今、読み書きを学んでいる最中で、まもなくフォニックスのテストを控えています。多くの子どもと同じように、フォニックスの練習はあまり好きではありません。大変な作業ですし、大変なことを続けるにはモチベーションが必要です。一方で、息子はマインクラフトが大好きで、その熱中ぶりは「プロフェッショナル」としか言いようがありません。

そこで、Claude AIとのたった一度の会話で、マインクラフトをテーマにしたフォニックスゲームを作ってみました。

制作

Claudeとの会話を開き、作りたいものを伝えました。子どもがフォニックスを練習するためのシンプルなブラウザゲームで、マインクラフトをテーマに、2つのモードを備えたものです。一つは絵を見て文字タイルで単語を綴るモード、もう一つは単語を読んで4つの選択肢から合う絵を選ぶモードです。単語はイギリスのカリキュラムでいうKey Stage 1の子どもに合ったレベルにしてほしいとお願いしました。

たった一度の返信で返ってきたのは、マインクラフト風のデザインで、2つのモードが実際に遊べるReactコンポーネントでした。

改良

エンジニアの性で、どうしても手を加えたくなり、さらに作り込むことにしました。Claude Codeを使ってファイルを本格的なプロジェクトに移し、Viteをセットアップし、Vitestを追加し、TypeScriptに切り替えました。実際のマインクラフトのアイテム素材が入ったnpmパッケージを見つけ、仮で使っていた絵文字をゲーム内の本物のスプライトに置き換えました。さらに難易度レベルを追加し、上達に合わせて出題される単語の幅が広がるようにしました。

TypeScriptにしたことでデータ構造が明確になり、テストがあるおかげで何かを壊してしまう心配なく機能を追加できます。本物の素材を使ったことでアイコンはずっと分かりやすくなりました。絵文字の中には、少し分かりにくいものもありました。

こうした改良で確かに良くはなりましたが、価値を得るために必須だったわけではありません。最初のバージョンだけでも十分に遊べて、マインクラフトらしく、必要なフォニックスの内容もカバーできていました。エンジニアリングの経験がない親御さんでも、ClaudeのUI上で遊べる最初のバージョンをそのまま使えます。私が加えた変更でさえ、Claude Codeへの数回のプロンプトで済んだものです。

反応

息子にゲームのことを話すと、すぐに目を輝かせました。学校から帰ってくるなり「あのゲームやっていい?」と嬉しそうに聞いてきたのが第一声でした。それ以来、毎日のように「やりたい」とせがまれています。

想定していなかったのは、一緒に作るようになったことです。息子はすぐにフィードバックをくれるようになりました。「ネザライトは絶対入れた方がいいよ、最強の防具になるし、難しい単語だし」といった具合です。自分ごととして関わるようになり、フォニックスの練習は、息子が本当にやりたいと思い、自分で作っていると感じられることと一緒に進んでいきました。

思いがけない副次的な効果もありました。息子はパソコンのマウスを使った経験がほとんどなかったのですが、ゲームを操作する中で、自然と細かな手先の練習になり、マウスの操作にも慣れていきました。タッチパネルのアプリでは得られない経験でした。

これが意味すること

EdTechのプロダクトは「平均的な子ども」に向けて作られています。ソフトウェアの経済性を考えれば、できるだけ多くのユーザーに届ける必要があるからです。しかし、息子は「平均的な子ども」ではありません。特定のゲームに夢中で、特定のテストを控え、学習の特定の段階にいる、一人の具体的な子どもです。市販のフォニックスアプリが、そこまで最適化されることはありません。のために作られたものと同じ熱中を引き出すこともないでしょう。

AIが変えたのは、こうしたオーダーメイドのものを作るコストが劇的に下がったことです。その影響は、親が子どものためにゲームを作るという話にとどまりません。家庭教師なら生徒一人ひとりの興味に合わせた教材を作れますし、先生ならカリキュラムではなくクラスに合わせて教材をアレンジできます。これまで制約となっていたのは想像力ではなく、時間と技術へのアクセスでしたが、AIによってそれが変わりつつあります。

初期バージョンのコードはClaudeとの一度の会話から生まれました。最終版のコードはGitHubで公開していますし、こちらから実際に遊ぶこともできます

原文は Alex O'Callaghan により に公開されました。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。