[rcssserver-9.4.5]

 * ペナルティキックの欠陥を修正した。プレイヤの自動移動が有効な場合に、
   不正な位置のプレイヤのみが移動されるようになった。
 * cygwinがインストールされていないWindowsでの、コンフィグファイルの
   位置に関する欠陥を修正した。全てのWindowsシステムで、コンフィグファ
   イルは"My Documents/.rcssserver"に置かれるようになった。

[rcssserver-9.4.4]

 * half_time時に、"half_time"ではなく"halfTime()"が送られていた欠陥を
   修正した。
 * ボールのキャッチ後すぐに非キャッチ状態にセットされ、キーパーがボー
   ルと共にmoveすることを妨害していた欠陥を修正した。

[rcssserver-9.4.3]

 * 敵チームにキーパーがいない場合に、ペナルティキックで得点が得られな
   い欠陥を修正した。
 * 審判モジュールでballCaughtコールバックの代わりにkickTakenコールバ
   ックが呼ばれていた欠陥を修正した。
 * ドロップボールを待つことで間接フリーキックを回避できる欠陥を修正し
   た。ドロップボールが与えられると、間接フリーキックが与えられていた
   チームは、2人以上のプレイヤか敵チームのプレイヤがボールに触るか、
   その他の理由でプレイがストップされない限り、得点できなくなった。
 * ペナルティキックのキッカーがキーパーのキャッチと同じサイクルにボー
   ルをキックできる欠陥を修正した。
 * half_timeパラメータが負の場合、直ぐにペナルティキックモードへ移行
   してしまう欠陥を修正した。
 * ペナルティキックでキッカーのリストにキーパーが含まれていなかった欠
   陥を修正した。
 * キーパーがボールを持ったままペナルティエリアの外へ行けてしまう欠陥
   を修正した。キーパーがボールをキャッチした状態でmoveかdashを行って
   ボールがペナルティエリアの外へ出た場合、ゴールラインを割っていなけ
   ればキャッチフォルトが与えられ、ボールはペナルティエリアの最も近い
   端へ置かれる。ゴールラインを割った場合、ゴールキックかコーナーキッ
   クが与えられる。フリーキックが行われる場所から9.15m以内で無い限り、
   キーパーは移動させられない。
 * コンフィグファイル生成の欠陥を修正した。いくつかの値が修正後の値で
   書かれていた(例:half_timeが300ではなく3000になっていた)。
 * MySQLSaverは、データベースに存在しなければ使用するテーブルを生成す
   るようになる。これは、MySQLデータベースに結果を保存するためのセッ
   トアップが非常に容易になることを意味する。ユーザがすべきことは、mysqld
   をスタートさせ、結果のデータベースを生成し、そのデータベースへのア
   クセスを許可することだけである。例えば、以下のようになる。

 mysql -u root

 mysql> create database `rcss`;
 mysql> grant all privileges on `rcss` to 'myuser';
 mysql> flush privileges;

 そして、サーバを以下のオプションで起動する。

 MySQLSaver::save=on
 MySQLSaver::db='rcss'
 MySQLSaver::user='myuser'

 更にオプションで以下のように指定する。

 MySQLSaver::round_name='the name of the round'
 MySQLSaver::event_name='the name of the event'

 または、~/.rcssserver/MySQLSaver.conf でこれらのデフォルト値を変更す
 ればよい。
 * MySQLSaverとStdOutSaverが常に無効になっていたバグを修正した。
 * 時刻フィールドのフォーマットに関するMySqlSaverのバグを修正した。
 * StdOutSaverに時刻の出力を追加した。
 * CSVSaverを追加した。このモジュールは結果をコンマで分けられて値でフ
   ァイルに保存する。この機能はデフォルトでは無効にされているが、CSVSaver::save
   オプションを有効にすることで使用できる。デフォルトのファイルは、
   "rcssresults.csv"で、CSVSaver::filenameによってファイル名を変更で
   きる。ファイルが存在しない場合は新しく生成される。ファイルが存在す
   る場合は、データはファイルの末尾に追加される。各行には、以下のフォ
   ーマットによる試合結果が含まれる:
   TIME, TEAM_LEFT, TEAM_RIGHT, COACH_LEFT, COACH_RIGHT, SCORE_LEFT,
   SCORE_RIGHT, PEN_ATTEMPTS_LEFT, PEN_ATTEMPTS_RIGHT,
   PEN_SCORED_LEFT, PEN_SCORED_RIGHT, COIN_TOSS_WINNER

 それぞれの説明:

  TIME : %Y-%m-%d %H:%M:%S のフォーマット
  TEAM_LEFT : 二重引用符で囲まれた左サイドのチーム名かNULL
  TEAM_RIGHT : 二重引用符で囲まれた右サイドのチーム名かNULL
  COACH_LEFT : 二重引用符で囲まれた左サイドのコーチ名かNULL
  COACH_RIGHT : 二重引用符で囲まれた右サイドのコーチ名かNULL
  SCORE_LEFT : 左サイドのチームのスコア
  SCORE_RIGHT : 右サイドのチームのスコア
  PEN_ATTEMPTS_LEFT : 左サイドのチームが試みたペナルティキックの回数
   かNULL
  PEN_ATTEMPTS_RIGHT : 左サイドのチームが試みたペナルティキックの回数
   かNULL
  PEN_SCORED_LEFT : 左サイドのチームののペナルティキックのスコアかNULL
  PEN_SCORED_RIGHT : 右サイドのチームののペナルティキックのスコアかNULL
  COIN_TOSS_WINNER : LEFT, RIGHT または NULL
 * llimporterの検出の問題を修正した。
 * 結果保存モジュールは試合開始前にロードされるようになった。これによ
   り、コンフィグファイルやコマンドラインの解析でのエラーが試合開始前
   に検出されるようになった。
 * MySQLSaverにいくつかのパラメータが追加された。以前に述べられたfile
   パラメータがもはや存在しないことに注意してください。代わりにinclude
   パラメータを使用すること。モジュールはTCP接続で使用されるポート番
   号を指定するためのportパラメータを持つようになった。ソケットの名前、
   または接続に使われる名前のついたパイプを指定するために、unix_socket
   パラメータも存在する。compressパラメータとsslパラメータを用いるこ
   とで、圧縮とSSLがそれぞれ利用可能である。試合がどのラウンドかを
   round_idによって指定できる。round_idが指定されていない場合、event_id
   またはevent_nameパラメータと共にround_nameパラメータが使用される。
   event_idが指定されている場合、event_nameパラメータは無視される。

