ENGLISH | JAPANESE

Server

人狼知能プラットフォーム


人狼知能プラットフォーム0.6.xダウンロード

Java 11(以上)の実行環境が必要です.

0.6.x系プラットフォーム更新ログ

2023/06/28 ver0.6.4
  • AutoStarterの改良
    Pythonエージェントの名前を指定できるようにした(エージェント側の対応が必要)
2021/12/13 ver0.6.3
  • AutoStarterの改良
    • エージェント番号や役職付与におけるランダムネスを向上
    • 設定ファイル中の乱数の種を利用して条件を揃えることを可能とした
  • GUILogViewerStarterとAutoStarterに日本語GUIを有効にする隠しオプション -j
  • 存在しないエージェントが返ってきたときのゲームサーバの頑健性を向上
  • メソッド名の間違い修正
    誤: GameSetting#setRandomSeer,正: GameSetting#setRandomSeed
2020/06/29 ver0.6.2
  • AutoStarterで.NETおよびPythonエージェントの役職が指定できないバグの修正
2020/05/14 ver0.6.1
  • 非同時囁きの実装
2020/04/02 ver0.6.0
  • 同時発話でなくなり,発話直前の発話までしか知ることができなくなりました(ver0.5.xでは見かけ上順番を付けた同時発話でしたので,ターンの発話すべてを知ることができました).
  • Java 1.8のサポート期限が迫っていることから,開発環境をJava 11にしました.したがって実行できるクラスファイルのバージョンは55までとなります.
  • サンプルプログラムを改良しました.

人狼知能プラットフォームの起動

AutoStarterの使い方

開発したエージェントをローカルでテストするには,プラットフォームのzipファイルに含まれる
AutoStarter.sh(Linux,MacOS)またはAutoStarter.bat(Windows)を使います.

AutoStarterの設定

AutoStarter.iniが設定ファイルですので,まずこれを編集します.

lib=./ ...(1)
log=./log/ ...(2)
port=10000 ...(3)
game=10 ...(4)
view=false ...(5)
#C#=PATH_TO_C#_CLIENT_STARTER ...(6)
setting=./SampleSetting.cfg ...(7)
#agent=5 ...(8)
Sample1,java,org.aiwolf.sample.player.SampleRoleAssignPlayer,WEREWOLF ...(9)
Sample2,java,org.aiwolf.sample.player.SampleRoleAssignPlayer,SEER
Sample3,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
Sample4,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
Sample5,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
#PythonPlayerName,python,PATH_TO_PYTHON_PLAYER_FILE ...(10)
#C_SharpPlayerName,C#,PATH_TO_PLAYER_DLL:CLASS_PATH,SEER ...(11)

(1)はライブラリディレクトリを指定します.ここでは,./なので,AutoStarter.iniと同じディレクトリ,またはその下部ディレクトリにあるjarファイルを読み込みます.
(2)はログの出力場所です.
(3)はつなぐポートです.通常に変更する必要はありません.
(4)ゲーム数です.
(5)ゲームの経過をヴィジュアルで表示するかどうかを決めます.表示する場合はview=trueとしてください.
(6)C#エージェントを動かす場合に,C#のClientStarterへのパスです.
(7)Configファイルへのパス
(8)エージェント数を指定します.ここをコメントアウトした場合は,この下で指定するエージェントのみで実行します.
AutoStarter.shの外部から接続したい場合は,agent数を増やしてください.
例えば,Smaple4体と外部から1体接続したい場合は,

agent=5
Sample1,java,org.aiwolf.sample.player.SampleRoleAssignPlayer,WEREWOLF
Sample2,java,org.aiwolf.sample.player.SampleRoleAssignPlayer,SEER
Sample3,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
Sample4,java,org.aiwolf.sample.player.SampleRoleAssignPlayer

とすれば,

> AutoStarter.bat
add Sample4
add Sample3
add Sample2
add Sample1
Waiting for connection...

