高校時代にFF11にハマってから、オンラインゲームの運営か開発に携わることを夢見て10年弱。UnityのAssetStoreを眺めていると、uMMORPGというAssetがセール中だったのを見て即ポチしてしまいました。Networking技術を使ったMMORPGのテンプレートAsset。Networking何ができるかLAN内のプレイヤーとP2P通信、UNETを使用、Linuxのheadlessモードを使用したホストサーバ-クライアント間通信の3方式に対応していると思われ。今回は3つ目に挙げた、Linuxのheadlessモードを使用したホストサーバ-クライアント間通信についてのメモ兼復習記事。必要なものUnity当たり前ですが、Unityのインストールが必要。後述するuMMORPGに対応した最低バージョンは必須。uMMORPGAssetStoreから購入します。セール時は25%offとかで購入可能なはず。ホストサーバVPSまたは専用物理サーバが必要です。専用サーバはフツーにレンタルするだけでも月額がアホみたいに高いので、必要になるまでは基本的にVPSでok。さくらのVPSなら1Gでもフツーに動作する。同接数が増えていくとどうかな?ビルド/動作確認マシン3Dアプリなので、できればWindowsのグラボ積んでいるPCを使用したいところ。本記事もwindows前提。途中Linuxビルドが必要になりますが、Windowsでビルドできるので無問題。ssh/scpツール私はrloginを使用しました。rloginはsshの他にドラッグ&ドロップでファイル転送できるscp機能も備えているのでラクラク。VPSサーバの初期設定ubuntuをインストールする。インストール手順はVPS提供元でインストールガイドがあるはずなので割愛します。公開するポート番号を22から変える場合、その番号を控えておく。Unityプロジェクトを作成する空のUnityプロジェクトを作成し、uMMORPGをインポート。Portの値を1で変更した値に変更する。BuildSettingsからプラットフォームをLinuxに変更し、HeadlessModeのチェックを付ける。ビルドするとhoge_Dataとhoge.x86_64が生成されるので、生成されたものをzip圧縮する。圧縮ファイルの名前をheadless.zipに変更する。ホストサーバでアプリをheadlessモード起動するheadless.zipをユーザディレクトリ直下に配置されるようscp転送し、unzip。hoge_Dataとhoge.x86_64が展開される。hoge.x86_64をしておく。./hoge.x86_64をrloginから実行すると、headlessモードでアプリが起動する。UnityEditorからホストサーバに接続するBuildSettingsのプラットフォーム設定をwindowsに戻す。Addressの値をxxx.xxx.xxx.xxx(ホストサーバのパブリックIPアドレス)に変更。RunしてConnectボタンを押すと、キャラクターを作成できる画面に遷移すれば接続成功。公開ポート番号を変更したらuMMORPG側でも変更必要。実行ファイルのパーミッションに注意。ファイアウォール設定PCのファイアウォール設定をしておかないとタイムアウトになる。