ページ 11

DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月19日(火) 16:49
by sadora3
現在DXライブラリとC言語(若干C++も混ざってる)でLAN内でプライベートIPアドレスを指定して通信対戦出来るゲームを作りました。
これをルーターの外の世界(WAN?)と対戦できるようにするにはどうすればいいのでしょうか?
何を勉強すればいいのでしょうか?
また、勉強などしなくても出来るようになるソフトはありませんか?
自分で何処かのサーバーを借りたりしないといけないのでしょうか?

ネットワークの知識はあまり自信ないです。
一応、基本情報技術者を持ってますが、ネットワークは避けて通りました。

ちなみに作ったのはターン制のゲームです。
それと趣味でやっていることなので、勉強にあんまり時間がかかりそうだった場合は諦めようと思っております。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月20日(水) 10:41
by softya(ソフト屋)
これはネットワークの勉強というか試行錯誤をしていただくしか無いです。
知識がないと様々な決定やデバッグと利用者サポートが出来ませんので、ゲームを公開すること自体が困難です。
サーバーが必要なのかP2Pで済んでしまうのか、それはゲームの仕様と規模(通信頻度・通信情報量・同時接続数)に密接にからむので、「ターン制のゲーム」と言う情報だけでは何ともいえません。
サーバーが必要としても家庭内サーバーで済むのか、大容量の高価なサーバーを借りる必要があるかも現時点では解りません。

>また、勉強などしなくても出来るようになるソフトはありませんか?
DXライブラリ専用では残念ながら存じません。
汎用的のものは探せばいくつか見つかるはずですが組み込み難度が低いとも思えません。
ただ、スマホやUnityなどであれば結構難易度低目なのは見つかります。

これは利用者数が少なければ無料。
http://photonengine.jp/
Unityなどは容易だと思われますが、C++の難易度は不明です。

>自分で何処かのサーバーを借りたりしないといけないのでしょうか?
可能性は高いです。

h2so5さんが公開していたスライドも参考になるでしょう。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月21日(木) 08:24
by sadora3
うーん。中々難しそうですね。
試行錯誤は時間がかかりそうですし、他にやらなければならないことがあるので、潔く諦めようと思います。
回答ありがとうございました。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月21日(木) 15:44
by dic
私も読みかけですが、
「オンラインゲームプログラミング」という本が
SBクリエイティブから発売されています。

とても扱う分野が広く、この本では浅く広くをもっとーにしています。

ご参考までに。

----訂正
SBクリエイティブ出版 ー> ソフトバンクパブリッシング株式会社

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月22日(金) 00:30
by sadora3
おお、ありがとうございます。
アマゾンでのレビューも中々ですね。
時間が確保できたら、ネットワークのことについて情報を集め、その後買うのを検討してみます。
ただ、これはDXライブラリの通信関数を使うのではなくて、WinSockになりそうですね・・・。そこがちょこっとネックです。
やっぱりオンラインゲームを作るうえでは避けて通れませんよね・・・。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月22日(金) 06:00
by hide
ネットワークまできたらDXライブラリだろうとWinsockだろうとそうそう変わらないですよ
結局のところ通信の基本ルールは一緒です。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月23日(土) 00:37
by sadora3
あれ、そうでしたか。貴重な情報ありがとうございます。
その「通信の基本ルール」というのを学べばDXライブラリでも大丈夫なのですね。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月24日(日) 09:42
by softya(ソフト屋)
サーバーを必要とする場合、家庭用のWindowsだと20人(うるおぼえ)ぐらいしか同時接続できないので、その以上の人数が同時接続するには予算的にLinuxにする必要が出てきます。Windowsサーバーは個人で使うには高価です。
当然、DXライブラリは利用出来ません。Winsockに非常に似たSocketを使います。これは、Winscokが使える技術があれば利用できます。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月24日(日) 13:25
by sadora3
ふむふむ。大変勉強になります。ありがとうございます。
20人くらいですか・・・。私のゲームだとそんなに繋がないと思うので大丈夫だと思います。
最初は友達と遊ぶくらいにしようと思っております。
といってもまだ先になりそうですが・・・。

Re: DXライブラリを使ったゲームでオンライン対戦を出来るようにするにはどうすればいいのか

Posted: 2016年7月24日(日) 21:53
by dic
基本情報処理技術者試験を合格されたなら
OSI7階層モデルが参考になるかと思います。

C/C++で作っているのはアプリケーション層ですね。
通信ネットワークはもっと深いところの問題です。