どーもどーも!YuuuuKiです。
暑い日々が続きますが、皆さんお元気でしょうか。
現在夏っぽいテーマの短編配布ワールドを作成中なので、ぜひ楽しみにお待ちください。
(作っている間に夏が終わらないように気を付けます…)
さて、今日の本題はタイトルにもある通り、「バグ」についてです。
せっかくの夏休みなので、少し長めに書いてみました。
暇な時に読んでいただけると嬉しいです。
皆さん、配布ワールドをプレイしていると、「あれ、ボタンを押したのに何も起きないぞ?」とか「あれ、登場人物が消えたぞ?」とか、本来は起きるはずのない現象に出会うことがあると思います。
そういった現象は「バグ」と呼ばれ、ゲームの進行を妨げる存在です。
今回は、僕が一製作者として、バグに対してどういうことを考えているのか?バグを防ぐために何をしているか?を書いてみたいと思います。
製作者以外のプレイヤーの方々にも、「こんな風に考えてるのか~」と知ってもらえれば幸いです。
なぜバグは起きるのか?
なぜバグは起きるのか?答えは簡単、人間が作っているからです。
人間はミスをする生き物です。
「ブロックを設置し忘れていた。」
「コマンドブロックに何も入力していなかった。」
「重要なアイテムをチェストに入れていなかった。」
などなど製作者は様々なミスをします。
これらのミスは気を付けていても、なくせるものではありません。
例えば下記画像は、コマンド部屋につながる作業用の通路をふさぎ忘れた例です。
単純なミスではありますが、プレイヤーがこの穴に落ちてしまうと、死んでしまうか、プレイ続行不可能となってしまうという点で重大なバグといえるでしょう。
プレイヤーの方に報告いただくまで全く気づきませんでした。
他にも、自分でテストプレイをしていて、「絶対にちゃんと確認したはずなのになぁ…」と思いながら、動作しないコマンドブロックを発見し、修正したことが何度もあります。
バグをはじめから起きないように作成することは困難です。
「バグは必ず起きるもの」と考え、その上でバグ対策を考えるべきだと思っています。
バグ対策に何をすべきか?
先述の通り「バグは必ず起きるもの」です。
ここでは、普段僕が配布ワールドでバグ対策のためにしていることを2つ紹介します。
作成後に自分でプレイする。
これは製作者であれば絶対にやるべきことだと思っています。
ワールドが完成したら、プレイヤーになったつもりで最初からテストプレイしていきます。
この時大切なのは、あえてバグが発生しそうな行動をしてみることだと思います。
例えば、パスワードを間違えてみる、死んでみる、登場人物をキルしてみる、会話用のボタンを連打してみる、バリアブロックで塞がれているべき場所に抜け道がないか探してみる…などなどです。
バグの多くは作成時に想定していなかった行動をとることで発生しやすいため、このような確認をしています。
下記画像はその一例です。これは、ボタンを押すと空中にブロックが順番に出現して、そこをジャンプして渡っていくアスレチック用の仕掛けです。
通常のスタートボタンと、初心者用に簡単にクリアできるバージョンのスタートボタンを用意していたのですが(画像左)、通常のスタートボタンを押した後に初心者用のスタートボタンを押すと、画像右の状態でブロックの出現が停止してしまうというバグが発生しました。
僕はこれを作った当初、ブロックが出現している間は、プレイヤーがもう一度スタートボタンを押すことはないだろうと考えていました。
しかし、実際にはブロックの出現が終わるまで待ちきれず、ボタンを押してしまったプレイヤーが複数いました。
プレイヤーの心理的に(特にマイクラの場合)ボタンがあったら押してしまうというのは当然のことですよね。
このバグはプレイヤーからの報告で気づきました。(ちなみに直すのを忘れていたことをこれを書いていて思い出しました…)
事前にプレイヤーの行動を想定して確認をしていれば防げたバグの好例だと思います。
なお、実際のプレイヤーの目線を取り入れるために、友達など第三者にお願いしてプレイしてもらうこともよい方法だと思います。
また、PCだけでなく、スマホやタブレットからプレイしてみたり、マルチプレイの場合の動作も確かめるとなおよいでしょう。
とにかく配布前に一度はプレイして、ちゃんとクリアできるか確認しておくことが大切だと思います。
<補足>
僕がテストプレイをするときには、見つけたバグを書き出しながら、いったん無理やり進んで(バグで進めない場所はクリエイティブモードで突破するなどして)クリアまでしてみています。
いちいち見つけたバグを直していると先に進めずにしんどくなってきますし、書き出したバグの全体像を見て、後からまとめて修正したほうが個人的には効率が良い気がします。
バグをプレイヤーが解決できるようにする。
二つ目はバグ自体の対策ではなく、バグが発生した場合を想定した対策についてです。
マイクラの中には、製作者ではどうしようもできないバグが発生するときがあります。
それは、そもそもマイクラに存在しているバグです。
その中でも僕がこれまでずーっと悩み続けているのが、mobが消えてしまう、また固定しているのに勝手に動き回るバグです。
プレイしてくださった方はご存じと思いますが、僕の配布ワールドには登場人物として村人などのmobが登場します。
プレイの進行に合わせて、これらのmobをプレイヤーがいる場所に移動させることで、ストーリーの進展をわかりやすくしています。
mobを一定の場所にとどまらせるためには、指定の座標にテレポートさせるコマンドをコマンドブロックに書いて、「反復」で動作させています。(永久に同じ場所にテレポートさせ続けることで固定する。)
しかし、マルチプレイなどで負荷がかかると、テレポートが実行されず、mobが勝手に動き回ってしまうバグがあるようなのです。
(原因は現時点での推測です。解決策がわかる方は教えていただけると助かります。)
その結果、mobが勝手に溶岩に突っ込んだり、高いところから落ちて死んでしまう場合がありました。
また、名札で名前をつけているにも関わらず、mobが消えてしまうというバグもありました。
これらはマイクラのバグと思われるため、現時点ではどうしようもできません。
そこで、僕はこのバグが発生した場合にプレイヤーが自分で解決できる仕組みを用意しました。
バグ解決の部屋です。
mobが消えた場合はプレイヤーをこの部屋に誘導し、mobを再召喚させて名札を付けてもらいます。
この仕組みがどれほど使われているかわかりませんが、mobが消えたという報告が最近は来ていないので、ある程度効果があったのではないかと思っています。
もちろんバグで消えた時以外にも、プレイヤーが誤ってmobを殺してしまった場合にも有効です。
以上のように、僕が行っているバグ対策として、「自分でプレイする。」「解決の手段を用意する。」ことを挙げました。
めんどくさいことかもしれませんが、ここをきちんとしておくことが、プレイヤーの方々に安心して楽しんでいただける配布ワールドにつながることだと考えています。
バグの報告が来たらどうするか?
事前にしっかり確認をして、解決の手段を用意していても、バグが発生してしまうことは必ずあります。
ここでは、すでに配布したワールドでプレイヤーからバグの報告が来たらどう対応しているかを書いていきます。
バグにランクを付ける。
報告が来るたびにすべてのバグに対応していると大変です。
バグの中には、すぐに直すべきバグと、すぐには直さなくてもいいバグがあると考えています。
自分の中では分かりやすく、すぐに直すべきバグ=Aランクバグ、すぐに直さなくてもいいバグ=Bランクバグと呼んでいます。
直すべきかどうかの判断は人によって違うと思いますが、僕は下記のように考えています。
プレイヤーからバグの報告があった場合、まずはそれが実際に起こるかを確認します。
そして、上記に当てはめ、Aランクなら即修正して再配布、Bランクならとりあえず保留と判断しています。
ちなみに、保留したBランクバグを修正して再配布するタイミングは二つあります。
一つは暇なとき、もう一つは別のAランクバグが見つかった場合です。
例えばプレイヤーから報告が来て、下記のような状況になったとしましょう。
Aランクバグ:0件
Bランクバグ:5件
この状況では修正して再配布する必要はありません。
ここで、別のプレイヤーからの情報でAランクバグが1件見つかりました。
Aランクバグ:1件
Bランクバグ:5件
このタイミングでA,B合わせて6件のバグを修正して、再配布すればよいのです。
Bランクバグは事前に修正していつでも配布できる状態にしておくとなおよいと思います。
(すぐに直さなくてもいいとわかると、たいてい放置してしまうんですけどね…)
なお、Aランクバグが発生したけれど、すぐに修正する時間がない!ということもあると思います。
その時は、いったんマップの配布を停止するべきだと考えています。
配布マップは思っている以上に速いスピードでたくさんの方にダウンロードされるので、バグのあるマップが広まらないように先手を打つことが大切だと思っています。
さて、長々と書いてきましたが、以上が僕が配布ワールドのバグについて考えていることです。
多くの製作者の方にとっては当然のことばかりかもしれませんが、参考になれば幸いです。
また、プレイヤーの方々には製作者ってこんなこと考えてるんだと知ってもらえたらと思います。
ぜひ、今後もバグの報告をお待ちしています。(バグが見つかるのは嫌だけれど…)
それでは、最後まで読んでいただきありがとうございました(^^)/