タグ

algorithmとgameに関するmanabouのブックマーク (50)

  • ゲームプログラミング研修 - KAYAC Engineers' Blog

    こんにちは。技術部平山です。 たぶん15年ぶりくらいに研修の類の講師をやったので、そのことについて書きます。 概要 2D用(github)、 3D用(github) の2つのUnityプロジェクトをテンプレートとして用意して、 そこに「コードだけで」ゲームを作る研修をしました。 どちらも、Hierarchyに何かを足すことは禁止、 足して良いアセットはC#ファイルのみで、 そのC#ファイル内ではUnityEngineの機能を使用禁止、 というレギュレーションです。 いずれも、IMachineなるインターフェイスが存在し、 これを通してゲームを作ります。 例えば2D用のIMachineの主要部分はこんな感じです。 public interface IMachine { public int Width { get; } // スクリーン横解像度 public int Height { get

    ゲームプログラミング研修 - KAYAC Engineers' Blog
  • 詰将棋アルゴリズムdf-pnのすべて | やねうら王 公式サイト

    将棋AIで用いている詰将棋ルーチンにdf-pnというアルゴリズムがある。 これは、proof number(証明数)、disproof number(非証明数)を用いて効率的に探索を行い、その局面が詰むか、詰まないかを判定できるとても強力なアルゴリズムである。 将棋ファンなら『脊尾詰』と言う「ミクロコスモス」(1525手詰)を解く詰将棋専用ソフトについて一度ぐらいは聞いたことぐらいあるだろう。これは、脊尾さんが大学時代に作成されたプログラムである。そこに使われていたのが脊尾さんが考案されたdf-pnというアルゴリズムである。 df-pnに関しては、脊尾さん自身の論文(1998年)があるものの、要点しか書かれておらず、いまのようにGitHubにソースコードがあるわけでもなく、その詳細については長らく謎に包まれたままであった。(この脊尾さんの論文では、証明数のみを用いており、非証明数は陽には出

  • 『Winny』の金子勇さんの失われたED法を求めて - Qiita

    結論から言うと、この記事を読んだ @pocokhc (ちぃがぅ)さんという方が金子勇さんが書いたED法のサンプルプログラムを見つけてくださいました。 ちぃがぅさんの記事はこちら 自分で解明したかったという気持ちも無いことは無いですが、バズった時点で誰かが実装してくれそうな気はしていました。新卒からIT業界に入って4年目が始まったところですが、業務以外で初めて業界にコントリビュートできた気がして嬉しいです! 追記ついでに、謝罪します。初回公開時に記事タイトル含め文中で何か所か「Winney」と書いてしまっていた箇所がありました。失礼いたしました。誤字修正してあります。指摘してくださった何人かの方に感謝申し上げます。 はじめに 今更ですが映画『winny』を見ました。 劇中で、金子勇さんのセリフにED法という聞いたことのないアルゴリズムが登場しました。 『このNekoFightにはAIを搭載

    『Winny』の金子勇さんの失われたED法を求めて - Qiita
  • Winnyの金子さんのED法について | やねうら王 公式サイト

    Winnyの金子勇さんが考案された機械学習アルゴリズムED法を再現して実装した人がいていま話題になっている。 『Winny』の金子勇さんの失われたED法を求めて…いたら見つかりました https://qiita.com/kanekanekaneko/items/901ee2837401750dfdad いまから書くことは私の記憶頼りなので間違ってたらコメント欄で教えて欲しい。 1998年ごろだと思うのだが、私はWinnyの金子勇さんのホームページの熱心な読者だった。(ページも全部保存してたので私のHDDを漁れば出てくると思うが、すぐには出せない。) Winnyのβ版が発表されたのが2002年なのでそれよりはずいぶん前である。 当時、金子さんはNekoFightという3D格闘ゲームを公開されていた。そのゲームには、自動的に対戦から学習するAIが搭載されていた。 当時の金子さんのホームページの

  • 当たり判定について

    皆さん、こんにちは。VALORANTのゲームシステム開発チームでソフトウェアエンジニアをしているKevin Leeです。ゲームシステム開発チームは移動や戦闘、入力など、VALORANTのゲームプレイの核となる多くのシステムの開発を担当しています。この投稿では、FPSのゲームプレイにおける中心的システムのひとつである、当たり判定について説明します。 VALORANTのように1発のヘッドショットが勝負の明暗を決めるようなゲームでは、当たり判定はとても重要なシステムとなります。私たちの開発者としての目標は、プレイヤーが銃を撃った際にその結果が明白で、違和感がなく、何よりも正確であるようにすることです。 しかし現実には、当たり判定がおかしいと思われる動画を添えたメッセージを受け取ったり、投稿を見かけることもあります。私たちはこれらの報告をすべて深刻に受け止め、各動画を1フレームずつ確認して、システ

    当たり判定について
  • オンラインゲーム 10年の進化と同期方式の選び方 - きゅぶろぐ

    オンラインゲームを作ろう!と思ったことがある方は、 こちらの講演記事を1度は見たことがあるのではないでしょうか。 www.4gamer.net こちらの講演は、具体例を交えながら非常に分かりやすくオンラインゲームの主な同期方式が説明してあり、 2024年現在でもオンラインゲームの基礎を学ぶ資料として真っ先に名前を上げる最高の資料です。 しかしながら講演は2010年のものであり、オンラインゲームはこの10年余りで進化しています。 この辺りの進化の話を簡単にまとめつつ、オンラインゲームの同期方式の選び方を紹介します。 (上記講演記事の知識/用語を前提としているため、先に上記記事をお読みください。) オンラインゲームの民主化について 技術の話をする前に。 近年、「マルチプレイヤーゲーム」と聞いてオフラインの画面分割ゲームを想像する人はいないと言って良いほど オンラインゲームは民主化されてきました

    オンラインゲーム 10年の進化と同期方式の選び方 - きゅぶろぐ
  • ナンプレ (いわゆる数独) の問題生成アルゴリズムの話。 | blog.dnpp.org

    概要 iOS と macOS ネイティブなアプリを作った ので、技術的な話を書きます。 詳細 拠所無い事情からコンピュータサイエンスというか基的なアルゴリズムの実装の勉強を leetcode でやっていた時期が 2023 年の 9 月頃にありまして、「折角勉強したんだし何か作るか」という気持ちでアプリを作りまして…。 リリースまでなんとか持っていった訳なんですが、実装だけならいいものの、ゲームデザインとか、 Web サイト作成とか、アイコン含むいわゆるデザイン的なものとか、そういうのも当に 1 人で全部やってたからなんやかんや 3 ヶ月かかってしまって、まぁ大変だったんですがそこそこ満足な出来栄えになったので是非ダウンロードして触ってみてください。 数独はニコリの登録商標となっているためアプリの名称はナンプレとしていますが、この記事はアルゴリズムの技術的な解説やゲームデザインの話といっ

  • Othello is Solved 論文解説 (私見) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 今朝起きたら、とんでもない論文を見つけました。 Othello is Solved ゲームの オセロが"解かれた(弱解決)" というのです。飛び起きました。それで、16時まで二度寝してから読みました。 注意すべきは、この論文が査読を経て公開されているわけではないこと、つまり形式上特にチェックを受けたものではないことです。ただ、タイトルからして非常に衝撃的ですので、個人的に読んでみました。この記事では、私がこの論文(およびソースコード)を読んでわかったことを、なるべくわかりやすくまとめます。随時更新します。 余談ですが、このタイトルはどう

    Othello is Solved 論文解説 (私見) - Qiita
  • アタリ・ポンの回路 - k-igrsの日記

    アタリのポンは1972年に発表された。設計者はアラン・アルコーン。 汎用CPUがない時代なので(intelの8008が1972年)TTLロジックで構成されている。 オブジェクトの移動、当たり判定、得点表示、フィールド描画等をすべて論理回路で実現している。 ポンの回路を解析している人がいてその説明からどのようにゲームを実現しているか見てみる。 参考にしたpdfファイル。 http://www1.cs.columbia.edu/~sedwards/papers/edwards2012reconstructing.pdf ポンは 二人用ゲーム パドルを操作してボールを打ち合い相手がミスをしたら得点 という単純なもの。ゲーム画面は Wikipediaポンより 画面から 左右にプレイヤーが操作するラケットがあり上下に移動する ボールはラリーによって左右に移動する 画面上部に得点が描画されている 画面

    アタリ・ポンの回路 - k-igrsの日記
  • オンラインゲームでは、お互いの位置がだいぶ離れていても (日本とブラジルくらい) 何故素早く同期できるのですか?どのように通信しているのでしょうか?に対するNakamura Yutaさんの回答 - Quora

    回答 (8件中の1件目) 通信するデータ量が増えれば増えるだけ、遠距離間における反応は遅くなることは感覚的に理解できるのではないかと思います。 そういう意味で、反射速度を上げてゲームむを滑らかに遂行させるためには、なるべく通信するデータは少ないのがベストです。 なので、単位時間当たりのプレーヤーの位置、入力コマンド、標的の座標といった、操作に関わるデータを何かしらのデータ圧縮を用いて通信し、そのうえで遠隔地にいるプレーヤー同士の対戦を実現しているのだと思います。 その時に、なるべくデータを小さくするためにある程度の操作などをテーブルにまとめておいたのを用意し、一回のデータで複数のコ...

    オンラインゲームでは、お互いの位置がだいぶ離れていても (日本とブラジルくらい) 何故素早く同期できるのですか?どのように通信しているのでしょうか?に対するNakamura Yutaさんの回答 - Quora
  • ポケモンの最強タイプを考える【グラフ理論】 - Qiita

    導入 先日、ポケモンの最新作『Pokémon LEGENDS アルセウス』が発売されました。ポケモン愛好家の中で密かに話題を集めたのが、新たに登場したポケモン「ゾロア(ヒスイのすがた)」と「ゾロアーク(ヒスイの姿)」のタイプです。なんと驚くべきことに、両者のタイプは未だ登場したことのなかった「ノーマル・ゴースト」だったのです。 ポケモンを知る人には説明不要ですが、これはノーマルタイプの唯一の弱点であるかくとう技をゴーストタイプで無効化しながら、ゴーストタイプの弱点であるゴースト技をノーマルタイプで無効化するという、非常にバランスのとれた、まさに夢のような複合タイプです。一部では、この「ノーマル・ゴースト」こそ最強の組み合わせなのではないかと噂されました。 しかし、果たして当にそうなのでしょうか? ポケモンのタイプは全部で18種類あり、一匹のポケモンは二つまでタイプを持つことができます。考

    ポケモンの最強タイプを考える【グラフ理論】 - Qiita
  • 世界四連覇AIエンジニアがゼロから教えるゲーム木探索入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 書籍化 記事を元に ゲームで学ぶ探索アルゴリズム実践入門~木探索とメタヒューリスティクス という書籍を出版することになりました! 記事を読んで気になっていただけたらご購入をご検討いただけるとうれしいです! この記事で得られる技術 ゲームルールに適した探索アルゴリズムを選択する ゲーム木探索をするのに適したクラス設計 主要なゲーム木探索アルゴリズムの実装 この記事の特徴 汎用アルゴリズムの実装例による他ゲームへの応用力と、実際に動作可能なサンプルコードによる具体的実装イメージの両視点でわかりやすくした(片方しか記載のない記事

    世界四連覇AIエンジニアがゼロから教えるゲーム木探索入門 - Qiita
  • 頭が痛くならない「ダメージ計算式」の基本の話|だらねこ

    戦闘のあるゲームを作るなら、考えないといけないのがダメージの計算式。でも、計算式のコツとか基とか調べると、小難しそうな話が出てきて め、めんどくせぇ~ってなったりしませんか?私はなります。色んな計算式とその特徴を羅列されても、よくわかんなくなっちゃう。 とはいえ私もゲームデザイナーの端くれなので、ダメージ計算式を考える機会がそれなりにあります。そして他人の作った変な計算式に苦しめられることも、いっぱいあります。泣きたい。 大元の計算式が悪いと、それを利用してバランス調整しても苦労する事が多いんですよ。なので、そんな悲劇を少しでもい止めるためにもですね。 この記事では 数字が苦手な文系の人でも、なんかいい感じに計算式を考る…とっかかりになることを目指して書いていこうかと思います。 ※こういう計算式がある!選んで使え!!という記事ではありません。 ※計算式を考える時、こういうのを把握して、

    頭が痛くならない「ダメージ計算式」の基本の話|だらねこ
  • 「施策デザインのための機械学習入門」を完全に理解したサトシくんがポケモン捕獲アルゴリズムを実装する話 - kanayamaのブログ

    プロローグ ストーリー編 第1章 感銘 step1. KPIの設定 step2. データの観測構造をモデル化する step3. 解くべき問題を特定する step4. 観測データのみを用いて問題を解く方法を考える step5. 機械学習モデルを学習する step6. 施策を導入する 第2章 絶望 第3章 反省 第4章 再起 step1(再) KPIの設定 step2(再) データの観測構造をモデル化する step3(再) 解くべき問題を特定する step4(再) 観測データのみを用いて問題を解く方法を考える step5(再) 機械学習モデルを学習する step6(再) 施策を導入する 第5章 俺たちの戦いはこれからだ! 実装編 準備 擬似データの生成 意思決定モデルの学習 モデルのオフ方策評価 モデルの真の性能の評価 まとめ この記事を読んだ方はこんな記事も読んでいます(多分) @tkana

    「施策デザインのための機械学習入門」を完全に理解したサトシくんがポケモン捕獲アルゴリズムを実装する話 - kanayamaのブログ
  • 高速な詰将棋アルゴリズムを完全に理解したい(完成版) - コンピュータ将棋 Qhapaq

    Qhapaq アドベント将棋記事10日目 今の詰将棋アルゴリズムで最強と言われているハッシュテーブル+df-pn探索(depth first - proof number)による詰将棋アルゴリズムの完全理解を目指していきます。 参考文献: memo.sugyan.com 【proof numberとは】 proof numberとは平たく言えば詰将棋専用の盤面評価値みたいなものです。通常の盤面評価値と違って、詰み証明のための評価値(pn)と不詰証明のための評価値(dn)があります。pn、dnは「この局面の詰み(proof number)/不詰(disproof number)を証明する為に調べなければならない局面の数」であり、値が小さいほど詰み/不詰に近いという扱いになります。そして、詰み /不詰が証明された局面についてはpn、dnは0になります。局面のpn、dn(厳密には非0のpn、dn

    高速な詰将棋アルゴリズムを完全に理解したい(完成版) - コンピュータ将棋 Qhapaq
  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

    スーパーマリオのジャンプのアルゴリズム - Qiita
  • 地形プロシージャル生成 - パーリンノイズアルゴリズム - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    地形プロシージャル生成 - パーリンノイズアルゴリズム - Qiita
  • wiki.denfaminicogamer.jp | ゲームAI用語辞典

    この用語辞典の目的 † これまで数十年慣れ親しまれてきたビデオゲームの世界にも、AIVRなど新しい技術の波が寄せて久しいことは、熱心なゲームプレイヤーの皆さまはお気づきでしょう。 「好きなゲームについて、もっと深く理解したい」、「このゲームがどうしてこれほどまでに面白いのか理由が知りたい」など、ゲームについて一歩踏み込んで考えるとき、前述の新しい技術についても、より広い知識と深い理解が必要になります。 そういう思いの一助になればと、この用語辞典では、ゲームに使われているAIに関する記事を読むときに頻出する言葉を解説しています。 単純に用語意味が知りたい方をはじめ、その概念やシステムが登場してから今日に至るまでの経緯や歴史が知りたい方や、ビデオゲーム内で実際にどう使われているかを知りたい方に向けて、そして開発者や研究者の方に有用なコードを貼るなどできるコメント欄の設置など、ひとつの項目内で

    wiki.denfaminicogamer.jp | ゲームAI用語辞典
  • Pythonを使って、ボードゲームで勝つための確率計算をしてみた -

    秋山です。 最近、社内でボードゲームが流行っていて、お昼休みにみんなで集まって遊んだりしています。 大体どんなゲームをやっていても、みんな途中から「誰が何手前でこうしていればああなっていた」とか「あのときこうしていたらこうなっていた確率はどれぐらい」とか、そんな話で盛り上がってしまって全然終わらなくなってしまいます。エンジニアが多いからなのか…。 そこで今回はPythonを使って、「カタン」というボードゲームで勝つためのヒントが何か得られないか、いろいろ計算して遊んでみようと思います。 カタン スタンダード版 出版社/メーカー: ジーピー発売日: 2015/11/30メディア: おもちゃ&ホビーこの商品を含むブログ (2件) を見る ■Pythonを使ってカタンで勝てるヒントを探してみた カタンのルールは、こんな感じです。 最初に六角形のタイルを並べて作るカタン島が舞台となる。各タイル(土

    Pythonを使って、ボードゲームで勝つための確率計算をしてみた -
  • 「これからの強化学習」1章の内容で三目並べ - Gunosyデータ分析ブログ

    こんちくわ。データ分析部兼サウンドエンジニアの大曽根です。最近は吾光良&The Swingin Buppersのライブに行きました。 今回は4/12に開催した「これからの強化学習」の輪読会の1.3節で紹介した価値反復法のアルゴリズムを、教科書とは異なる例で実装してみました。 開催報告については下記のブログをご覧ください。 data.gunosy.io メジャーなゲームである三目並べを、1.3節にて紹介されているSarsaを用いて学習しました。 教科書とは別の例で実装することで少しでも理解が深まればと思います。 価値反復に基づくアルゴリズム マルコフ決定過程において価値関数を特定の更新式に従って更新する手法です。(今回はSarsaで試しました。) 発表の際には、tの状態の更新式に次の状態 t+1が含まれているところなどがわかりづらいとの質問を受けました。 価値反復に基づくアルゴリズムでは過

    「これからの強化学習」1章の内容で三目並べ - Gunosyデータ分析ブログ