Building my son a Minecraft phonics game with AI

Alex O'Callaghan

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

原文は Alex O'Callaghan により に公開されました。 このブログを購読する

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

そこで、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で公開しており、こちらからプレイできます。

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

コメント