PHPでWEBサイトを作るとき、ときどき困ったことになるものに「戻るリンク」がある。「そんなこと?」といわないでほしい。じっさい困るのです。
これがけっこう簡単なことと思われているようで、場合によっては、難しくならないように気を使って仕様を「戻る」にしてくれたりすることもある。
しかしですね、まともに戻れるようにするのは大変なのです。
戻り先が1つ固定されているならいい。しかし、戻り先が複数ある場合は大変困るのだ。
……いや、わたしが簡単なやりかたを知らないだけ?
あ、ところで、勘違いしていただいては困るのだけど、
javascript:history.back()
なんて話ではないのです。これではほんとに一つ前に戻るだけなわけで、じっさいのサイトで使うのはちょっと苦しい。
戻り先の可能性が複数ある場合、基本的には、その画面を表示するときに、「戻り先情報」をパラメータに渡す必要がある。
分岐してさらに分岐して……となってくると、その階層の数だけ戻り先の情報を引き渡し続けなければならない。
そうなるとさすがに面倒なので、セッションを使うかという話になる。PHPにはサーバオブジェクトがないから、画面をまたがって情報を保持する方法はセッションか、DBかなにか使って自力で仕組みを作るしかない。
とりあえず考えつくのは、戻り先になる可能性のある画面を表示するときに、セッション上に置いたスタック(配列かなにか)にこの画面を積んでおく方法だ。
次の画面に表示する「戻る」リンクの遷移先には、このスタックの一番上からとった画面を指定すればいい。
さてしかし、セッションに戻り先のスタックを持たせたとして、やりかたによってだが、今度は別の問題が起こることがある。おなじみブラウザバック(ブラウザの「戻る」)だ。
ブラウザバックでは、ほうっておくとサーバにリクエストが飛ばない。クライアントマシンの中に保存されているキャッシュを表示してしまう。だから、セッションの情報はなんら変化しないまま画面だけが遷移してしまう。
これを回避するためには、ブラウザのキャッシュコントロールを無効化しなければならない。これはHTMLのメタタグか、HTTPヘッダかなにかでやる。
……動的サイトならはじめから常にそうしておきゃいいんだけど、世の中そう都合よくはいかないし。
これでなんとかなったはず……なんだけど、じつはこれでも完全ではないらしく。ブラウザによっては、キャッシュコントロールを無効にしてもリクエストしてこないケースがあるらしい。
同じURLでパラメータだけ違うとき?とか?らしいんだけどよくわからない。
まあくわしい部分はともかくとしても、このあたりはブラウザによって実装が違う可能性がいくらでもあるわけだから、キャッシュコントロール制御に頼ってしまうのは気持ち悪い。
というわけで、ほんとに確実にやるためには、すべてのリンクや画面遷移に遷移もとの情報を持たせるしかない。
全部のリンクのURLになにかパラメータを持たせるか、それとも画面遷移は必ずポストバック(一度同じ画面にリクエストを投げてからリダイレクト)を経由させるか……。
しかも、そうしたとしても、セッションを適切に破棄するためには、サイト内の他の画面全部に処理を組みこまなければならないわけで。
もともとそれなりの設計で作られているなら問題ないけど、世の中(ry
見た目の簡単さから比べると影響が大きいんである。
じつはWEBサイトって特殊な環境なので、こういう感じの問題がけっこうある。簡単そうに見えて、じっさいWEBサイトじゃなければ簡単な話なんだけど、やろうとすると「どうやるんだこれ」となったりする。
それでみんなどうしてるのかなと思って見てみると、たいていはなにも考えてなかったり(笑)
たぶん本当に必要なのは、技術者が
「この『戻る』は本当に必要か?」
といってしまうことなんじゃないかとも思うけど。わざわざ戻るリンクを押すユーザは少ないと思うし。
なんだか話がまったく進んでいない気がするんだけど、ガンダム00のオープニングテーマが変わってたなあ。歌が変わっても、13話見た感慨はまるでなかったなあ。
しかしあえていうなら、そこがいい(のか?)。
彼の言わんとする非難は、このようなものである――ゲーム批評はフリーク向けに偏りすぎており、ノーマルを蔑ろにしている。
うーんたしかに、フリークだから批評するんだしなあ。ありがちな難しい問題です。
ほんとにノーマルな意見が出るとすれば、それはゲームがちゃんと社会にかかわってるときだと思う。
日本ではコンピュータゲームが現にそうなっていて、フリークじゃない人にゲームを語らせることができる。小説やマンガはいわずもがな。
しかし、そうすると今度は、本当にいいゲームかどうかが評価されなくなって、ファイナルファンタジーがベストゲームということになってしまう。(ファイナルファンタジーが悪いというわけじゃないが)
個人的には、やっぱりフリークが批評してればいいと思う。
ネットで捜すボードゲームの情報は、かなり確度が高い。日本語に限ってのことしかいえないけど。それはほとんどフリークしかいないからで、やっぱりフリークが発信する情報のほうが信頼できるからだ。
……いってて悲しくはなるけど。
いわゆる「ノーマル」の人だってバカにしたものでもない。教えればけっこうすんなりと、複雑なゲームを憶えてしまう。
たぶんドイツの人が想定してる「ノーマル」は子供のことだと思うんだけど、それこそ子供は大人より頭がいいわけで。興味さえ持たせれば、じつはなんでもやれてしまうのが子供だ。
と思えば、別に「ノーマル」を意識する必要なんてない気がする。
『ダイスビンゴ』もフェアプレイ誌ではよい評価だし、分かりやすくて適度に運任せの『テーベの東』は我々のベストゲームに入っている。結局フリーク(趣味をゲームと自認する人)でも、シンプルで短いゲームを好むのである。
けっきょくそうだと思うなあ。おもしろいものはおもしろいよなあ。
あと、テーベの東についての記述がおもしろいと思った。あのゲームはおもしろいけど、わかりやすくはない。少なくとも、説明しなければならないルールが少ないとはいえない気がしていた。
つまりこの人(Der Juror)は、フリークかノーマルかの区別をルールの単純さ以外のところから求めているということか? と感じた。個人的にちょっと意外。
日本のおもちゃメーカーならぜったいにやらないだろう、黒いボードである。ゲームの内容から一般的な日本人が想像する世界はパステルカラーのはずだ。パステルカラーにして、桜瀬琥姫がイラストを描いてつくりなおすべき。
ボードに、あやしげな大鍋が10個並んでいる。そこになにかほうりこんで煮ると、なにか別のものができあがってくるわけです。
やることはシンプルだ。調合のレシピをつくったり、他人のレシピで調合したり。で調合するたびに得点が入る。
このゲーム、なんだかきれいにまとまった好ゲームの予感がある。でもよくわからない。なにしろ、なにをしたら高得点をとれるのか、さっぱりわからないのだ。
プレイヤーがやることは、レシピをつくることと他人のレシピで調合すること。
調合するときは他人のレシピしか使えない。そのかわり、調合に使った材料の半分をレシピの権利者がもらえる。
で、そのレシピ。
「レシピ作るぜ」というときは、ボード上の大鍋に、材料の素材を置く。そうすると、
「青2個と赤1個で、黄色1個と灰色1個になる」
みたいなレシピができあがる。その大鍋は、以後この調合専用の鍋になってしまう。
そして、その大鍋の上に1個得点チットを置く。
このあたりが、このゲームわりきっちゃってるなというところなんだけど。
1点から10点まで、1枚ずつの得点チットが用意されている。この中から一個、好きなやつを選んでしまっていいのである。
……このルールはなんかすごいなと思った。
つまり、材料が1個だけの超簡単なレシピに、いきなり10点をつけてしまってもいいんである。ところがこれが、なかなかそうもいかないわけだけど。
なにしろ、レシピを使って調合することができるのは他人だけなのだ。
調合で得点できるのももちろん他人。レシピをつくったときにも同じ得点が入るということになっていたりもするけど、これは1回だけだし。
というわけで、あまりに安易で高得点なレシピをつくってしまうと、他人ばかりが得をする結果になってしまう。
でも、自分のレシピを使ってもらうことができれば、材料をもらえる。ということは、あまり難しすぎるレシピもよくない。
そんなあたりが悩ましいゲームである。
オークションゲームと同じ、プレイヤーがバランス調整をするゲームなのだ。
というわけでそれなりに悩ましくレシピがつくられていき、そのうち10個の大鍋はほとんど埋まる。
さあ調合して得点を稼ぐぞ、というところで。
そこで、はたと気がついたりするのだ。
他人と比べてもいいレシピを作った自信はあるのに、みんながこのレシピで調合してくれると思ったのに、
「黄色が流通してない!」
なんてことが起こる。
レシピをつかったときは権利者に材料の半分を渡すわけだが、どの色の材料を渡すかは調合した人が決める。
もちろん、できるだけ価値の低そうな材料を渡すことになる。
青の価値が低いとなったら、つまり、レシピの権利者は調合のたびに青をうけとることになってしまう。
結果、各プレイヤーの手元にある材料はどんどん偏っていく。その材料を使いたくても、レシピの組み合わせがそろわなければ使えない。そんなわけで、材料の流通はどんどん鈍くなっていく。調合したくても必要な材料がそろわないという状態に陥ってしまう。
そのあたりがなんとも、どうにもわからないところだ。
いまのところ、じつは、なにをしたら勝てるのか皆目見当がついていない。
とはいえ、なにしろこれはプレイヤーがバランス調整をするゲームだ。同じプレーヤーで何度も遊び、相場の感覚などがだんだん洗練されていったら、どうなるかわからない。
わたしはまだ数回しかやっていないが、なんとなくその場の相場観みたいなものは出来上がっていたように思う。
しかしあれが適正なのかどうかはだれにもわからない。もっと高いべきなのかもしれないし、もっとぜんぜん安いほうがいいのかもしれない。
というよりも「相場がこれ以下ならこうなる」というような、しきい値みたいなものがあるかもしれないと思っている。その場の相場の感覚しだいで、まったく違うゲームになってしまう可能性もあるような気もする。
(しかし、相場といってもゲーム中には動かないわけで。しかも大鍋は10個しかない。たぶんそのあたりがこのゲームを難しくしている。レシピを作るときは未来の需要を見こさなければならないのかもしれない)
もしも、いまわたしがもっている相場観がまったく狂っているのだとしたら。これはもう、わたしはこのゲームのことをなにも知らないことになる。ひょっとしたらすごい名作なのかもしれないし、ぜんぜん糞ゲーかもしれない。
あるいは、けっきょくプレイヤーたちの損得の綱引きで、相場はどこかにおちつくのかもしれない。
そうしてみると、プレイ回数数回でこんな記事書いてるのがまちがってるわけだけど。
とりあえず、もう少し煮詰めてみたいゲームだ。鍋だけに。
2008.01.18 00:19 てらしま
ISBNはついてるけど本屋にはないらしいです。AMAZONにもないので、買うならイエローサブマリンかどこかを捜すしかない。
個人的にはそれほど読むところがなかったけど、その理由は、この本がおもに述べてるのが2人ゲームの話だから。
とはいえ、ゲームの中でマルチゲームが占める割合はこんなものかという気もするので、そこはしかたない。
少し客観性を欠いた議論が多いとか、そのへんはあるけど、そんなのはたいしたことじゃなくて。問題は、読みづらい組版とうまいとはいえない文章だ。
おかげで、ゲームの啓蒙書としては読みづらいし、研究書としては内容が甘いという、難しい立場の本になっている気がした。
しかし、こういうの読むのに抵抗がないけどゲームのことは考えたこともなかった人には薦めてみてもいいのでは。要は、その人がホイジンガを読むきっかけになってくれればいいと思うんだけど。