前回の記事のボットゲーム開発について制作裏話を聞きたいという奇特な方がいらしたので、駄文垂れ流し。需要あるのかコレ?
Q.なぜテレグラムのボットを採用したのか
A.単純にいま興味を持っているメッセンジャーアプリだから
昔あったLINEアカウント乗っ取り事件から、脱LINEをしようと他のメッセンジャーアプリを探しているときに見つけた気がする
世界ではWhat’s Appがダントツにユーザー数が多くアクティブユーザー15億くらい。そんな中ユーザー数が伸びてそうなテレグラムを見つけて興味を持つ。
テレグラムはWhat’s Appと比べられることが多いけど、後発なのでまだLINEと並んで2億ユーザーくらいらしい。日本でのユーザー数が少ないのでまだまだ使いづらくはある。
シークレットチャットやボット、チャンネル、ステッカーなど、今後楽しめそうな要素が多いと思っている。なにより余計なニュースや広告などがないので煩わしさがない。
普通はゲームを遊んでもらおうと思ったら日本で利用ユーザーの多いLINEボットを採用するのがセオリーなんだけれども。
ちょっと反省している。
作った経緯
前回の記事に大体書いたけど...
前々からボットで何か面白いものを作れればと思っていた。
技術面で詰まっていたり、あまり面白そうな発想がわかず保留していたけど、今年lainフィーバーだったので、せっかくなのでそれでなにか作ってみようと。
メッセージでの会話だとすると、lainの四方田千砂以外にあるまいと。神様と会話してもイラつくだけだし。(一応神様も今回のボットゲーム内に一言だけ登場してます)
どのように開発したのか
ボットが動作する仕組みは実はよくわかっていない。
とりあえずプログラムをサーバー上においておき、テレグラムのボットと作ったプログラムをwebhookという仕組みで連動させているような気がする。
※ボットの自体は、テレグラムに @BotFather というボットを管理するボットがあるのでそこで簡単に生成できる。
信号(ボットからメッセージ)を送るとプログラムが動作する。そんな感じ。
プログラムが動く状態にすれば、あとは条件によってボットにメッセージを返す処理を入れたりするだけ。簡単。(やり方がわからないうちは結構大変でした)
基本的には進行状況に合わせて判定→メッセージを送信というプログラムを用意して、条件判定ルールとメッセージをひたすらデータベースに登録しておく作りにしてます。
なので、プログラムをいじらなくても(管理画面とか作って)データベースにデータを入れられれば会話パターンを増やすことは可能。
ただマルチシナリオ系の分岐をどう作るのがスマートなのかが分からず、どの判定がどのメッセージと紐付いているかが分かりづらくなってるので、相当調整しないと自分以外メンテしづらい。
シナリオ
ただ会話を読むだけだとボットの意味がないし、読ませる文章を作る自信もない。
なので選択肢によってシナリオが変わる言わばマルチシナリオのようなゲームにしようと思い立ったのが運の尽き。
イメージとしてはかまいたちの夜だけど、あれも読ませるシナリオと惹き込むオチが必要だし・・厳しい。
兎にも角にも四方田千砂からメッセージが来る設定にしたので、NAVIの起動から始まって本編に出てくるメッセージはできるだけ入れ込みたい。逆に言うと、本編のメッセージ以外に会話素材がほとんど無い。
まあ、成るように成れと、違和感のないように会話を繋いで、最終的にワイヤードに誘う流れにしつつ、YesNoで結果を分岐しようと・・・Yesにしたら肉体を捨ててワイヤードに行くからコレはPS版の玲音だなと。
結果的に玲音タイプ診断のようなものを落とし所に。
Noと答えたら玲音か?いやいやレインっぽくもある。などといろいろ考えつつ、途中でもこう答えたら別の分岐に成るだろうといろいろやってたら、玲音とレインとlainとれいんと・・・結果玲音7タイプのルートができました。
7つ以上に分岐しそうなところは、できるだけ元の会話の流れに戻すようにして調整したりもした。
あとオマケで不出来なデュープも出したかったので無理やり入れた。
うまく行った点と行かなかった点
めんどくさいのでテキストだけでなんとかしようと思ってたけど、シチュエーションがイメージしづらいと遊んでる感がなくて楽しくなさそうだったので、要所では拙い絵でビジュアルを差し込むことにした。
どうなるか分からなかったけど、NAVI起動アニメーションはGIFにしてぐっとゲームらしさが出た気がする。
GIFを貼ると何故かフレームが途中で切れてループしてしまうのが謎のままだった。元を知らなければ気にならないかなと思ってそのまま放置。
選択肢以外にテキストメッセージでもそれなりに会話に成るように考えたけど、シナリオに沿って進んでもらうのと相反してしまい断念した。
制作環境・開発期間
大体はノートパソコンを持って近所のカフェで週末2時間くらい作業。あとは平日仕事の昼休みに30分程度作業。を繰り返す。
9月半ばくらいから始めて12月半ばなので3ヶ月くらい。
作業時間は平均して、平日30分を3~4回と週末に2時間超・・・なので週4時間くらい。
4時間×4週間×3ヶ月=48時間くらい?
なんだかんだ50時間くらいはかかったかも。(毎週ちゃんと作業してたわけでもないからもっと少ないかも)
ボット開発の練習を兼ねてと思いつつ、動けばいいやと適当に組んでいるので、ソースコードはクソなレガシーでスパゲッティ。
次作るときは再利用しやすい構成にしたい。(どうせできないんだけど)
攻略情報
7(+1)のEDが見つからないと気持ち悪そうなので、攻略情報貼っておきます。
隠しパラメータとして、境界崩壊度(通称SAN値)を設定しています。特定の選択肢や会話の流れに沿わないメッセージを送ると加算されます。
レインルートはまともに進むと選択肢が1本のルートしかないので難易度高かったかもです。(途中、いいえを連打してNAVIをからかってると直ぐSAN値が溜まるので行きやすい)
ペルソナさんは選択肢を素直に進むとたどり着かないので隠しルートのつもりでしたが、こちらは何人か到達した方がいたよう。
余談
この記事公開時点で、遊んでくれた方は14人。この人数が多いのか少ないのかは不明。
よくもまあ見ず知らずの人の紹介で謎のアプリをインストールしてくれたなという印象。
テレグラムは世界で2億人くらいは使っている普通のメッセンジャーアプリなので、よかったら普段も使ってみてください。
何故か日本では仮想通貨クラスタが情報取得するために使っているようだけど。
もう一度いう、テレグラム採用したことについて反省はしている。
以上、ありがとうございました。
これって裏話になってるのだろうか・・。
コメント