Next: コーチ
Up: クライアントの作り方
Previous: sclient2
Contents
Index
Tips
サッカークライアントプログラムを開発するためにTipsをここに集めた.
- デバッグ作業はチーム開発における主要な問題である.よって,容易
なデバッグ方法の発見に挑戦してもらいたい.
- ある状態におけるプログラムの変数を確認する単純で良い方法は,プ
ログラムにコアダンプさせるために abort() コマンドやいく
つかの assert を使用することである.そして,gbd
によってcoreをデバッグする.
- サーバから受信した、または,サーバへ送信した全てのメッセージの
ログを記録する.これはデバッグに非常に有益である.
- 初心者の場合,ソケットやメッセージ解析処理ためには既存のライブ
ラリを使用すると良い.
- initコマンドでバージョン番号をサーバへ渡すことを覚えておくこと.
この手続きは任意であるが,デフォルトバージョンである3.00は推奨され
ない.
- キャッチ確立が
であってもキャッチコマンドが失敗するかもし
れない.何故なら,位置に関するセンサ情報は誤差を含むからである.
- 最初に遭遇する重大な問題はタイミング管理かもしれない.クライア
ントとサーバを同期させるには多くの方法がある.一つの単純な方法は,
受信したsense_body情報を使用することである.
- ネットワークの速度に注意を払う.タイミングの同期が強力でなけれ
ば,混雑した遅いネットワークやプロセスリソースが不足している環
境では,クライアントは正しく動作しないだろう(例えば,多くのク
ライアントを遅いマシンで走らせている場合).この場合,プレイヤ
は古い位置を観測し,その位置情報で行動しようとするかもしれない.
結果として混乱が起こる.
- フラッグの主な使用目的はプレイヤ自身のフィールド上での位置測定
である.あなたの最初のクライアントはフラッグを無視し,相対位置でプ
レイするかもしれない.しかし,近い将来,位置測定モジュールが必要に
なるかもしれない.この問題のための多くのライブラリが既に存在してい
る.
- センサ情報解析において,バッファの終端をチェックすべきである.
センサ情報はS式を採用している.しかし,センサデータがバッファより
も長いと,閉括弧が失われて式が完了されないかもしれない.この場合,
式を単純に解析すればプログラムはコアダンプを起こすかもしれない.
Hidehisa Akiyama
2004-11-21