atelier:mitsuba

i love UI/UX, Blend, XAML, Behavior, P5, oF, Web, Tangible Bits and Physical computing. なにかあればお気軽にご連絡ください。atelier@c-mitsuba.com

メメントモリの所属ギルドを支える技術、あるいはDiscord botをC#とAzureで作った話。前編。

この内容で3/3にオンラインでお話します。
meetupapp.connpass.com


面白いかどうかは別として、最近メメントモリっていうソシャゲをやっています。
面白いかどうかは別として。。。

mememori-game.com


どうやら、W14サーバーで戦力ランキング5位らしい。

ギルドの総戦力ランキングとしては所属ギルドは1位らしい。


このゲーム、毎日20時45分からギルド間バトルで領地の取り合いが45分間始まります。
上位ギルドにとっては割りと、あるいは唯一のメインコンテンツだったりします。


やっぱり上位になると結構戦略や情報共有がシビアになってきて、ゲームの通信を覗いたりしない・プロセスを覗いたりしない範囲で補助アプリを作ったりしてます。
例えば残り時間に応じて防衛数がいくつ必要なのか暗算していたのをリアルタイムに計算したりとか、防衛優先度をミニマップで表示したりとかとか。


あとせっかく配信するなら、Vっぽく可愛げあるかんじでやりたいなーってなって昔VRoidで作ったモデルに「摘」って名前つけて、WebカメラLeap motionでトラッキングしながら配信したり。

hub.vroid.com


でもって、そういうリアルタイムな状況をギルドメンバーにDiscordで配信しています。
最大50人所属できるギルドで16人程度がよなよなきゃいきゃい言いながら遊んでます。

で、このゲーム。結構通知周りのエクスペリエンスがイケてない割に

・毎日7時45分に、ギルドバトルで拠点を攻略する権利を得られる布告バトル
・毎日9時、12時、15時、18時にショップが更新されて、レアアイテムを買うチャンス
・毎日13時30分、19時30分に、各回1時間限定の3回だけプレイできるレイドバトル
・毎日20時30分に順位が確定するランキングバトル

とかとか1日のタイミングでやることがちまちまあって、結構見落としてたりしがち。


アプリのこういうところの出来があまり良くないので、自分で通知する仕組みを作りたい。
ギルドメンバーの一部は摘にBoothで服を買って送ってくれるぐらい可愛がってくれてる。

じゃあ、摘をDiscordのbotとして生やして、みんなで便利に使ってもらおう!っていうのが事の発端ですね(長かった。
で、出来上がったのがこんなかんじ。


毎日定時実行して、メッセージを送ってくれたり。

キャラ付けしてるので、DiscrodのSlashCommandで擬似的にスパチャ送れたり。

他にも、特定のボイスチャットにいるメンバー全員を、一度に別のボイスチャットに移動させるコマンドを作ったり。

無駄なきゃっきゃしたお遊びから便利コマンドまで。
勉強がてらに作ったのがメメントモリW14サーバー海猫ギルドにいるVメンバーの摘です。


長くなったのでここらで一旦区切って、次回はようやく実装コードに触れていきます。