と表示され,Sample1-4が接続した時点でいったん停止しますので,外部エージェントを実行してください.
(9)Javaエージェントの設定
エージェント名,java,クラスパス,役職(希望があれば)
なお,読み込むjarファイルは,libで指定したディレクトリ以下に.
の順で書きます.
(10)Pythonエージェントの設定
エージェント名,python,PythonPlayerのファイルへのパス,役職(希望があれば)
(11)C#エージェントの設定
エージェント名,C#,C#のdllファイルへのパス:クラスパス,役職(希望があれば)
C#エージェントだけ,dllファイルへのパスとクラスパスの双方が情報として必要なので注意してください.

AutoStarterの実行

Linux,MacOSの方はAutoStarter.shを実行してください.
Windowsの方はAutoStarter.batを実行してください.

人狼知能プラットフォーム0.5.xダウンロード

0.5.x系プラットフォーム更新ログ

2019/05/27 ver0.5.6
  • 発話チェックのバグフィックス
2019/05/15 ver0.5.5
  • 発話チェックContent#validate()のバグフィックス
  • AutoStarter終了時の勝率表の改良
2019/04/17 ver0.5.4
  • 死後もdayStartが呼び出されるようになりました.
2019/04/15 ver0.5.3
  • 死後もdayFinishが呼び出されるようになりました.
2019/03/16 ver0.5.2
  • サンプルエージェントを改良しました.
  • Contentクラスのバグを修正しました.
  • GameViewerで主語が明示された発話がSkipになるバグを修正しました.
2019/03/07 ver0.5.1
  • サンプルエージェントを全面的に書き直しました.
  • GameViewerで対応していないTopicがあったのを修正しました.
2019/02/20 ver0.5.0
  • Pythonエージェントや.NETエージェントもAutoStarterからスタートできるようになりました.
  • AutoStarterではJavaエージェントに限りクライアント−サーバ間が直結となり,Javaエージェントのみの村では高速化が期待できます.
  • AutoStarter.iniの書式が変わりました.
  • ContentBuilder群が人狼知能プロトコルver.3に対応しました.

人狼知能プラットフォーム0.4.xダウンロード

0.4.x系プラットフォーム更新ログ

2018/06/16 ver0.4.12に更新
  • AutoStarterで外部から接続したPythonエージェントなどの成績が出ないバグを修正
  • AutoStarterがシングルスレッドで動いていた問題を修正
  • finishが二回呼ばれていた問題を修正
  • Voteなどで存在しないAgentを返した場合はnullを返したのと同じ扱いに変更
2018/01/26 ver0.4.11に更新
  • 文字化けのバグを修正
2018/01/24 ver0.4.10に更新
  • 発話内容のチェックのバグを修正
  • サンプルエージェントを「人狼知能で学ぶAIプログラミング」3.1のものに変更
  • AbstractRoleAssignPlayerを除いたサンプルエージェント用抽象クラスを非推奨に変更

2017/06/13 ver0.4.9に更新
  • 人狼処刑時にAttackが行われないバグを修正
2017/06/09 ver0.4.8に更新
  • サーバクライアント通信時のエージェントの並び順によって職業が推定可能であったため,並び順をランダム化
2017/05/25 ver0.4.7に更新
  • Java8固有のメソッドを使わないように修正
2017/05/18 ver0.4.6に更新
  • 非推奨だったorg.aiwolf.client.base.*を削除
  • 追放が決まったら即statusをDEADにするように修正
  • AIWolfGame#whisper()でmaxWhisperTurnであるべき箇所がmaxWhisperのままだったのを修正
  • GameData#getGameInfoToSend()で前日のcursedFoxであるべき箇所が当日のものだったのを修正
  • 死んだエージェントにもDAILY_FINISHリクエストが送られていたのを修正
  • AIWolfViewerを自然言語部門へ対応
  • AIWolfViewerで非推奨クラスを使わないように修正
