どうもーポケ森ヒラメ屋です。
前回素材が消えてしまうことがあるという内容のブログを書きました。今回はバザーについて、とある実験をしたのでその結果を紹介したいと思います。
バザーで売れてしまったはずの商品は買える??
結論から言えば、バザーで出した商品は一人しか買えません。まあ当たり前のことですよね。私がヒラメを1匹売りに出したとして、それをAさんだけではなくBさんも買えてしまったらおかしいですよね。実際はどういう流れになるのか見てみましたよ。
実験方法を説明します。今回はほかの人にも手伝ってもらって検証しました。まずは私のバザーを同時に2人に見てもらいます。そしてそのうちの1人(Aさんとします)がヒラメ1匹を購入します。Bさんには、その売れたはずのヒラメを購入してもらい、どうなるかを見てみましょう。
まずはこれが私のスマホ上で自分のバザーを覗いたところです。今回はこの左上にあるヒラメ1匹で実験します。
Aさんが私のバザーを覗いたところです。当然ながら、同じ状態になっています。
さらにそこにBさんも私のバザーを覗きます。もちろんこちらも同じ状態です。
Aさんがヒラメ1匹を購入しました。Aさんの画面では当然売れたことになっています。ちゃんと枠が空いていますね。
一方私の画面ではそのままです。通信をしていないので最新の状態を読み込んでいないからです。私のスマホ上ではまだ売れたことにはなっていませんが、データサーバー上ではしっかり売れている状態に更新されています。
Bさんも通信をしていませんから、当然すべての商品があることになっています。それではAさんが買ったはずのヒラメ1匹を購入してみましょう。
このような画面が表示され購入できませんでした。購入する処理でやっとデータサーバーへ通信して最新情報を得た結果、すでにその商品が購入されたことが分かったのです。ここで買えてしまっては、ヒラメ1匹がどこからか生み出されてしまいますから、こうあるべきですよね。
さて、私のスマホではまだ売れたことにはなっていません。それでは、この商品を取り消してみましょう。
ここまではまだ通信していないので、売れたことを知りません。
OKを押して初めて通信し、すでに売れたことを知ったわけですね。当たり前の流れでありますが、誰かのアクションが常に自分のスマホにプッシュされているわけではないことがわかりましたね。
通信のタイミングで最新の状態になる
マップ移動した直後にお知らせが出ることが多いのは、マップ移動で通信が入るからです。それ以外にも、ある程度時間が経つとセーブのために通信しているようです。長々同じ場所にいると時々読み込みが入ります。
これは実験できなかったのですが、もしAさんとBさんが同時に購入をしたらどうなるのでしょうか。あくまで推測ですが、データサーバー側で先に通信の枠を取った方が購入できるはずです。
以前私はIT企業で働いていたことがあって、その時の経験からすると、たとえばAさんが私のバザーを購入するときに、その商品のデータに対してロックがかかります。このロックがかかっている間はほかの人がデータをいじることができなくなります。このロックは複数の人が書けることができません。必ずだれか一人だけです。
本当に寸分の違いもなく同時に通信したとしても、データサーバー側で順列を決められてしまいます。そして先の順番をもらった方が購入処理をしてロックを解除、そのあとに次の順番の人が購入処理に入りますが、すでに売れているため先ほどのようなメッセージを出して処理を終えます。
我々プレイヤーが気にすることは何もありませんが、もし上記のようなメッセージが出てしまったら、僅差でほかの人が買ったか取り消したかのどちらかなんだなーと思ってください。こういうところにバグが潜みやすいので、作っている側は慎重になっていると思いますけどね(笑)
さあ今日は金曜日。明日の午前中にようやくプールセットが完成します。各種素材を集めて次のオブジェ作成に備えなくては!!