タグ

GameとAlgorithmに関するtyosuke2011のブックマーク (13)

  • 【Unity】マリオっぽいゲームを作るのに必要な5つのこと - おもちゃラボ

    ファミコンの横スクロールマリオの挙動をUnityで作ってみました。Physicsに全ておまかせ・・・というわけにはいかず、思っていたよりも大変です(笑)ということで、今回はそのレポートを書いてみます! 今回の記事では、Unityでマリオの挙動を作るのに必要な項目を「ジャンプ編」「衝突判定編」「アニメーション編」「横スクロール編」「入力デバイス編」の5つに分けて紹介していきます。 ジャンプの挙動編 ジャンプボタンを押しっぱなしにしたときの挙動 ジャンプ後、落下の軌跡 空中で移動できる 当たり判定編 上方向の衝突判定 横方向の衝突判定 めり込み対策 アニメーション編 横スクロール編 コントローラ入力編 まとめ ジャンプの挙動編 マリオのジャンプは普通のジャンプとは異なる点が3つあります。 ジャンプボタンを押し続けると、ジャンプの高さが変わる ジャンプの軌跡は放物線ではない 空中で左右キーを押す

    【Unity】マリオっぽいゲームを作るのに必要な5つのこと - おもちゃラボ
  • 遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える | インサイド

    IGDA日は、ゲームAI連続セミナーの第5回を10月27日に開催しました。今回のメインテーマは遺伝的アルゴリズム(GA)とニューラルネットワーク(NN)で、ともに「生物界の法則」をAIの進化・学習に取り込もうという技術です。講師はフロム・ソフトウェアの三宅陽一郎氏です。三宅氏はXbox360用『クロムハウンズ』のAIの開発者で、CEDECでもAIについての講演を行っています。 今回は、遺伝子アルゴリズムやニューラルネットワークによってNPCをよりよくコントロールする(進化させる)ことがテーマとなりました。遺伝的アルゴリズムでは、「遺伝子」を掛け合わせることで多様なふるまいをするNPCを登場させることができます。また、ニューラルネットワークは個別NPCの行動の精度をあげることができます。 ■遺伝的アルゴリズムは分かりやすく使いやすい 遺伝的アルゴリズムは「集団を一定の方向に進化させる方法」

    遺伝的アルゴリズムとニューラルネットワーク、ゲームAIによるキャラクタの「進化」を考える | インサイド
  • ゲームAI連続セミナー「ゲームAIを読み解く」 第4回 レポート

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    ゲームAI連続セミナー「ゲームAIを読み解く」 第4回 レポート
  • キャラクターの学習から,自然なアニメーション作りまで。さまざまな分野で活躍するAIの魅力を伝える「スクウェア・エニックス AIアカデミー」レポート

    キャラクターの学習から,自然なアニメーション作りまで。さまざまな分野で活躍するAIの魅力を伝える「スクウェア・エニックス AIアカデミー」レポート ライター:箭進一 スクウェア・エニックスは,2014年9月24日,「スクウェア・エニックス AIアカデミー」の締めくくりとなる第5回講演を行った。スクウェア・エニックス AIアカデミーとは,同社のテクノロジー推進部が中心となり,事前の審査で選ばれた学生30名弱に向けて,ゲームAIに関する講義を行う学習会のようなものだ。誰でも参加できるというわけではなく,参加希望者は事前に小論文を提出しなければならないのだから格的である。 2014年7月から9月にかけ,全5回,各回3時間のカリキュラムが組まれており,講義のあとにワークショップを行うという構成となっていた。第1回の様子はこちらの記事ですでにお伝えしているので興味のある方は参照されたい。 9月2

    キャラクターの学習から,自然なアニメーション作りまで。さまざまな分野で活躍するAIの魅力を伝える「スクウェア・エニックス AIアカデミー」レポート
  • 自動生成迷路

    迷路自動生成アルゴリズム プログラムによる迷路の自動生成の解説ページです。 どちらかというと大きな迷路を生成する事に興味があり、ゲームソフトで使われる迷路とは観点が異なっています。 下記のソフトをダウンロードして実行すると、棒倒し法と穴掘り法と壁延ばし法の実際の迷路の生成動作を見ることができます。 ダウンロード(Windows用ソフト) 249Kバイト 1.はじめに 自動生成迷路はの基形は方形座標上で、各マスが壁または道から成り立っています。 このデータはプログラム上も2次元配列で簡単に作れ、各マスが壁か道かだけを覚えていればいいので、表現も簡単です。 またこれを画面に反映する際も、道や壁を適当なアイコンに置き換えればいいので、比較的簡単にゲームに使えます。 道の幅は通常1マスです。 2.棒倒し法 棒倒し法は、比較的プログラミングの楽な迷路生成法です。 最初に基となる四角の外壁と、その

  • 深層強化学習:ピクセルから『ポン』 – 後編 | POSTD

    前編はこちら: 深層強化学習:ピクセルから『ポン』 – 前編 起こっていないこと さて、方策勾配を使って生のピクセルから『ポン』をプレイする方法を学びましたが、ご理解いただけましたね。この手法は推測してチェックするという手間のかかるやり方で、”推測”は最新の方策からロールアウトをサンプリングすることを意味し、”チェック”は良い結果を導くアクションを促すこと意味します。大枠では、これは強化学習の問題への最先端のアプローチです。このような振る舞いを学習できるということは感動的です。しかしあなたが直感的にアルゴリズムを理解していて、どのように機能するか知っているとしたら、少しがっかりしてしまうのではないでしょうか。具体的に、機能しないのはどういうところでしょうか。 これと比較して、人間は『ポン』のプレイ方法をどのように学習するでしょうか。おそらくあなたはゲームを見せ、次のように言います。「パドル

    深層強化学習:ピクセルから『ポン』 – 後編 | POSTD
  • せっき~のゲーム屋さん ゲームAIはプレイヤーを虜にできるか? ~アクションゲームにおいて、AIを使って華麗に誤魔化しつつ魅せる手法~

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 2012年8月22日 にあった、CEDECの講演についての記事です。 「ゲームAIはプレイヤーを虜にできるか? ~アクションゲームにおいて、AIを使って華麗に誤魔化しつつ魅せる手法~」 テーマは 「CPUパワーを使い高度なAIを構築するわけではなく、 処理は軽くそれらしいAI をいかに作るのか?」 です。 ・気がつかなければOK ・俺つえー感を演出 ・ちょっとした工夫 ・人間らしく見せるAI ・賢く見えるAI について解説。 -------------------------------------------------- ●気がつかなければOK ユーザーは自分が動かしているキャラに集中していて 敵AIにはそれほど意識を向けていない と言う事を利用している。 画面外のキャラや

  • 年の瀬!リアルタイム通信ゲームサーバ勉強会

    17. ■ 1.3.負荷テストってどうやってるの? ■モノビットエンジンのダミークライアント Linuxで動作するダミークライアントのスケルトンを提供しています。 パッケージ構成 dummy_client_base/ => ダミークライアントのベースプログラム dummy_client => ダミークライアント実行ファイル dummy_client_multi.sh => dummy_client を複数プロセスで起動するためのシェル dummy_client_start.sh => ダミークライアント起動シェル dummy_client_stop.sh => ダミークライアント停止シェル setup.sh => 初回のみ実行するシェルスクリプト dummy_client.sh => サーバーのビルドや起動/停止を行うシェルスクリプト log/ => ダミークライアントがプロセス単位で出力

    年の瀬!リアルタイム通信ゲームサーバ勉強会
  • JavaScript でオセロを実装する(原始モンテカルロAI編) | Webシステム開発/教育ソリューションのタイムインターメディア

    以前、オセロの対戦AIの作成しましたが、そこでは実装を簡略化する為に盤面の価値を 盤面の価値 = 自分の石の数 – 相手の石の数 という単純な方法で決めていました。 でも、これには問題があります。 同じ石でも配置場所によって価値は異なるはずです(例: 角は最強)。それが考慮されていません。ゲーム終盤になってくると石の数が重要になってきます。でも序盤から石の数を重視するのは方向性としておかしいです。 という訳で、 序盤から中盤では石の配置場所を重視する終盤では石の数を重視する 形で盤面の価値を算出すれば、結構良さそうなAIになりそうです。 しかし、今度は 「序盤」「中盤」「終盤」をどのように区別するのか?石の配置場所の強弱はどう決めるのか?同じ配置場所でも周囲の状況次第で強弱が異なるのでは? という問題が出てきます。これは作るのが面倒臭そうです。 どうにかしてお手軽かつそこそこ強そうなAI

    JavaScript でオセロを実装する(原始モンテカルロAI編) | Webシステム開発/教育ソリューションのタイムインターメディア
  • ゲームプログラミング - ゲーム創作場

    [2013.10.05] 点と平面の距離 平面上の最近点 [2013.09.29] 点と三角形の内外判定 点と三角形の当たり判定をします。 [2013.09.28] ポリゴンの表裏判定 OPenGLとDirectXで混乱した。結局一緒なのかー。 [2013.09.27] 十字キーと8方向キーの方向判定 スマホで仮想十字キー作ったりドラッグ方向の判定にどうぞ。 [2013.09.26] 2線の交点を求める方法 3次元でも2次元でも大丈夫な2線の交点を求める方法です。 [2013.02.16] お詫びと訂正。 斜方投射で説明していた式に誤りがありました。ご指摘いただいた方ありがとうございます。 http://www.sousakuba.com/Programming/algo_dandoukeisan2.html 旧 新 ルートの中のプラスマイナスが逆でした。 [2012.11.30] 平面と

  • 第10回 麻雀の役を判定する:ITpro

    図1に示す(1)から(3)までの麻雀(マージャン)の手牌があります。「あがり牌」はすべて山からツモったものとし,リーチはかけていません。またドラやハイテイ*1なども関係ないものとします。これらの役を判定して,親の場合の点数を計算するプログラムを作ってください。 「ややこしや~ややこしや~」というのは野村萬斎ですが,思わずそううなってしまうことがプログラミングをしているとよくあります。今回の麻雀の役判定は,考えれば考えていくほどややこしく,そうしたものの代表と言えるでしょう。排他処理や優先順位が複雑にからんでいて一筋縄ではいきません。 今回はややこしい組み合わせを解決する方法を考えてみます。麻雀になじみのない方も,ちょっとしたパズル気分で試してみてください。 麻雀の役を考える 麻雀を知らない方のためにルールをおおざっぱに説明しておきましょう*2。麻雀の牌には,大きく分けて「萬子(マンズ)」「

    第10回 麻雀の役を判定する:ITpro
  • https://www.ic-net.or.jp/home/takaken/nt/light/light2.html

  • 第1回 ナンプレを解いてみよう

    ナンプレ(ナンバープレイス,数独)というパズルゲームがあります。図1を見てください。全体では9×9のマス目があり,その中が3×3のマスに分かれています。縦横の列に1~9までの数字がそれぞれ一つずつ入ります。また,3×3のマスにも1~9までの数字が一つずつ入ります。このルールで空白のマスを数字で埋めるアルゴリズムを考えてください。 NHK教育テレビの「ピタゴラスイッチ」という番組をご存知でしょうか。「ある物は,ある考え方で構成されている。その考え方はほかにも使われているから,そうした基となる考え方を知ろう」という趣旨に基づいて,考え方や物の成り立ちを児童向けに教える,とても面白い番組です。児童向けなのに周りのプログラマたちはだいたい見ています(笑)。 この番組の制作には,「だんご3兄弟」の作詞者として著名な佐藤雅彦氏が参加しています。佐藤氏の著書「毎月新聞」(毎日新聞社)には,要約すると以

    第1回 ナンプレを解いてみよう
  • 1