オンラインゲームを作る (part.2)

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

オンラインゲームを作る (part.2)

投稿記事 by Dixq (管理人) » 14年前

オンラインゲームには大きく分けて2種類あります。

遊ぶ人同士のPCを直接つないで、データをお互いに送り合う方式である、P2P式

サーバーに接続し、サーバーを介してデータを送り合う方式である、C/S式

P2P式はサーバーが必要ない反面、いちいち遊ぶ相手と事前に連絡を取ってIPアドレスを教えてもらわなければならず、また、接続される側はルーターのポート解放をしなければなりません。

一方、C/S式はサーバーが必要な反面、そんな手間が必要ありません。
また、友人同士以外で遊ぶネトゲーの仕組みを作るならP2P方式では成り立ちません。

そこで・・
仮想専用サーバーVPS契約してきました(≧▽≦)
これでハンゲームの「部屋」みたいなものも作れるぞっ。
ただオンライン対戦するだけじゃなく、待合スペースでチャットできるようにしたりするのもちょっと夢です(笑

ホントはHPに使ってるレンタルスペースをこっちに移動しようと思っていたのですが、
HPがあるのと同じサーバーでテストしたり色んなツール導入したり設定変えたりするのはリスクがある気が・・。
にっちもさっちもいかなくなってOS再インストールしたい!ってなったらどうしよう。

う~ん、2つ分けて利用していた方がいいんですかねぇ・・。

あ、完全な常時稼働が必要ないならホームサーバーでもよかったかな・・。
最後に編集したユーザー Dixq (管理人) on 2011年6月29日(水) 22:24 [ 編集 1 回目 ]

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: オンラインゲームを作る part.2

投稿記事 by Dixq (管理人) » 14年前

あ、いや、ダメだ。
北海道なんかにサーバー作ったら遅延的にすごい効率が悪い・・。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: オンラインゲームを作る part.2

投稿記事 by softya(ソフト屋) » 14年前

サーバでマッチングだけして、あとはお互いにやり取りするのは分類的にはなんでしょうね?
C/S→P2P?

[補足]オンラインゲームの開発には参加したことがないんで。
最後に編集したユーザー softya(ソフト屋) on 2011年6月27日(月) 18:39 [ 編集 1 回目 ]

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: オンラインゲームを作る part.2

投稿記事 by Dixq (管理人) » 14年前

> softyaさん

C/S -> P2Pも便利ですよね。いちいち相手のIPアドレス教えてもらわなくて済むし。
ただ、ポート解放うんぬんが面倒ですよね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: オンラインゲームを作る part.2

投稿記事 by softya(ソフト屋) » 14年前

>ただ、ポート解放うんぬんが面倒ですよね。

uPnPを使えばさほどでも無いかなと思います。
前に質問掲示板で話題が出たときのトピック。
「UPnPでポート開放 • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3 ... pnp#p69319

直接UDPパケットを送りつけられるのが良いなぁと思ってます。

ISLe
記事: 2650
登録日時: 14年前

Re: オンラインゲームを作る part.2

投稿記事 by ISLe » 14年前

モンハンは狩りに出るとP2Pだそうです。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: オンラインゲームを作る part.2

投稿記事 by Dixq (管理人) » 14年前

> softyaさん

ありがとうございます。
これはLAN環境ではなくても良いのですか?
今回のような状況だとTCPを使うのが一般的かと思っていました。

> ISLeさん

なるほど、ロビーなど仲間を集める環境だけ提供して後は好きなように遊んでくれという感じですね。
確かにその方がサーバーの負荷が下がってよいですね。
ただPCの場合改めて特定のPCから特定のPCへ接続するのがセキュリティ的にめんどくさそうですね・・。

ISLe
記事: 2650
登録日時: 14年前

Re: オンラインゲームを作る part.2

投稿記事 by ISLe » 14年前

Dixq (管理人) さんが書きました:ただPCの場合改めて特定のPCから特定のPCへ接続するのがセキュリティ的にめんどくさそうですね・・。
アンチウイルスソフト、Windowsファイヤーウォール、ルータ、と乗り越えなければならない壁が多岐に渡るので手動で対応してもらうしか無い状況がほとんどですかね。
不特定多数相手に公開するとなったらサポートがたいへんですね。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

Re: オンラインゲームを作る part.2

投稿記事 by Dixq (管理人) » 14年前

> ISLeさん

NATトラバーサル技術というのでしょうか、ルーターごしに接続するための工夫が何か出来ればいいのですが。
softyaさんが仰っていることがその一つであればそれも検討してみようと思います。
また、リレーサーバーを経由すれば必ず接続が出来るので、P2Pであってもリレーサーバーを経由する方法を検討していました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前

Re: オンラインゲームを作る part.2

投稿記事 by softya(ソフト屋) » 14年前

ありがとうございます。
これはLAN環境ではなくても良いのですか?
今回のような状況だとTCPを使うのが一般的かと思っていました。
UPnPはルータにポートを開けることが出来ます。
つまりUDPパケットを届けることが出来ます。
ここら辺は私も研究中なんですけどね。

アバター
やっくん
記事: 5
登録日時: 14年前

Re: オンラインゲームを作る part.2

投稿記事 by やっくん » 14年前

土日で読めなかった反動で今、本を読んでいるのですが読むほど面白い本ですね。
ネットワークの基礎的なこととゲームへの実用例を上手く絡めながら説明されてるのが良い感じです。
ネットワークについては講義で基礎を学んだのですが、応用例を知る良い機会になりそうです。