見出し画像

【AIとつくったペンシルパズル】ライアースイーパーをブラウザで遊べるようにしました

今回は、ChatGPTと一緒に開発したペンシルパズル「ライアースイーパー」を、ブラウザで遊べるようにしたお話を紹介します。

ライアースイーパーについてはこちらから。

このパズルは、もともと紙で解くペンシルパズルとして設計し、Noteで何問か出題していました。今後も、難易度をつけてNoteでの出題も続けようと思いますが、もっと手軽にたくさんの問題を解いていただけるように、今回Unityを使ってWebブラウザ上で遊べるアプリとしてリリースしました。

この記事では、大きく2点についてお話します。ひとつは、ChatGPTを活用してどのようにUnityでの開発を進めたのかということ。もう一つは、今回のブラウザアプリの特徴についてです。ぜひ、最後まで読んでいただき、実際にゲームで遊んでみてください!


遊花さん作成のWebアプリを参考にして実装

今回のブラウザ版ライアースイーパーの開発にあたり、遊花さんの記事が非常に参考になりました。遊花さんも生成AIを活用してWebアプリを制作されており、生成AIを使えばWebアプリも簡単に作れるということを示していただきました。また、UIのデザインについて学ぶことができました。

実際にその記事を読み、Webアプリで遊ぶことで、Webアプリがあることで手軽に遊べるようになることを体感しました。また、Webアプリの設計や、UI操作のアイデアが明確になり、具体的な実装方法も見えてきました。具体的なコードの記述はChatGPTにサポートしてもらいましたが、UI部分の操作性については、この参考記事のおかげでスムーズに取り掛かることができました。

興味のある方は、こちらのリンクから遊花さんのNote記事もぜひご覧ください。


Unityでの開発 – ChatGPTと一緒に進めたプロセス

ゲームルールの説明とコード生成

「ライアースイーパー」は新しいペンシルパズルですが、今回のUnityでの実装は、ChatGPTにがっつりとサポートしてもらいながら進めました。ゲームのルールを説明し、操作方法について説明することで、コードをChatGPTが自動生成してくれました。最初からほとんどそのまま使える状態でしたが、一部正解判定のロジックに誤りがあったり、ルールの細かい解釈が違ったりしたので、その部分は自分で修正しました。

PythonからC#への移植と自動生成の壁

上記では最初からスムーズに実装できたように書きましたが、実は、最初は問題が発生して沼にはまってしまいました。最初は、Pythonで書かれた問題生成コードをUnityに移植し、Unity内でゲームの問題を自動生成する予定でした。しかし、実際に取り組んでみると、問題を解くためのCSPソルバー(制約充足問題ソルバー)をうまくUnityに導入できず、この自動生成部分は断念しました。最終的には、Pythonで事前に生成した問題データをUnityに読み込んで使用するという形に落ち着きました。

この「事前に問題を生成する」という発想に至るまでには少し時間がかかりましたが、結果的にはこれが安定したプレイ体験を提供できる方法でした。毎回問題生成するのに比べると、限られた問題数しか遊べないというのはデメリットですが、現時点で各サイズ1000問を用意していますので問題数がネックになることはないでしょう。問題番号を覚えておけば同じ問題に再挑戦できることや、問題生成する時間がかからないことなどのメリットの方が大きいように感じています。
今後、さらなる問題サイズの追加やゲームとしての機能追加に挑戦していきたいと思います。

GUIやオブジェクト操作もChatGPTがサポート

私自身、Unityについては初心者であり、ある程度コードはいじれるものの一からコードを書けるほどではなく、さらに、GUI上でのオブジェクト生成や配置などの操作についても不安がありました。ですが、ここでもChatGPTが大活躍!具体的にどのようにGUIで操作すべきかや、オブジェクトをどうコードに紐づけるかについても分かりやすく説明してくれました。

コードの生成だけでなく、実際の操作や実装手順を明確にガイドしてくれる点がとても助かりました。私のような初心者でも、ChatGPTのサポートを受けることで簡単にゲーム開発が可能だと改めて実感しています。


ブラウザで遊べるように!

今回の実装で、ライアースイーパーがブラウザで手軽に遊べるようになりました!これまで紙に書き写して解いたり、印刷して解いたりするしかありませんでしたが、PCやスマホから問題に直接取り組めるようになり、いつでもどこでもパズルを楽しめるようになっています。各問題について私が事前チェックを行っていないため難易度表記はありませんし、簡単すぎる問題や理不尽な難易度の問題も紛れているというデメリットはあるものの、各サイズ1000問という圧倒的な数の問題で遊ぶことができるというのもポイントです。

さらに今後は、ゲームとしての機能の追加もしたいと思っています。例えば以下のようなことを考えています。

  • 未クリア問題のみを出題するモード

  • クリア数のカウント

  • BGMや効果音(SE)の追加

これにより、ゲームとしての体裁も整えて、楽しんでもらえる内容にしていきたいと思っています。

PCでもスマホでもこちらから遊ぶことができますので、ぜひ挑戦してみてください!


ChatGPTでUnity開発がもっと身近に

今回の経験を通じて感じたのは、ChatGPTはUnityのコーディングに非常に役立つということです。特にUnityのようにGUIが複雑な環境では、初心者には操作やコードの紐づけが難しく感じることがあります。しかし、ChatGPTは具体的なコードを生成するだけでなく、自然言語で詳細な手順を説明してくれるため、Unity初心者でも安心して開発を進めることができます。

今回のプロジェクトは、生成AIがいかに柔軟で役立つツールかを実感できる良い例だったと思います。

これからもChatGPTを活用しながら、様々なプロジェクトに挑戦していきたいと思います。この記事が、AIと共に開発に挑戦したい方へのヒントになれば嬉しいです!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?