どれを置くか
このページは、Axeのサーバーを初めて置く人が、どれを置けばよいかを決めるためのものです。まず配信の方式(SkyWay版かサーバー版か)を決め、次に置き場所を決めます。どちらも、違いと長所・短所を並べて説明します。
早見表
置けるものは、次の4つです。配信の方式が2つあり、それぞれに置き場所が2つずつあります。
| PHP版 | Vercel版(トークン発行) | Cloudflare版 | Vercel版(部屋のサーバー) | |
|---|---|---|---|---|
| 方式 | SkyWay版 | SkyWay版 | サーバー版 | サーバー版 |
| 置く場所 | 借りているレンタルサーバー | Vercel(無料のプラン) | Cloudflare(無料のプラン) | Vercel(無料のプラン) |
| 要るアカウント | レンタルサーバー、SkyWay | GitHub、Vercel、SkyWay | GitHub、Cloudflare、Discord | GitHub、Vercel、Discord |
| 支払い方法の登録 | 要らない(契約中のもの) | 要らない | 要る(R2を使うため。無料枠なら請求なし) | 要らない |
| 費用 | 契約中のサーバー代だけ | 無料 | 1日25卓ほどまで無料 | 無料のプランの上限まで(使った量で数える) |
| 置くのにかかる時間 | 30分〜1時間 | 30分ほど | 1時間ほど | 1時間ほど |
| 参加者に頼むこと | なし | なし | GMとPLはDiscordのアカウント | GMとPLはDiscordのアカウント |
| 使えるAxe | どの版でも | どの版でも | v1.68.0から | v1.68.0から |
| 手順 | レンタルサーバーに置く | Vercelに置く | Cloudflareに置く | Vercelに置く |
方式:SkyWay版かサーバー版か
どちらの方式にするかは、Axeのconfig.jsonという設定ファイルで決めます(→ Axeの設定)。1つの配信の中で、部屋ごとに切り替えることはできません。
つながりかた
SkyWay版
参加者どうしが、1人ずつ直接つながる
- 卓の中身は、参加者のブラウザだけが持つ
- 置くのは、許可証を渡すだけのサーバー
- 全員が抜けると、卓は消える
サーバー版
全員が、部屋のサーバー1つにつながる
- 卓の中身は、部屋のサーバーも持つ
- 置くのは、卓のすべてを受け持つサーバー
- 全員が抜けても、しばらく卓が残る
SkyWay版では、部屋に入った人どうしが、1人ずつ直接つながります。4人で遊ぶなら、それぞれが残りの3人とつながります。このつなぎかたを、P2P(ピア・ツー・ピア)と呼びます。つなぐ手伝いをするのは、NTTドコモビジネスのSkyWayというサービスです。このとき置くサーバー(トークン発行サーバー)がするのは、SkyWayを使うための許可証(トークン)をAxeに渡すことだけです。卓の中身は、サーバーを通りません。
サーバー版では、全員が、部屋ごとに置かれた1つのサーバー(部屋のサーバー)につながります。参加者どうしは直接つながらず、コマの移動もチャットも、すべて部屋のサーバーを通ります。部屋のサーバーは、卓の状態をすべて持っています。SkyWayは使いません。
長所と短所
参加者から見て違うこと
方式によって、参加者がAxeで遊ぶときの動きが変わります。置く前に、参加者にどう伝えるかを考えておくと安心です。
| 場面 | SkyWay版 | サーバー版 |
|---|---|---|
| 全員が部屋を抜けたとき | 部屋はなくなり、卓も消えます。続きを遊ぶには、抜ける前にAxeで保存しておきます | 部屋のサーバーに、しばらく(既定24時間)残ります。そのあいだに入り直せば、続きから遊べます |
| 画像や音声を足したとき | 持っている人から、ほかの人へ1人ずつ送ります。持っている人がみな抜けると、まだ受け取っていない人は受け取れません | 部屋のサーバーに置かれます。あとから入った人も、そこから受け取れます |
| 裏向きのカード、秘話、シークレットダイス | 画面に出さないだけで、データは全員のブラウザに届いています。改造したAxeなら見えます | 中身は、見てはいけない人のブラウザにはそもそも届きません。ただしカードの絵のファイルは全員に届きます(わざと隠さないもの) |
| 部屋に入る人 | だれでも同じように入れます。ログインはありません | GMとPLは、Discordのアカウントでログインして入ります。ログインしない人は見学(見るだけ)になります |
| 役割(GM・PL・見学) | 各自が自分で切り替えます(PLと見学はいつでも。GMは部屋を作った人か、GMが割り当てた人)。決まりを守るのは各自のAxeなので、改造したAxeなら破れます | 部屋のサーバーが決めて守ります。役割を変えられるのはGMだけです |
| 人数が多いとき | 1人が全員とつながるので、人数が増えるほど重くなりやすくなります | 1人が部屋のサーバーに1本つなぐだけです(1部屋32人まで) |
| ダイス | 各自のブラウザで振ります | チャットのダイスは部屋のサーバーが振り、結果に盾の印が付きます。ダイス表と、4,000字を超える行は、振った人のブラウザで振ります。卓に置いたダイスも各自のブラウザで振ります |
サーバー版でも、卓を長く残したいときは、SkyWay版と同じくAxeの保存で手元に保存しておきます。続きに使うのは、GMの保存です。GM以外の人の保存には、その人に見えていなかった物が欠けた形で入ります。部屋のサーバーは、卓のバックアップを取りません。
SkyWay版:どこに置くか
SkyWay版で置くのは、トークン発行サーバーです。PHP版・Vercel版・Cloudflare版のどれを置いても、Axeから見て同じように動き、参加者には違いがありません。違うのは、どこで動かすかと、置く手間です。
| PHP版 | Vercel版 | Cloudflare版 | |
|---|---|---|---|
| 動かす場所 | 借りているレンタルサーバー(Apache+PHP 8.3〜) | Vercel(東京のリージョン) | Cloudflare Workers |
| 費用 | 契約中のサーバーがあれば追加はなし | 無料のプラン(Hobby)で足りる | 無料のプランで足りる |
| 置きかた | zipを展開してFTPで上げ、.envを書く | ボタンを押して、3つの値を入れる | wranglerでデプロイし、2つの値を入れる |
| 新しい版にするとき | 新しいzipのファイルを、上書きで上げ直す | このリポジトリの変更を、複製したリポジトリに取り込む | このリポジトリを更新して、デプロイし直す |
| トークンの有効期間 | 24時間(固定) | 既定24時間。60秒〜7日の間で変えられる | 既定24時間。60秒〜7日の間で変えられる |
迷ったら、Vercel版がいちばん手軽です。
本家のバックエンドも使えます
本家ユドナリウムのudonarium-backendも、Axeが呼ぶAPI(GET /v1/statusとPOST /v1/skyway2023/token)に対応しているので、そのまま使えます。
サーバー版:Cloudflare版かVercel版か
サーバー版で置くのは、部屋のサーバーです。Cloudflare版とVercel版のどちらを置いても、Axeから見て同じように動き、できることも同じです。違うのは、裏で使うサービスと、安定のしかた、費用の数えかたです。
| Cloudflare版 | Vercel版 | |
|---|---|---|
| 動かす場所 | Cloudflare(Durable Objects、R2) | Vercel(東京のリージョン)、Redis、Vercel Blob |
| 要るアカウント | Cloudflare(R2の申し込みに支払い方法が要る) | Vercel(RedisはVercelの画面から無料のものを作れる) |
| つながりかた | つなぎっぱなし | 数分ごとに部屋のサーバーが閉じ、Axeが静かにつなぎ直す(VercelのWebSocketはベータ) |
| 費用の見込み | 無料のプランで、1日に25卓ほど | 卓の時間と人数に応じて、Functionの時間とRedisとBlobの使用量が増える |
迷ったら、Cloudflare版が向きます。費用の目安は費用と上限にあります。
あとから変えられるか
- 方式(SkyWay版とサーバー版):Axeの
config.jsonを書き換えれば、いつでも切り替えられます。ただし、部屋や画像は引き継がれません。続きを遊ぶ卓は、GMがAxeの保存で手元に保存し、新しい部屋で読み込みます。SkyWay版の卓を読み込んだときは、手札の引き継ぎと、秘話の残るタブの削除が要ります(安全のしくみ)。 - 置き場所:新しい場所に置いて、Axeの
config.jsonのbackend.urlを書き換えれば移れます。サーバー版の部屋は、移った先には引き継がれません。 - 両方を置く:SkyWay版とサーバー版のサーバーを両方置いておき、
config.jsonで選ぶこともできます。Vercel版とCloudflare版なら、1つのプロジェクト(Worker)で両方を受け持てます。
組み合わせの例
| やりたいこと | 置くもの |
|---|---|
| まず動かしてみたい | Vercel版(トークン発行) |
| 借りているレンタルサーバーで済ませたい | PHP版 |
| SkyWayを使わずに遊びたい | Cloudflare版 |
| SkyWay版とサーバー版を1か所で置きたい | Vercel版かCloudflare版(トークン発行と部屋のサーバーの両方) |
| 身内用と公開用を分けたい | それぞれを2つずつ置く |
どのサーバーも、名前を変えれば、同じアカウントにいくつでも置けます。Cloudflare版は、Workerの名前を変えて置けば、画像と音声の置き場所も、部屋も、別々になります。