1. 概要
AIを活用したアプリケーション開発の第3弾です。
前回に引き続き、Unityを使用したゲームを開発しました。
前回は、ブログ記事の開発手順に沿う形で、シューティングゲームを開発しました。

今回は、私が新たなプログラミング言語を学習する際に、いつも作っているオセロを題材にしました。
今回はプログラムの実装に3時間、表示の調整や設定に13時間の、合計約16時間で、実装を完了しました。
2. ゲーム
ゲーム
このゲームはPCブラウザ上で直接プレイいただけます。
※日本語名を入力したい場合、一度メモ帳などに書き込んだ名称をコピー&ペーストしてください。
3. ゲーム説明
ゲーム概要
本ゲームは通常のオセロゲームです。
各ターンでプレイヤーが実施できる行為
各プレイヤーは自分の順番で「駒を置く」「降参(Surrender)」「パス(Pass)」の3つの選択肢を選ぶことができます。
- 降参(Surrender):自分の負けを認めること。各順番で選択可能
- 駒を置く:盤面上に自分の色の駒を置くこと。相手の駒を反転させることができる場合に限り実施可能
- パス:自分の順番では何もせず、相手に順番を譲ること。相手の駒を反転させることができない場合に限り実施可能
ゲーム終了条件
次の条件でゲームが終了します。
- 全てのマスに駒がおかれる
- 全てのマスに駒が置かれていないが、両プレイヤーが駒を置くことの出来る場所がなくなる
- 片方のプレイヤーの石が盤面上からなくなる
- 片方のプレイヤーが降参する
注意事項
このゲームは継続的な保守は予定しておりません。
4. 実装を終えた所感
Unityの設定
私がUnityの設定に慣れていないため、実装の大半の時間はUnityの設定や調整に時間を使うこととなりました。
具体的には、主に下記の作業に時間がかかりました。
- オブジェクトのレイヤリングの調整
- オブジェクトの表示位置の調整
- クリックイベントを発火させるための調整
この設定に時間がかかった原因は「想定と違う動作をする問題の原因把握に時間がかかったこと」にあります。
AIを使うことでこの問題を上手く切り抜けることができればよかったのですが、今回はうまくAIを使いこなすことができませんでした。
AIに質問して有効な回答を得るためには、「自分が今どういう問題に直面しているのか」を正しくAIに伝えなければなりませんが、私がUnity初心者だったこともあり「自分が今どういう問題に直面しているかわからない」状態であったため、適切な質問をすることができませんでした。
結果的に、考えうる全ての選択肢を片っ端から試してみることとなり、設定作業に多くの時間を取られることとなりました。
プログラム実装
設定に苦戦した一方、プログラムの実装は概ねスムーズに進みました。
今回プログラム実装にかかった時間は全体の20%ほどです。自分が慣れている言語での実装のように効率的な実装はできていませんが、AIに質問するだけで実装は進んだため、設定作業のように時間を要することはありませんでした。
今回の成果物の課題
今回の成果物の主な課題は下記の点です。
- デバッグビルドで綺麗に表示されていた要素が、Html用ビルドでは一部が綺麗に表示されませんでした。
- UnityでHtmlビルドを出力するための表示調整がうまくいかなかったため、スタイル(CSS)を使用したアプリケーションの表示倍率の調整が必要となりました。
- 全画面表示をした際、オセロの盤面がもっと大きく表示されることを期待していましたが、思っていたほど大きく表示されませんでした。
5. まとめ
今回はAIを活用して、1からオセロを完成させました。
開発作業の中では、プログラム生成にAIを活用できました。
一方で、私がUnity初心者で、AIに適切な質問をすることができなかったこともあり、Unity設定ではAIをほとんど活用できませんでした。
自分自身が知識や技術を身につけないと適切な質問をすることができないので、AIを活用するにもエンジニア自身の学習は今後も大切になりそうです。
今後は、もう少し複雑なUnityアプリを作ってUnity知識と技術を増やしつつ、AIが活用できるポイントを深堀っていきたいと思います。