Minecraftでマーダーミステリーを作りたい
以前の記事でも少し触れたのですが、私は「マイクラ内という制限でどこまで面白いゲームが作れるのか」という試みを趣味としてやっています。脱出ゲームに始まり、いくつかのゲーム企画を並行して進めているのですが、その中でも特に力を入れているのがマーダーミステリーです。
マーダーミステリーって最近だとボードゲームカフェやオンラインで遊べるサービスが増えてきましたが、Minecraft内で遊べるものとなるとほぼ見かけません。「じゃあ作るか」という、いつもの安直な動機です。
もう一つの理由として、Java版限定のゲームだとどうしても遊べる人が限られてしまうんですよね。Bedrock版(統合版)で作れば、Switch・スマホ・PCと幅広いプレイヤーに遊んでもらえる。せっかく作るなら多くの人に触ってもらいたいので、今回はBedrock版のアドオンとして開発することにしました。
マーダーミステリーとは
念のため簡単に説明すると、マーダーミステリーは参加者がそれぞれ「探偵」「犯人」「市民」といった役割を持ち、事件の真相を推理するゲームです。犯人は正体を隠しつつ逃げ切りを目指し、探偵や市民は証拠を集めて犯人を特定する。会話と推理が主軸なので、RPG的な没入感が強いジャンルです。
リアルイベントやボードゲームとしては定番ですが、これをMinecraftの中で再現するとなるとなかなかの挑戦です。秘密情報の管理(犯人が誰かを本人にだけ伝える)、証拠アイテムの配置、投票システム、ゲームフローの制御...。コマンドブロックだけでは正直厳しい規模感になります。
MDMScript2 — 元になった設計
実はこのプロジェクト、ゼロからのスタートではありません。以前Java版向けに「MDMScript2」というゲームロジックの設計を行っていて、役割分担のアルゴリズム、証拠収集フロー、投票・結果判定といったゲームの骨格はそこで固めていました。
今回はそのMDMScript2の設計思想をベースに、Bedrock版のアドオンとして再実装しているという形です。元の設計があるおかげで「何を作ればいいか」は明確で、「どうやってBedrock版の制約の中で実現するか」に集中できています。
技術スタック
使っている技術はこんな感じです。
- Minecraft Bedrock Edition(統合版)
- Behavior Pack + Resource Pack — アドオンの二本柱
- ScriptAPI(
@minecraft/serverモジュール) — ゲームロジックの実装 - TypeScript — 型安全に書きたいので
Bedrock版のアドオン開発をご存知ない方向けに補足すると、Behavior Packがゲームの振る舞い(ロジック・エンティティ定義など)、Resource Packが見た目(テクスチャ・UI・モデルなど)を担当します。そしてScriptAPIはBehavior Pack内でJavaScript/TypeScriptのコードを実行できる仕組みで、従来のコマンドブロックでは難しかった複雑なロジックを書けるようになっています。
実装の工夫と苦労
ScriptAPIは便利ですが、万能ではありません。いくつか工夫が必要なポイントがあります。
状態管理が地味に大変です。マーダーミステリーは「準備フェーズ → 調査フェーズ → 議論フェーズ → 投票フェーズ → 結果発表」のようにゲームの状態が遷移していくので、ステートマシンとして設計しています。各フェーズで使えるアクションや表示が変わるため、状態に応じた制御をきちんと書く必要があります。
プレイヤーの秘密情報管理も難しいところです。犯人が誰かは本人にしか見えないようにしないといけません。Minecraftのチャットは全員に見えてしまうので、actionbarやtitleコマンドを使った個別表示を駆使しています。
manifest.jsonの設定も最初はハマりました。ScriptAPIを使うにはBehavior Packのmanifestでmodulesにscriptモジュールを宣言し、適切なpermissionsを設定する必要があります。ドキュメントが充実しているとは言い難い部分もあり、試行錯誤しながら進めています。
現在の進捗
正直に言うとまだまだ開発中です。
- ゲームフレームワークの基盤: 実装中。ステートマシンとイベントハンドリングの骨格はできた
- 役割割り当てシステム: 設計完了。ランダム割り当て+バランス調整のロジックを詰めている
- 専用ワールド: マップ構築中。マーダーミステリーらしい雰囲気の建築を進行中
- 今後の予定: テストプレイ → バランス調整 → 公開
テストプレイまでたどり着いたら、また記事にしたいと思います。実際に遊んでみないとわからないバランスの問題が山ほどあるはずなので。
まとめ
Bedrock版で作ることで、Switchやスマホからでも遊べるマーダーミステリーを目指しています。ScriptAPIのおかげで以前よりずっと複雑なゲームロジックが書けるようになったとはいえ、制約の中でゲームデザインを考えるのがMinecraft開発の醍醐味だと思っています。
完成したらマーケットプレイスやコミュニティで公開する予定です。マイクラ×マーダーミステリーという組み合わせに興味がある方は、気長にお待ちいただければ幸いです。
制約がある方が燃えるタイプの人間なので、引き続き楽しみながら作っていきます。
