対戦マッチング

 このゲームは2人対戦ゲームである。つまり、プレイヤーが2人いる必要がある。

・対戦相手の検索
		
	対戦をするにはサーバーになって誰かが接続してくるのを待つか、接続を待っているサーバーへ接続する必要があります。
	@サーバーになる方法
		サーバータブを開き、Server Settingウィンドウに詳細を設定します。
		サーバー待ち受けポート番号、パスワード(必要であれば)を入力して下さい。
		対戦相手検索CGIにサーバー登録する場合はRegistチェックボックスにチェックし、コメントも入力してください。
		その後、Listenボタンを押します。
	Aサーバーへ接続する方法
		クライアントタブを開いて下さい
		※パスワードが設定してあるサーバーに接続するときはパスワードを入力して下さい。
		
		・サーバーのIPとポート番号が解っていて直接接続する場合
		 Direct Connect枠のIPとPortを入力して、Connectボタンを押します。
		
		・対戦相手検索CGIからサーバー待機しているプレイヤーを検索する場合
		 Refreshボタンを押して、登録データを更新します。
		 サーバー待機しているプレイヤーが居た場合、そのリストが表示されます。
		 対戦相手として選択可能な相手は同じバージョンでListen状態(サーバー待ち受け状態)である必要があります。
		 サーバーが対戦中だった場合は接続できません。
		 相手が決まったらConnectボタンを押して下さい。(ネットワーク環境によっては接続できない場合があります。)

	接続に成功したらデッキ選択画面に進みます。

・接続の仕組み
	 このゲームは2人のプレイヤー間をTCP/IPで繋ぐ。
	このため、TCP/IPが有効であるインターネットやLANで繋がっているプレイヤー同士が対戦可能である。
	また、ネットワークの形態は1対1のサーバクライアント型を採用している。
	
	 2つのゲームを接続するには一方がサーバーとなり接続待機し、もう一方がクライアントとしてサーバーに接続する。
	必要な設定は互いに異なる。
		サーバー側
			・接続を待ち受けるポート」番号
			 すでに利用されているポート番号は使えない。
		クライアント側
			・接続先のIPアドレス
			 接続先が同一ネットワークに属しているならプライベートIPアドレスであるし、
			 外部ネットワークに属しているならグローバルIPアドレスが必要である。
			・接続先のポート番号
	しかし、適切な設定を行っても接続できない場合がある。
		・ファイアーウォールを利用している場合
		 ファイアーウォールによってポートが利用不可になっている場合
		 対策:ファイアーウォールの設定で使用するポートを利用可能にするか、ファイアーウォールを無効にする。
		・ルーターを使用している場合
		 接続先のIPとポート番号を指定しても、ルーターから先に接続されているどのPCへ繋げばいいのかわからないため接続が行われない。
		 これは外部ネットワークからルーターを通って内部ネットワークへ接続しようとしたときに起こる。
		 対策:この問題が発生するのはサーバー側の場合なので、クライアント側になれば問題がない。
		    もしくはルーターを正しく設定する必要がある。NATとかIPマスカレードと呼ばれる設定がそれである。 

・対戦マッチングCGIの仕組み
	 対戦相手を特定するには相手のIPアドレスとポート番号を知ることが必要である。
	対戦マッチングCGIではサーバー待機者のIPアドレスとポート番号を保存し、自由に参照できるようにしている。
	
	サーバー登録の際にサーバーはポート番号を申告し、CGIではアクセス情報を元にグローバルIPを取得している。
	対戦マッチングCGIで保存されるのはグローバルIPに限定されるため、
	ローカルネットワーク内部での対戦には対戦マッチングCGIの利用はできない。

	2004/10/17現在の仕様
		・記録されるサーバー情報は10分で自動的に消去される。
		 このため、サーバー登録時は一定時間事にサーバー登録要求を再発行している。
		 これは、なんらかの不都合でプログラムが落ちても、登録から10分たてば自動的に登録解除されることを意味する。
		・サーバー待機の終了、対戦の開始でサーバー情報の消去を行う。
		 現在の何人が対戦しているのかは見ることができません。

	2004/12/19
		・勝敗データが保存されます。公式HPから参照して下さい。
		 勝敗データ保存条件は次の通り
		 @サーバー側が対戦マッチングCGIを利用していること
		 A1戦以上終えていること
		 B対戦中以外(デッキ選択画面や対戦終了後)にゲームを切断した場合
		 Cプレイヤー名がデフォルトの名無しでないこと。
		  プレイヤー名が空欄でも名無し扱いされますので注意。
		 ※勝敗によってゲーム中に得られるアドバンテージは一切ありません。