koudenpaのブログ

趣味のブログです。職業柄IT関連の記事が多いと思います。

ダイスボットを作りはじめた

昔、少しTRPGをやっていたこともあってサイコロを転がすという行為が好きだ。

記憶にあるごく初期のプログラム体験も掲示CGIスクリプト*1にサイコロを振る機能を追加した事だ。

今やオンラインでのTRPGプレイは当たり前のもので、それをサポートするダイスボットは欠かせない存在だ。

が、別にそういう実際に便利なボットを作りたい訳ではなく、単にサイコロを振りたいときに振れるようにできるだけのものにしたい。

この思いは数年前からあったのだけれど、最近高まってきたので実行に移した。

作っているダイスボット

最終的には以下のような構成のボットにしたい。

f:id:koudenpa:20200917230438p:plain
MicrosoftBot FrameworkとIoT Edgeを主に使う
VSCodeのdrawioプラグインを試していたのだけれど画像の扱いに完全に失敗した

自分は普段Twitterで雑多なつぶやきをしているので、その延長でサイコロを振れるようにする。

Twitterでボットにつぶやいたら紆余曲折を経てどこか(僕の自宅)にある電動ダイスが動いて、その出目がまた紆余曲折を経てTwitter上で返信される形。

このうちユーザーインターフェースの部分(図中のAzure上のもの)はざっくり作ってあって、 @RealDiceBot として動いている。

異常系処理を完全にサボっているので死んでいたり、開発中で動いてないことも多いけれど、疑似乱数のダイスをTwitterで振ることはできている。

twitter.com

f:id:koudenpa:20200917215429p:plain
作ってる本人がこう思う位には安定していない

今後は実際にサイコロを振る部分(図中のRaspberry Pi上のもの)を作っていきたいと思っている。

IT要素技術

ここからは要素技術の話。ぼんやり考えていることを書きつらねる。

個々の要素技術でやろうとしていることは『やってみた』に毛が生えたようなもので、こいつはすげぇ、というものはない。

自分は興味があることをやってみることが好きなので、試すこと自体が目的になっている。とはいえ稀に仕事で役立つこともある。浅くても色々触っていると『あそこではこんな感じだったな』と参考にする引き出し程度にはなるのだ。

こんなところかな。

ここでやっていっている。

github.com

先はやや長そうなので構想と現状を少しまとめてモチベーションを新たにした次第。

koudenpa.hatenablog.com

これはモチベーション上はそれなりの危機だった。出鼻をくじかれたというかなんというか。行為がアホなので馬鹿か? としか言えない。

*1:CGIスクリプトなので当然Perl。触れてから20年越しで仕事としてPerlを書いていて不思議な縁を感じる