囲みマスロゴ
囲みマスロゴ
DocsScrapbox

docker-composeを用いたローカルサーバ構築

概要

自分で作成した対戦プログラム(以下、自作AI)は通常 api.kakomimasu.com に接続して対戦させますが、その場合、毎回マイゲームを作成して接続させるのは大変面倒です。 実際に開発する時にはローカルでサーバを立て、フリーマッチという形で自作AIを接続する形を取った方が楽な場合があります。
したがって囲みマスではdocker-composeを利用したビューア・APIサーバ ローカルサーバ実行ツールを提供しています。これを使用することでローカル環境による自作AI開発が容易になります。

ローカル実行ツールビルド・起動方法

1. Docker・Composeインストール

docker-composeコマンドが実行できる環境が必要です。既にインストール済みの人は2へ進んでください。
まだの方は下記サイトからDocker及びDocker Composeのインストールを行ってください。

Docker Composeのインストール - Docker-docs-ja

Docker for Mac または Docker for Windowsをインストール済みの方は既にDocker Composeも使えるようになっています。

2. ビルド

kakomimasu/viewer-server - Githubをクローンして、buildコマンドを実行します。
一度ビルドしたら次回からは3のみで起動できます。しかしserverやviewerのバグ修正や新機能追加などを取り入れるには再度ビルドする必要があります。

1 2 3 git clone https://github.com/kakomimasu/viewer-server.git cd viewer-server docker-compose build

3. 起動

作成したコンテナを実行します。

1 docker-compose up

docker-composeの詳しい使用方法は公式のドキュメントなどをご覧ください。

4. ビューア起動の確認

http://localhost:3000 に接続し、ビューア(kakomimasu.comと同じ画面)が表示されれば起動成功です。
クライアントの接続へ進んでください。

クライアントの接続

起動したローカルサーバにクライアントを接続してAI対戦をしてみましょう。
Deno版クライアント「client-deno」を使用します。

1. client-denoをダウンロード

1 2 git clone https://github.com/kakomimasu/client-deno.git cd client-deno

2. client_a1.jsとAI-5を対戦

1 deno run -A .client_a1.js --useAi a5 --local --OnlyAi

3. 対戦の様子を観察

http://localhost:3000/game/detail に接続すると対戦の様子をリアルタイムで見ることが出来ます。
※ client_ax.jsに渡す引数についてはkakomimasu/client-deno - Githubをご覧ください。

自作AIの開発

クライアントの接続にてclient_a1とAI-5を対戦させた場合、たいていは自分(client_a1)が負けていると思います。
まずはこのAI-5に勝つことを目標として自作AIを開発してみましょう。
以下のサイトでクライアントの作成方法を紹介しています。参考にしてみてください。

ゲーム参加方法

また、以下のクライアントやAPIドキュメントも公開していますのでぜひ活用ください。
  • client-cpp:C++用クライアント
  • client-js:Browser、Node.js、Deno用クライアント(client-denoはAI作成に便利なクラスを実装していますのでDenoを用いる際にはclient-denoをお使いください。)
  • client-deno-template:client-denoを用いた開発テンプレート
  • APIドキュメント
badge