GodotとAI開発
昨今のAI開発ブームに乗じて、Godotによるゲーム開発におけるAI活用環境を整えてみました。
本来であれば、筆者としては自分の頭で考え、コードの最適化やリファクタリングも自力でこなしたいところですが、個人開発でゲームを完成自体が非常に大変です。
そこで今回は、使えるものはすべて活用し、AIの力を取り入れて爆速開発を目指していきます。
AIコードエディタ
Godotと組み合わせるAIコードエディタとして選んだのは、「Cursor」というエディタです。
CursorはVSCode(Visual Studio Code)をベースにしており、VSCodeに親しみのある方なら、ほとんど違和感なく利用できます。また、AIコードエディタとしても非常に優秀で、生成されるコードの品質は非常に高く、ある程度曖昧な指示でも期待通りのコードを出力してくれます。
余談ですが、今後将来、エンジニアの役割は最終的な判断(コードレビュー)に集約されていく未来を実感させられます。
ゲーム内の施設を管理するスクリプトの生成を依頼した経過と結果
さらに、CursorはVSCodeベースのため、VSCodeの拡張機能もそのまま利用可能です。Godot向けには、godot-vscode-plugin という拡張機能が用意されています。
Godotエンジンの設定から、スクリプト編集を外部エディタに委譲することができ、スクリプトファイルをダブルクリックすると直接VSCode(Cursor)が起動したり、エラーのハイライト情報をVSCode側にも反映できたりします。詳しい設定方法については、こちらをご参照ください。
ただし、外部エディタを使用することにはデメリットも存在します。例えば、一部エラーのハイライト反映が遅れることがあったり、ファイルシステムからコードにパスをペーストする際の自動解決機能なども利用できません。また、スクリプト編集を完全に外部エディタに任せる設定にすると、Godotエンジン内でスクリプトを開くことができなくなるため、エンジン内のエディタでしかできない操作ができず、ストレスを感じる場面もあります。
その他VSCodeの設定
これはAIコードエディタとは直接関係ありませんが、より快適な開発体験を実現するために、linterとformatterの以下の設定を .vscode/settings.json
に追加しました。
{
"editor.formatOnSave": true,
"[gdscript]": {
"editor.defaultFormatter": "geequlim.godot-tools"
},
"godotTools.inlayHints.gdscript": true,
"files.trimTrailingWhitespace": true,
"editor.insertSpaces": false
}
使ってみた感想
AIコードエディタとゲーム開発の組み合わせは、まだ発展途上ではあるものの、すでに実用レベルに達していると感じました。
筆者はこれまで、ChatGPTなどのAIは「簡単なアルゴリズムの実装」や「学習用のサンプルコード」の生成が主な用途だと考えていました。しかし実際に使ってみると、コードの品質は非常に高く、自分の頭の中で思い描いていたロジックをそのまま形にしてくれる印象を受けました。
この精度の高さは、AIの進化だけでなく、「Cursor」というエディタの存在も大きく影響しています。Cursorでは、プロジェクト全体の構成や既存のソースコードを文脈としてAIに渡すことができ、より的確なコード提案が可能になります。まさに、AIにより多くの権限を委ねる時代が来ていると感じます。
とはいえ、自分でコードを書くより高速な場面がある一方で、複雑なロジックの生成には時間がかかったり、Godotの中でも情報の少ないAPIに関しては誤った提案がされることもあります。
そのため、すべてをAIに任せるのではなく、部分的にAIを活用しつつ、アーキテクチャを工夫して開発を進めることが重要です。また、最新情報をキャッチアップし続けるエンジニアとしてのスキルも欠かせないでしょう。
Discussion