Upgrade to Pro — share decks privately, control downloads, hide ads and more …

パズルゲームの作り方 / how to make puzzle games

Avatar for kaityo256 kaityo256 PRO
September 24, 2026

パズルゲームの作り方 / how to make puzzle games

2026年9月24日研究室ミーティング

Avatar for kaityo256

kaityo256 PRO

September 24, 2026

More Decks by kaityo256

Other Decks in Programming

Transcript

  1. 渡辺研でのゲーム研究 ゲームを題材とした卒論や修論 • • • • • 湯瀬遼「マインスイーパーを題材とした機械学習モデルの開発と解析」(2022年度卒業論文) 石井千温「どうぶつしょうぎを題材としたドメインフリーAIの作成と解析」(2023年度卒業論文) 佐藤孝太「リアルタイム対戦型ゲームAIの開発と解析」(2024年度卒業論文)

    孫田悠河「倉庫番を題材とした機械学習による環境の難易度定義」(2024年度卒業論文) 湯瀬遼 「ガイスターを題材とした不完全情報ゲームへの機械学習の適用」(2024年度修士論文) その他、多数のプロジェクトが進行中 どうぶつしょうぎAI https://semimaru141.github.io/dobutsu_front/ AIによる倉庫番の難易度評価 https://yuga-jp.github.io/sokoban-web-app/ 2 29
  2. ゲーム制作ワークフロー (2/2) 2. 作った仕様をCodex (ChatGPT)に食わせる PLAN_maker.md Stage Generator 3. ステージの生成

    ランダムに大量生成 ここが一番難しい よさそうなのを選ぶ できた奴をゲームへ 9 29
  3. Hodoku Hodoku: 「ほどく」から Features • ブラウザで直接遊べる • シンプルなマウス or タッチ操作

    • 4レベル、全40ステージ構成 Rules • 二つの宝石を選んで位置を交換する • 各宝石は他の二つの宝石とボンドでつながって いる • 上下左右に隣接するとボンドが白くなる • 全てのボンドを白くすると、交差の無い閉ルー プが完成してクリア • クリアしたらピクセルアートに https://kaityo256.itch.io/hodoku 10 29
  4. Hodoku:ハミルトン閉路 (2/2) (1) 𝑁 × 𝑁のサイズのグリッドで全域木を作る (2) それを2𝑁 × 2𝑁に拡張する

    (3) 元の全域木を周回するように辺を追加、 削除する Edges to add Edges to remove 13 29
  5. Hodoku: 全域木の作成 (1) 𝑁 × 𝑁 のグリッドを用意 (2) ランダムに辺を追加 (3)

    閉路ができたらバックトラック (4) 全域木ができたら完成 全域木はバックトラックで現実的な時間で作成可能 14 29
  6. Hodoku: 難易度調整 グリッドサイズが大きくなると難易度が急上昇する グリッドサイズが増えるにつれて可能な状態が指数関数的に増える 固定宝石で難易度を調整できる • • • • うまく配置された固定宝石はゲームのヒントになる

    しかし、固定宝石の効果は周りの状態に強く依存する 固定宝石の効果をどのように数値化すればよいか? 所望の難易度にするためには、どこに固定宝石を置けばよいか? このパズルの難易度評価、調整はまだできていない 17 29
  7. Stardust Sweeper Features • ブラウザ上でプレイ可能 • 4レベル、全100ステージ Rules https://kaityo256.itch.io/stardust-sweeper •

    • • • 「ぷよぷよ」と「倉庫番」を組み合わせたルール ブロックは一度に複数押すことができる 同じ色のブロックが4つつながると消える 星ブロック(オールマイティ)や透明ブロック(お じゃまぷよに相当)など、特殊ブロックがある • 全てのブロックを消したらステージクリア 18 29
  8. 強化学習による難易度推定 (2/2) Feeding policy 最初、生成した7000ステージからランダムにエージェントに出題してい たが、エージェントは何も学習できず →段階的学習を採用 • 最短パスが1, 2ステップの簡単な問題を出題

    • 成功率が50%を超えたら「次のステージ」へ • 難易度を上げた場合も、「一度解けた問題」も混ぜて出題することで成功体 験を維持 強化学習を(ノートPCで)半日実施したが、結局5ステップの問題までしか解 けるようにならなかった。生成された問題の最長パスは367ステップなので、 強化学習エージェントでは全く太刀打ちできず。 25 29
  9. 経験的難易度評価 (1/2) 強化学習による評価をあきらめ、経験的な評価値を採用 特徴量 • 最短解答ステップ数 (最も重視) • 部屋の広さ •

    狭い部屋と広い部屋の二種類用意 • 狭い部屋は外周に壁を配置することで表現 • 星ブロックの有無 • 透明ブロックの有無 • 色の組み合わせ • (4, 0, 0, 0) : 1色のブロックが4つ→ 最も簡単 • (5, 0, 0, 0), (6, 0, 0, 0) : 1色が5、6個→少し難しい • (4, 4, 0, 0): 4つのブロックが2色→ 一番難しい • (4, 4, 4, 0): 4つのブロックが3色→ 逆に簡単に ↑おそらく解の存在を担保するので精一杯になるから 26 29
  10. 仕様とコードの行数 (PLAN*.md):2080 lines 仕様 ソースコード (*.gd):2304 lines (PLAN*.md):4979 lines 仕様

    ソースコード (*.gd):2690 lines 新しいゲームを作るためには、最終的に生成されるソースコードと 同じかそれ以上の行数のきっちりした仕様を用意する必要がある 28 29
  11. まとめ たくさん作って、選ぶ • ステージを大量に自動生成し、あとでそこから選ぶことでパズルゲーム を制作した 難易度評価は依然として経験的 • パズルの難易度評価を完全に自動化はできず、人間による経験的な基準 に強く依存 AIによる開発にも、きっちりした仕様は必要

    • 主にAIがコードを書くにせよ、ゲームのルールやその他の仕様はわりと 詳細に用意する必要がある(その仕様もAIと相談して作ったが)。 アルゴリズムの知識は(まだ)必要 • AIは最初、時間がかかりすぎたり、メモリを使いすぎたりするコードを 生成してきたため、適切に指示を出す必要があった. 少なくとも今はまだ AIは開発を加速するが、人間の想像力を超えてはくれない 29 29