概要
- MMO的なゲームを作ろうとした際にプレイヤーごとに表示するエリアを制限したい
- 主にプレイヤーが関係ない場所まで処理してしまうと負荷がかかってしまうため
- サーバーは常にすべてのエリアをストリーミングする
- Listen ServerではなくDedicated Serverの話です(Listen Serverは後日検証します)
- 個人の備忘録目的なので解説が雑です
やり方
- World SettingタブからUse Client Side Level Streamingを有効にする
- それぞれ表示したいエリアをサブレベルに分ける
- ストリーミング方法は常にロード済みにする
- パーシスタントレベルにサブレベル毎にLevel Streaming Volumeを配置する
- 各Level Streaming Volumeの設定をする(サブレベルとのヒモ付を行う)
確認方法
- Dedicated Serverを建てる
- クライアントでサーバーに接続する
- ユーザー毎に異なるレベルがストリーミングされていることを確認する
まとめ
- これを使えばMMORPGみたいな広い世界に複数人がいるというのも実現できるかも…?
- 実際はマップごとに1サーバーでマップごとに接続先を切り替えるほうが賢いかも(MMOの実務経験がないのでセオリーは知らないです)