電脳忍者くん

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

「ドーモ。ニンジャクン=サン。ダークニンジャです」

「ドーモ。ダークニンジャ=サン。ニンジャクンです」

オジギ終了から0.02秒。
ニンジャクンは跳んだ。
後悔は死んでからすればよい。
今は目の前の敵を倒さねばならない!

ドーモ。 日本語以外は忍殺語ブロント語しか使えない、がせです。

あと、オンドゥル語を少々。

 

さて、件の上司がゲームをAIにクリアさせる記事を見てしまった所為で始まってしまった悪夢

もとい夢のプロジェクト『忍者くんをAIにクリアさせる』ですが、

仕事の合間にチョイチョイやってるので全然進んでいないというのが現状。

とりあえず進捗を書いておくかー、という事で。

 

事前準備

ソフトを手に入れる

地元の中古ショップで500円で入手、高くね?

ROMを吸い出す

大分前に個人で購入したパソファミにて吸い出し。

NESエミュレータを導入する

MarI/OのLuaの冒頭にて

— MarI/O by SethBling
— Feel free to use this code, but please do not redistribute it.
— Intended for use with the BizHawk emulator and Super Mario World or Super Mario Bros. ROM.
— For SMW, make sure you have a save state named “DP1.state” at the beginning of a level,
— and put a copy in both the Lua folder and the root directory of BizHawk.

と書かれている。

どうやらBizHawkというエミュレータが必要らしく、ググってみたらTAS向けのエミュレータという事がわかった。

公式サイトからダウンロードしてインストールするが動作せず。

なにやらFIPS準拠の云々かんぬんがガードしているようで・・・。

管理ツールからローカルセキュリティポリシーを開き、ローカルポリシー⇒セキュリティオプション⇒システム暗号化を無効にすればいけるっぽい。

policy

 

動作確認

おお、動いた。

 

ニューラルネットワークの構築

Luaの導入

まずはマリオ向けに作られたLuaを読み込ませる。

mario

マリオなら左上のマップに自機、敵、障害物が表示されている。

 

背景の調整

しかし、忍者くんだとマップが読み込めていないので、調整する必要がある。

ninja

動向の調整

この状態のままでクリアまで持っていくことは可能だが、果たしてそれは人工知能として正しいのか?

データを蓄積して、その中で最適を探し出す。それもアリだけど、神の手ならぬ人間の手も介入したい。

 

クリアを目指す

同じY軸に居続けると、無敵の火の玉が襲ってくる。

マリオのように最端に行ってもゴールクリアではなく、敵を全滅させる必要がある。

人間の手により、「方向性」をつければ人工知能も最適への道をより早く導き出せると考える。

さて、このスクリプト言語を読み解く事ができるのか・・・。

 

 

とりあえず論文を読んでみる。

 

なるほど、わからん。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

SNSでもご購読できます。

コメントを残す