見出し画像

REALITYのコマンドいろいろ実装してみた! REALITY Advent Calendar #11

REALITY Advent Calendar 11日目担当のサーバーエンジニアの@sola-msrです!
合宿では久しぶりに温泉に入って、温泉の良さを思い出しておりました。
温泉は神。3日に一度は入りたい。

さて、去年はTwitterAPIを使ってTLから対象のツイートを取得したりしていましたが、今年は実際にREALITYアプリ内で使える何かを作りたいと思い、REALITYのコマンドを色々と実装してみました!

REALITY秘密機能「コマンド機能」とは

ある程度、REALITY歴のあるユーザーの皆さんならご存じかと思いますが、実はREALITYには配信中に使える秘密のコマンドが存在しております。
(※非公式機能)

どんなコマンドがあるか、一部を紹介してみますと、配信中に衣装チェンジができる「/slot」コマンドや、コメントの翻訳機能が使える「/translate」コマンド、メタバースな動画が見れる「/metaverse」コマンドなどがあります。
もし、このコマンド機能の存在を知らなかった方がいらっしゃいましたら、是非使ってみてください!

REALITYの裏側(サーバー)の仕組み

REALITYのサーバーは他の記事でも紹介されているように、マイクロサービスアーキテクチャを採用していて、簡単に言うと、裏では役割ごとに作られたサーバー群が稼働しております。

その中の一つに、配信中のコメント関係の処理をアレコレ行うサーバー(コメントシステム)があるのですが、実は秘密のコマンドの一部は、この部分で実装されています。
(ちなみに、REALITYのサーバーの多くはGoで実装されていますが、コメントシステムはnode.js(Express)で動いていますので、ここで実装されているコマンドはTypeScriptで書かれております。)

コメントシステムくんと仲良くなりたい!

自分が入社してから一年と少し経ちましたが、未だにこのコメントシステムを触ったことがなく、どうせならこの機会に 「自分の考えた最強のコマンドを考えつく限り実装してみよう!」 と思い、実際に色々作ってみました!

コマンドの実装

合宿中に実装したコマンドの内、代表的な3つのコマンドについて紹介していきたいと思います!

コイントスコマンド「/cointoss」

/cointoss ・・・ コイントスコマンド
配信中の決め事とかにいいかも

コイントスコマンドは、「/cointoss」とコマンドを打つと1/2の確率で、
heads(表)」「tails(裏)」が表示されるコマンドです。

このコマンドは、配信中で何か物事を決める際につかわれる想定で実装してみました!
リスナーも使えるようにしたので、工夫次第では色々できるかも・・・?

じゃんけんコマンド「/janken」

/janken ・・・ じゃんけんコマンド

/janken { g | r | c | s | p } ・・・ CPUとじゃんけん勝負(「r=g=グー」、「s=c=チョキ」、「p=パー」)
推しとじゃんけん勝負!
配信中誰もいない時はrealityくんが相手になります

じゃんけんコマンドは、「/janken」とコマンドを打つことで、ランダムでじゃんけんの手「グー(Rock)」、「チョキ(Scissors)」、「パー(Paper)」を表示できるコマンドです。
配信者とじゃんけん勝負とかできたら楽しいかなと思い、このコマンドもリスナーも使えるようにしてみました!

また、「/janken { g | r | c | s | p }」のどれかをつけると、realityくん(CPU)とのじゃんけん勝負もできるようにしてみました!
(パラメータは「r=g=グー」、「s=c=チョキ」、「p=パー」としてます)配信中、誰もいなくなった時の暇つぶしとかにいいかも・・・。

総いいね数表示コマンド「/likes」

/likes ・・・ 総いいね数表示コマンド
いいね耐久配信とかにいいかなと

最後に紹介するのは総いいね数表示コマンドです!
/likes」とコメントを打つと、配信者の現在のいいね総数が表示されます。

たまにREALITYで「いいね耐久配信」をしている方を見かけたりするので、配信枠上での「いいね」数と、配信者の配信開始時点での「いいね」数合計いいね数を出せるコマンドがあったら便利なのではと思い、実装してみました!

おわり

コメントシステムくんと仲良くなりました

今回の合宿での目標だったコメントシステムを触ってコマンドを実装するという目標は達成しました!
欲を言えば、他サーバーにコマンド用の新規APIを作って、凝ったコマンドの実装などをしたかったのですが、そこまで出来なかったのはちょっと悔いです・・・。
次の機会があれば、もう少し凝ったコマンドを実装できたらなと思います!まぁでも総合的には思いつく限りのコマンドが実装できて満足でした!

さて、実はこれらのコマンド、こっそりリリースしてありますので、ユーザーの皆さんも実際に使ってもらうことができます!わいわい!
ぜひ実際に使ってみて、REALITYをもっと楽しんでいただけたらと思います。

明日のアドベントカレンダーは!

明日の12日目は同じくサーバーチームのつよつよ大先輩!うすぎぬさんによる「配信コメントに自動対話botを召喚!」です!
お楽しみに!