PHPでオンライン対戦できるリバーシを作ってみた

タイトルの通りです。
「アプリを使わずに、リンクを開くだけでオンライン対戦できるリバーシが欲しい!」というのが動機です。
この手のものはゲーム用サーバーとソケット通信するのが普通な気がしますが、リアルタイム性を要求されないのならPHPだけで動くのでは……?ということで、実験も兼ねて数日かけて作ってみました。

以下遊び方です。

 

部屋を立てる

ページにアクセスするだけで自動で部屋が立ちます。PC・スマホどちらからでも遊べます。
URLに立てた部屋の情報が記憶されます。

>> 部屋を立てる

参加者を募集する

マッチング機能はありません!
Twitterでも何でもいいので、今いる部屋のURLを貼り付けて対戦者を募集してください。

誰か来る

誰かがブラウザでリンクを踏むと即座にゲームが始まります。
既に対戦が始まった部屋に入ると、プレイ中のゲームを観戦することができます。

誰も来なかったら……今日は諦めてもう寝ましょう。

対戦後

プレイ結果がログに残ります。以降は部屋にアクセスするとプレイ結果を見ることができます。
新しくゲームを始めたい場合は部屋を立て直してください。

FAQ

Q. 二人入っているのに対戦がはじまらない

A. 同じネットワーク環境からアクセスしていませんか?同じIPアドレス同士の対戦はサポートされていません。端末が違っても同一人物と判定されてしまいます。

Q. 途中で抜けるとどうなるの?

A. ページを閉じて20秒以上経過すると、消滅したと見なされてプレイヤー情報が抹消されます。代わりに、次に部屋にアクセスした人が引き続きゲームをプレイすることができます(同じ人が戻ってきて再戦することもできます)。

Q. 持ち時間は?

A. ありませんが、ページを開きっぱなしにしたままどこかへ立ち去るようなことはしないでください。

Q. 棋譜は見れないの?

A. PCからならコンソールを開くことで一応見られます。
スマホ版は未対応です。

Q. バグった

A. 通信環境がよくない場所にいませんか?他に何か変なことが起きたらTwitterで一報いただけると助かります。

Q. 石が怖いんだけど

黒と白はそれぞれ New Moon With FaceFull Moon With Face のApple版です。Apple社に怒られると消滅します。
よく見るとほら……可愛く見えてきませんか?

2 Responses to “PHPでオンライン対戦できるリバーシを作ってみた”

Leave a Reply