本文へ移動

どれを置くか ​

このページは、Axeのサーバーを初めて置く人が、どれを置けばよいかを決めるためのものです。まず配信の方式(SkyWay版かサーバー版か)を決め、次に置き場所を決めます。どちらも、違いと長所・短所を並べて説明します。

早見表 ​

置けるものは、次の4つです。配信の方式が2つあり、それぞれに置き場所が2つずつあります。

PHP版Vercel版(トークン発行)Cloudflare版Vercel版(部屋のサーバー)
方式SkyWay版SkyWay版サーバー版サーバー版
置く場所借りているレンタルサーバーVercel(無料のプラン)Cloudflare(無料のプラン)Vercel(無料のプラン)
要るアカウントレンタルサーバー、SkyWayGitHub、Vercel、SkyWayGitHub、Cloudflare、DiscordGitHub、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人ずつ直接つながる

4人の参加者が、それぞれほかの3人と線でつながっている図SkyWayがつなぐ
  • 卓の中身は、参加者のブラウザだけが持つ
  • 置くのは、許可証を渡すだけのサーバー
  • 全員が抜けると、卓は消える

サーバー版

全員が、部屋のサーバー1つにつながる

4人の参加者が、まん中の部屋のサーバーとだけ線でつながっている図部屋のサーバー卓の状態と画像を持つ
  • 卓の中身は、部屋のサーバーも持つ
  • 置くのは、卓のすべてを受け持つサーバー
  • 全員が抜けても、しばらく卓が残る

SkyWay版では、部屋に入った人どうしが、1人ずつ直接つながります。4人で遊ぶなら、それぞれが残りの3人とつながります。このつなぎかたを、P2P(ピア・ツー・ピア)と呼びます。つなぐ手伝いをするのは、NTTドコモビジネスのSkyWayというサービスです。このとき置くサーバー(トークン発行サーバー)がするのは、SkyWayを使うための許可証(トークン)をAxeに渡すことだけです。卓の中身は、サーバーを通りません。

サーバー版では、全員が、部屋ごとに置かれた1つのサーバー(部屋のサーバー)につながります。参加者どうしは直接つながらず、コマの移動もチャットも、すべて部屋のサーバーを通ります。部屋のサーバーは、卓の状態をすべて持っています。SkyWayは使いません。

長所と短所 ​

SkyWay版

置くのは、トークン発行サーバー(PHP版・Vercel版・Cloudflare版)です。

長所

  • 参加者は、ログインせずに入れる
  • どの版のAxeでも使える
  • 置くサーバーの仕事が軽く、預かるものがほとんどない
  • 費用は、無料に収まることがほとんど

短所

  • 全員が抜けると、卓が消える
  • 裏向きのカードや秘話も、データとしては全員のブラウザに届く
  • 画像や音声は、持っている人がみな抜けると受け取れない
  • 人数が増えるほど、重くなりやすい
  • SkyWayのアカウントとアプリが要る

向いている人:まず手軽に試したい人、だれでもすぐ入れる卓にしたい人

サーバー版

置くのは、部屋のサーバー(Cloudflare版かVercel版)です。

長所

  • 全員が抜けても、卓がしばらく(既定24時間)残る
  • 裏向きのカードや秘話の中身が、見てはいけない人に届かない
  • 画像と音声を部屋のサーバーが預かり、あとから入った人も受け取れる
  • 役割(GM・PL・見学)を、部屋のサーバーが守る
  • 人数が多くても重くなりにくい(1部屋32人まで)

短所

  • GMとPLに、Discordのアカウントが要る
  • Axe v1.68.0から使える
  • 卓の状態や画像、ログインした人の名前を預かる(→ 運営の方針)
  • 費用が、卓の数と長さに応じて増える(→ 費用と上限)
  • 置く手間が多い(1時間ほど)

向いている人:裏向きのカードや秘話を確実に隠したい人、全員が抜けても卓を残したい人

参加者から見て違うこと ​

方式によって、参加者が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版

借りているレンタルサーバーに置きます。レンタルサーバーは、月いくらで借りるWebサーバーで、ホームページやWordPressを置くのに使われているものです(エックスサーバー、さくらのレンタルサーバ、ロリポップ!など)。

