- 生成AIでミニゲームを作っている
- GeminiCLIでミニゲームを作るためのノウハウ
- 5歳の娘とのトランプ遊び
Cosense会場
Discordサーバー「inajob川」(様子を見てみる)
サマリー
ポッドキャストでは、リバーシやトラップダンジョンなどのミニゲームを生成AIを使って制作する過程が語られています。特に、AIの役割やその生成の難しさ、新たなゲームアイデアについての思考が紹介されています。生成AIを活用して新しいゲームを開発する過程や、既存のゲームの難易度をどう設計するかについて考察がなされています。また、マインスイーパーのルールや新機能の導入に関する議論が展開され、生成AIがプログラミングのアプローチをどのように変えているかが説明されています。さらに、生成AIを使ったロジックを分離したゲームの開発方法や、独自のゲーム用語の設定が効果的であることが語られています。効率的なコミュニケーション手法や、プレイ体験を向上させるためのアイデアのブレインストーミングが重要視されています。このエピソードでは、生成AIを活用したミニゲームの制作が詳しく語られ、特にトラップダンジョンの開発過程が紹介されています。また、日常生活における娘との遊びや全録音生活についても触れられています。
健康の話
はい、始まりました。 inajob の試しに録音してみた、略してため録トーク114。
このポッドキャストは、40代ものづくりが好きで、子育て中のエンジニアである inajob の何でもない雑談をお届けするポッドキャストとなっています。
それでは、今日も始めていきたいと思います。
さて、健康のコーナー早起きができています。良いことです。
ただ、朝私が早起きをして家事をしたり、ちょっと隙間時間に少しパソコンを触ったりしていると、
5歳の娘がいるんですが、娘が寝ぼけて起きてですね、
隣に私がいないというところで泣き出してしまうという問題が2日ぐらいあったかな。
これはもう慣れてもらうしかないかなという感じがしていて、
5歳なんて分かってくれるとは思ってはいるんですが、
ただ、機嫌が悪いときは分かってはいてもというところがあると思うので、
ちょっとしばらくはそういうトラブルが続く日々かなと思っています。
別に娘が泣き出したところで、我が家の誰かが困るということはあまりなく、
隣で寝ている妻が起きてしまうことと、
私の朝の自由時間が減ってしまうというところにさえ目をつぶればなんとかなるかなというところで、
早く慣れてほしいなとは思っています。
それからそれに合わせて私の睡眠時間は結構長めになっているなと思っていて、
夏はね、睡眠時間が短くするつもりはないんですけど、
寝苦しいとか、夜何かに熱中してしまってとかというところで、
短くなった結果風邪をひくということが多かったので、
今年は長めにできているというところで、
それに関係しているのかなと思ったりしています。
5歳の娘の手足にポツポツが出ていて、
なんとなく手足唇の症状と似てはいるんだけど、
発熱はしていないから、長期にわたってずっと出ているので、
この期間休ませるというのも現実的ではないし、
発熱していなければ。
本人も別に痒いとかはないので、
幼稚園に通話してはいるんですが、
ちょっと気になっているなというのも健康というところで思いついたので、
喋っておきます。
あと、ポツポツができる手足唇の時って、
不機嫌病とかって言われているらしく、
機嫌が悪くなったりすることもあるんですけど、
最近娘が機嫌悪いのもポツポツ関係しているのかなと思ったりとか、
ちょっと気になったりしていますが、
機嫌が悪いという一つの事象からも、
原因ってなかなかわからないなという感じがして、
毎日クイズゲームをするような日々を過ごしておりますが、
健康が結構続いていて、
今年はなかなかいい成績だなと思っております。
最近、ジョギングとかもしていないんだけどね、
腹筋とか腕立ては気が向いた朝とかにしているんだけど、
そこまで習慣化もできていないので、
ちょっと気合を入れ直さないとまた体調不良になっちゃうと思うので、
気を緩めずにやっていきたいと思っております。
そんな健康の話でした。
生成AIを使ったミニゲーム制作
さて、日記からのネタの話で、
これはね、流行りに乗ってしまっておりますが、
LLMを使ってミニゲームを作っている話をまたさせてくださいと。
このポッドキャストで、
LLM、生成AIを使ってプログラミングをする話は、
なんか結構続けてしていてですね、
またかいという感じではあるんですが、
別に同じ話をしちゃダメってことはないんでね。
トーク112とかの時も、
確かなんかLLMを使ってやってるみたいな話をしたし、
その前にも.Aのツールを作るみたいな話をしていましたが、
ちょっと振り返ってみると、
私が使っているのは主にGemini CLIというのを使っていて、
これは無料で使える範囲が大きいというところが、
売りというか、私の中では刺さったので、
それをずっと使っていますと。
今まで作ったものは、
.Aを投稿できるようなウェブサービスだったり、
PostPixelという名前をつけました。
それから、物語を自分で、
設定を考えて物語をAIに書いてもらうみたいなものとか、
共同編集のウィキみたいなのを作った上で、
リアルタイム共同編集ができるように作ったので、
それにAIのBotを参加させて、
自分が書くとリアルタイムに
AIがそれに対して返事をくれるようなのが、
ウィキの中で展開される、
いわゆる個選数みたいなものなんだけど、
AIが書き込みすることが第一級に定義されているようなものを
作ってみたりとか、
私が普段使っている日記を書くためのウィキみたいなの、
私の作ったのがあるんですが、
それの真似みたいなのをAIに作らせてみたりとか、
っていうのがここまでのところかな。
あとそれか、アドベンチャーゲーム。
アドベンチャーゲームをAIに作らせてみるみたいなところ。
昔作ったアドベンチャーゲームのエンジンがあったので、
それを作ってもらうとか、
あと魔法陣言語のエンジンを、
言語処理系をAIに作ってもらうみたいなのがありまして、
新たにミニゲーム作ってもらったのが、
2つあって、1つがオセロゲームですね。
オセロゲームっていうのかな。
リバーシって言ったほうがいいのかな。
オセロは判件、処方標の問題で
多分使っちゃダメな言葉な気がする。
リバーシ。
白と黒のコマを置いて、
グリッド状のマスに置いていくゲームですよ。
あれのパズルゲームを作ろうと思って、
作ってもらったのが、
リバーシパズルっていう名前にしましたけど、
いわゆる爪将棋ってわかりますよね。
爪将棋と似たようなノリで、
爪オセロ、爪リバーシってのが面白いかなと思って
作ったのがこのリバーシパズルで、
ある程度進んだ状態のリバーシの盤面が
与えられるので、
黒、白、交互に打つんじゃなくて、
黒だったかな。
黒番ばっかりが続くんです。
黒で手をどんどん置いていって、
最終的に画面にある石を全部黒にできれば、
ゲームクリアみたいな感じの
パズルゲームにしています。
ちょっとパッと想像すればわかると思うんだけど、
手順を間違えると全部が黒にできなくなることも
あったりするので、
パズルとしてちょっと考えどころがあるし、
あんまり私は見たことがないパズルだったので、
ちょっと見てみたいなと思って、
ジェミニ、CLIに聞いたら作ってくれたっていうので、
なかなかこういうのをちょっと試すのに
結構便利だなと思って楽しんでやっています。
これは一回、
ある程度までロジックが作れたんで、
もう寝かしているんですが、
難しかったところは、
盤面の生成ロジックですね。
オセロ爪リバーシを作ろうと思ったら、
あらかじめ私が問題を考えてそれを表示する
だったら簡単なんですが、
それだと私面白くないんで、
毎回違う盤面が出てくるような仕組みがあると
いいなと思っていて、
そのロジックをAIに考えてもらって作ったんですが、
おおむねの考え方はいいんだけど、
細かいところの処理がうまくいってなくて、
そこでこういうケースだとだめだよねとかっていうのを
AIにひたすら話していくんですけど、
なんかうまく理解してくれなくて、
結局最後は私が手でロジックを少し直して、
今の形にしています。
でもゲームのロジックしたアルゴリズムって、
結構教科書的なロジックばっかりなんだけど、
間違えて作り込んじゃうところがあって、
AI、LLMに作ってもらった方がその辺は早いし、
間違いも少ないかなっていうような感覚はあります。
今回のAIが作ってくれたこのオセロゲームの
自動生成も別にロジックが間違ってるわけではなくて、
こうれもれのパターンがあって、
そのif分の分岐が1個ないとか、
そういう感じだったんで、
人間がやるボンミスとはまたちょっと違う種類のミスを
する感じがしていて、
そういうところは人間がケアするので、
教科書通りのアルゴリズムみたいなのは、
AIに作ってもらうみたいなやり方で今回は作ってみました。
それからオセロなんで、
Webの画面で動くんですが、
画面が緑の板状の面があって、
そこに白と黒の丸いものが置いてあってみたいな、
パッとオセロっぽいっていう見た目を作る必要があるんですが、
それはもう一発で出してくれて、
こういうの本当に得意だなと思って、
私がやるといかにもエンジニアが作った画面みたいになっちゃうんですけど、
別にオセロでそんなにリッチな画面にする必要はないんだけど、
素朴にオセロの画面っていうのを作ってくれて、
非常に助かったなと思っていて、
URLは後で概要欄に貼っておきますんで、
新たなゲームアイデア
試しに遊んでみたい人は遊んでみてください。
これあと改良するとしたら、
盤面の難易度みたいなのが設定できるといいなと思っていて、
どうやるかよく分かってないんですが、
すごい簡単な面とものすごいじゃないな、
ちょっと考えないとできない面の2種類ぐらいかな、
パズルの性格上あんまり難しいゲームはできないような感じを受けていて、
簡単かちょっと難しいぐらいの2段階ぐらいは評価できるような気がしていて、
なんでランダムで作って、簡単って評価されたものは
簡単モードでラストシーンで何度か作ってもらって、
難易度判定して欲しい難易度が出てきたら、
利用者に見せるみたいなアルゴリズムにすれば、
そんなに複雑なロジックを組まなくても、
難易度の出し分けができるなと思っていて、
それはやってもいいかなと思っています。
それからリバーシパズル、
爪リバーシっていうアイデアから派生して、
もっとこういうオセロにはないこういう概念を入れると、
パズルっぽくなるんじゃないみたいなアイデアもいくつかあるんですが、
それやっちゃうと元々の爪リバーシ、爪オセロっていうところから離れていっちゃうんで、
それやるんだったらまた別のゲームかなと思って、
このゲームはこのゲームでこんなもんじゃろっていうところで止めているっていう感じなのが一つと、
もう一つ今頑張って私が作っているのが、
トラップダンジョンっていうこちらもパズルゲームです。
これは割と真面目に最近も作っていて、
マインスイッパーをベースにしたローグライトなゲームっていうのを作ってみようと思って、
本当に確かにLLMに、
ジェミニシーライにマインスイッパーをベースにしたログライトを作りたいんだけどって言って、
作り始めたやつなんですけど、
マインスイッパーって普通にどこのマスでも開けれるんですが、
このトラップダンジョンはマインスイッパーのような盤面なんだけれど、
開示したマスの範囲内を主人公が歩き回ることができて、
その歩き回ってたどり着いた壁を主人公は開けることができるっていうような感じの、
もうそれで終わりかなっていうマインスイッパーです。
あとアイテムがあるみたいな感じでどんどんクリア。
ゴールもあるとか、ゴールを目指すんですね。
マスを開示していきつつ、
マインスイッパーと違ってこれは地雷じゃなくて罠っていう設定にしてますが、
罠を回避しながらゴールを目指しつつ、
ゴールに着くと下の次の面に行くと。
面を進めば進むほど難易度が上がっていったり、
今までいなかった珍しいアイテムが手に入ったりみたいなことができるような、
ログライトっていうゲームのジャンルのものを作っていて、
これは今すごい頑張って作っています。
これね、ドラゴンスイッパーだけ以前ね、
いくつだったかな、なんか紹介したことがあるんですけど、
それが結構面白かったっていうのもあって、
そういうゲーム、自分もなんか考えたことあったなと思って、
そのマインスイッパーをベースにするゲームって、
まあ誰でも思いつくと思うんだけど、
私も例に漏れずこのドラゴンスイッパーをやりながら、
こういうマインスイッパーをベースにしたらこういうゲームもっとできるんじゃないかなと、
思うところがあって、
それで自分の思いを一回作ってみるかと思ってね、
カードゲームとかだったら、
生成AIを活用したゲーム開発
試しにカードを物理的に作ってみて、
手元で動かす、試してみるみたいなことができるんだけど、
こういうコンピューターゲームの場合って、
想定しながら、こういうゲームあったらどうだろうっていうのは、
実際のゲームを触るのが一番、
感覚が分かりやすいんだけど、
作るのは結構めんどくさいっていうハードルがあったりするんですが、
それこそこのLLMで言えば作ってくれる時代なんで、
パッと作って試してみて、
面白そうってところがちょっと分かってきたんで、
作り込みを始めてるっていう感じですね。
ドラゴンスイッパーの話をしたのは、
トーク88、一巻は大切ですね。
そんなところで話したのを、
思い出してきて作ってるっていう感じです。
これを作って、今インターネットのSNSとかで作ってるんだよ、
みたいな話をちょいちょい発信しながら作っていると、
それが大学時代に所属していたX68000同好会っていう、
コンピューターゲームを作るサークルのOBの友人たちが、
フィードバックをくれたりとかして、
別にこのゲームに関わらず、
ちょいちょいSNSの投稿に反応をもらってたりするんですけど、
まさにあなたの作ったゲーム、
こういうとこ面白いんだよ、こういうとこ面白くないんだよ、
みたいなフィードバックを物質で、
お互いにやり合っていた時代を思い出しながら、
懐かしいなって思いながらゲーム開発をしています。
いなじょぶ側の中にも遊んでくれている人がいて、
新しい機能を出した次の日とかに、
こんな面白い機能ついてんだねってフィードバックをもらったりとかして、
楽しくゲーム開発ができています。
こういうゲーム開発って、仕事しながらとか、
子育てしながらって、なかなか時間が取れなくて難しかったり、
途中で中断してしまっても手付けずになっちゃったりすることが多いんですけど、
ちょいちょいデミニシエライに、
問いかける時間さえあれば作り込みができるので、
非常にいいなと思いながら作っています。
本当に朝ごはんの準備をしている時に、
パンを焼いたり、スープを温めたりする流れで、
デミニシエライにちょっとこのバグ直しといてとか、
難易度がこういうふうな設計に今はなっているけど、
これだとこういうところが面白くないと思うからアイデア考えてとか、
CSSの効果が崩れてるから直しといてみたいなところを言うと、
パンを焼いたり、スープを茹でたり、
温めたりしている間に、
デミニシエライも何か進めてくれていて、
お皿に盛り付ける頃にはこれでいいですかって聞いてくれるんで、
はいってやってっていう感じで、
家事の合間にプログラミングしたり、
もしくはアイデアの壁打ちができたりとかしていて、
生活の隙間に入り込むプログラミングみたいなことが、
割とできていて、最初のロジックを作ったり、
ゲームとしての体裁を整えるところは少し面と向かってというか、
しっかり考えながら進める必要があるんですけど、
ちょっとした修正だったり、
もしくはアイテムを1個足すとかだったら、
意外と隙間作業の間にやってくれているのが便利で、
プログラミングとの関わり方も結構変わるなと思いながら、
仕事だとそれは無理ですけど、
趣味のプログラミングっていう意味でも、
様子が変わっている、新しい世界が来ているななんて思っていました。
AIが結構吉田に救ってくれているおかげもあって、
私の把握していないけどいいような、
できているところとかがあるなってことに最近気づいてきて、
このいいようにっていうのを一体君はどこから持ってきたんだね、
AI君という気持ちになっています。
例えばマインスイーパーの難易度、
最初にAIにだんだん難しくしてね、
みたいなことを言って作ってもらったら、
確かにだんだん難しくなっているような気がするんですよ。
盤面がだんだん広がっていったりとか、
罠の数が盤面の広さに応じて変わっていったりするんだけど、
これどういう数式でやってるんだろうなって、
後でソースコードを見ると、
結果としてWindowsとかにもともと付いているマインスイーパーの
罠の密度と合うような形で難易度を調整していて、
君はその知識をどこから得たんだねと思いながら見ていました。
完璧ではなくて、
今現在、ちょっと直しちゃったからあれだけど、
最初の段階だと、だんだん難しくはなっていない。
画面はどんどん広くなるんだけど、
罠の密度は一定みたいな感じのルールになっていて、
マインスイーパーの難しさを何と捉えるかにもよるんだけど、
単純に盤面が広くなって、
単純な作業をたくさんやることが難しさなんだとしたら、
それは実現されているんだけど、
罠の密度が上がってきて、
運を試される局面が増えるかというとそういうことはなくて、
一定の罠の密度を保ちながら画面が大きくなるみたいな
ロジックになっていて、
初手をAIが考えてくれて、
人間が罠の密度を上げていくほうが面白いんじゃないかとか言って、
直してもらったりして、
それも別に人間が正しいわけじゃなくて、罠の密度を上げると、
マインスイーパーとしては、運の要素が強くなりすぎると、
ロジカルに解けるっていう面白さが減っちゃうんですよ。
開けることが増えちゃって、
そうすると、本来面白い運試しの要素が強くなりすぎちゃって、
私は面白くないなと思ったりして、
大半の人はそうだと思うんですけど、
ゲームの面白さみたいなところは難しいなと思いつつ、
ロジックみたいな単純なところはAIが作ってくれて、
面白さなんだみたいなところは、
人間とかがAIと壁打ちしながらゲームが作れていて、
プログラミングだけじゃなくて、
ゲームのルールの相談とか、
アイテムもこういうふうな難易度曲線にしたいからどんなアイテムがいいとか、
そういうレベルでの相談とかができて、
一人で作っている感じがしなくて、
非常に新しい体験だなと思いながら作っています。
新しい、最近付けた機能で面白そうなのは、
マインスイーパーのルールと難易度設計
見通しの悪いマスが途中から出るようにしてみました。
これは分かんない。
これは私分かっていなくて、
詳しい人とかゲームに理論を求める人に聞きたいんだけど、
マインスイーパーで周りの8マスの中に罠が何個あるかを
数字で出すのが基本的なルールなんだけど、
開示したマスの中には数字が出せる、
未開示のマスには数字は書いてあるんだけど、
出てこないという感じですよね。
見通しの悪いマスは、
斜めの含めて8方向じゃなくて、
上下左右の4方向の罠、
地雷の数を表示するというマスのことです。
全部そういうマスにしちゃうと解けなくなっちゃうんで、
今いくらだったかな、15%ぐらい、
見通しの悪いマスが入るというのが、
途中から起きるようにしたんですね。
頭はすごい使うようになって、
ノージルが出る面白さが増したように私は感じているんですが、
一方で、
見通しの悪いマスと普通のマスの数字の差から、
ロジックで罠がここにあるぞって特定できるシーンが
増えたような気もしていて、
簡単になったような気もするし、
難しくなったような情報量が減っているので、
斜め向きに何個あるかってことが見えなくなっちゃうんで、
ある種難しくなっている時もあるし、
通常マスと見通しの悪いマスの差によって、
罠の位置が確定することがあるので、
それで簡単になっているような気もするし、
ただプレイしている私としては、面白くなったぞという気がしたので、
それでリリースしたんですけど、
単に私がマインスイーパーのルールには慣れているけど、
それを学習する過程が面白いと感じているような気もしていて、
その辺りがまだスッキリしていないんですが、
本当にゲームの面白さというのを定量化するというか、
定量化しなくてもいいんだけど、
このゲームの面白さというのはこういうところにあるんだよという風に
言い切るとか推測をするみたいなのはすごく難しいし、
そこがゲーム作りの面白いところだなと思ったりしていて、
込み入った話をしましたけど、
そういうルールを決める側の楽しさみたいなのが伝わればいいなと思って
私はこういうミニゲームを作るのは結構好きでやっていて、
LLMが出てくることで、
そういう面白さの部分を凝縮して体験できているような気がしています。
もしプログラミングはあまりやったことなかったけど、
そういうルールを考えたりすることが結構好きだよという人は、
もしかしたら今のタイミングから、
生成AIを使ってゲームを作るみたいなのをやってみると、
案外面白さに触れられるかなという気がしています。
ゲームを作る作業自体がすごくゲーム的なんですよね。
そういうゲームももちろんあるじゃないですか、RPGを作るとか、
RPGを作るのはどっちかというとストーリーを作る側の話ですけど、
ロジックベースのゲームみたいなもので、
それを自分の考えたルールをどんどん作っていって、
それをどんどん変えていって、ゲーム自体がどう面白くなっていくかとか、
プレイヤーがどう振る舞うかみたいなのを想像したり、
実際にそれを人に触ってもらって、思った通り動くじゃんとか、
思った通り楽しんでくれてるじゃんっていうのが、
フィードバックを得られるのはすごく面白い体験だと思っていて、
フィードバックが堪能な人の1000倍特許みたいな感じだったところが、
随分とその裾野が広がってきてる気がするんで、
ぜひ今まで温めていて、
俺の考えていた最強のゲームがある方は、
机上だけじゃなくて、生成愛と一緒に話すと、
本当のゲームとして作ったり、何なら人に遊んでもらえるレベルまで、
ものづくりを進めることができるようになっているので、
新しいゲーム機能の考察
ぜひぜひやってみてほしいなと思っているというお話でした。
そんなLLMでミニゲームを作っているという話から、
私の作っているリバーシパズルとトラップダンジョンの紹介というところを
お話しさせてもらいました。
もう一つ続きで、LLMと戯れる日々にというところで、
LLMと戯れる話はトーク112のところで、
いくつかしていたので、
もしかしたら被る内容も、
あるかなと思うんですが、
あのとき何を話した?
MCPクライアントを入れたりとか、
そのときもログライトを作っているという話はしたんだけど、
その話はさっき詳しくしましたよね。
ミニゲームを作る中で、
Gemini CLIを活用していくんだけど、
そのときに得られたノウハウみたいな話をさせてもらおうかなと思ってメモしていたのでした。
まず、アクションゲームよりも
コンソールで動くような単性のゲームみたいな
ロジックパズルのほうが作りやすいかなと思っています。
それは、出来上がりを
AIが自分で確認することができるというところにありました。
というのも、
アクションゲームは試しにAIが動かすことはできないんだけど、
コンソールで動くようなロジックゲームだった場合は、
AIは実際に手元で動かして、
その結果を見てデバッグしたりとか、
ゲームの画面がどうなっているかを知ることができるんですね。
実際にその画面を出したり、
ログを出力するコードを自分で埋め込んで実行して、
そこのログを見たり、
エラーコードを見て、プログラムを直すみたいなことも
AIができるので、そういう意味でもアクションゲームよりも
非リアルタイムのパズルゲームみたいなもののほうが得意かなと思います。
最終的に私はウェブの画面を作ったんですけど、
このさっき話したトラップダンジョンに関しても、
まずコンソール版を作ってもらったんですよ。
ウェブ版も作りたいし、コンソール版も作りたいという風に
ゲーム開発のロジックと構造
AIに初めに言っておくと、
ゲームのコアのロジックとそのコアのロジックの
情報をコンソールに出す関数群と
ウェブ上に出す関数群みたいな感じで
モジュールを分けて作ろうとしてくれる。
そうなるまで言い聞かせるというのをして、
そうするとコアのロジック、画面の形に関わらず
ゲームの内部状態みたいなのを操作する
モジュールと、画面にどう見せるかとか、
入力をどう受け取るかみたいなモジュールに分かれるので、
プログラミング経験のある人であれば、
正しいモジュール化だと思っていただけるでしょうし、
テストがすごくしやすくなるというところがあって、
テストもAIに書いてもらうことができて、
テストもAIが書いて実行して、テストがコケていたら
レグレッション失敗ということで、
さっきの修正を巻き戻してくれるみたいなところも
勝手にやってくれるわけではないんですけど、
テストやってみてって言って、やってみて壊れてたら
プロンプトにしっかり変更するためにテストを実行して、
動作が巻き戻ってないか確認してください
みたいなことを言っておけば、たぶん毎回やってくれるようになるんじゃないかな
私はそこまでテストをしっかり実行するつもりはなかったので、
手でとか言ってやってもらってますけど、
そんな感じで、非リアルタイムのゲームが良いことと、
ビュートロジックを分離するように最初から作っておいてもらうと、
AI自体がどんなゲームを作っているか把握できて良さそうというところ。
それから、こういうのを作ってほしいっていうのを
もちろん言うこともできるんだけど、
それよりもっと大前提のブレストの段階から
AIに参加してもらうと、
よりゲームの開発体験が変わるなと思っています。
これはさっきのトラップダンジョンの時の話でもしたんですが、
こういうふうなことがユーザーが
これだと10回以降で難易度があまり変わらなくて、
ユーザーがプレイヤーが退屈しちゃうと思うんで、
面白くしたいんだよねとか、
そういうところから話して、ではこういうアイテムを出せばどうでしょうとか、
難易度の曲線、効果アイテムはどうでしょうみたいな話をAIと一緒に話していった中で、
じゃあそれやってって言うと、
仕様も話していく文脈の中に含まれるし、
何より私の頭では考えつかなかったような解決策が出てくることがあって、
考えの幅が広がる気がするので、
そういうところをやるっていうのもすごくお勧めですね。
独自のゲーム用語の設定
アルゴリズムの名前が分かっていたりする場合は指定するとすぐやってくれます。
例えばトラップダウンだとゴールまでのまっすぐ線を引いた、
その線のところにあるマスを開示するっていうアイテムがある、
アリアドネの糸だっけっていうアイテムを作ったんですが、
このときにゴールまでの道筋にあるブロックを開示してっていうよりは、
ブレゼンハムの専門のアルゴリズムでゴールまでのマスを開示するようにしてって言った方が、
確実にアルゴリズムを実装してくれます。
まるで魔法の呪文の栄章のようですね。
アルゴリズム分かっているってことは、いちいちロジックを説明しなくても、
アルゴリズム名を言ってあげるとAIはあれのことねってなって作ってくれるんだけど、
なのでそういうコンピューターサイエンスの知識は意外と役に立つなと思いながら、
ブレゼンハムの専門発生のアルゴリズム以外は使ったことないかも。
でも幅優先探索でどうのとか、
要所要所でコンピューターサイエンスの用語を使うことで指示が通りやすくしているところはあると思うので、
そういうところはお勧めかなと思います。
プログラム言語って時々よくある構造に、
閉じと開き、カッコだったりとか、HTMLのタグだったりとかで、
閉じと開きのペアを合わせないといけない場面がたくさんあると思うんですけど、
Dev2CLIは特にかもしれないですけど、
この閉じと開きの対応を間違えることが多くて、
多分ソースコードの一部しか見ずに修正をしようとするから、
閉じと開きの対応を間違えることがあって結構多いんですよ。
それを直してって言ってAIに直させると、
なんかうまく直せないことも多かったりとかして、
こういうところは人間がフォローした方が早いかなと思っています。
あとクオートな使いも苦手ですね。
ダブルクオートとかシングルコードが変に混ざり込んでしまうソースコードを作ることがあって、
それでシンタックスエラーになってるとか、すぐ人間が見たら直せるんで、
そういうところは変に全部AIでやろうとせずに、
人間が直して、直しておいたんで読み直しておいてって言った方が早いかなっていう風に気がします。
あとコードベースが500行を超えたあたりからどうも様子がおかしくなるなってところがあって、
モジュールに切っておけばそこまでおかしくならないんで、
500行とかを超え始めると、
1回そのリファクタリングをしたりとか、
モジュールを分割するような処理をAIに早めにしておくと、
本当に大きくなってからだと分割すらうまくいかなくなると思うんで、
多分ね、やったことないけど、
500行を超えたあたりから500行を1000行の間ぐらいで、
モジュールを分割することを指示するのが良いかなと思っています。
以前、頭の悪いAIに書いてもらって、
デバッグを頭の良いAIにしてもらった方がいいみたいな話をちょっとしたんですが、
この今のトラップダンジョンぐらいの規模になってくると、
やっぱりGemini 2.5 Pro、
私が前回賢いと言った方のAIですけど、
これにメインでプログラムを書いてもらわないと、
ちょっとGemini 2.5 Flashの方では、
考慮の少ないものとかを、
バグをすぐ生むようなコードを書きがちだなという気がしてきて、
まんまと課金するといいぞっていうメッセージをGoogleから受け取る羽目になっておりますけれども、
なんかそんな感じがします。
ただ、CSSちょっと直すとか、
ちょっとした機能を足すとかだったら、
Gemini 2.5 Flashでも多分できると思っていますが、
最近そんなにじっくり取り組んでなくて、
Gemini 2.5 Proの1日の上限、
無料の部分でできる範囲の中で、
Gemini 2.5 Proを使っていて、
使いすぎるとGemini 2.5 Flashに落っこちるんですよ、
課金してないと。
でもその状況にならないことが多くて、
最近ずっとGemini 2.5 Proでコードを書いたり修正したりしてもらってるんで、
Flashだとどのくらい頭が悪かったか忘れかけてはいるんですが、
ちょっと任せられないなって思うところが何回かあったなというのが出てきているので、
ちょっと前回違うことを言っていた気がするので、
新たに気づいたこととして紹介しておきます。
それから、あとゲーム内の用語を決めておくと、
指示が通りやすいし、書くときに悩まない、
指示を書くときに悩まないなと思っています。
例えばトラップダンジョンだと、
このマスが見えない状態と相手数字が見えている状態のことを、
マスを開示しているとか、
非開示になっているとか、
開示率みたいなものとか、
マインスイバーだと地雷と言っているものを、
このゲームでは罠と言ったりとか、
落ちている何か効果のあるアイテム、
いわゆるアイテムというのがあって、
これはアイテムというとか、
画面のこの部分はコントローラーという、
ここは盤面というとか、
このゲーム特有の用語みたいなのを定義しておくと、
指示が出しやすいし、
ソースコードの変数名とかにもそれが反映されていくので、
AIに言ったことが正しく伝わるような気がするので、
ゲーム内用語みたいなのを早めに決めておくと、
いいなみたいなところもノウハウとしてありますね。
AIとのコミュニケーション
そんな、あとそれから、
AIと話して、
こういうルールがあったら面白いよね、
みたいな話をするっていうのは、
さっき話したんですが、
その時に出てきたアイデアを、
デザインスラッシュtutu.mdとかを作っておいて、
そこに一旦書いておいてってやっておくと、
複数の処理を並行してするのは、
あまりコンテキスト忘れちゃったりするので、
Aはできないし、
もちろんコンソールの画面で順番に対話しながら作っていくから、
複数の機能を同時に実装はできないんで、
後回しにしたいけど、
覚えておいて欲しいようなものは、
出てき次第マークダウンファイルで書き出して、
書き出し作業もAIにやってもらえばいいので、
to doっていうところに入れておいてもらって、
チケット管理とまでは行かないけど、
AIに一つの作業が終わった後に、
では、デザインスラッシュtutu.mdにあるこの機能の実装に
取り掛かってもらいましょうとかっていうと、
思い出したように処理を続けてくれるんで、
そういうことをしていくのもいいなと思ったりとかして、
そんな技術、技術の技を駆使しながら、
ゼビネシエライでこのトラップダンジョンっていうゲームを作っています。
そうですね、さっき2個、
リバーシパズルとトラップダンジョンを説明しましたが、
説明の分量からも分かると思うんですけど、
トラップダンジョンは結構よくできたゲームだなと思っているので、
まだね、もうちょっと足したい機能とか、
あとその難易度調整がうまくいってないと感じるところはあるんで、
修正はしていこうと思うんですけど、
現時点でも十分遊べると思うので、
ぜひぜひこれをお聞きの方で、
スマートフォンとかでも遊べるんで、
パソコンが手元にある方は一度遊んでいただいて、
何かフィードバックをいただければと思っておりますので、
ぜひよろしくお願いしますというところで、
2つ目のトピックとして、
LLMを使ってゲームを作るときに、
どういうノウハウが得られたかみたいなところを少し紹介してみました。
ゲームに関わらず、
LLMでコードを書くときには役に立つようなものが多いと思うので、
他にも何か皆さんご存じのノウハウがあったら教えてほしいし、
何か役に立ったことがあれば、
どんなところに使ったのかみたいなのを教えてもらえると、
私も参考にしようかなと思います。
ありがとうございます。
あと1個だけ話しとくか、
5歳の娘とトランプ遊びの話をしようかな。
トランプを解禁しましてですね、
前の終わりぐらいにちょろっと言ったかな、
カルタから始まり、
ウノ、カルタ、トランプ、
今トランプにきまして、
5歳の娘とトランプで遊んでいますと。
トランプの遊び、
順番に紹介していこうかなと思って、
いろいろやって、
何やったっけ、神経衰弱を最初にやって、
これは幼稚園でもやったっぽくて、
そっからヒチ並べ、
ババ抜きみたいなのを紹介して、
そっからはパッとね、
この遊びがいいって思いつかなくてですね、
図書館とかで、
公園で小学生のことあったときに、
トランプを始めたんだけど、娘と。
何か面白い遊びない?っていう話を聞いたら、
ヒチゴさんっていうのがあるよっていう風に言われて、
それで後で調べてみたらあって、
ヒチゴさんとイッキューさんというゲームがあって、
それを遊んだりとか、
あとは娘が幼稚園から、
ババ抜きっていうのは、
ババ抜きの話をしたら、
ジジ抜きっていうのもあるよって、
友達が教えてくれたんだけど、
それは何だっていう風に言われたんで、
じゃあジジ抜きを教えてあげようっつって、
多分合ってると思うけど、
ジョーカーを使わないババ抜きの、
ジジ抜きっていうのを教えたりとか、
あとスピードっていうのがあったんで、
生成AIとミニゲーム制作
スピードは私が昔やったことあったからね、
一人で教えたのかな、
みたいなところで今やってますと。
私が知ってるって教えてないんだったら、
大富豪とかポーカーとかは、
まだ教えてないんだけど、
まだちょっと早いかな、
ちょっと理由はわからない、
私の中でも言語化できてないけど、
まだ難しいんじゃないかなと思って、
やってなかったりするんですが、
こういうトランプ遊び、
妻と話していると、
私はパパパッとこんだけ出てきて、
七五三一級さんは教えてもらいましたけど、
七並み、ババ抜き、神経衰弱、
ジジ抜き、スピード、
ポーカー、大富豪、
みたいなボロボロって出てくるんだけど、
あんまり妻は出てこなかったようだったので、
結構人によってトランプのゲーム、
どのぐらい知っているのかっていう知識には
差があるんだなと思いながら、
私もそれぐらいしか出てこないんで、
今後ちょっと娘と遊んでいく上でも、
どんなゲームがあったのか、
図書館あたりでトランプのほう借りてこようかな
なんて思っているところです。
最近、このトランプ遊び、
こんなのやってるよって話は、
全録音生活、まだやっていますよ。
日々の録音の中から日記にひねり出されてきた
トピックなんですけど、
こういうのって記録忘れますね。
日記を毎日つけていても、
娘のトランプ遊びに幅が広がってきて、
神経衰弱しかできなかったところを、
ババ抜き七並べ、七五三、一九三、
地震抜きスピードみたいなのが出てきて、
しかも幼稚園から持ち帰ってきた遊びとか、
公園で遊んでた子供から聞いたとか、
そういう細かい文脈とかも含めて、
結構改めて見てみると面白いトピックなんだけど、
日記に書くの漏れてたなというところが出てきていて、
全録音生活うまく回せているかなという感じもして、
このエピソードを書いたんですが、
こういう日常からこぼれ落ちそうなんだけど、
フックになるようなトピックは、
引き続き全録音生活、
気になる人はその全録音生活の回を聞いてほしいんですけれども、
続けていけると、
人生がより濃くなっている感じがして、
いいなと思っておりますよという、
全録音生活の参照の話と、
トランプの遊び、今何してるかという話を紹介しました。
他にちっちゃい子が楽しめるようなトランプ遊びないですかね。
あと一人っ子なんで、
一人遊びのトランプゲーム、ソリティアみたいなやつとかも、
教えてうまくハマってくれると、
親としても楽なんだけどなと思うところもあるので、
何か面白げな一人遊びのトランプ遊びなんかも、
知りたいななんて思っていますよと。
そんなトランプのお話でした。
それから最後に前回の振り返りですね。
前回ね、薄い探しの話。
薄い探しには誰も食いついてくれなかったんですが、
メタルロックの話ですね。
金属をくっつけることのできる接着剤の話をしたところ、
コセンスプロジェクト井戸端で、
ひろあきさんが、
少し前に仕事で使った接着剤の名前をここで見るとは驚き、
これは良いものだと思う。
手軽な上に安いからというふうにコメントいただいて、
お仕事で金属をくっつけるような時にも、
使われるほどの知名度のものというか、
普通に使われているものなんだなというフィードバックをいただきました。
その流れでコセンスプロジェクト井戸端には、
ハネムーン接着というページが作られ、
私もそんなのがあるんだなと思いました。
ハネムーン接着というのは、
2液式、2つの液を混ぜて使うタイプの接着剤をくっつけるときに、
くっつけたいもの、A、Bがあったときに、
A側にA液をつけ、B側にB液をつけ、
それでガチャンとくっつけると、
接合部分で混ざるじゃないですか。
それで接着剤化してくっつくよということを、
どうやらハネムーン接着というみたいですね。
私が家でやる場合は、そんな大量にやるわけじゃないんで、
厚紙の上から2液を出してぐにゃぐにゃっと混ぜてから、
混ぜたものを接着したい場所に貼ることをしますが、
大量に何かくっつけたいときとか、
そうやってぐにゃぐにゃっと別の場所で混ぜることで、
接着剤がいく分か消費が多くなってしまうので、
そういうのを嫌う場合にやるのが、
ハネムーン接着というような方法があるよというふうなのを書いていただいて、
また一つ賢くなりました。ありがとうございます。
そんな前回の振り返りのお話でした。
さてお届けしてきました、
いなじむのためしに録音してみた略してため録、
トーク114、そろそろ終わりの時間になってきました。
今回はものづくりの話をめちゃくちゃしました。
ものづくりというかLLMですね。
生成AIを使ってミニゲームを作っている話を半分以上して、
申し訳ない程度に5歳の娘との遊びの話とか、
全録音生活の話なんかをさせてもらいました。
ちょっと最近ものづくりの話少なかったかなというところもあって、
トラップダンジョンずっと作ってはいるんですけど、
まだお見せできる段階にないみたいな気持ちで、
話そうっていうところから話すに至らなかったんですが、
もういいやろっていうところで、
別に完璧にはなってないですけど、
これ以上待っていても話すタイミングないなと思って、
話すことにしたというところで、
今回は話せなかった部分をわっとしゃべる回となりました。
生成AIとかミニゲームづくりに興味を持っていただければ幸いです。
日常の遊びと全録音生活
このポッドキャストは40代の私がものづくりの話、
子育て中の話みたいなところを話す、
何でもない雑談をお届けするポッドキャストとなっておりまして、
私自身に興味を持っていただいた方は、
ぜひぜひ購読をお願いいたします。
それからちょいちょい話しましたけど、
ディスコードサーバーアイナジョブ側って呼んでますけども、
そういったものもあったりするんで、
もし興味のある方は概要欄からリンク貼っておりますので、
遊びに来てください。
今日はこのあたりで終わりにしようと思います。
お聞きいただきありがとうございました。
36:43
コメント
スクロール