タグ

pythonと*gameに関するsh19910711のブックマーク (9)

  • 自己対戦で強化学習する三目並べ AI をPyTorchで実装 - Qiita

    PyTorch の社内勉強会の題材にしたいと思い立ち、畳み込みニューラルネットワーク(Convolutional Neural Network, CNN)を用いた自己対戦型強化学習の三目並べ AI を実装したので公開します。見通しの良いシンプルな実装を目指しました。結局、それなりのコード量になってしまいましたが。 動作環境 Google Colaboratory の CPUランタイムにて動作を確認しました。 概略 おおまかな処理フローは次図の通りです。盤面情報を受け取った先攻方策と後攻方策は、○×を書き込む場所を返します。この先攻方策と後攻方策に AI を実装し自己対戦させます。 盤面情報は、空白マスをゼロ、先攻 ○ を+1、後攻 × を-1とした形状 (H,W)=(3,3) の二次元配列とします。 盤面座標は、場合により二次元座標と1次元に展開したフラット座標を使い分けます。 三目並べの

    自己対戦で強化学習する三目並べ AI をPyTorchで実装 - Qiita
    sh19910711
    sh19910711 2024/04/25
    "見通しの良いシンプルな実装を目指しました。結局、それなりのコード量になってしまいました / 盤面情報を Pandas の DataFrame 形式に変換し Notebook の組み込み関数 display関数にて表示、更新 / handle = display(df, display_id=True)" 2023
  • 機械学習の知識がないけどゲームAIを作って唐揚げを大量に食べる|柞刈湯葉

    世は空前のAIブームである。DeepMind の AlphaGo が囲碁のトッププロを負かしてから5年、そのへんのコンビニでも「AI を利用した」「AI で設計した」という文字があふれるようになった。 自分も以前 TensorFlow のサンプルコードを丸写しして手書き文字認識のプログラムを書いたものだが、原理がよくわからないので「AI を作ってる感」がわかないし、機械を学習させているというより機械に学習させられている感が否めない。できれば複雑なライブラリを使わず、自分でゼロから作れる単純なもので「AI してる」という実感を得たい。 「AI してる」感とは何なのかといえば、おそらくAIの成長過程が見えることだろう。となればゲームAIがわかりやすい。自分の書いたプログラムが成長していくのは見ていて楽しいし、ゲームであればその成長が実感しやすい。 とはいえオセロやブロック崩しのようなものを作る

    機械学習の知識がないけどゲームAIを作って唐揚げを大量に食べる|柞刈湯葉
    sh19910711
    sh19910711 2024/04/21
    "TensorFlow: 機械を学習させているというより機械に学習させられている感が否めない / できれば複雑なライブラリを使わず、自分でゼロから作れる単純なもので「AI してる」という実感を得たい" 2021
  • 【Unreal Engine】強化学習を行う方法を調べてみた - Qiita

    目次 1. Unreal Engine上で強化学習を行いたい理由 2. 各種手法の比較 2-1. 内部実行系の手法 以下の4つの方法について紹介します。 ・Python Editor Script Plugin ・UneralEnginePythonPython Foundation Packages ・Neural Network Inference 2-2. 外部通信系の手法 以下の4つの方法について紹介します。 ・Mind maker ・UE4ML ・ML Adapter ・Learning Agent 3. 結局何を使えばいいのか ※記事中のUEはUnreal Engineの略です。 1. Unreal Engine上で強化学習を行いたい理由 強化学習は、機械学習の一分野であり、エージェントが環境と相互作用しながら、試行錯誤を通じて最適な行動を学習する手法です。ゲームエンジンと

    【Unreal Engine】強化学習を行う方法を調べてみた - Qiita
    sh19910711
    sh19910711 2024/04/17
    "Python Editor Script Plugin: UE5から標準で搭載 + Pythonをゲーム内ターミナル,テキストファイル,BluePrintから実行 / MindMaker: UE上で取得したObservationsとRewardの値を外部の実行ファイル(.EXE)へ送信し,そこからActionを受け取る" 2023
  • 社内AIプログラミングコンテストで優勝したゲームプレイAIの紹介 | GREE Engineering

    こんにちは、応用人工知能チームの辻です。 最近は計算リソース、データ量、アルゴリズムの改善によって簡単に精度の高いAIが利用できるようになりつつあります。しかし、現状では全てのタスクにおいてAIを利用すればいいわけでもありませんし、リソースの制限もあるため、特性を理解して上手に応用することが重要です。そこで、社内ではAI応用のための知見や環境を積み上げていく機会を増やす取り組みを行っています。 先日、取り組みの一環でゲームプレイAIのプログラミングコンテストが開催され、約20チームが参加して盛り上がりました。このコンテストで優勝したゲームプレイAIについて紹介します。 AIによるゲームプレイ動画です。 コンテスト概要 AIにアクションゲームなどのデバッグの一部を任せられるかどうか検証したいという考えもあったので、ゲームプレイAIが対象として選ばれました。ゲームAI用に変更せずに画面情報

    社内AIプログラミングコンテストで優勝したゲームプレイAIの紹介 | GREE Engineering
    sh19910711
    sh19910711 2024/04/03
    "Universe: ゲームはdockerコンテナで実行 + 報酬サーバとVNCを通じて、画面情報および報酬の取得とマウスやキーボードによる操作 / 似たようなプロジェクトとしてSerpent AIもあります" 2017
  • レトロゲームエンジン「Pyxel」でドラクエ1つくってみた|frenchbread

    Pyxel(ピクセル)というPython用レトロゲームエンジンがあります。 画面サイズ256x256で発色数は16色、サウンドはシンプルな波形の音色を最大4音まで発音可能、といったシンプルな仕様で、扱いやすいPythonのコードを用いた低学習コストのゲーム開発ができます。 最近になってWebアプリ化できるようになったため、開発した作品は誰にでも気軽にプレイしてもらえるようになりました。すごいですね。 (2023/6/10)以前にWeb版を公開していましたが、現在、公開は取り下げています。 以下、この記事の内容はプレイいただく方向けの説明となります。 来の私の目的は、ゲームそのものをプレイしてほしいというより、作り手(or 作り手になりたい方)向けに情報・ノウハウ共有することなのですが、長くなるので別記事として順次書いていきます。 Pyxel版の特徴外見はFC版ドラクエ1とはいえ令和時代の

    レトロゲームエンジン「Pyxel」でドラクエ1つくってみた|frenchbread
    sh19910711
    sh19910711 2023/04/16
    "PyxelというPython用レトロゲームエンジン / 最近になってWebアプリ化できるようになったため、開発した作品は誰にでも気軽にプレイしてもらえるようになりました"
  • Webカメラの被写体で遊ぶどうぶつタワーバトル風ゲームを作った

    作ったもの Webカメラの被写体で遊ぶ、どうぶつタワーバトル風のゲームを作りました。 遊んでいる様子 (よろしければstarを頂けると幸いです) 有名なので知らない方は少ないとは思いますが元ネタのゲームはこちらです。 動機 物理演算を使った何かを作りたい 大学の学園祭で展示したら盛り上がりそうなものを作りたい 技術 Python Arcade Library Python Arcade LibraryというPythonでの2Dゲーム開発用ライブラリを使用しました。 Pythonで2Dゲーム開発といえば未だにPygameが有名ですが、公式ドキュメントのPygameとの比較にあるようにPygameよりArcadeの方が優れている点が多いように感じます。 たとえばスプライトのヒットボックス(当たり判定)を自動で設定してくれたり、 画面スクロールを簡単に実装できたりなど、 便利な機能が沢山あります

    Webカメラの被写体で遊ぶどうぶつタワーバトル風ゲームを作った
    sh19910711
    sh19910711 2022/08/20
    "Pymunk: 2D物理演算ライブラリ / 素人が用意した環境では照明や光の反射などのせいで大抵うまくいかないことが多い + 仮想カメラを経由させてプレビューを見ながら色補正のパラメータを調整"
  • ぷよぷよのプレイ動画を解析して棋譜を生成する - @nojima's blog

    この記事は KMC アドベントカレンダー の 3 日目の記事です。 昨日は PrimeNumber さんの PEZY-SC/SC2を使った話 でした。 背景と問題 ぷよぷよの上達を阻む問題として「自分の手が良いのか悪いのかわからない」という問題があります。 ツモが毎回ランダムであるため、仮に悪い手を指したとしてもその後のツモに救われて何とかなる場合もありますし、仮に良い手を指したとしてもその後のツモが悪いと形が崩れてしまう場合もあります。 ある手が良いか悪いを知るためには、何度も試行を重ねて統計的に判断しなければなりません。 これは非常に時間がかかります。 幸いなことに、現在多くの上級者が YouTube にプレイ動画をアップロードしています。 プレイ動画を解析して上級者がある局面でどういう手を指したかどうかを知ることができれば、それを使って自分のプレイを評価できるのではないでしょうか?

    ぷよぷよのプレイ動画を解析して棋譜を生成する - @nojima's blog
  • レトロゲームエンジンPyxelでプログラミングを始めよう!(2020.4.4版) - kitao's blog

    在宅勤務、週末の外出自粛と、何かと家にいることが多くなりました。 厳しい状況が続きますが、まとまった時間を確保して、新しく何かを身に着けるにはいい機会と言えるかもしれません。 そこで、在宅の時間を活用して、Pythonの使い方やゲームプログラミングを覚えたいという方に向けて、最新版に対応したレトロゲームエンジンPyxelの紹介記事を再作成してみました。 古い紹介記事を読んで、以前のインストール方法を試して詰まっている方もたまに見かけますので、こちらの最新版の紹介記事を参考にしていただければと思います。 Pyxelとは Pyxel(ピクセル)は、昔ながらのドット絵タイプのゲームを簡単に作れる「レトロゲームエンジン」です。 GitHubでオープンソースとして公開されており、2018年7月30日のリリース後4日で、GitHubのデイリーランキングで1億プロジェクト中1位を獲得。現在は6800スタ

    レトロゲームエンジンPyxelでプログラミングを始めよう!(2020.4.4版) - kitao's blog
  • スーパーファミコンのソフトをTensorFlowで学習させてみる! - Qiita

    学習方法 ゲームキャプチャ + アクションで報酬(game score)を与えそれを学習させる。 game scoreの取得については、ROMのバイナリ情報を解析する必要があります。 この辺はあまり詳しくありませんが海外にROMの情報が出ているとのことです。 ニューラルネットワークアーキテクチャ 学習関数は定番のReLU。教科学習のアルゴリズムは勾配降下法(Adam)でやってます。 ReLU 勾配降下法 ニューラルネットワークの外観 手順 ⅰ.エミュレータの準備 エミュレータの動作に関しては処理が複雑なのでgitにあげておきます。 https://github.com/tsunaki00/siva_game ※ 他のマシンで試してないので動くかわかりません。 エミュに興味あるかたは海外のgitなどをぐぐってみてください! ⅱ.ROMの抜き出し 上記にも記載しましたが、ROMの抜き出し方法は

    スーパーファミコンのソフトをTensorFlowで学習させてみる! - Qiita
  • 1