久しぶりの進捗報告記事です。
前回の進捗報告が去年の8月だったのでざっくり半年経ちました。もしかしたら「あの人は諦めたのか?」と思われる方もいたかもしれませんが、そんなことはなく、ちまちま頑張っていました。
とはいえ、あまり進められていないのは事実です。とりあえず以下、詳細報告します。
工程と進捗
矢印が当初立てていた予定で、色を塗りつぶしているところが実績です。(クリックすると大きい画像に飛びます、ブラウザの戻る操作で戻ってきてください)
世界大会予選付近は完全にモチベーションをシャドウバースと百鬼異聞録というその時リリースされたゲームに持っていかれて、全く手を付けられていませんでした。
とはいえ、10月は手を付けており、また先日のRAGEが終わってから作業を再開しております。
計画では今月にシミュレータの実装が終わることになっていますが、まったくもってそうはならなさそうです。体感50%くらいの完成度です。
シミュレータ作成に関して、どんなことをやっていたかというと、シャドウバースの処理を分析し、どういう仕組みでシミュレータを構築すればいいのかな、ということを検討していました。
イメージとしては、
- カードを引く処理
- ダメージを与える処理
- 回復する処理
- 交戦する処理
などなど、処理という単位の部品を作るイメージです。
更に、カードの効果がどういう部品で構成されているかも分析し、おおよそ分類分けができました。
ざっくりまとめると、下記です。
- カードをプレイして能動的に処理を進めるもの(ファンファーレとかスペル)
- 何かの条件で受動的に発動し、発動する条件を満たしたときに処理を進めるもの(ターン開始時に~、ラストワードなど)
1.については、プレーヤーが選択するものなどがありますので、そのあたりを整理。2.についてはどんなときに効果が誘発されるかを洗い出して整理しました。
細かくは書きませんが、大雑把にはこんな感じです。
なので、細かい実装を除いて構想的には大体できたかなーというところです。あとはごりごり細かい実装を頑張るだけです。
ちなみにここまでの話は8/16にはなんとなくできていました。
夏休みの成果。なんとなくCUIでシャドバがそれっぽくできるようになった。
簡単なカードしか実装していないけど、骨格はできたと思っている。あとは実を付けていって何とかなるといいな pic.twitter.com/1qp5R1S379— あいいろのもち (@mochida_aiiro) August 16, 2020
10月はその実を付けていって、今大体50%くらいできたかなという感じです。目下の悩みは直接召喚の処理です。適当に頑張ります。
今後の方針
正直シミュレータの実装に疲れてきた(飽きてきた)ので、AIの実装に移ろうと思っています。
今実装できているシミュレータの部分だけでも、デフォルトデッキは組めるのです。
こういうデッキですね。
なので、今組めるデッキを組んで、まずはそれで機械学習させてみようと思っています。
作る全体のイメージは上記です。このうち、シミュレータ以外を実装していきます。
以前の記事(シャドバAIシミュレータの進捗(AlphaZeroの勉強と悩み)[2020/8])で書いていますが、AlphaZeroをベースに作ろうと思っています。そのままは使えないのですが、空白の期間にぼんやり妄想していたおかげでアイディアはできているので試してみたいと思います。
うまくいくといいな。
学習の方針って一度定まれば、おおよそ変えなくていいはずなんです。(ゲームのシステムが変わる可能性があるので、上図のインターフェースの部分は変わり得る)一方、シミュレータは新弾でカードが追加されるたびに、カードを実装したり、新しいシステムを実装したりと大変です。
正直、搭乗のシステムが発表されたときは「新システム導入されたらシミュレータ作るの大変やん!!!」と複雑な気持ちになりました。あと、タイラントオーダーが初の3つ選択カードとして登場したときも切なくなりました。
新しいカードに一喜一憂するのが疲れたので、まずは変動が少なそうなところから実装することで、足場を固めようと思った次第です。
以上、今後の方針ですが、シミュレータの進捗が怪しくなる分、次の世界大会に間に合うか怪しくなってきました。可能な限り日程追いつけるように頑張ります。
作業環境構築
ところで、作業する環境が大事なんじゃないか、と思って色々考えて下記にたどり着きました。
※Amazonより
これを使うことでベッドに座りながらPC作業できるのです!(ノートPC前提)
生活習慣的に、平日は仕事が終わって夕飯食べて入浴して…って流れでベッドに行っちゃうんです。ベッドに行っちゃうと横になってスマホ弄って眠る……実装作業は休日でいいか~疲れてるし~
……それじゃいかん!ちょっとでも作業を進めたい!ベッドにこいつがあればベッドで作業できる!すばらしい!
ということで、私の中で革命が起きました。今もこのブログをこのサイドテーブルを使ってベッドで書いています。とても快適です。
これから今まで以上の速度で実装が進むことを願ってこの記事を締めます。
ありがとうございました。