- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
412 :デフォルトの名無しさん[sage]:2014/12/31(水) 11:28:22.65 ID:3wvmlGUB - C++でネット接続を確認する方法はありますか?
オンラインゲーム(三人以上)を作ろうとしているのですが、サーバーマシンが用意できそうにないので 参加者同士でネットワークを形成するデザインにしようと思っています。 しかし、お互いの接続を確認するだけだと、自分がネットから切断された状況とほかの参加者が全員同時に切断された状況の区別がつきません。 Googleなど、インターネットにつながっていればまず繋がるサイトにリクエストを出してみる方法も考えましたが、あまりスマートとは思えません(外部から切断されたLAN接続にも対応できませんし)。 ネットワークトポロジーをフルコネクトでなくスター型にするれば参加者の切断を検知することは容易ですが、ハブが切断した時の対応を考えると無理がありそうです。 (ゲームが中断しないようにほかの参加者をハブに立てようとすると結局全員の接続を確認する必要があるため、フルコネクトと同様の問題が起こる) かなりワガママな話ですがうまい方法はないでしょうか……。 開発環境はWin8.1、VC++ 動作環境は極力広くお願いします
|
- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
416 :デフォルトの名無しさん[sage]:2014/12/31(水) 12:33:06.40 ID:3wvmlGUB - 切断されたら最下位としたいので、切断されたほうから見ると最下位、切断した方から見ると一位と矛盾が起きてしまうからです。
切断したら無効試合とすれば矛盾は起きませんが、自分に都合の悪い戦局となった時にLANを切断するチートまがいができてしまいます。
|
- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
419 :デフォルトの名無しさん[sage]:2014/12/31(水) 12:51:42.38 ID:3wvmlGUB - >>415
ノードマジョリティーのことですか? 調べてみましたがよくわかりませんでした。。。 もう少し詳しくお願いできますか? よく考えたらLAN対戦でルーターに障害が起きた場合はどれが切断したとは言えないですね。 LAN対戦とネット経由での対戦で別のモードにしますか。。。 LAN対戦はおそらく知り合いに(少なくとも近場に)対戦相手がいることになるのでペナルティーは勝手にやってもらうとして、 インターネットを経由した遠距離での対戦の場合のみ障害判定をするとします。 つまりインターネットにつながっているかどうかのみわかればよさそうです。 そうすると>>414さんの方法も条件には合いそうですね。あまりスマートとは思えませんが。。 要点がまとまっていなくてすみません。。。
|
- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
421 :デフォルトの名無しさん[sage]:2014/12/31(水) 12:56:13.49 ID:3wvmlGUB - >>418
全プレイヤーのランキングではなく、小規模な対戦の中での順位づけです。 あとサーバーがないといっても自由にプログラムを動かすことができるようなサーバーがないだけで レンタルサーバーでCGIを動かすぐらいはできます。まあそうするとなおのことチート対策は万全にする必要がありますが
|
- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
422 :デフォルトの名無しさん[sage]:2014/12/31(水) 13:12:00.44 ID:3wvmlGUB - うまく伝わってないようなので構想段階ですがやりたいことを晒します。
まとまってないのでわからないところ、無理そうなところがあったらバンバン言ってください。 最終的にやりたいことは、対戦リストやIPアドレスから対戦相手を指定して行う小規模(多くみても20人程度)のオンライン対戦ゲームです。 ポイント制にして対戦の報酬として受け取ったポイントで対戦に参加したりレベルアップしたりします。 構造としてはこのブラウザゲームに似ています→http://kyucon.com/tank/ 対戦リストはCGIで書き込まれたネット上のファイルから取得します。 試合を立ち上げた人がゲームからCGIを経由してネット上にIPや人数上限などを書き込み、 その情報から対戦リストを表示して、他のプレイヤーがアクセスします。 対戦が終わると、順位に応じたポイントが手に入ります。
|
- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
423 :デフォルトの名無しさん[sage]:2014/12/31(水) 13:17:42.65 ID:3wvmlGUB - 切断すると順位は最下位扱いとなり、ポイントは最下位相当の分しかもらえません。
ネットを通じては、毎フレームごとに入力情報、数フレームごとに座標情報(近距離にいるプレイヤーほど高頻度で通信)、送信された時だけチャットデータ、同じく発生したときのみ退室連絡(あと必要なら切断情報も)です
|
- 【初心者歓迎】C/C++室 Ver.94【環境依存OK】 [転載禁止]©2ch.net
425 :デフォルトの名無しさん[sage]:2014/12/31(水) 13:34:05.76 ID:3wvmlGUB - >>424そう。。かもしれませんね。
出直してきます。
|