タグ

ゲームとアルゴリズムに関するfield_combatのブックマーク (21)

  • ドラクエ4のAI戦闘と作戦、完全に理解した|frenchbread

    30年ぶりにファミコン版ドラクエ4をプレイしたので、AI戦闘の仕様についてまとめます。ソースは主に下の記事と自分でプレイした検証結果です。 件に関しては下の記事以上に詳しい情報はないと思われますが、仕様解析というコンセプトで非常に詳細に記載してくださっているため、この記事では自分なりに実プレイ上有用かなと思えるレベルでまとめました。 ご一読いただければ「なぜブライやミネアがいまいち使えなかったのか」といった疑問も解消すると思います。 なお、以下に記載の内容は100%正確とは限りません。 ソースの解析記事を私が誤読している可能性があるのと、一部自分で補完した内容はあくまでプレイ検証して「おそらくこうだろう」と結論づけているに過ぎないためです。ご了承ください。 基礎知識まず基礎知識。 ある程度詳しい方、少し調べたことがある方ならこの辺りはご存じの内容になるかもしれません。 AIは「モンスター

    ドラクエ4のAI戦闘と作戦、完全に理解した|frenchbread
  • オセロの必勝法が見つかった件 | やねうら王 公式サイト

    すごいニュースが飛び込んできた。オセロの必勝法が見つかったのだ。正確に言うとオセロが弱解決された。まずはその論文を紹介する。 Othello is Solved : https://arxiv.org/abs/2310.19387 「弱解決(weakly solved)」を簡単に言うと、初期局面からの双方最善手を打つ時の結論(勝敗)がわかったと言う意味である。8×8のオセロの結論は引き分けなのだそうだ。「必勝法が見つかった」と記事のタイトルで書いたが、その結果として双方最善を尽くした時のオセロの結論が引き分けだったことが判明したので正しくは「必勝法(必ず勝てる方法)が存在しないことが証明された」とでも言うべきか。 今回は、初期局面から到達できるあらゆる局面についての結論(勝敗)がわかったわけではない。こちらは「強解決(strongly solved)」と呼ばれる。 弱解決と強解決とでは、

  • 街づくりゲームの住民管理システムを設計した話 - Qiita

    はじめに ヘレの海底都市計画 ~箱庭に空気を植えるSLG~ というゲームの開発に携わらせていただきました。 主にいくつかの主要な機能の全体的な設計と実装、UI の MVP モデル設計、また開発中に問題が生じた際の抜的な再設計を担当しました。 せっかくなので、プロジェクトで行った設計のエピソードについてお話していこうと思います。 第一弾は セーブデータ設計について 扱いました。 記事は第二弾となります。 今回はゲームの中で、規模的にもゲーム的にも最も大きい要素の一つだった、住民の管理部分の設計をさせていただいた話です。 私が設計について学び始めた際、設計ができる人はどうしてその設計に至ったのかがわからずにもどかしい思いをしたので、当時の自分の様な設計を学び始めた人にとって助けになればと思います。 (記事では説明のために具体的なコードを記載しておりますが、これらはこの記事のためのコー

    街づくりゲームの住民管理システムを設計した話 - Qiita
  • https://twitter.com/Nao_u_/status/1479029545915543552

  • 俺氏、将棋が二人零和有限確定完全情報ゲームでないことに気づいてしまうwww | やねうら王 公式サイト

    このブログをご覧の方は将棋が二人零和有限確定完全情報ゲームであることはご存知でしょう。これは、ゲーム理論や探索アルゴリズムの教科書にでも載っています。「二人零和有限確定完全情報ゲームって何?」って方は、Wikipediaでも見ていただくことにして話を先に進めます。 零和とは? この「零和」というのは、和が零。英語で言うとゼロサムです。 零和(「ゼロ和」と読むのが一般的だが「レイワ」とも読む):プレイヤー間の利害が完全に対立し、一方のプレイヤーが利得を得ると、それと同量の損害が他方のプレイヤーに降りかかる https://ja.wikipedia.org/wiki/二人零和有限確定完全情報ゲーム つまり、自分が勝ちなら、相手は負け。相手が勝ちなら自分は負け。勝ちを+1点、負けを-1点、引き分けを0のように定めるなら、(ゲーム終局後に)自分と相手の点数を足すと0になる。なので、ゼロサムゲーム

  • 超高速2D当たり判定プログラムを作りたかった - Qiita

    経緯 当たり判定を高速にするために、4分木(モートン順序)を使った空間分割アルゴリズムを勉強した際の備忘録です。 以下のサイトを参考に簡略的に解釈した内容をここに記します。 参考にさせていただいた記事 〇×つくろードットコム様 4分木空間分割を最適化する 自分なりに理解した順序を記します。 アルゴリズムの理解のためにまとめている為、プログラミング言語は一切出てきません。 4分木空間分割、及びモートン順序とは シューティングや広いマップのRPGなど、大量のオブジェクト同士があたり判定をする場合、 全オブジェクトとの判定は非常に効率が悪いと言えます。 そこで、プレイヤーキャラと当たるオブジェクトには局所性があることから、分割された空間内のオブジェクトと当たり判定を行う事で無駄な処理を減らすことが出来ます。 4分木空間分割とはゲーム空間を4^nに分割する事であり、モートン順序は分割された空間に対

    超高速2D当たり判定プログラムを作りたかった - Qiita
  • 解析不能!30年以上前のレトロゲームから謎の「自動生成アルゴリズム」が見つかる - ナゾロジー

    Point ■レトロゲームには容量不足や技術的制約を解決するため、現代の我々から見ても解析できない謎の技術が使われていることがある ■今回、ATARI2600から82年に発売されたゲーム『Entombed』に、全くロジックが不明の迷路自動生成プログラムのコードが発見された ■迷路の壁を完全ランダムに配置すればクリア不能になってしまうが、このプログラムがなぜ通行可能なパターンで迷路を生成しているかは、まったくの謎だという ほんの数十年前、コンピュータ関連の技術が飛躍的に向上しました。 特にデータ容量の向上はめざましく、現代の若い人たちにとって容量の単位は「ギガ」が標準になっています。 しかし初代のスーパーマリオの全ゲーム容量は40KB、初代ドラゴンクエストの全容量は64KBでした。 ちなみにこの記事のトップに貼られている画像の容量は97KBなので、スーパーマリオの2.4倍、ドラゴンクエストの

    解析不能!30年以上前のレトロゲームから謎の「自動生成アルゴリズム」が見つかる - ナゾロジー
    field_combat
    field_combat 2019/09/25
    「酔って頭をぶつけた拍子に、このアルゴリズムを思いついた」
  • どうぶつしょうぎ名人 - まめめも

    どうぶつしょうぎ AI を作りました。絶対に勝てません。無力感を味わってください。 ref: http://mame.github.io/dobutsu-shogi-master どうぶつしょうぎとは 3 マス x 4 マスの単純化された将棋です。ライオン(王相当)、ぞう(1 マスしか進めない角行)、キリン(1 マスしか進めない飛車)、ひよこ(歩相当、にわとりに成ったら金相当)の 4 種類の駒を動かして、相手のライオンを取るか、トライ(ライオンを一番奥の行まで運ぶ、ただし直後に取られる場合はだめ)に成功すれば勝ちです。詳しくは Wikipedia の記事を見てください。 どうぶつしょうぎは後手必勝であることが知られています(研究報告)。つまり、後手が正しくプレイする限り、先手は絶対に勝てません。どうぶつしょうぎ名人は常に正しくプレイするので、先手のあなたは絶対に勝てません。 なんで作ったの

    どうぶつしょうぎ名人 - まめめも
  • プレイヤーが自然に感じる乱数の作り方 - A Successful Failure

    2015年11月10日 プレイヤーが自然に感じる乱数の作り方 Tweet ゲームでは擬似乱数がよく使われるが、ある種のゲーム数学的に精度の高い擬似乱数(たとえばMT)を用いているにも関わらず、コンピュータが有利になるように乱数を操作していると批判に晒されている。 実際、数学的に正しい乱数と、プレイヤーが自然と感じる乱数には、ある種の差が存在する。北陸科学技術大学院大学の池田研究室では、プレイヤーに自然に感じる乱数の生成に関する研究を行っている。 プレイヤーが不自然に感じる理由 数学的に正しい乱数に対してプレイヤーが不自然に感じる理由としては認知バイアスが考えられる。特に事象に関連する認知バイアスとして、次が挙げられている[1]。 確証バイアス: 人は自分のもつ仮説に一致する情報を求め、反証となる証拠を避ける傾向がある。ひとたび、サイコロが操作されていると感じると、それ以降、その仮説に都

    プレイヤーが自然に感じる乱数の作り方 - A Successful Failure
  • レベルデザインに遺伝的アルゴリズムを活用する

    2015年Apr6日レベルデザインに遺伝的アルゴリズムを活用する こんにちは。オインクゲームズの新藤です。 先日、弊社のデジタルゲーム第二弾となる「OLYM」がリリースされました。OLYM はターン制限のあるパズルゲームで、各ステージごとに決められたターン数が設けられてています。このターン数以内に目標を達成できないと、クリア失敗になってしまいます。そのため、このターン数をどう決めるかが、難易度に大きく影響する一因となっています。OLYM では、ステージごとのターン数を決定するのに遺伝的アルゴリズムを活用したので、今日はそれをご紹介します。 最終的にやったことは非常にシンプルです。端的に言えば、AI に実際にパズル解かせて、何手で解けたかをレベルデザインの参考にするということです。この AI を作る際に、遺伝的アルゴリズムを活用しました。そもそもは「自動でパズル解いてくれる AI がいたら面

    レベルデザインに遺伝的アルゴリズムを活用する
  • せっき~のゲーム屋さん ドルアーガの塔 乱数の工夫の正体

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 CEDECの講演 「ゲーム世界を動かすサイコロの正体 ~ 往年のナムコタイトルから学ぶ乱数の進化と応用」 より、 乱数を使った ドルアーガの塔の 迷路生成のアリゴリズムについて紹介です。 講演内容は、こちらです http://sekigames.gg-blog.com/Entry/288/ 講演者の方も、 「ナムコの乱数を取り上げるなら、ドルアーガの塔をせざるえない」 という程、外せない内容との事です 「このテーマだけで講演時間を全て使っても説明しきれない」 (講演では、時間の関係で 触りのみでしたので ある程度、せっき~の解釈で補完しています) -------------------------------------------------------------------

  • [CEDEC 2014]「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」 - 4Gamer.net

    [CEDEC 2014]ナムコ作品で見る乱数の歴史。「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」レポート ライター:箭進一 神奈川のパシフィコ横浜で行われた,ゲーム開発者向けイベントCEDEC 2014の最終日である2014年9月4日,「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」という講演が行われた。 登壇したバンダイナムコスタジオ HE技術部 加来量一氏 この講演のユニークな点は,旧ナムコの作品を「乱数」という視点から振り返るということだ。バンダイナムコスタジオ HE技術部のプログラマーである加来量一氏は,旧ナムコの初期作品50を解析し,それぞれの時代でどのような乱数が使われていたかを特定した。そこから見えてくる乱数技術改良の歴史を見ていくというのが,講義の主旨なのである。 1980年代のナムコアーケ

    [CEDEC 2014]「ゲーム世界を動かすサイコロの正体 〜 往年のナムコタイトルから学ぶ乱数の進化と応用」 - 4Gamer.net
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

    サービス終了のお知らせ - NAVER まとめ
  • Old Good COMPUTER!! - 魔法使いの森

    Old Good COMPUTER!! 「計算機」と「コンピューター」を繋げるミッシングリンク。 公式には計算機とされていますが、今のコンピューターに通じる技術がふんだんに盛り込まれた機械を紹介します。 IBM - SSEC バックナンバー 過去に書いたものは以下のリンクから読めます。 ファミリーベーシック FX-マイコン MSX Computer PB-100 PC-E500 忘れさられた言語LOGO MSX2 Handy98 X68000 MC68000とは何か 階差機関&解析機関 ボンブ&コロッサス ENIAC 出番待ち写真集 ABCマシン EDVAC,EDSAC & The Baby MEMEX OSの登場 スケッチパッドとFlex アルトとスモールトーク TeXとSGML 執筆環境 XANADU HP200LX WWI 初の現代的コンピュータ TX-0 世界初のホビーマシン 80

    field_combat
    field_combat 2014/07/25
    FCやMSXの描画の仕組みや使われていたテクニックなどの解説。スゴくためになる
  • JavaScript でオセロを実装する(AI高速化編) | Webシステム開発/教育ソリューションのタイムインターメディア

    これまでのあらすじ まともなオセロの対戦AIの作成を開始したものの、 「4手先を読む」だけでも検討にかかる時間が長く、 とても快適に遊べるとは言えない状態でした。 これでは肝心のAIの形勢判断を調整する以前の問題であり、 先読みする手数を増やしてAIの「腕前」を上げることも困難です。 先読みする手数を減らせば快適に遊べるようにはなりますが、 それでは「目先のことしか考えない」弱いAIにしかなりません。 どうにかしてAIの動作速度を改善できないものでしょうか。 ボトルネックはどこにあるのか これまでのオセロの作成過程を振り返ってみましょう。 最初に4×4の最小盤面で一人二役で遊ぶものを実装しました。 これはほとんどの部分が関数型で書かれた明瞭簡潔な実装だったのですが、 その引き換えに全局面を事前に計算するという超富豪的な実装になっていました。 この問題に対しては各局面の計算を遅延評価すること

    JavaScript でオセロを実装する(AI高速化編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

    最近、ゲーム界隈ではプロシージャルテクスチャー生成だとか、プロシージャルマップ生成だとか、手続き的にゲーム上で必要なデータを生成してしまおうというのが流行りであるが、その起源はどこにあるのだろうか。 メガデモでは初期のころから少ないデータでなるべくど派手な演出をするためにプロシージャルな生成は活用されてきたが、ゲームの世界でプロシージャル生成が初めて導入されたのは、もしかするとドルアーガの塔(1984年/ナムコ)の迷路の自動生成かも知れない。 なぜ私が迷路のことを突然思い出したのかと言うと、最近、Twitterで「30年前、父が7年と数ヶ月の歳月をかけて描いたA1サイズの迷路を、誰かゴールさせませんか。」というツイートが話題になっていたからである。 この迷路を見て「ああ、俺様も迷路のことを書かねば!俺様しか知らない(?)自動迷路生成のことを後世に書き残さねば!」と誰も求めちゃいない使命感が

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
  • オセロゲーム開発 ~アルファベータ法(alpha-beta search)~

    このサイトでは、C言語でのオセロ(リバーシ)のプログラム開発方法を解りやすく説明しています。初級者、初心者でも作れるオセロ実装のコツが満載です。 αβ法はMINIMAX法を改良した素晴らしい探索アルゴリズムです。改良次第でより高速なプログラムを生み出すことも可能です。 最初に「オセロ(リバーシ)の作り方 ~Minimax 探索法~」を読むことをオススメします。 minimax法ゲーム木探索のおさらい 最善手を見つけるとき、相手が最善を打ったと仮定したときの、自分の最善手を検索する必要があります。これは最善手を見つけるときの基であり、min-max法と言われます。 すなわち自分は評価関数が最大になる手を探し、相手は負に最大になる手を探すというわけです。 図1 minimax法 実行例 図2 minimax法 実行例 αβ(アルファベータ)法ゲーム木探索 すべての手を検索すると、莫大な時間が

    オセロゲーム開発 ~アルファベータ法(alpha-beta search)~
  • アルファ・ベータ法 - Wikipedia

    アルファ・ベータ法(アルファ・ベータほう、alpha-beta pruning)は完全情報ゲームにおける探索アルゴリズムの1つである。基的にミニマックス法と同じであり、同じ計算結果が得られるが、ゲーム木において、計算しなくても同じ計算結果になる部分を枝刈りしている。 擬似コード[編集] アルファ・ベータ法の擬似コードを以下に示す。alphabeta関数がアルゴリズムの実装であり、minimax関数はミニマックス法とインタフェースを揃えるためのラッパーである。 function minimax(node, depth) return alphabeta(node, depth, -∞, +∞) function alphabeta(node, depth, α, β) if node が終端ノード or depth = 0 return node の評価値 if node が自分のノード

  • ミニマックス法 - Wikipedia

    この項目では、ゲーム理論が発祥の戦略について説明しています。最良近似関数を得る手法については「en:Minimax approximation algorithm」をご覧ください。 この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "ミニマックス法" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2009年10月) ミニマックス法(ミニマックスほう、英: minimax)またはミニマックス探索とは、想定される最大の損害が最小になるように決断を行う戦略のこと。将棋、チェス、リバーシなどといった二人零和有限確定完全情報ゲームをコンピュータに思考させるためのアルゴリズムとしても用いられるが、元々

  • ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室

    ゲームの作り方とアルゴリズムをジャンル別にまとめてみました。ゲーム制作や、プログラミングの勉強用にご活用ください。言語別ゲームプログラミング制作講座一覧もあわせてお読みください。 リンク切れがおきていたものは、URLを表示しておくので、Internet Archiveなどでキャッシュを表示させてみてください。 RPG ゲームの乱数解析 乱数を利用した敵出現アルゴリズムの解説 各種ゲームプログラム解析 FF、ドラクエ、ロマサガのプログラムの解析。乱数の計算など ダメージ計算あれこれ(http://ysfactory.nobody.jp/ys/prg/calculation_public.html) ダメージの計算式 エンカウントについて考えてみる エンカウント(マップでの敵との遭遇)の処理方法いろいろ RPGの作り方 - ゲームヘル2000 RPGのアルゴリズム ドルアーガの塔 乱数の工夫の

    ジャンル別ゲームの作り方とアルゴリズムまとめ - ネットサービス研究室