Diarkis サーバーを Windows 環境で起動する
はじめに
Diarkis サーバーを Windows バイナリとしてビルドして動かすこともできます。
これにより、Windows マシン上で開発するクライアントエンジニアが WSL なしで Diarkis サーバーを動作させることが可能となり、開発作業の効率化に役立てる事ができます。
ただし、本番環境での利用は想定していないので、ローカル環境や開発環境での利用にとどめてください。
動作環境
2025-04-04 現在、以下の環境での動作を想定しております。
Windows 10/11
Go 1.22 以上
(git でリポジトリを close する場合は git)
手順
必要なツールのインストール
Go 1.22 以上をインストールします。https://go.dev/doc/install
scoop などのパッケージマネージャーを使ってインストールすることも可能です。
> scoop install go
Diarkis Server Template のインストール
リポジトリをクローンする場合
https://github.com/Diarkis/diarkis-server-template をクローンします。
> git clone [email protected]:Diarkis/diarkis-server-template.git
# 必要に応じて利用するバージョンのタグをチェックアウトします
> git checkout v1.1.0-beta1
アセットをダウンロードする場合
https://github.com/Diarkis/diarkis-server-template/releases を開き、最新バージョンの Assets をダウンロードし、解凍して利用します。
プロジェクトの生成
PowerShell から以下のコマンドを実行して、プロジェクトを生成します。
# parameters: {project_id} {builder_token} {output}
> .\run-mage.bat init 12345678901 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ../server_bin
project_id
: 弊社が発行したプロジェクトIDbuilder_token
: 弊社が発行したBuilder Tokenoutput
: 生成したプロジェクトの出力先。ここでは../server_bin
として説明します
プロジェクトの初期化
プロジェクトを出力したディレクトリに移動し、以下のコマンドを実行します。
> cd ..\server_bin
> .\run-mage.bat init
ビルド
以下のコマンドを実行して、Diarkis のサーバーバイナリをビルドします。
> .\run-mage.bat build:local
ビルドが終了すると、 remote_bin ディレクトリにバイナリが出力されます。
実行
mars, http, udp をそれぞれ起動します。それぞれ別の PowerShell のウィンドウで起動します。
> .\run-mage.bat server mars
> .\run-mage.bat server http
> .\run-mage.bat server udp
動作確認
Go のテストクライアントを使って疎通確認ができます。
# parameters: <HTTP address> <client user ID> <client key> <puffer enabled: true/false>
> .\run-mage.bat goCli 127.0.0.1:7000 user-1 key false
HTTP address: Diarkis HTTP サーバーのアドレス
client user ID: 認証するユーザーの ID。
client Key: クライアントキー。開発環境では、
key
を指定しますpuffer enabled: Diarkis Puffer モジュールの利用可否。ここでは false を指定します
正常に認証できると、以下のような表示になり、コマンド待ち受け状態となります。
[UID: user-1][SID(UDP): 23942c034d8d4094b09ab7219d28cebc]
> Connected UDP
接続後、 Room の作成をする場合は以下のコマンドを実行して作成することができます。
> Connected UDP
room create
Enter for which protocol to a create a Room (TCP/UDP): (Default: UDP)
Invalid input. Set to default value: UDP
Enter max members [1 - 255] (uint16): (Default: 10)
Invalid input. Set to default value: 10
Enter if allow empty (y/n): (Default: no)
Invalid input. Set to default value: false
Enter if join on creation (y/n): (Default: yes)
Invalid input. Set to default value: true
Enter TTL (seconds) [10 - 65535] (uint16): (Default: 30)
Invalid input. Set to default value: 30
Enter broadcast interval (milliseconds) (uint16): (Default: 100)
Invalid input. Set to default value: 100
# UDP RoomID がプロンプトに表示されて Room に参加している状態となる
[UID: 1111][SID(UDP): c51ea8010bc44ea5b6cd6ef2bb788ad8][UDP RoomID: 580e3cef8588bd287f0000011fa5000000000000000000000000]
補足
テストクライアント
テストクライアントでは room create
コマンド以外にも様々なビルトインコマンドを実行して確認することができます。詳細はヘルプセンターの以下ページをご確認ください。
magefile
magefile
.¥run-mage.bat
は内部で magefile という Go のツールを利用しています。
make/rake などのようなビルドツールで、Go でビルドフローなどを記載することで、プラットフォームに依存しない管理ができるようになります。
他のターゲットを確認する場合は、以下のように引数なしで実行することで確認できます。
> .\run-mage.bat
Targets:
build:linux Build server binary for linux or container environment
build:local Build server binary for local use
build:mac Build server binary for mac use
diarkis:changeVersion Change diarkis version.
diarkis:version Print the version of diarkis currently used.
goCli Starts Go test client.
init Initialize project
puffer:clean Delete all generated protocol code files.
puffer:gen Generate go, cpp, and cs code files using puffer (Diarkis packet gen module) from packet definition written in json.
server Start a server locally: Required 1 following argument: mars http udp tcp
最終更新
役に立ちましたか?