[rcssserver-9.4.2]

 * -lrcsslibloaderライブラリのためのターゲットが無いというメッセージ
   が出力されるビルドプロセスのバグを修正した。

[rcssserver-9.4.1]

 * CLangでPointの算術演算と比較のオペレータを用いた場合にクラッシュす
   るバグを修正した。

[rcssserver-9.4.0]

 * Windowsにおいて、サーバファイル名内の ~ の解釈を試みるようになった。
   コードはテストされておらず、恐らくバグが含まれている。これに関する
   バグの情報を出来る限り提供してください。
 * 新しいサーバパラメータ pen_coach_moves_players を追加した。この値
   がtrueにセットされ、ペナルティキックのセットアップピリオド終了時に
   正しい位置にいないプレイヤが存在する場合、そのプレイヤのチームの全
   プレイヤが適切な位置へ移動させられる。ペナルティキックの間にプレイ
   ヤが不正な位置へ移動すると、サーバは自動的に位置を修正する。このオ
   プションが有効になっていると、ペナルティキックの間に位置に関するフ
   ァウルが発生しないことになる。

 ペナルティキックを行う位置へ移動されるプレイヤは、ペナルティキックを
 行っていないプレイヤ集合の中の、最初のプレイヤである。キーパーが選ば
 れることもあり、ボールに最も近いプレイヤが選ばれるわけではない。
 * mysqlデータベースに試合結果を格納する、保存モジュールが追加された。
   このモジュールは、システムにmysqlライブラリがある場合にのみ生成さ
   れる。このモジュールは、コマンドライン引数から以下の形式で設定情報
   を読み込む。

 module::MySQLSaver::PARAM=VALUE

 PARAMはコンフィグパラメータの名前で、VALUEはセットしたい値である。以
 下のリストは、MySQLSaverが理解するパラメータと、それぞれのデフォルト
 値、そして簡単な説明である:

 +-------+---------+---------------------------------------------+
 | Param | Default | Description                                 |
 +=======+=========+=============================================+
 | host  | ""      | MySQLデータベースが実行されているマシンの   |
 |       |         | IPのホスト名。空文字列はlocalhostが使われる |
 |       |         | ことを意味する。                            |
 +-------+---------+---------------------------------------------+
 | user  | ""      | データベースに接続するusername。            |
 |       |         | 空文字列は、現在のunix usernameが使われる   |
 |       |         | ことを意味する。                            |
 +-------+---------+---------------------------------------------+
 | pass  | ""      | 使用しているユーザに対する、データベースの  |
 |       |         | パスワード。                                |
 +-------+---------+---------------------------------------------+
 | db    | ""      | 使用するデータベースの名前。空文字列は、    |
 |       |         | デフォルトデータベースが使用されることを    |
 |       |         | 意味する。                                  |
 +-------+---------+---------------------------------------------+
 | file  | ""      | コンフィグ情報を読むためのファイルの名前。  |
 |       |         |                                             |
 +-------+---------+---------------------------------------------+

 fileが指定された場合(複数回の指定と全く指定しないことも可能)、コン
 フィグ情報は以下のフォーマットでファイルから読み込まれる:

 PARAM:VALUE

 PARAMとVALUEに関しては、上記のとおりである。
 * 試合結果を人間が判読できるフォーマットで標準出力に表示する結果保存
   モジュールが追加された。この表示結果を別のプログラムで解析しようと
   してはならない。フォーマットに関する保証は無く、バージョンごとに変
   更が加えられるかもしれない。解析可能なフォーマットのテキスト出力が
   欲しいのであれば、それが可能な独自のモジュールを作成してください。
 * 動的にロードされるモジュールによる試合結果保存のサポートを追加した
   (このモジュールに関する情報は下記参照)。結果保存モジュールは、
   rcss::ResultSaverから継承されなければならない。そして、モジュール
   の初期化時にrcss::ResultSaver::Factoryを用いて登録しなければならな
   い。実装例がstdoutsaver.cppで見つけられる。
 * rcssbaseに新しいコンフィグレーションパーザを統合した。古いコンフィ
   グファイルのフォーマットはもうサポートされない。しかし、以下のawk
   スクリプトによって、新しいフォーマットへと簡単にコンバートできる。

   awk '/^[rcssserver- \\t]*$/ {} \
   /^[rcssserver-^#]+[:]/ { gsub(/:/, \"=\" ); $1 = \"server::\" $1; } \
   /^[rcssserver- \\t]*[^#:=]+$/ { $1 = \"server::\" $1 \" = true\"; } \
   { print; }' \
   oldserver.conf > newserver.conf

 サーバは、~/.rcssserver-server.conf が存在するならそれを読み、新しい
 コンフィグファイル~/.rcssserver/server.conf が存在しないなら、設定を
 ~/.rcssserver/server.conf へと保存する。これにより、ほとんどのユーザ
 はコンフィグファイルの変更に影響されず、現在のオプションによって
 ~/.rcssserver/server.conf が生成される。

 同様の処理が~/.rcssserver-player.conf に対しても行われ、~/.rcssserver/player.conf
 が生成される。

 スクリプトでrcssserverに渡しているパラメータがあれば、それを編集する
 必要がある。"-PARAM VALUE" を "server::PARAM = VALUE" または "player::PARAM = VALUE"
 へ、"-sfile FILE" と "-pfile FILE" を "include = FILE" へと変更しな
 ければならない。
 * 自動モジュールロードのサポートを追加した。モジュールはモジュールデ
   ィレクトリ(デフォルトは/usr/local/share/rcssserver/modules)にそ
   れらを追加、削除することで、自動的に追加または削除される。モジュー
   ルディレクトリは、サーバパラメータのmodule_dirで指定できる。動的ロ
   ーディングがサポートされていないシステムで、静的コンパイルが使用さ
   れる場合、configureの間に RCSSSERVER_DLOPEN_LIBS オプションを用いて
   モジュールローディングがシミュレートされる。

 カスタムモジュールは以下の行を含まなければならない。

 LIBLOADER_EXPORT( libname, init, fin );

 libnameは拡張子を除いたライブラリの名前(例:libstdoutsaver)である。
 initとfinは、モジュールに対する初期化と終了の関数の名前である。これ
 らの関数はパラメータを足らず、返り値はvoidでなければならない。

 独自のモジュールを用いる場合、モジュールはobject factoryを用いてクラ
 スを登録(または登録抹消)しなければならない(通常、初期化と終了の関
 数で実行される)。object factoryは、クラスのインスタンスを生成するた
 めにサーバで使用される。詳細は、基本クラスのobject factoryインターフ
 ェイスを参照してください。
 * ログファイル名にコーチの名前を加えるサポートを追加した。オンライン
   コーチのinitコマンドは以下のフォーマットになった:

 (init TEAMNAME [rcssserver-COACHNAME] [(version X)])

 例:

 (init myteam (version 7))
 (init myteam mycoach)
 (init myteam mycoach (version 6))

 これらは全てオンラインコーチのinitコマンド文字列として有効である。

 オンラインコーチが接続しコーチ名が指定されている場合、試合終了時にロ
 グファイルはリネームされ、チーム名の後に"_COACHNAME"が追加される。

 例:

 200305081101-test_coach_1-vs-test2_coach2_2.rcl

 これは、'team' 対 'team2'で、'team'がオンラインコーチ'coach'を持って
 おり、'team2'がオンラインコーチ'coach2'を持っている場合のログファイ
 ルである。