2017/03/29 ver0.4.5に更新
  • いくつかのBugFIX
2017/01/15 ver0.4.4に更新
  • ContentBuilderを変更
  • Topicを変更
  • ContentBuilderとTopicに大きな変更がありましたので,0.4.3までで作ったエージェントではエラーが発生する可能性があります.申し訳ありません.
  • 詳細は0.4.4での発話生成の方法をご覧ください.
2016/12/28 ver0.4.3に更新
  • いくつかのBugFix
  • サンプルプレイヤーを強化
2016/12/23 ver0.4.2に更新
  • WhisperがViewerに表示されないバグを修正
  • サンプルプレイヤーをorg.aiwolf.sample.player.SampleRoleAssignPlayerに変更.
  • サンプルプレイヤーのソースコードはGitHubのページにあります.
2016/12/21 ver0.4.1に更新
  • vote()で再投票のときに前回の投票状況を知らせるため,GameInfoにlatestVoteListフィールドを追加.このフィールドは当日限り有効(日付変更とともに空になる)で,最終的な投票状況は翌日のGameInfoのvoteListフィールドに入る.
  • attack()で再投票のときに前回の投票状況を知らせるため,GameInfoにlatestAttackVoteListフィールドを追加.このフィールドは当日限り有効(日付変更とともに空になる)で,最終的な投票状況は翌日のGameInfoのattackVoteListフィールドに入る.
  • GameInfoのlatestExecutedAgentフィールドに当日の追放者が入る.divine(), guard(), whisper(), attack()で利用可能.このフィールドは当日限り有効(日付変更とともにnullになる)で,同じ情報は翌日のGameInfoのexecutedAgentフィールドに入る.
  • 元々エージェントに公開する予定のなかったGameInfoのattackedDeadフィールドを削除.
2016/11/30 ver0.4.0に更新
  • 人柱版

人狼知能プラットフォーム0.4.x系における主な変更点

人狼知能プラットフォームは0.4.x系に変更されます.

人狼知能ver0.4.x仕様書

主な変更点は以下の通りです.

Nightly Update

人狼知能プラットフォームはGitHubに登録されています.
最新版(不安定版)はhttps://github.com/aiwolf/からダウンロードできます.
ソースコードを読みたい方はこちらをお使い下さい

2016年11月現在,第3回大会のために開発中のバージョンは0.4.xになります.GitHubから直接ダウンロードする場合は,0.4.x系をご利用ください.
開発者がGitHub初心者のため,不備があったらご連絡ください

サーバクライアント通信仕様

プラットフォーム開発者用にサーバクライアントのTCP/IP通信の仕様書を公開します.
仕様書といっても,ざっくりしたものですが.
要望に応じて詳細を追加していきます.


 

過去ログ

これより下は過去の情報となります.最新版は0.4.xです.
以下の情報は最新版では適用されませんのでご注意ください.

 

人狼知能プラットフォーム0.3.xダウンロード

対戦用アプリケーション

人狼知能と対戦してみるためのアプリケーションを作成しました.

0.3.x系プラットフォーム更新ログ

2016/8/3 ver0.3.6に更新
  • Talk,Whisperでnullがくると発話を一切しないバグを修正
  • キャラクタの画像を差し替え
2016/7/4 ver0.3.5に更新
  • 0日目の最初にWhisperを実行する
  • Agentをfinalクラスに変更
  • AgentLibraryReaderのバグを修正
2016/5/15 ver0.3.4に更新
  • Java8に依存したコードがあったのを削除
  • AutoStarter.iniの改行コードを変更
2016/5/7 ver0.3.3に更新
  • AutoStarterを追加.設定ファイルに書かれている情報を元に人狼知能を実行できるようになった.詳細はこちら
2016/1/21 ver0.3.2に更新
  • TCIPIPServerで受け付けるエージェントが1少なくなっていたのを修正
