ダイスボットにシステムを追加したい!
はじめに
本記事は「TRPGなんでも Advent Calendar 2022」の12月18日の記事です。
ご挨拶
はじめましての方ははじめまして。蜂紫(ほうし)と申します。普段はオンセツールにわかオタクや、ダイスオタクをやっています。
皆さんは「このTRPGシステムで遊ぼうと思ったけど、ダイスボットがなくて遊びづらいなあ……」と思ったことはありませんか?
今回は思ったことがある方、またはこれから思う可能性がある方に捧げる記事となっています。
技術力等に応じて、いくつかのやり方をご紹介しますので、お気軽に読んでいただければと思います。
前提知識
そもそもココフォリアやユドナリウム、Tekeyなどのダイスボットは、共通のダイスコマンドエンジンが使用されています。
BCDiceと呼ばれるこのダイスエンジンは、オープンソース(内容が公開されており、ライセンスの範囲内で自由に改変・再配布が可能)で、貢献者を広く受け入れています。
つまり、この記事を読んでいるあなたも貢献者になれるということです!
ここから先は技術力とやる気に応じて2つに分けて書きたいと思います。
プログラミングしない人
プログラミングしたい人
どちらに進むか決めましたか?
では手元に追加したいシステムのルールブックを持って、先に進みましょう。
プログラミングしない人
まずは下のDiscordサーバーに入りましょう。これはBCDiceのユーザー向けのサーバーで、技術的でない事柄を主に扱っています。
「最初に読んでね🔰」というチャンネルを読んだら、「システム追加要望✨」というチャンネルに移動しましょう。
「システム追加要望✨」チャンネルに追加したいシステムの要望がなければ、あなたがそのシステム追加要望を出すはじめての人です。
早速システムの追加要望の文章を考えましょう。
システム追加要望に必要なものは以下の通りです。
システム名(公式サイトへのリンクもあるほうがよい)
欲しいコマンド(判定、表など)
(表が必要なら)表の中身
表の中身は後からでも大丈夫です。
欲しいコマンドの中身はできるだけ具体的に書きましょう。
「6面ダイスを何個か(個数は変わる)振って、その合計値を参照する。クリティカル値は基本的に12だが、変わりうるので指定したい」や、「6面ダイスまたは10面ダイスを1個振り、目標値以上が出れば成功。目標値は指定したい」といった感じです。
コマンドは複数あっても大丈夫です。「探索と戦闘で違う判定方法なので、コマンドを変えたい」のような要望を出すことができます。もちろん表も別のコマンドになります。
ここまで書けたら投稿しましょう。最初から完璧に作らなくても大丈夫です。不足があれば実際に作ってくれる人が聞いてくれます。質問を受けたらルルブを読んでお返事しましょう。
追加されたら実際に作ってくれた人に感謝しましょう。ありがとうございました。
プログラミングしたい人
共通
まずは下の2つのDiscordサーバーに入りましょう。1つ目がBCDiceのユーザー向けのサーバー、2つ目がBCDiceの開発者向けのサーバーです。
1つ目のサーバーの「最初に読んでね🔰」、2つ目のサーバーの「最初に読んでね」を読みましょう。
それぞれのサーバーの使い方が書いてあります。
読んだら、次のステップに進みましょう。
以下のリンクをご覧ください。
開発と寄稿の流れは上の記事に書いてある通りです。もっと詳細なダイスボットそのもののつくり方は下の記事を参照してください(上の記事内にもリンクがあります)。
こちらの記事にある通り、開発者向けDiscordサーバーは質問を受け付けています。やってみてわからないところ、迷うところ、どんどん聞いてみましょう。メンテナさんたちを筆頭に、貢献者の人たちも質問に答えてくれます。もちろん私も、わかることなら答えます。
ここまでの解説で動くダイスボットのプログラムが作成できたかと思います。ここからは実際にそのプログラムを取り込んでもらうためにする行動になります。
Gitを使う
BCDiceはGitというバージョン管理システムを用いて管理されています。また、GitHubというプラットフォームを使っています。
そのため、GitとGitHubの機能を使うことにより、手間を減らして寄稿することができます。
さて、ここで悲しいお知らせです。
私もGitとGitHubの機能を使って寄稿していますが、実は使い方が説明できるほどわかっていません。
大変申し訳ありませんが、GitとGitHubについてはご自身でお調べいただけると幸いです。
Pull Requestを送ると、レビューされて、修正があれば修正要求が来ます。修正できれば、Mergeされる可能性が高いです。
「Git」「Pull Request」などのキーワードで調べると情報があるかもしれないしないかもしれないです。
私は毎回「Git リモートリポジトリ 追従」で検索しています。全く理解していないので……。
ともあれ、Pull RequestがMergeされれば完了です。お疲れさまでした。
Gitを使わない
私がGitを説明できなかったばかりにこちらを選ぶことになった皆様、大変申し訳ありません。
Gitを使わない/使えない人でも寄稿はできます。
開発者向けDiscordサーバーで直接送るのが現在主流です。開発者向けDiscordサーバーで聞いてみましょう。
こちらの場合も必要であれば質問や修正要求などがあるでしょう。応えることができれば、取り込まれる可能性は高いです。
その後
BCDiceに取り込まれるまでを説明しましたが、BCDiceはココフォリアやユドナリウム、Tekeyなどの裏側で動いているものです。あなたの書いたプログラムはBCDiceに取り込まれた後、BCDiceがリリースされ、各種オンセツールに取り込まれるまでしばらく時間がかかるかもしれません。しかし、あなたの書いたプログラムは長く残ることでしょう。おそらく、待った時間よりはずっと長く。
まとめ
よくわからなかったらDiscordで聞こう!
ありがとうございました。よきBCDiceライフを!