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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
sadora3
記事: 175
登録日時: 11年前

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

#1

投稿記事 by sadora3 » 7年前

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#2

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

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

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

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

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

h2so5さんが公開していたスライドも参考になるでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

sadora3
記事: 175
登録日時: 11年前

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

#3

投稿記事 by sadora3 » 7年前

うーん。中々難しそうですね。
試行錯誤は時間がかかりそうですし、他にやらなければならないことがあるので、潔く諦めようと思います。
回答ありがとうございました。

dic
記事: 655
登録日時: 13年前
住所: 宮崎県
連絡を取る:

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

#4

投稿記事 by dic » 7年前

私も読みかけですが、
「オンラインゲームプログラミング」という本が
SBクリエイティブから発売されています。

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

ご参考までに。

----訂正
SBクリエイティブ出版 ー> ソフトバンクパブリッシング株式会社
最後に編集したユーザー dic on 2016年7月22日(金) 12:37 [ 編集 1 回目 ]

sadora3
記事: 175
登録日時: 11年前

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

#5

投稿記事 by sadora3 » 7年前

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

hide

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

#6

投稿記事 by hide » 7年前

ネットワークまできたらDXライブラリだろうとWinsockだろうとそうそう変わらないですよ
結局のところ通信の基本ルールは一緒です。

sadora3
記事: 175
登録日時: 11年前

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

#7

投稿記事 by sadora3 » 7年前

あれ、そうでしたか。貴重な情報ありがとうございます。
その「通信の基本ルール」というのを学べばDXライブラリでも大丈夫なのですね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#8

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

サーバーを必要とする場合、家庭用のWindowsだと20人(うるおぼえ)ぐらいしか同時接続できないので、その以上の人数が同時接続するには予算的にLinuxにする必要が出てきます。Windowsサーバーは個人で使うには高価です。
当然、DXライブラリは利用出来ません。Winsockに非常に似たSocketを使います。これは、Winscokが使える技術があれば利用できます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

sadora3
記事: 175
登録日時: 11年前

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

#9

投稿記事 by sadora3 » 7年前

ふむふむ。大変勉強になります。ありがとうございます。
20人くらいですか・・・。私のゲームだとそんなに繋がないと思うので大丈夫だと思います。
最初は友達と遊ぶくらいにしようと思っております。
といってもまだ先になりそうですが・・・。

dic
記事: 655
登録日時: 13年前
住所: 宮崎県
連絡を取る:

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

#10

投稿記事 by dic » 7年前

基本情報処理技術者試験を合格されたなら
OSI7階層モデルが参考になるかと思います。

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

閉鎖

“C言語何でも質問掲示板” へ戻る