HTTP通信を使ったゲーム
古よりブラウザゲームでHTTP通信を使ったゲームはたくさん作られてきたはずである。
ちなみに私はその歴史も、ブラウザゲームについてもあまり詳しくない。
だがどういうわけかブラウザゲームは作っているので、思う所を書いていく。
状態レス
HTTPは状態を持たない。
クライアントがサーバーにリクエストを送ったらサーバーがレスポンスを返す。
それで通信は終わりである。
いっぽうゲームは状態を持つ。
ゲーム側からすると状態をサーバーに保存してもらいたいという欲求がある。
掲示板なんだよな
結局、HTTP通信縛りがある以上、その形態は掲示板に似ることになる。
つまりゲーム側がSPAに似た設計にして、サーバーと通信しても、それは結局掲示板の発展形にしかならない。
制約として掲示板があるわけである。
この縛りプレイを念頭に置かないといけない。
でも他の人と通信したいんだけど
しかしWebゲームなわけだから、一人で出来るゲームを作ってもしょうがないわけである。
やはりWebで他の人とつながれるなら、他の人と繋がれるゲームを作りたいものである。
ということはゲームのデータをHTTPでサーバーに保存して、それをみんなで共有する、という設計になる。
掲示板である。
この制約でできることはあまり多くない
WebSocketなどであればベースが掲示板ではなくチャットになるので、掲示板よりはリアルタイム性が上がる。
しかしHTTPはベースが掲示板である。
よって出来ることは掲示板の範囲に収まる。
強引にリクエストをリアルタイムで出してもいいが、それだとサーバーの負荷が上がるため、PVが伸びたら現実的な設計にはならないことが懸念される。
どうやってリアルタイム性を演出するか?
面白いのはゲームを通じて他のプレイヤーと繋がっている実感を演出することである。
そうするとたとえばゲーム中に掲示板を作って、その掲示板を通して他のユーザーと交流するなどがある。
だが、それならゲームはおまけで掲示板が主役になってしまう。
どうやってゲーム主役で演出したらいいか?
クリエイト系ゲーム
たとえばゲームステージをユーザーに作らせて、それを投稿させる。
そしてそのゲームステージをみんなで共有してプレイする。
これならゲーム主役のコミュニケーションだろう。
だが、ゲーム中にほかのユーザーとコミュニケーションを取るにはやはり掲示板じゃないとだめである。
ステージデータの更新
クリエイト系でゲームステージを投稿するゲームで、そのステージを他のユーザーが改変できるようにする。
たとえば岩を叩いたら岩が壊れ、その状態をHTTPでサーバーに送ってステージデータを更新する。
これはリアルタイム性がありそうである。
だが、HTTPなので同時に二人にデータが配信されて、一方がデータを更新してももう一方はその更新を受け取れない。ブラウザを更新しないといけない。チャットならブロードキャストでデータが入ってくるが、掲示板だとこういうことができない。
うーん
何か面白いアイデアがあればいいのだが。
HTTPという縛りの中で面白いアイデアが。
なかなか思いつかないのであった。
おわり。