マルチプレイ — サーバー・フレンド・保護
このゲームは、サーバーを自分で立てられます。プロトコルが公開されていて、最小構成なら100行ほどのコードで人が入れます。
サーバーの選び方
起動時の画面でモードを選ぶと、サーバーの一覧が出ます。名前は「survival-us-2」のようにモードと地域で分かれているものが確認できています。
人が多いサーバーは資源の取り合いになりますが、そのぶんテレポートや保護の需要も高く、結果的に「拠点を守る遊び」が発生します。1人で建てたいなら、人が少ないサーバーか Peaceful を選んでください。
テレポートの条件
フレンドのところへ飛ぶには /tpa を使います。ただしこのゲームのテレポートには、独特の制限があります。
待ち伏せに注意
15秒間の無敵は、逃げる側には有利ですが、飛んだ先で待ち伏せされると、無敵が切れた瞬間に集中攻撃を受けます。知らない相手からの /tpa は、人がいない場所で受けるのが安全です。
- /tpa <名前>
- 相手に申請を送る
- /tpaccept
- 届いた申請を承認する
- /tpdeny
- 申請を断る
- 条件1
- 移動するまで3秒間、その場で静止する必要がある
- 条件2
- その前後15秒間は、ダメージを与えることも受けることもできない
ホーム登録
拠点・ダンジョンの入り口・Hell の作業場、と3か所を登録しておくと、往復の時間が大きく減ります。名前付きで複数登録できるので、用途ごとに分けてください。
- /sethome [名前]
- 今いる場所をホームとして登録。名前を省略すると既定のホーム
- /home [名前]
- 登録したホームへ戻る
- /homes
- 登録済みの一覧
- /spawn
- スポーン地点へ戻る
自分でサーバーを立てる
このゲームは、クライアントが接続するサーバーを自分で書けます。非公式ウィキに接続シーケンスとPythonの最小実装が公開されています。
できることとできないこと
公開されているのは「クライアントがワールドに入るまで」の最小構成です。戦闘・保護・テレポートなど、ゲームの機能はすべて自前で実装する必要があります。
- 接続方式
- WebSocket。サーバーが 0x0a パケット(9文字のランダムIDと none)を送るところから始まる
- クライアントの応答
- 0x0a を1バイト返す
- プレイヤー情報
- 0x1100 パケット。ID、名前、座標(ビッグエンディアンのfloat)、向き
- 地形
- 0x1101 パケットで32×32×32のチャンクを送る
- 必要なもの
- Pythonなら websockets パッケージ。ポート8765で待ち受ける例が公開されている
チャットとコマンド
公式のDiscordサーバーでアップデートが告知されています(招待リンクは非公式ウィキに記載)。仕様の変更は、まずそこで出ます。
- Enter
- チャットを開く
- /
- コマンドを入力する
- 困ったら
- まず /protectors list で自分の保護を確認。拠点が守られていない事故が一番多い
情報元と確度
コマンドとテレポートの条件、保護の仕様は非公式ウィキ、サーバー構築の手順は同ウィキの「Writing a Custom Server」にもとづいています。