トップページ > 過去ログ > 記事閲覧
ネットワーク対応ゲーム作成において
名前:Mikea 日時: 2007/01/09 02:02

こんにちは、いつもDXライブラリにはお世話になってます。 現在、ネットワーク対応のRPGの製作に手を出し始めたのですが、 ひとつ実装する上で悩みがあります。 それはマップ移動時の処理についてなのですが、 他Playerの位置も把握しなければならないというゲームの使用上、 一番手軽かつ処理の早い方法はどのようなものでしょうか。。。 わかりにくいとおもいますので以下に自分の考えたものをリストします。 (移動するClientをC1 受信するClientをC2 ServerをS) ・C1が移動終了後(もしくは5マスおき、移動方向をかえた)、Sに移動先座標をつたえ、SはそのC1の視野にいたPlayerにそのデータを送信。 受信したC2はC1の元座標と移動先座標から移動値を求め、移動アニメーション処理。 ・C1が1マス移動するたびに座標をSに送信。SはそのC1の視野にいたPlayerにそのデータを送信。 受信したC2はC1の移動を画面に表示。 はやり1つめの方法がベストなのでしょうか? 2つめだとデータの見落としがないのかもとはおもいますが、人数がおおくなるとパンクしそうで・・ 意見もしくは新たな案があればおおしえくださいm(_ _)m

Page: 1 |

Re: ネットワーク対応ゲーム作成において ( No.1 )
名前:けいし 日時:2007/01/09 04:46

 ネットワークRPGは作ったことがないので、なんとも言えませんが、  チートのことを考えると、移動先座標よりは、移動量であつかったほうが、更にデータ量も減るのでいいかもしれません
Re: ネットワーク対応ゲーム作成において ( No.2 )
名前:Mikea 日時:2007/01/09 18:13

返信ありがとうございます。 >>けいしさん というと、移動方向と移動量をサーバに送信する、ということでしょうか?
Re: ネットワーク対応ゲーム作成において ( No.3 )
名前:管理人 日時:2007/01/12 11:35

 ネットワーク対応ゲームを作ったことが無いのでご助言出来ません・・・orz 経験が無い上で少し考えた限りでは、通信量が多いタイプのネットワークゲームでは 各ユーザー間で完全な同期を取る事は現時点では難しいので、必ずズレが発生する ことを考えると移動量より移動先座標を伝える前者の方が良いような気がします。  ただ、けいしさんが仰られていますようにチートを考慮するとそれではマズイ と思いますので、色々考慮すればこんなシンプルな結論では無くなるのだと思いますが・・・
Re: ネットワーク対応ゲーム作成において ( No.4 )
名前:Mikea 日時:2007/01/12 23:01

さすがネットワーク対応ゲーム(RPG)ともなると、一筋縄ではいきませんね orz プログラムを組むことの難しさよりはるかにそういった面での難しさが大きいです。。 できれば移動量を利用した上で、通信料を極限までおさえられれば・・・ いっそ同期ではなく非同期でおもしろみのあるものにできればいいのですが、、、 (タクティクス系を代表とする戦略シュミレーションRPG etc ...かな?) 意見ありがとうございますた。 もうすこしアイデアをねってこようとおもいます。
Re: ネットワーク対応ゲーム作成において ( No.5 )
名前:通りすがりのグラファー 日時:2007/01/13 00:22

データベースをサーバーとクライアント間で 描画処理などはクライアント同士で 一定の間隔でクライアントにプレイヤーの座標を送信 ・・・のような感じにしてみてはどうでしょうか? ピアツーピアの方がラグは発生しにくいと思いますし。 サーバーにも負担が減ると思います。 ただ、クライアント同士だとセキュリティ面・各PCの処理速度に問題が出てきますが・・・。
Re: ネットワーク対応ゲーム作成において ( No.6 )
名前:Mikea 日時:2007/01/13 00:46

ご意見ありがとうございます。 P2PとS/Cの両用ととらえてよいのでしょうか? どうもP2Pは未体験ゾーンなので、よくわかりませんが、両用って可能でしたっけ?
Re: ネットワーク対応ゲーム作成において ( No.7 )
名前:通りすがりのグラファー 日時:2007/01/13 02:32

ネトゲのプログラムを組んだことがないので あまり詳しいことはわかりませんが 両用は可能だと思います。ただソケット関連が多少複雑になるかもしれません。
Re: ネットワーク対応ゲーム作成において ( No.8 )
名前:けいし 日時:2007/01/14 17:30

僕もはじめ、P2Pのことを考えたのですが、 どのPCと繋ぐか、という部分が大変そうな気が……。 描画領域のPCと繋ごうにも、そのPCの情報を自分は知らないわけですから、やっぱりサーバから教えてもらうしかありません。 でも、そうすると、やっぱり結局サーバがPCの座標情報を持っている必要がありますので、意味ないですよね……。 ちなみに、僕が昔(2年前?)P2Pのものを組んだときは、あまりの重さに大変でした(LANなのに)。 10人を超える相手と繋ぐのは、よっぽど送信データが少ないとかじゃないと、大変かもしれません。
Re: ネットワーク対応ゲーム作成において ( No.9 )
名前:Mikea 日時:2007/01/15 01:34

ふむ、どうにも大きな壁にぶつかったようです; 結局はサーバが必須になるので、P2Pより単純にS/Cの方がよさそうです。 サーバソフトをDXではなくDOSで製作すれば軽くなるかも、、と考えたので、そちらの方法もためしてみます。 それで軽ければ、通信量を多少気にせず範囲内のキャラクターの座標を送受信できそうな気がしてきました。
Re: ネットワーク対応ゲーム作成において ( No.10 )
名前:mas 日時:2007/01/15 18:37

どの程度の規模を想定されているのかわからないので何とも言えませんが、 パフォーマンスを意識するのであればWinsockを直接扱った方が良いと思います。 DXライブラリのネットワーク機能はあくまで簡易的なものなので。
Re: ネットワーク対応ゲーム作成において ( No.11 )
名前:けいし 日時:2007/01/15 21:50

DXライブラリのソースを眺める限りでは、Winsockを直接扱うのと、それほど違わないように思えます……。 それに、Winsockを直接叩くくらいなら、DirectPlayを利用したほうが(以下略。 >サーバソフトをDOSで なるほど、その手がありましたかー でも、変に未知の技術を使いまくるよりも、とりあえず一度、重くてもいいから作ってみることを、個人的にはオススメします。。
Re: ネットワーク対応ゲーム作成において ( No.12 )
名前:mas 日時:2007/01/16 08:49

> DXライブラリのソースを眺める限りでは、Winsockを直接扱うのと、それほど違わないように思えます……。 上の方にも書いた通りどこまでパフォーマンスを求めるかによります。 DXライブラリはWSAAsyncSelectで捌いて普通に送受信してるだけなので、パフォーマンスは特に良くはありません。 といっても小規模なら十分に対応できますが。 けいしさんも言われてる通り、とりあえず作ってみるというのが妥当だと思います。

Page: 1 |