タグ

開発とalgorithmに関するedo_m18のブックマーク (3)

  • 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama

    自分の中のプログラミングの常識というものは、ときどき現実のハードウェアに合わせて調節しないといけない。ハードウェアが進歩し続けているので、コンピュータで簡単にできることと相対的に難しいことのバランスが変化し続けているからだ。ここでは特にストレージにフォーカスして書こうと思う。 昔はメモリが相対的にとても貴重な資源だったので多くのプログラマがメモリを節約することに血道を上げていた。例えばWindowsの初期の頃に設計されたデータ構造には、メモリをバイト単位ででもいいから節約したいという意図の痕跡がいまでも多く見受けられる。DRAMの次に速い記憶装置はHDDだったので、メモリが足りなくなればHDDにデータを保存せざるを得ないのだが、DRAMとHDDのランダムアクセスの速度差は、机の上のの開いているページを見るのと、そのAmazonで注文して到着するのを待つのと同じくらいのスケールで違うの

    「プログラミングの常識」を時々見直す必要性について|Rui Ueyama
  • ゲームAI -基礎編- 『知識表現と影響マップ』

    みなさん、こんにちは! 突然ですが…皆さんには、ひいきにしている ゲームのキャラクターはいらっしゃいますでしょうか。 手ごわいボス敵や頼れるパートナー、愛嬌のある動きをするモンスター達は 一体どのような仕組みで動いているのでしょう? 今回の記事ではそんなゲームの中のキャラクター達を 魅力的に動かす仕組み、AIについて御紹介したいと思います。 改めまして記事を担当させて頂きます、Cygamesエンジニアの佐藤です。 これまでコンシューマ機でのゲームAI開発に携わり、 ゲームならではのキャラクター表現の楽しさを追いかけてきました。 このブログを通じて、皆さんのゲームのキャラクターを より表情豊かに魅力的なものにする方法について、皆さんと一緒に考えていければ幸いです。 今回はゲームAIをデザインするにあたって重要となる、 「知識表現を定義する」というステップと、 知識表現の一つである影響マッ

    ゲームAI -基礎編- 『知識表現と影響マップ』
  • 高速ぼかしフィルタ iPhoneアプリレビュー

    通常のぼかしフィルタは、フィルタをかける画像が大きくなればなるほど、またフィルタのオペレータが大きくなればなるほど 処理時間は指数関数的に増大してしまいます。特にゲームではリアルタイム性が求められるため、 高速なぼかしフィルタのアルゴリズムが必要となります。ここではopenCVを用いて高速ぼかしフィルタのアルゴリズムを説明します。 単純にぼかしフィルタを使用すると、下図のようにフィルタが1px右へ移動したときに赤色のゾーンを再計算する必要があります。 高速化するために、この部分の計算結果を保存しておき、次の計算の時に使用しようというのが基的なアイデアです。 まずは縦列の値C0, C1, C2を先に計算し、それをフィルタ移動先でも再利用します。縦列の値Ciは 各ピクセルの足し算p(i,j-1)+p(i,j)+p(i,j+1)で求めることが出来ます。 フィルタをかけた後の値Sは(C0+C1+

  • 1