🤖

AIでゲームを作るハンズオン イベントレポート@2023-05-25

2023/05/26に公開

株式会社アルゴリズム デザインエンジニアの安藤です。

今回は2023/05/25に弊社のオープンスペースにて行われたイベント AIを使ってゲームを作るハンズオン のレポートをお届けします。イベントの進行・セッションは同じく安藤のほうでお届けさせていただきました。

イベントで行われた内容について、こちらのレポートにて雰囲気やコンテンツについてを掴んでいただければと思います!

そもそも「AI」とは何を差しているのか

今回のイベントにおける「AI」という単語はLLM(大規模言語モデル)やNLP(自然言語処理)について、およびOpenAIのAPIと使用できるModelであるGPT-3.5-tarbo・GPT-4を指します。

AIでゲームを作る、と銘打っているイベントですが、既存のゲームで当たり前のように登場している評価関数による行動や深層学習といったものによるAIとは違ったトピックのものになります。

近年はLLMが非常に強い話題のため暗黙的にAI≒LLMの話題、という感じになっていますが、AIという言葉が指し示すものも年月とともに圧倒的な多岐にわたるようになったため、今後イベントのタイトルに掲げるような場合はどのトピックについて扱うものであるのかを明示的にするのが良かったかもしれません。

イベントの流れ

ハンズオン前のセッションではOpenAIのAPIの使い方を通して、LLMとプロンプトについて触れる

ハンズオンに入る前に、LLMとは何?プロンプティングって何?という部分についてを軽く説明する時間を設けて進行させていただきました。基本的なナレッジを事前インストールすることで、ハンズオンでサンプルを応用して遊べる工夫の余地を伸ばせるようにという構成にしています。

LLMを擬人化して扱ってみたり、Prompt Engineering Guideの内容と実際に動作させた結果をみてどういう動きになるのか、何ができるのか、ということを説明しています。
内容については以下のスライドからご覧ください。

https://www.docswell.com/s/maiko-ando/5GXLR8-2023-05-26-112328

ハンズオンでは実際に手元でアプリケーションを動作させて、内容を変更できるようにする

ハンズオンはNuxt3でベースが作成されたプロジェクトを手元で動作させたあと、自由に改造していただくという内容としました。
AIアプリ作成のトロの部分だけをお楽しみいただけるような形にできたのではないかと思います🍣

ハンズオン資料

https://algorithms1.notion.site/2023-05-25-AI-07d2e2a380724b61a23547e8725f44cf

不明なことやご質問はNotionにコメントお寄せいただければ幸いです!

ハンズオン用サンプルリポジトリ

https://github.com/algorithms-co-jp/20230525-handson-sample-game

デモアプリ https://erlking-and-hero.vercel.app/

https://erlking-and-hero.vercel.app/

どんなプロンプトで動作しているのか

処理内に含めているプロンプトを一部抜粋して紹介します。

const openaiResponse = await openaiClient.createChatCompletion({
        model: "gpt-3.5-turbo", // LLM gpt-3.5-turbo か gpt-4 を指定
        max_tokens: 500, // 最大トークン数
        temperature: 1, // レスポンスの多様性を調整する
        messages: [{
                role: "system",
                content: `プレイヤーは勇者です。
勇者と魔王が魔王の城の最奥で対峙しています。
勇者の行動によって魔王と決着をつける必要があります。
勇者及び魔王がどのような容姿・人物であるかはプレイヤーの入力に委ねられます。

魔王は圧倒的な力を持っています。魔王は冷徹ですが少し人情味のある性格をしています。
勇者の行動によって、魔王に打ち勝つ・平和的解決が実現した場合など、勇者が生存した場合にはゲームクリア。
勇者の行動によって魔王に敗北、それに準ずる状態になった場合はゲームオーバーとしてください。

結果は以下のフォーマットで返答してください。

【魔王の行動】
ここに魔王の行動・リアクションを記載

【結果】
クリアorゲームオーバー

【エピローグ】
結果が出た後の物語についてを記載`,
            },
            {
                role: "user",
                content: `【用意したアイテム】
${item}

【行動】
${move}`,
            },
        ],
    });

プロンプトは上記の様な形になっており、得られたレスポンスを文字列操作することで期待した答えが返ってきているかを判断し、その値を使用するというような形にしていました。
また、ゲームとして成立させるため魔王は冷徹ですが少し人情味のある性格をしていますのようなちょっとしたエッセンスを入れないと、あまり面白くない結果になり続けるなど、定形のフォーマットで返却させる以外にも工夫が必要ということがデモ作成時に感じたことになります。

ご参加いただいた方の成果物

サンプルアプリを改変してプロポーズが成功するかどうかのゲームを作ってくれていました。かわいい〜!!

https://twitter.com/burakon/status/1661703161965608960

プレイグラウンドで思い通りAIアプリを作るための種をこねる

ハンズオン後半では、AIとの対話を用いたゲームを作る場合についてのサンプルのプロンプトを用意し、 https://platform.openai.com/playground?mode=chat で動作を試してゲームとしての調整をするという、自分で何かを作る場合のプロンプティングにフォーカスを当てた内容としました。

ゲームとして成立させるためにはどうすれば安定するのか、どこをAIに任せて、どこを任せないべきなのか、などプロンプトだけでは成立しない部分なども考慮して実際に動かしてみてハンズオンを行っていただきました。

懇親会

1時間ほどの短い時間ではありましたが大いに盛り上がり、交流が生まれていました!私もたくさんおしゃべりさせていただきましたが、時間が全然足りないと感じました、くぅ〜!!もっとお話したかった〜!!

次回は「AIねじ伏せプロンプト選手権」を開催します

弊社では先月4月から月に一度のペースで、社外の方もお招きするITに関わるイベントを開催し始めました。次回は懇親会での盛り上がりから決まったイベント「AIねじ伏せプロンプト選手権」を開催予定です。
初めて外部の方に登壇いただく、LT形式でのセッション予定しております。奮ってご登壇・ご参加ください。
日程が決定次第告知いたしますが、事前に参加予約したい場合はTwitterでDMでのご連絡をいただければと思います。

やってほしいイベントのテーマも募集中です

勉強会で取り扱ってほしいテーマなど広く募集しています。希望でも、登壇してイベント開催したいなどでも大歓迎。スペースの貸し出しも相談いただければ対応いたしますので、お気軽にご連絡ください。

株式会社アルゴリズムはエンジニア・デザイナーを募集中です

弊社ではエンジニア・デザイナーを募集中です!イベントを開催したり、新しい事業を提案して実際に開発に取り掛かったりできる、自分の可能性を試せる会社です!
上記の職種以外の方でも、ご興味があればそれもまた大歓迎です。是非会社ホームページもしくは直接安藤までお問い合わせください。

それではまた次回のイベントでお会いしましょう!!👋✨

Algorithm's Tech Blog

Discussion