[rcssserver-9.3.7]

 * モニタへteam graphicを送る際の欠陥を修正した。データの最初のライン
   が繰り返され、team_graphic_{l|r}と(の間にスペースが無かった。
   Thanks got to Matus Horvath for reporting
   the problem and providing the patch.
 * gcc3.3でのコンパイルの問題を修正した。

[rcssserver-9.3.6]

 * プレイヤがリコネクトしたときにセグメンテーションフォルトを起こす欠
   陥を修正した。

[rcssserver-9.3.5]

 * プレイヤからのear on/offコマンドの取り扱いで、partialとcompleteが
   逆になっていたバグを修正した。
 * 将来のユーザの助けのために、サーバの起動時に、使用しているrcssbase
   のバージョンも表示するようになった。
 * catch_fault_r文字列をcacth_fault_rから修正した。
 * オンラインコーチに関するセグメンテーションフォルトを修正した。これ
   は、コーチが一度接続してから接続を切った後に、同じチームのコーチに
   再び接続しようとした場合に起こる。
 * CLangにおいて、論理的に不正な方法で再構成されるネストされた条件文が
   起こるバグを修正した。

[rcssserver-9.3.4]

 * tackle_distとtackle_widthのデフォルト値がそれぞれ2.0と1.0に変更さ
   れた。各自の~/.rcssserver-server.confを修正するか、再生成するため
   にこのファイルを削除しなければならない。
 * 通常のハーフと延長ハーフの終了後は、プレイヤの交代が許可されない制
   限が加えられた。従って、ペナルティキックの間や直前にプレイヤの交代
   を行うことはできない。

[rcssserver-9.3.3]

 * サーバかモニタが見つからない場合、rcsoccersimスクリプトはエラーを
   報告するようになった。スクリプトは、RCSSMONITOR環境変数によって指
   定されるモニタをデフォルトモニタとして使用するように変更された(独
   自のモニタやクラシックモニタを手軽にデフォルトに変更可能)。オプシ
   ョン-frameviewか-classicを使って、いつでもデフォルトを無効にするこ
   ともできる。
 * recover_initがバージョン8のプレイヤへ送られるべきでないのに送られ
   ていたバグを修正した。
 * OS Xでのいくつかのビルドの問題が修正された。静的ビルドを行うと、サ
   ーバはOS X上で動作するようである。動的ライブラリを実行させるために
   は、少なくとも、libtoolとauto*を以下のようにしてrcssserverディレク
   トリから再構築する必要がある。ただし、未知の問題があるかもしれない。

 aclocal
 glibtoolize --force --copy
 aclocal
 autoheader
 automake --add-missing --copy
 autoconf

[rcssserver-9.3.2]

 * RCSSClientは、configureのオプションに'--without-ncurses'を用いるこ
   とで、システムにncursesを持っていてもncurses無しでコンパイルできる
   ようになった。
 * 環境変数SEDが、configure時のlibtoolスクリプトで自動的に設定される
   ようになった。
 * Solarisにおいて、デフォルトサーバパラメータの初期化時に起こるクラ
   ッシュを修正した。
 * RCSSServerは、sstreamとstrstreamのどちらが利用可能かに依存してコン
   パイルされるようになった。

[rcssserver-9.3.0]

 * synch modeでのバグを修正した。このバグは,未接続のクライアントへも
   "think"コマンドを送信し、その返事を待つという問題を起こす.
 * flexの使用法に関して、いくつかのシステムにおいて、生成されたソース
   ファイルの手作業での編集を要求するバグを修正した。このバグは、CVS
   からコードをチェックアウトした人、.llファイルを編集した人、または
   他の理由で生成コードを再ビルドした人にのみ影響する。
 * synch modeでクライアントが接続を切ったときにサーバがクラッシュする
   バグを修正した。
 * 試合終了後にキックとタックルが許可されるバグを修正した。
 * サーバパラメータeffort_initがセットされず、使用もされないにも関わ
   らず、サーバパラメータメッセージの一部としてプレイヤに送信されてい
   たバグを修正した。
 * サーバパラメータrecover_initがセットされず、使用もされないにも関わ
   らず、サーバパラメータメッセージの一部としてプレイヤに送信されてい
   たバグを修正した。
 * 自動ペナルティモードを追加した。

 まず、いくつのハーフがプレイされるかを決定するための2つのサーバパラ
 メータが追加された。
 nr_normal_halfs (default=2) - 常に完全にプレイされるハーフの数
 nr_max_extra_halfs          - スコアが引き分けだった場合に、ゴールデ
                               ンゴール方式が適用される延長ハーフの数

 ゴールが決まらず、かつサーバパラメータpenalty_shootoutsがtrueであっ
 た場合、自動ペナルティモードが開始される。

 新しいプレイモード、メッセージ、サーバパラメータが導入された。

 New PlayModes:
 PM_PenaltySetup_Left/Right (message: penalty_setup_l/r)
 PM_PenaltyReady_Left/Right (message: penalty_ready_l/r)
 PM_PenaltyTaken_Left/Right (message: penalty_taken_l/r)
 PM_PenaltyMiss_Left/Right  (message: penalty_miss_l/r)
 PM_PenaltyScore_Left/Right (message: penalty_score_l/r)

 Messages:
 penalty_onfield_l/r
 penalty_foul_l/r
 penalty_winner_l/r
 penalty_draw

 Server parameters
 pen_before_setup_wait
 pen_setup_wait
 pen_ready_wait
 pen_taken_wait
 pen_nr_kicks
 pen_max_extra_kicks
 pen_dist_x
 pen_max_goalie_dist_x
 pen_allow_mult_kicks
 pen_random_winner

 手順は以下のようになる。

 1. 審判はどちらのサイドでペナルティキックが行われるかをメッセージ(penalty_onfield_l/r)
    で通知する。
    (訳者注:どちらのサイドのゴールを使ってペナルティキックが行われ
      るかの通知という意味)

 2. 審判はゴールからの距離がpen_dist_xの位置のペナルティマークへボー
    ルを移動させる。

 3. 審判はスタートするチームをランダムに選びそれを通知する(penalty_setup_l/r)

 4. 審判はpen_setup_waitサイクル待機し、その後プレイヤが以下のルール
    に従って移動を完了したかどうかをチェックする。
    - 防御側キーパーは、ゴールラインからgoalie_pen_line_distメートル
      以内、かつゴールポストの間に移動しなければならない。
    - 攻撃側キーパーは、ゴールラインよりも後ろ、かつペナルティエリア
      ラインよりも外側に移動しなければならない。(ただし、キーパーが
      キッカーを務める場合は除く)
    - 防御側プレイヤと攻撃側のキッカー以外のプレイヤは、センターサー
      クル内へ移動しなければならない。
    - キッカーとなるプレイヤは、ボールから2メートル以内の位置に移動し
      なければならない。(キーパーを含めて)11人全員が蹴り終わるまで、
      同じプレイヤが再びキッカーとなることは出来ない。
    pen_setup_waitサイクル後に、どちらか一方のチームでも以上のルール
    に従っていなかった場合、そのペナルティキックは終了する。攻撃側チ
    ームが違反した場合ミスとしてカウントされ、それ以外の場合(防御側
    チームが違反した場合は全て)スコアとしてカウントされる。
    両チームがルールに従っていた場合、プレイモードはPM_PenaltyReady_Left/Right
    に変更される。

 5. キッカーは最初のキックまでにpen_ready_waitサイクル与えられる。そ
    のサイクルの間に4のルールへ違反するか、時間が経過してしまった場合、
    そのペナルティキックは終了し、キッカーのチームの反則としてカウン
    トされる。この最初のキックの後、プレイモードはPM_PenaltyTaken_Left/Right
    に変更される。

 6. サーバパラメータpen_allow_mult_kicksによって、キッカーがボールを
    再びキックできるかどうかが決定される。pen_taken_waitサイクルの間
    にボールがキャッチされるかゴールラインを割った場合、ミスかスコア
    のどちらかが直ぐに取られる。
    ボールがキャッチされず、ゴールラインを割ることもせずにpen_taken_wait
    サイクル経過した場合、ミスが取られる。ミスの場合、プレイモードは
    PM_PenaltyMiss_Left/Rightに変更され、スコアの場合はPM_PenaltyScore_Left/Right
    に変更される。

 7. どちらのチームが勝利したかのチェックが行われる。
    以下の場合、どちらかのチームに勝利が与えられる。
    - pen_nr_kicks回のペナルティキックが行われ、一方のチームが他方の
      チームよりもスコアが大きい場合。
    - pen_nr_kicks回のペナルティキックが行われていないが、残り回数の
      うちにスコアを追いつくことが不可能になった場合。
    - pen_nr_kicks回終了時に引き分けであったが、同回数の延長ペナルティ
      セッション(ただし、pen_max_extra_kicks以下)終了後に、どちらか
      のチームのスコアの方が大きかった場合。
    どちらのチームの勝利かがpen_winner_l/rメッセージによって通知され、
    プレイモードはPM_TimeOverに変更される。
    pen_nr_kicks + pen_max_extra_kicks回のペナルティキックが行われて
    決着がつかなかった場合、試合は引き分けとなる。パラメータpen_random_winner
    に従って、サーバは勝者をランダムに選ぶ。ランダムに選ばれない場合、
    pen_drawメッセージが通知される。
    その他の状況で勝利チームがいない場合、before_setup_waitサイクル後
    に手順2に戻る。

[rcssserver-9.2.4]

 * 右サイドのチームがcatch faultを起こした後に、誤って右サイドのチー
   ムへ間接フリーキックが与えられていたバグを修正した。間接フリーキッ
   クは左サイドのチームへ与えられる。
 * gcc3.2でコンパイルが失敗する欠陥を修正した。

[rcssserver-9.2.3]

 * バージョン9のコーチにバージョン9のパラメータを送っていなかったバグ
  を修正した。

[rcssserver-9.2.2]

 * オフラインコーチがmoveコマンドを発行した時に、対象となる移動可能な
   物体が存在しなくても"(ok move)"をオフラインコーチに送っていた欠点
   を修正した。そのような場合、サーバは"(error illegal_object_form)"
   を送るようになった。
 * クライアントは、プロトコルのバージョンを9に指定して接続できるよう
   になった。これは単にバージョン9で導入された新しいサーバパラメータ
   のサポートを追加するだけである。

[rcssserver-9.2.1]

 * キックイン、ゴールキック、コーナーキックからはオフサイドを取られな
   くなった。これはFIFAの規約に準じている。
 * ヘテロプレイヤのパラメータに新しい制限が加えられた。デフォルトプレ
   イヤ以上の最大スピードを持つ場合、最大スピード時にデフォルトプレイ
   ヤよりもスタミナ消費が大きくなるようになった。

[rcssserver-9.2.0]

 * 環境変数SEDが設定されていない場合、コンフィグが失敗するようになっ
   た。Libtoolは、関数を正確にセットするためにこれを必要とする。
 * ゴールポストが追加された。これらは半径6cmの円形で、以下の場所にあ
   る。

 x = +- (FIELD_LENGTH*0.5 - 6cm)
 y = +- (GOAL_WIDTH*0.5 + 6cm)
 ゴールポストは他の物体とは異なる衝突モデルを持つ。物体の軌道がポスト
 の中心から物体のサイズ+6cm以内であれば、物体はポストと衝突する。ポ
 ストと衝突した物体は弾力的に跳ね返る。
 * キーパーのキャッチモデルが変更された。キーパーがキャッチに成功する
   と、ボールがキーパーの正面に隣接して置かれるようにキーパーが移動さ
   れ、キーパーとボールの速度が0になる。ボールをキャッチした状態でキ
   ーパーがmove、dashまたはturnを行うと、ボールはキーパーの正面に移動
   する。
 * キーパーは任意の位置でcatchコマンドを発行できるようになった。キャッ
   チが成功した時にボールがペナルティエリア外にあるか、キーパーがボー
   ルをペナルティエリア外に出してそこがフィールド内であれば、現在のボ
   ール位置での間接フリーキックが相手チームに与えられる。キャッチされ
   たボールがゴールより外のゴールラインを割った場合はコーナーキックが
   与えられる。キャッチされたボールがゴールへ入った場合は、ゴールが与
   えられる。
 * ゴール,ピッチ内,ペナルティエリア内のチェックに関しては、FIFAの規
   則に従っていない。以下のように、ボールが完全にゴールに入らなければ
   、ゴールとならない。

 |ball.x| > FIELD_LENGTH*0.5 + ball_radius

 同様に、ボールが完全にピッチの外となるのは、次のような場合である。

 |ball.x| > FIELD_LENGTH*0.5 + ball_radius ||
 |ball.y| > FIELD_WIDTH*0.5 + ball_radius
 ボールが以下のように部分的にでもペナルティエリア内であれば、ボールは
 ペナルティエリア内である(キャッチ可能)と判定される。

 |ball.y| <= PENALTY_WIDTH*0.5 + ball_radius &&
 |ball.x| <= FIELD_LENGTH*0.5 + ball_radius &&
 |ball.x| >= FIELD_LENGTH*0.5 - (PENALTY_LENGTH*0.5 + ball_radius)

[rcssserver-9.1.5]

 * staticコンパイルでのバグを修正した。
 * 環境変数USERが設定されていないwin32システムでのクラッシュを修正し
   た。USER変数が(一般的にはコンフィグファイルの位置のために)必要で
   あり、それが利用不可能であれば、サーバはそれをエラーとして報告し、
   終了する。

[rcssserver-9.1.4]

 * 環境変数SEDが設定されていないプラットフォームでlibtool1.4.3に
   よって起こるコンパイルの問題を修正した。
 * 無効なプリプロセッサの指示のために起こるいくつかのプラットフォーム
   でのコンパイルのバグを修正した。

[rcssserver-9.1.3]

 * 聴覚メッセージとそれに関連する乱数生成器のよって生じるサーバ終了の
   バグを修正した。

[rcssserver-9.1.2]

 * rcssbaseを構築する前にrcssserverをconfigureしようとした場合に、ある
   ライブラリの検出に失敗していたconfigureのバグを修正した。

[rcssserver-9.1.1]

* gcc3.2とinttypes.hの非互換による、いくつかのプラットフォームでのコン
  パイルの問題を修正した。
 * rcssbaseがインストールされていない場合のstaticコンパイルのバグを修正
   した。

[rcssserver-9.1.0]

 * サーバは新しいゲームとして、Keepaway をサポートするようになった。こ
   のゲームでは、左サイドのチーム(keepers)が右サイドのチーム(takers)
   からのボールキープを試みる。takersがボールを奪うか、ボールが矩形の
   プレイ領域から外へ出た場合に、エピソードが終了する。プレイヤにエピソ
   ードの終了を知らせるために、エピソード終了時に審判は "training Keepaway 1"
   というメッセージを送信する。

   Keepawayモードでは、シミュレータはエピソードのデータを".kwy"ファイル
   に記録する。このログファイルはエピソードの開始/終了時間、エピソード
   の継続時間、エピソードが終了した時の状態を記録する。

   Keepawayをプレイするには、'keepaway' パラメータをオンにする。追加の
   パラメータで各チームのプレイヤの数とプレイ領域のサイズを指定すること
   が出来る。全オプションのリストは"rcssserver-server.conf"ファイルで
   見つけられる。

   この機能を用いる場合は、オフサイドルールをオフにすることが強く推奨
   される。更に、halftimeを-1に設定することも推奨される。デフォルトの
   オプションでKeepawayモードを開始するには以下のようにオプションを指定
   すればよい。
   rcssserver -keepaway on -use_offside off -half_time -1

   Keepawayのフィールドレイアウトを使用するには、モニタの'm_keepaway'
   パラメータも参照すること。

 Keepawayタスクの詳細といくつかのサンプル実験は
 http://www.cs.utexas.edu/~pstone/papers.html
 で入手可能な以下の記事で見つけられる。

 @Incollection(StoneSutton2001,
       Author="Peter Stone and Richard S. Sutton",
       Title="Keepaway Soccer:  a Machine Learning Testbed",
       booktitle= "{R}obo{C}up-2001: Robot Soccer World Cup {V}",
       Editor="Andreas Birk and Silvia Coradeschi and Satoshi Tadokoro",
       Publisher="Springer Verlag",address="Berlin",year="2002")

 Support for Keepaway in the rcssserver and rcssmonitor was
 implemented by Greg Kuhlmann.
 * サーバはdlopenライブラリをサポートするようになった。プレイヤにある
   段階でダイナミックライブラリのロードを許可することを意図している。
   コンセプトのテストのために、timerがダイナミックライブラリからロード
   されている。このことは、configureでprefixを指定する場合、相対ディレ
   クトリを”指定してはいけない”ことを意味する。相対ディレクトリを指
   定すると、サーバはライブラリを見つけることが出来ないだろう。dlopen
   を無効にするには、configureで --disable-shared オプションを用いる。
 * タックルを行った場合の不正なバックパスの検出を修正した。
 * 両チームが同時にキックまたはタックルをボールに行った場合の、不正な
   バックパスの検出を修正した。
 * 自動モードで使用されるkick_off_waitとconnect_waitパラメータの不正な
   初期化を修正した。
 * 視覚情報の実装が(再び)書き直された。今回は、聴覚情報に最初から用
   いられているsender-serializerデザインを使用している。コードをより簡
   潔にし、メンテナンスを容易にする一方で、劇的なパフォーマンスの改善
   が結果として得られた。私のマシンでは、視覚情報を生成する平均時間が
   12.5%減少し、最大生成時間は80%減少した。
 * サーバは左サイドのプレイヤが少なくとも1人接続するまで、右サイドの
   チームのスタートを待つようになった。これは、team_*_startオプション
   を用いる場合にのみ適用される。左サイドのチームが接続してこなければ、
   右サイドのチームはスタートされない。
 * flexを持っていないマシンでのインストールの問題を修正した。
 * compressionコマンドは-1を受け付けるようになった。これはzlibが使用さ
   れないこと(デフォルト設定)を示す。0から9はzlibの圧縮レベルを示す。

[rcssserver-9.0.4]

 * 他のユーザのために、server.confファイルはチルダの展開をサポートする
   ようになった。(~foobarはユーザfoobarのホームディレクトリを展開する)
   Thaks go to Marc Butler for providing the patch.
 * RCSSClientはrcssbaseの新しいストリームソケットを使用するようになり、
   マルチスレッド化された。クライアントは -e オプションを受け付けなく
   なった。代わりに、スクリプトのcat出力をクライアントへ単純にパイプ
   する。
 * RCSSClientは入出力の分離が可能な場合にncursesを用いるようになった。
   -nogui オプションによってこの機能を無効に出来る。(出力をファイルヘ
   リダイレクトしたい場合など)
 * RCSSClientのコマンドライン引数の解釈が変更された。serverとportは
   '-server SERVER' と '-port PORT' で指定されるようになった。

[rcssserver-9.0.3]

 * デフォルトのserver.conf生成のエラーを修正した。Thanks go to Michael
 Gollin for providing the fix.

[rcssserver-9.0.2]

 * サーバが自動的に実行できるようになった。auto_modeがonの時、サーバは
   プレイヤが接続するまでconnect_waitサイクル待機し、キックオフ前に
   kick_off_waitサイクル待機する。2ハーフ終了後、サーバはプロセスを終
   了する前にgame_over_waitサイクル待機する。延長戦は行われない。
 * コマンドラインと.confの文字列パラメータは引用符で囲まれるようになる
   だろう。
 * 2つのパラメータteam_l_startとteam_r_startが追加された。これらは各
   チームを起動するコマンドを指定するために用いる。コマンドがスペース
   を含んでいる場合は、コマンド全体が二重引用符によって囲まれているこ
   とを確認すること。

   例えば、左のチームをホストteam_hostで起動し、server_hostのサーバへ
   接続する場合は、以下のようなコマンドを用いることになるだろう。

 rcssserver -team_l_start "ssh team_host \"~/startMyTeam server_host\""

 または、'~/.rcssserver-server.conf'ファイルへ以下の行を追加しても良い。

 team_l_start : "ssh another_host "~/startMyTeam some_host""

[rcssserver-9.0.1]

 * ゲーム中の出力の問題のために、完全hearメッセージとしてのCLangメッ
   セージの自動出力が無効になった。

[rcssserver-9.0.0]

 * サイドと受信時間がセットされれば、CLangメッセージは以下のように出力
   するようになった。

 (hear TIME_SENT online_coach_{left|right} TIME_RECV (message))

 そうでなければ、通常どおり出力される。これは単にクライアントの便利の
 ために用意された。これによって、解釈されたメッセージの出力と実際のメ
 ッセージとを比較できる。
 * rcss::clang::Parserは、新しいrcss::Parserを継承する。これは
 ./rcssserver/rcssbase/parser.h にある。
 * CLang lexerが新しくなり、flexでのみ再構築可能になった。
 * rcssbaseファイルのサーチを実行する順番が変更された。"rcssbase"環境
   変数がセットされている場合、"rcssbase"で指定されているパスを最初に
   見にいく。次に、rcssserverとrcssbaseがrcsoccersimパッケージの一部と
   インストールされていると想定して、rcssbaseディレクトリを見にいく。
   それらが失敗すると、他の全てのヘッダを探すだろう。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:38 (1254d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.