ARLQ (Another Rogue-Like Quest)は人間とChatGPTとでコードとマニュアルを開発する実験として作成したローグライクゲームです。
- コードはゲームの内容の大まかな記述からChatGPTで生成、人間が細部を作り込みブラッシュアップ。
- ただし、アルゴリズムの紹介(迷路生成)やcursesライブラリの使い方を聞くなど、コードの生成以外にもChatGPTにやってもらったことは多数。
- タイプヒントはほぼChatGPTで生成されました。
- ChatGPTには新しいモンスターのアイデアにも協力してもらいました。
- マニュアル(下記)はコードの説明からChatGPTに生成してもらうつもりだったが途中で断念して、人間が説明したものをChatGPTに仕上げてもらう形式。
- マニュアルが砕けた口調になっているのはChatGPTの寄与が大きい。
-
ゲームの目的: このゲームの目的は、毎回通路が異なるダンジョンを探検しながら、ドラゴンが隠している宝箱を見つけることだよ!
-
プレイヤー:プレイヤーは「@」を矢印キーで上下左右に移動させることができるよ。
-
モンスター:ダンジョンにはさまざまなモンスターがいるよ。例えば、aはアメーバで、特に強くはないけど倒すとレベルが上がるよ。bはバイソンで、倒すと食料をたくさんもらえるんだ。他にもいろんなモンスターがいるよ!ただし、モンスターは最初は「?」で表示されているけど、一度接触すると、その種類によってa, b, c, などで表示されて、正体がわかるようになるよ。
-
フォグシステム: このゲームでは、プレイヤーが歩いたところだけが表示されるフォグシステムが採用されているよ。オートマッピングと連動していて、プレーヤーが訪れたところはずっと霧がない状態になるんだ。
-
戦闘: プレイヤーはモンスターに接触すると戦闘になるよ。同じレベルかそれ以下のモンスターだと倒せて、レベルが1つ上がり、モンスターが持っているアイテムを手に入れられる。ただし、プレイヤーよりも高いレベルには負けて、ダンジョン内のランダムな位置にリスポーンされるんだ。モンスターは基本的には移動せず、プレイヤーの接触を待っているから、戦闘するか通り過ぎるかはプレイヤーにかかっているよ。
-
レアタイプ: レアタイプのモンスターは、普通のモンスターよりすごい特徴を持っているんだ!例えば、aのレアタイプであるAを倒すとレベルが一気に上がるよ。bのレアタイプであるBを倒すと通常のbよりたくさん食料をもらえるんだ。
-
食料システム: プレイヤーは歩くごとに食料(お腹)が減っていくよ。食料が0になると、飢餓でゲームオーバーになっちゃうから注意してね。食料はbのバイソンを倒せばたくさん手に入るよ。
-
ゲームエンド:ドラゴンの宝箱を取得(宝箱に接触)したとき、ゲームが終わるよ。目指せ、宝箱ゲッター!
さらに詳しいモンスターの説明も次にあるから、気になる人は見てね!ゲームを楽しみながら自分で見つけていくのもありだよ!それでは、ダンジョンの冒険を楽しんでね!
モンスターの表示、名前 | 説明 |
---|---|
a アメーバ | プレイヤーが最初から倒せるくらいに弱い。レベル上げに有効 |
b バイソン | 2番目に弱い。食料をたくさんくれる。腹ぺこになったらバイソンを狩ろう! |
c キメラ | そこそこ強い。剣を持っていて、倒すと取得できる。取得したら次のモンスターとの戦闘では戦闘力3倍になる |
d コモドドラゴン | 強い。倒すと、食料をたくさんくれるけど、毒に侵されて、次のモンスターとの戦闘では戦闘力が1/3になる |
f フェアリー | 戦う相手ではない。接触するとプレイヤーについてきて、ちょっとした加護がある |
A アメーバ・レア | レベルをガツン!と上げてくれるレアなアメーバ |
B バイソン・レア | とても美味しいので、通常のバイソンよりたくさん食べてしまうことでしょう |
C キメラ・レア | 剣に加えて、千里眼の能力も持っている |
D ドラゴン | 強い。ドラゴンを倒すと宝箱(「T」)の位置がわかる。倒せなくても宝箱を見分けられるようにはなる |
E エレメンタル | 戦う相手ではない。プレイヤーをダンジョン内のランダムな位置に移動してくれる。レベルが高いプレイヤーにはさらにサービスしてくれる |
G ゴーゴン | 眼差しを合わせた瞬間、即座に石化する。フェアリーを連れていない限り、48時間、身体が動かなくなってしまう。注意! |
ライセンスはBSD-2とします。
ただし、開発者である私が選んだライセンスに関わらず、お住まいの場所でAIが生成したコードがどのように扱われるかについて注意してください。 なお、私は、ChatGPTが生成したもの以外のソースコードを、直接コピー&ペーストしていないことも申し添えます。