長所

  • すでに借りていれば、追加の費用がかからない
  • GitHubやVercelのアカウントが要らない
  • コマンドを使わずに置ける

短所

  • FTPのソフトと、サーバーの管理画面の操作に、少し慣れが要る
  • 新しい版にするたびに、ファイルを上げ直す
  • .htaccessが使えないサーバーには置けない
  • トークンの有効期間は、24時間から変えられない

向いている人:PHPの動くレンタルサーバーを、すでに借りている人

Vercel版(トークン発行)

Vercelに置きます。Vercelは、Webアプリを置いて動かせるサービスで、無料のプラン(Hobby)があります。

長所

  • ボタンを押して、3つの値を入れるだけで置ける(30分ほど)
  • 無料のプランで足り、支払い方法の登録も要らない
  • サーバーの面倒を見なくてよい
  • あとで、サーバー版の部屋のサーバーも同じプロジェクトにまとめられる

短所

  • GitHubとVercelのアカウントが要る
  • 無料のプランは、個人の非商用での利用が前提
  • Vercelの画面は英語だけ
  • 新しい版にするには、複製したリポジトリに、このリポジトリの変更を取り込む

向いている人:サーバーを持っていない人、手早く済ませたい人

Cloudflare版(トークン発行)

Cloudflare Workersに置きます。サーバー版の部屋のサーバーと同じWorkerのコードで、SkyWayの2つの値を入れるとトークンを発行します。

長所

  • 無料のプランで足りる
  • サーバーの面倒を見なくてよい
  • あとで、ログインの値を足せば、同じWorkerで部屋のサーバーも受け持てる

短所

  • ターミナルでwranglerのコマンドを打つ(Deployボタンはサーバー版だけ)
  • アカウントでR2とAnalytics Engineを使い始めておく必要がある(空のバケットが1つ作られる)

向いている人:Cloudflareをすでに使っている人、あとでサーバー版にも広げたい人

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版

Cloudflareに置きます。Cloudflareは、世界中のデータセンターでWebサイトを速く安全に届けるサービスで、その上でプログラムを動かすこともできます。部屋ごとに小さなサーバー(Durable Object)が1つずつ用意され、画像と音声はファイル置き場(R2)に置きます。

長所

  • 参加者が部屋のサーバーにつながりっぱなしになり、いちばん安定して動く
  • 無料のプランで、1日に25卓ほど遊べる
  • 自分のドメインを付けると、画像と音声が速く届く
  • 画面を日本語でも表示できる

短所

  • R2を使い始めるときに、クレジットカードかPayPalの登録が要る(無料枠の範囲なら請求はない)
  • 無料のプランの上限を超えると、その日は(日本時間の朝9時まで)部屋のサーバーへの操作が失敗する。それより多く遊ぶなら、有料のプラン(月$5)にする
  • 画像と音声を速く届けるには、自分のドメイン(backend.example.comのような名前)を別に買う

向いている人:部屋のサーバーを、長く安定して置きたい人

Vercel版(部屋のサーバー)

Vercelの上で、Cloudflare版と同じ部屋のサーバーを動かします。卓の状態はRedisというデータベースに、画像と音声はVercel Blobというファイル置き場に置きます。Redisは、Vercelの画面から、Upstashというサービスの無料のものを作ってつなげます。

長所

  • 支払い方法の登録が要らない
  • SkyWay版のトークン発行と、同じプロジェクトにまとめて置ける
  • 東京のリージョンで動く

短所

  • 数分ごとに部屋のサーバーが接続を閉じ、Axeがつなぎ直す(遊んでいる人にはほぼ見えない。その一瞬に届いた効果音などの演出は、まれに出ないことがある)
  • VercelのWebSocket(つながりっぱなしにするしくみ)は、まだベータ
  • 使った量で数えるので、卓の時間と人数で費用の見込みが変わる
  • 画像と音声を、データセンターに置いて速く届けるしくみが無い
  • Vercelの画面は英語だけ

向いている人:すでにVercelを使っていて、トークン発行と1つにまとめたい人

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の名前を変えて置けば、画像と音声の置き場所も、部屋も、別々になります。

次に読むもの ​

MITライセンスで公開しています