2016/1/20 ver0.3.1に更新
  • Agent番号が0から始まっていたのを1からに修正
  • GUIClientStarterを追加
2015/1/5 ver0.3.0更新
  • バージョンを0.3.x系にアップデート

人狼知能プラットフォーム0.3.x系における主な変更点

人狼知能プラットフォームは0.3.x系に変更されます.

主な変更点は以下の通りです.

  • aiwolf-guiがaiwolf-viewerに名称変更されました.
  • それに伴い,packageがorg.aiwolf.common.uiからorg.aiwolf.uiに変更されました.
  • 独自に使っている方は,AIWolfGame#setLoggerで,GameViewerをセットするように変更してください
  • DirectStarterやRoleRequestStarterが非推奨になりました.今後はTCPIP接続による実行を推奨します.
  • TCPIPサーバを簡単に立ち上げられるように,GUIServerStarterを作成しました.
  • AIWolf-0.3.x/StartServer.bat(Windows)またはAIWolf-0.3.x/StartServer.bat(Mac, Unix)を実行すれば自動的にGUIServerStarterが開始されます.
  • GUIServerStarterは開発中です.

第一回人狼知能大会用サーバ

第一回人狼知能大会用サーバは人狼知能大会のレギュレーションに沿ったものになります.

バグFIXなどが行われる可能性はありますので,常に最新版をご確認ください.

第一回人狼知能大会@CEDEC2015

サンプルエージェント

プロジェクトメンバーが作ったサンプルエージェントを公開します.zipファイルを解凍してソースコードをご覧ください.
ご自由に改変,流用いただけます.

大会用サーバ更新ログ

2015/8/1 ver0.2.5に更新
  • InitializeでGameSettingを変更出来るバグを修正
2015/7/19 ver0.2.4に更新
  • ごくまれに襲撃になぜか失敗するバグを修正しました
2015/7/13 ver0.2.3に更新
  • GUI周りのバグを修正しました.
  • BODYGUARDが処刑後に他のエージェント守れるバグを修正しました.
2015/7/12 ver0.2.2に更新
aiwolf-gui-0.2.2.jarを追加しました.

aiwolf-gui-0.2.2.jarをビルドパスに追加して,ゲームの起動を
org.aiwolf.server.bin.RoleRequestStarterの代わりに
org.aiwolf.client.ui.bin.GUIRoleRequestStarterを利用する事でGUIでログを見ることができるようになります.

あるいは,AIWolfGame#setLoggerで,GameFrameを設定すればGUIでログを確認することができるようになります.

guisample

2015/6/29 ver0.2.1に更新
人狼標準ルールに従うようにバグを修正.

一部これまでには発生しなかったnullが存在するようになるため,お気をつけください.

  • 占い先が不正だった場合は占い結果はnullになる
  • BodyGuardによるガード先が不正だった場合は護衛対象はnullになる.護衛は行われない.
  • BodyGuardが処刑されていた場合,護衛は発生しなくなるように修正.
  • 自分に投票した場合,他のプレイヤーの中からランダムに選ばれたプレイヤーに投票する.
  • 襲撃先が不正だった場合,襲撃への投票を棄権したことになる.
  • すべての人狼が投票を棄権した場合,襲撃は行われない.
  • FileGameLoggerでディレクトリを指定した場合,自動的にファイル名をつけてログを作成するようになった.

安定板

Nightly Update

人狼サーバはGitHubに登録されました.
最新版(不安定版)はhttps://github.com/aiwolf/からダウンロードできます.
ソースコードを読みたい方はこちらをお使い下さい

2015年11月現在,第二回大会のために開発中のバージョンは0.3.xになります.GitHubから直接ダウンロードする場合は,0.3.x系をご利用ください.
開発者がGitHub初心者のため,不備があったらご連絡ください

対戦用アプリケーション

人狼知能と対戦してみるためのアプリケーションを作成しました.

illust KRNN