AIゲーム開発研究室
番外編 第4弾 『記憶を交換する世界』
『記憶を交換する世界』
研究代表 大川 博
主任研究員 Arc(ChatGPT)
本研究は、「AIとの対話だけで、どこまでゲームを作り込めるか」という問いから始まった。
今回の実験では、最初から詳細なゲーム仕様書を用意しない。
人間がアイデアを提示し、AIと対話する。その対話からゲームの仕組みを考え、実際に動かし、遊びながら修正を重ねる。
従来のゲーム開発では、ゲームデザイン、仕様書作成、プログラミング、素材制作、実装、テストなど、多くの工程が必要になる。
しかし、生成AIの登場によって、人間がそれらの工程を直接操作するのではなく、AIとの会話を通して制作を進めるという方法が可能になりつつある。
そこで、ゲーム開発の専門的な操作をできるだけAIに任せ、人間は発想、判断、試遊、修正指示を中心に制作を進めることにした。
今回制作したゲームは、『記憶を交換する世界』である。
最初は、会話によってゲームの仕組みをどこまで作り込めるかを確かめることが目的だった。
しかし、制作を進めるうちに、ゲームの仕組みは予想以上に複雑になった。
さらに、基本システムが成立した後には、画像生成AIによるビットマップ素材、キャラクターアニメーション、スクロール演出、エンディングまで追加することになった。
結果として、当初の予定を大きく超える制作実験となった。
しかし、本研究で最も重要なのは、完成したゲームの機能の多さではない。
そのゲームが、どのような対話によって生まれ、どのような対話によって完成に至ったのか。
そこに今回の研究の核心がある。
今回のゲームは、最初から「記憶を交換する」という仕組みが決まっていたわけではない。
出発点となったのは、「記憶を消す」という発想である。
しかし、記憶を消すだけでは、ゲームとして何をするのか、何を目的にするのか、どのように攻略するのかという問題が残る。
そこで、対話を通して「記憶」という言葉の意味を広げていった。
人間が過去の出来事を覚えているように、物体もまた、自分がどのような性質を持っているのかを記憶していると考えてみる。
例えば、大きな岩は「自分は重い」という記憶を持っている。
川は「自分は流れる」という記憶を持っている。
では、その記憶を書き換えたら、どうなるのだろうか。
岩が重さの記憶を失えば、軽くなるかもしれない。
川が流れるという記憶を失えば、固まるかもしれない。
この発想から、物体の性質を記憶として扱うゲームの可能性が生まれた。
重要なのは、ここでゲームのルールが完成したわけではないことである。
むしろ、ここから新しい問題が次々と生まれていった。
ゲームの仕組みを検討する中で、大きな転換が生まれた。
記憶を消すのではなく、交換したらどうなるのか。
記憶を消すだけなら、障害物の性質を一方的に変更できる。
しかし、交換する場合は違う。
何かを得るためには、何かを差し出さなければならない。
例えば、岩を小さくするために「大きさ」という記憶を与えると、プレイヤーは代わりに岩が持っていた「重い」という記憶を受け取る。
岩を突破することはできても、手元に残る記憶は変わってしまう。
すると、次の障害物を突破するために必要な記憶が、手元にないかもしれない。
ここで、記憶は単なる魔法の道具ではなく、限られた資源になる。
どの記憶を与え、どの記憶を受け取るか。
その選択によって、次の行動が変わる。
記憶を交換するという行為そのものが、ゲームの中心的な仕組みになったのである。
この転換は、今回の研究における最も重要な出来事の一つである。
完成したゲームのルールをAIに実装させたのではない。
人間とAIが対話を重ねる中で、ゲームの基本構造そのものが形成されていったのである。
記憶を交換する仕組みから、さらに新しい問題が生まれた。
次の障害物を突破するための記憶を持っていなかった場合、どうすればよいのか。
必要な記憶を自由に追加できるようにすれば、交換という仕組みの意味が薄れてしまう。
そこで、以前に通過した障害物へ戻り、もう一度記憶を交換するという方法が考えられた。
一度突破した障害物も、再び記憶を交換すれば性質が変わる。
先へ進むために、いったん過去へ戻らなければならない。
この仕組みによって、ゲームは単純な一本道の障害物突破ゲームではなくなった。
過去の選択が現在の状況に影響し、現在の問題を解決するために過去へ戻る。
前へ進むことだけが、ゲームの進行ではなくなったのである。
このようにして、『記憶を交換する世界』の基本構造が形成されていった。
ゲームの仕組みが見えてくると、次に必要になるのは、プレイヤーが何のために障害物を突破するのかという目的である。
そこで、勇者が誕生日のプレゼントを持って、お城にいる姫のもとへ向かうという物語を設定した。
勇者は、途中に現れる障害物を、記憶を交換することで突破していく。
目的は単純である。
姫に誕生日のプレゼントを届けること。
複雑なゲームシステムに対して、物語の目的を分かりやすくすることで、プレイヤーが何を目指しているのかを明確にした。
こうして、記憶交換という独自の仕組みを持つ、ロールプレイングゲームを思わせる世界観が生まれた。
記憶交換という発想をゲームとして成立させるためには、どのような記憶が存在するのかを決める必要があった。
検討の結果、基本となる記憶は8種類に整理された。
さらに、特殊な記憶として「存在しない」という性質も設けた。
これは、障害物を消失させるという、通常の記憶交換とは異なる効果を持つ。
重要なのは、障害物ごとに独立した解決方法を設定するのではなく、世界全体に共通する記憶のルールを設定したことである。
同じ記憶であっても、交換する対象によって結果が変わる。
この仕組みによって、限られた種類の記憶から、多様な攻略方法を生み出すことが可能になった。
次に問題となったのは、プレイヤーがどれだけの記憶を持てるのかということである。
すべての記憶を自由に使えるのであれば、障害物を突破することは容易になる。
そこで、ゲーム開始時に所持する記憶を3つに制限した。
プレイヤーは、最初の2つの障害物を確認してから、3つの記憶を選択する。
障害物との通常交換では、記憶を1つ渡し、代わりに1つ受け取るため、所持する記憶の数は変わらない。
さらに、2つの記憶を差し出して1つの記憶を得る特別交換も設けた。
特別交換では、交換するたびに所持する記憶が1つ減少する。
最初に所持する記憶は3つであるため、1回目の特別交換で2つになり、2回目で1つになる。
特別交換には2つの記憶が必要なので、それ以上は実行できない。
つまり、特別交換は、別途回数制限を設けなくても、ルール上必然的に最大2回しか行うことができない。
このように、ゲームの仕組みそのものから制約が生まれることも、今回の設計の特徴である。
ゲームには、10種類の障害物を用意した。
岩、川、倒木、氷の壁、鉄の扉、雪玉、風車、吊り橋、泥沼、お化けである。
それぞれの障害物には異なる性質があり、記憶を交換することで通行可能な状態へ変化させる。
当初は、そのうち6種類をランダムに登場させる方式を採用した。
同じゲームであっても、障害物の種類や登場順序によって、必要な記憶が変わる。
さらに、完成直前には登場する障害物を6種類から8種類へ増やした。
所持する記憶の数や基本ルールは変更していない。
障害物が増えることで、記憶の交換や過去への移動がより重要になると考えた。
ただし、実際に難易度がどの程度上昇するかについては、今後の試遊による検証が必要である。
ゲームのルールが具体化するにつれて、制作は次第に複雑になっていった。
特に難航したのは、障害物それぞれが持つ記憶、通行を可能にする記憶の配分、そして障害物同士の関係性を整理することであった。
ある障害物を突破するために必要な記憶が、別の障害物との交換によって得られるとする。
しかし、その障害物が後から登場する場合、先へ進むことができなくなる可能性がある。
また、以前の障害物へ戻って記憶を取り直す場合にも、交換によって別の障害物が通行できなくなることがある。
さらに、登場する障害物の種類と順番はランダムに変化する。
そのため、一つの組み合わせだけを考えればよいわけではない。
障害物が持つ記憶、交換後にプレイヤーが所持する記憶、通行条件、登場順序。
これらを同時に考慮しながら、ゲーム全体の整合性を保つ必要があった。
ゲームの難しさは、単にプログラムを書くことではなかった。
ゲームを成立させるためのルールの関係性を構築すること自体が、大きな課題だったのである。
HTMLによる試作を行い、実際にゲームを動かしてみると、会話だけでは気付かなかった問題が現れた。
記憶の交換が正しく成立するか。
交換した記憶によって障害物が通行可能になるか。
過去に戻って再交換できるか。
障害物の組み合わせによって進行不能にならないか。
こうした問題は、文章で仕様を考えるだけでは十分に確認できない。
実際にゲームを操作し、結果を観察する必要がある。
そこで、研究代表がゲームを試遊し、問題点をAIに伝え、AIが修正するという作業を繰り返した。
ここでの人間の役割は、単にAIの指示に従うことではない。
ゲームを遊び、問題を発見し、どのように改良するかを判断することである。
AIは、その判断を受けて、ルールの整理やプログラムの実装・修正を行った。
制作途中には、修正によって別の部分に不具合が生じることもあった。
正常に動いていた機能が、次の修正によって動かなくなる。
問題を修正しても、思ったような結果にならない。
さらに、障害物と記憶の関係性が複雑になるほど、ゲーム全体を成立させることが難しくなっていった。
研究代表自身、制作途中には、このゲームは完成しないのではないか、完成までに相当な時間がかかるのではないかと感じる場面もあった。
今回の研究は、最初から完成できると確信して進めたものではなかった。
それでも、対話を続けた。
正常に動作していた版を基準に戻し、問題を切り分けながら修正を重ねた。
一度にすべてを完成させようとするのではなく、動作を確認できた部分を残しながら、少しずつ前進した。
結果として、ゲームの基本システムを完成させることができた。
完成できるかどうか分からなかったゲームが、対話と試遊の繰り返しによって完成へと近づいていった。
この経験自体が、今回の研究の重要な成果である。
基本的なゲームシステムが成立した後、研究は新しい段階へ進んだ。
それまでのゲーム画面は、主としてHTML Canvasによる図形描画を中心としていた。
しかし、ゲームとしての表現をさらに高めるため、画像生成AIによって制作したビットマップ画像を使用することにした。
ここで重要なのは、画像制作を単独の作業として行ったのではないことである。
画像生成AIで素材を制作し、それをゲームに組み込み、動作を確認し、必要に応じて画像やプログラムを修正する。
この一連の工程も、AIとの対話を通じて進めた。
記憶交換によって障害物の性質が変わるという仕組みは、ゲームの中心的な特徴である。
その変化を視覚的に表現するため、通常状態だけでなく、変化後の障害物画像も用意することにした。
例えば、大きな岩が小さくなる。
氷の壁が崩れる。
雪玉が溶ける。
こうした変化を、単純な図形の変形だけでなく、画像そのものを切り替えることで表現した。
プレイヤーが記憶を交換すると、障害物の性質が変化する。
その変化が画面上でも確認できる。
ゲームの内部状態と視覚表現を一致させることが、重要な制作課題となった。
画像生成AIによって、従来よりも表現力の高いゲーム素材を制作することができた。
しかし、生成した画像をそのままゲームに使用できるとは限らなかった。
背景の透明化、画像サイズの統一、キャラクターの位置合わせ、画像の読み込みなど、実装上の問題が発生した。
さらに、AIが修正指示を正しく解釈しない場合もあった。
こうした問題は、画像生成AIをゲーム制作に利用する際の現実的な課題を示している。
今回の実験では、それらの問題も対話によって修正しながら制作を続けた。
次に、ゲームの主人公となる勇者を画像生成AIで制作した。
勇者は、誕生日のプレゼントを持って、お城にいる姫を目指す。
ゲームに登場させるためには、単なる一枚のイラストでは不十分だった。
歩行アニメーションに使用する複数の画像が必要になる。
そこで、生成した歩行画像から使用するコマを選び、背景を透明化し、画像内でのキャラクターの位置を調整した。
特に問題となったのは、アニメーション再生時のキャラクターの大きさと位置である。
コマごとに位置がずれていると、歩くたびに勇者が上下に揺れたり、伸び縮みして見えたりする。
そこで、画像のキャンバスサイズを統一し、頭の位置を揃えることで改善した。
勇者の歩行アニメーションが完成すると、次にゲーム内の移動方法を改良した。
勇者が画面の端から端まで移動するのではなく、勇者は一定の位置で歩き、障害物が左右へスクロールする方式を採用した。
これによって、勇者が次々と障害物に向かって進んでいるように見せることができた。
また、過去の障害物へ戻る場合には、勇者が左を向いて歩く演出を追加した。
この処理にも不具合が発生し、最終調整では、戻り終えた勇者が右向きに戻らない問題を修正した。
このように、ゲームの完成直前まで、会話による細かな改良が続いた。
ゲームの目的は、姫の誕生日にプレゼントを届けることである。
そこで、最後の障害物を突破した後、お城に到着するエンディングを制作した。
勇者は、数々の障害物を乗り越えて、ようやく姫のもとへたどり着く。
しかし、待っていた姫は、勇者に向かって一言。
「遅い!!!」
この短い台詞によって、複雑な記憶交換のゲームが、ユーモラスな物語として完結した。
ゲームの仕組みだけでなく、最後にどのような印象を残すかという演出まで、対話によって制作したのである。
ゲームの完成段階では、背景表現についても検討を行った。
すべてをビットマップ画像にするのではなく、背景はCanvasによる図形描画を使用することにした。
山、雲、太陽、草地、花などを図形で構成し、勇者や障害物にはビットマップ画像を使用した。
この方式には、背景を軽量に保ちやすいという利点がある。
また、背景とゲームの操作対象を視覚的に区別しやすくなる。
画像表現を統一することよりも、ゲームとしての見やすさと制作上の合理性を優先した判断である。
最終段階では、これまでに制作した要素を一つのゲームとして統合した。
記憶交換のルール、障害物の状態変化、勇者の歩行アニメーション、障害物間のスクロール、背景表現、お城への到着とエンディング。
これらが正しく連動しなければ、ゲームとして完成したとはいえない。
実装と修正を繰り返した結果、最終的にVer.1.9.8で完成を確認した。
当初6種類だった障害物も8種類へ増やし、勇者の向きの問題も修正した。
こうして、最初の発想から始まった『記憶を交換する世界』の制作は、一つの区切りを迎えた。
今回の研究で最も重要な成果は、ゲームの基本構造が対話によって形成されたことである。
「記憶を消す」という発想から、「記憶を交換する」という仕組みへ。
さらに、交換によって記憶の所持状態が変わり、必要に応じて過去へ戻るというゲーム構造へ。
この一連の変化は、最初から完成した仕様書に書かれていたものではない。
人間とAIがアイデアを検討し、問題を発見し、新しい仕組みを考える過程から生まれた。
AIとの対話は、既に決められたゲームを実装する手段であるだけでなく、ゲームの仕組みそのものを考える手段にもなり得る。
今回の実験は、その可能性を具体的なゲーム制作によって示した。
本研究では、人間が直接プログラムを書くことを中心とせず、AIとの会話によって実装を進めた。
人間は、アイデアを提示し、ゲームの方向性を判断し、試遊によって問題を発見し、修正を指示した。
AIは、それらを受けてゲームの設計案を提示し、プログラムや画像を生成し、修正を行った。
ここで重要なのは、人間が制作作業から離れたわけではないことである。
ゲームを面白くするために何を変えるのか。
どの案を採用するのか。
何が問題なのか。
完成したと判断できるのか。
こうした判断は、人間が担った。
一方、AIは、それらの判断を実際に動作するゲームとして具体化した。
人間の創造的な判断とAIの制作能力が、対話によって結び付いたのである。
今回の制作は、常に順調だったわけではない。
AIが指示を正しく理解しない場合があった。
修正によって別の機能に不具合が生じることもあった。
画像生成では、キャラクターの形状や位置を正確に制御できない場合もあった。
また、ゲームが複雑になるほど、一度の修正が他の部分へ影響する危険性も高まった。
こうした問題に対して、正常動作していた版を基準に修正し、実際の動作を確認する方法が有効だった。
今回の実験からは、会話による制作が可能であることと同時に、AIによる実装結果を検証し、必要に応じて修正する工程が不可欠であることも確認できた。
今回の研究では、最初からビットマップ画像による高度な表現や、キャラクターアニメーションまで制作する予定だったわけではない。
当初の目的は、会話だけでゲームの仕組みをどこまで作り込めるかを確かめることだった。
しかし、ゲームの基本構造が成立すると、次の課題が見えてきた。
ゲームとして動くようになると、今度は見た目を改良したくなる。
勇者の画像ができると、歩かせたくなる。
歩くようになると、画面をスクロールさせたくなる。
最後には、物語としてのエンディングも必要になる。
こうして、制作の範囲は次第に拡大していった。
これは、単に予定外の機能が増えたということではない。
一つの成果が次の課題を生み、その課題を対話によって解決することで、ゲームがさらに発展していったのである。
今回の研究は、一つの問いから始まった。
「AIとの対話だけで、どこまでゲームを作り込めるか。」
最初から、どこまでできるのか分かっていたわけではない。
むしろ、途中では完成そのものが難しいのではないかと思う場面もあった。
それでも、対話を続けた。
問題が起これば、その原因を考え、修正を試みた。
新しいアイデアが生まれれば、実際にゲームへ組み込んでみた。
そうして、記憶交換という独自の仕組みを持つゲームが完成した。
さらに、画像生成AIによるビットマップ素材、勇者の歩行アニメーション、スクロール演出、背景表現、エンディングまで実装することができた。
今回の研究によって、AIとの対話が、ゲームの企画から実装、改良、完成までを進める有効な方法になり得ることが確認できた。
一方で、AIの出力が常に正しいわけではなく、人間による判断と検証が必要であることも明らかになった。
しかし、今回の成果を、単に「AIでもゲームを作れるようになった」という結論だけで終わらせるべきではないだろう。
重要なのは、ゲームの制作方法そのものが変化しつつあるということである。
人間がプログラムを直接書かなくても、ゲームの仕組みを考え、AIと対話し、実際に遊びながら改良することができる。
そして、その対話の中から、最初には存在しなかった新しいゲームの仕組みが生まれることもある。
人間の創造的な判断とAIの制作能力が、対話を通じて結び付く。
その過程で、新しい発想が生まれ、ゲームが変化し、発展していく。
ゲームを作るための対話が、ゲームそのものを創造する過程になった。
『記憶を交換する世界』は、その可能性を検証した一つの実験である。



