トップページgamedev
743コメント242KB

( ´∀`)ネットゲー作る技術持っている人? 2

■ このスレッドは過去ログ倉庫に格納されています
0001喫煙者は臭い02/06/01 12:05ID:If0C3IRY
( ´∀`)この板にいるの?
http://www.hayariki.com/
http://game.2ch.net/test/read.cgi/gamedev/1016812752/l50
0200名前は開発中のものです。02/08/30 23:45ID:???
>>199
ネトゲ作ろうとしたら誰もが一度は通る道を順調に辿ってるように見えるので
そんなにフシギでもないよ
0201名前は開発中のものです。02/08/31 00:12ID:???
>>200
そうなの…か?
>>189を見ると、いかにも俺は作り方を知ってるぜ適な書き方だし、
経験あるのか無いのかサッパリわからん。
0202名前は開発中のものです。02/08/31 00:18ID:???
>>197
コリジョンは対象がstaticなもの(建物等)か動き回るもの(他プレイヤー、NPC)
かにもよるね。staticなものばかりならクライアント側でやって問題ないけど
動き回るものを対象にし、かつ遅延を見せかけなくするとなるとテクが要るッス。

ネットゲーは同じことをやるにも、条件がちょっと違うだけで大幅にやることが
変わるからは怖いね。そこを考えるのが楽しくもあるけど、作りこんだ後だと
修正するのは辛い。
020318902/08/31 00:26ID:???
不思議じゃなくてアリガトウ。
MOとIMは仕事でつくったことあるけど、MMOはないんだよね。
ちと趣味と実益を兼ねて設計してみようかと。

で、1秒のずれが分からないようにするっつーと、
先のコリジョンのからみも出てくると思うんだけど、ロールバックとかするの?
突然後ろにワープとか。
あとあと、「送れるならいっぱい送る」もちょっと分からないんだけど、
例えば、自分がAさんだとするとBさんの座標を沢山送っちまって、
最後のヤツを採用とかそんなカンジですか?
0204名前は開発中のものです。02/08/31 00:41ID:???
先読みとロールバックは常時必要だろ
特に3Dの場合は。
020518902/08/31 00:47ID:???
特に3Dってのは分からないんだけど、先読みはさらに分からないんだよね、俺。
NPCならともかくBさんが操作するPCをAさんが予測するのって無理っぽくない?
どんな技術でやってんの?
0206 02/08/31 00:55ID:???
簡単なモデルだと、例えば等速直線運動なんかで予測して進めといて
変化があったことがわかった時点で正しい位置に修正するんでないのか
ここでワープとかしないよーに滑らかに繋いて復帰させると目立たない
020718902/08/31 01:08ID:???
仮にグリッドで制御しているとして、
等速直線運動といっても何マス直進してたらそのまま直進とするの?
何マスか判定するならその間のログは必要になるワケで、
そんなログと比較する時間とかあるの? クライアントに持たせればいいのかな?
先読みはチト考えたんだけど挫折しました。
遅延とロールバックの処理がMMOの最大の難点なのかしらん?
0208 02/08/31 01:25ID:???
ってゆーか、ここらへんはMO/MMOに関わらずやる処理だと思うのだが...
189が作ったMOってのは補完処理しなくてもスムースに動いてたのか??
020918902/08/31 01:31ID:???
LANだったからなぁ。遅延は発生しないものとして作ったw
仮に発生した場合でも、データ到着まで待ちますた。
0210 02/08/31 01:36ID:???
そうか...LANか...

例えば慣性が働く動きだと動いてたものが完全に止まるまで時間がかかるので
補完がしやすい。
そーゆー部分も考慮しつつ設計するとイイと思われ。
0211名前は開発中のものです。02/08/31 06:31ID:AIqrgBbY
∧_∧
(´∀`) age

0212名前は開発中のものです。02/08/31 09:24ID:???
> PSOの思い切りっぷりはスゴイと思ったけどね。同期をあきらめるなんて
> 普通思いつかないって。
いや普通だと思うのですが。

つか、PSOってMOじゃん。ってわかってるか。
0213名前は開発中のものです。02/08/31 10:35ID:???
>>212
そりゃもちろん。4人だし。キャラ同士の位置情報の交換はP2P
でやるわ、各クライアントで敵情報にズレがあっても(たとえ生死でも!)
知らん振りするわ、目からウロコがおちますた。

つーかMMOかMOかには関係ないね。ゲームそのものが、上記のようなズレに
よってプレイヤーに不利益をもたらさないようになっている、
ということですわな。

回線速度差やサーバー負荷、開発の困難さを鑑みて、うまいぐあいにフィーチャーを
切り捨てたり調節したりするのもウデなんだと思うよ。
0214名前は開発中のものです。02/08/31 11:03ID:???
そういうことですか。
ズレてても各プレイヤーに都合よければOKなものか。
0215名前は開発中のものです。02/08/31 11:33ID:???
ちとズレるがご容赦を。

最上位の企画&設計時には、何をユーザーに体験させたいか、というポイントを
押えておく必要があるよ。でないとなんでもかんでも同期させちゃうとか、
激しく実装困難なものを抱えてしまうことになっちゃう。

例えば、携帯電話は「リアルタイム・持ち歩ける」が必須項目で、音質だとか
メールの文字数だとか写真の解像度だとかはそっちのけになってるよね。
それでもいいのよ。

ネトゲでも同じで。例えばユーザー同士の「お互いの位置による」相互作用が
ほとんど無いならば、位置のズレを気にする必要はない。

ゲームデザインはここの趣旨から外れるかもしれんが、こういう前提抜きに
遅延対策の話してるとときどきかみ合わなくなるからねえ。もちろん定石は
あるだろうから(ホントに?)、その議論なら問題ないと思うッス。
0216名前は開発中のものです。02/09/01 01:12ID:5/mKHGeF
>>115
アンタホントスゲーヨ
0217名前は開発中のものです。02/09/01 07:56ID:???
まともなスレはここにしかないな。
0218名前は開発中のものです。02/09/02 06:32ID:KuVrURlU
>>217
http://game.2ch.net/test/read.cgi/gamedev/1005036639/l50
0219名前は開発中のものです。02/09/02 16:04ID:???
>>218
そこ結局、スクリプターの溜まり場じゃん。
115みたいに本格的なフレームワークから作ってるヤシが居るようには見えないんだが…。
0220名前は開発中のものです。02/09/02 16:25ID:???
いや、ソコはスクリプトエンジン製作者の溜まり場。
フレームワークっちゃあフレームワークだよ。
0221名前は開発中のものです。02/09/04 16:37ID:???
記念カキコ
0222名前は開発中のものです。02/09/05 12:02ID:???
期待age
0223名前は開発中のものです。02/09/06 08:29ID:48BtvqoO
記念カキコ
2
0224名前は開発中のものです。02/09/06 08:50ID:???

    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \____
     \____/
0225名前は開発中のものです。02/09/07 12:01ID:???
プレーヤーが操作するある範囲において、そのある範囲にいる他のプレーヤーの行動、NPCの行動
敵の行動、環境の変化の数値データのみを同期によってこちら側で制御しなきゃいかんのよね。
それプラス自分の行動データの送信。データ圧縮・展開技術が発展しそうだ。
0226名前は開発中のものです。02/09/07 13:49ID:???
>同期によって
意味不明な用語の使い方はヤメレ
0227名前は開発中のものです。02/09/07 15:12ID:???

データ圧縮はリアルタイム性の高いゲームだとあまり意味なしではー?
>>225に詳しく聞きたいなぁ〜
0228名前は開発中のものです。02/09/08 19:42ID:???
俺は、ネトゲー詳しくないから。仕事では、ゲーム作らないし。
妄想で電波飛ばしてる。でも、作るんだったらこうかなぁとも思ってるけど。

>>226
うーん、言葉の使い方が変だね。
自分と他のプレイヤーとその他の管理云々の誤差を少なくする作業ね。

>>227
生データ垂れ流しなんだろうか?詳しい人キボーン。


0229名前は開発中のものです。02/09/08 19:52ID:???
圧縮効くほど大きいデータを送る時点で敗者
0230名前は開発中のものです。02/09/08 20:06ID:???
>>229
そうだな〜そこまででかいデータを送るのもちょっとね。
0231名前は開発中のものです。02/09/08 21:38ID:???
データの圧縮云々よりも、データの優先順位を決めて
状況によって間引を行い通信量を調整出来るようにすべき
0232名前は開発中のものです。02/09/08 21:43ID:???
>>231
それ難しいな
0233名前は開発中のものです。02/09/08 22:33ID:???
移動データはUDP、アイテムの取捨に関するデータはTCP等の適材適プロトコル
0234名前は開発中のものです。02/09/09 01:47ID:???
そうだ、それを聞きたかったんだ・・思い出させてくれてアリガトン。>233

UDPはコネクションレス型って聞くけどコネクションを張る方法があるそうな・・
どなたかUDPコネクションの張り方を知りませんでしょうか?
ルータを通過させたいのです。
0235名前は開発中のものです。02/09/09 07:46ID:axVj9b6/
>>234
UDPで TCPみたいなこと(再送とか順序付けとか)をしたければ
アプリで実装するしかないんでないの。つーか、ルータ経由で
UDPパケットが受信できるかどうかの話なら、それはルータの
フィルタ設定の問題のような気がするんだけど。
 
デフォルト設定が

 ・LAN->WANのTCP接続やUDPユニキャスト送信は無条件で許可するが
 ・WAN->LANのTCP接続やUDP受信は許可しない

みたいな市販のNAT付きルータを使っていて、それの設定変更を
面倒臭がるユーザを想定してるなら、はじめからTCP使ったほうが
いいんじゃないかと思う。
0236名前は開発中のものです。02/09/09 19:26ID:???
設定が面倒とかの問題じゃないんじゃない?
(ゲーマーでもフィルタ設定ぐらいは出来るみたいだし。)
どちらかというと複数アカウントで遊べなくなるのが問題だと思う。
0237名前は開発中のものです。02/09/09 20:13ID:???
>複数アカウントで遊べなくなる

それはどういう状況なんだ。
0238名前は開発中のものです。02/09/09 20:47ID:???
>>234
>UDPはコネクションレス型って聞くけどコネクションを張る方法があるそうな・・
そんながせネタをどこから仕入れてのか教えてください
ちなみにIPマスカレードでUDPの入出力がどう働くかは最低限理解していますよね?
0239名前は開発中のものです。02/09/09 21:31ID:???
>237
彼女と隣に座って一緒にネットゲー
0240名前は開発中のものです。02/09/09 21:43ID:???
>>235
UDPで TCPみたいなことをしたくは無いですけど・・?

>>237
ルータに繋がっているPCのうちどれか一台しか繋げないってことかとー
何故この状況が理解出来ないのか。

>>238
http://x68000.startshop.co.jp/~68user/net/udp-3.html
:実は UDP で connect することもできますが、これは後ほど。 :

情報が少なくて分かんないから、確かにガセネタかも知れないです。
というか、無理だというのならハッキリそう言って下さい。詳しいのでしょう?
0241名前は開発中のものです。02/09/09 21:56ID:???
>>240
>:実は UDP で connect することもできますが、これは後ほど。 :
当然がせネタです

>ルータに繋がっているPCのうちどれか一台しか繋げないってことかとー
>何故この状況が理解出来ないのか。
やっぱりUDPの返信アドレスとIPマスカレードを理解してませんね
コネクションが存在しないICMPのPINGがIPマスカレードを通しても返って来ますが
何故この状況が理解出来ないのか。
0242名前は開発中のものです。02/09/09 22:23ID:???
>>241
UDPの返信アドレスって・・なんですか?
もっと一般的な言葉は無いですか?
0243名前は開発中のものです。02/09/09 22:38ID:???
>>242
UDP云々を騙る前に最低限UDPを使ったプログラムを組んでください
あなたはどうしようもないほど問題外です
0244名前は開発中のものです。02/09/09 23:45ID:???
>>243
落ち着いてください。私は問題外で結構です。
UDPの返信アドレスとは何でしょう?UDPプロトコル通信のプログラムを組んでも分からないから問うているのです。
0245名前は開発中のものです。02/09/10 00:04ID:???
>私は問題外で結構です。
問題外で開き直る人にいくら教えても無駄です
実際今までの内容も無駄なようですね

recvfromで得られる情報を確認してください
それすら出来ていないのに
>UDPプロトコル通信のプログラムを組んでも分からないから
と言っているようですが、まともに組んでいないから分からないんです
0246名前は開発中のものです。02/09/10 00:12ID:???
なんかトゲトゲしてるのにちゃんと会話になってるのがスゴイなぁ
0247名前は開発中のものです。02/09/10 00:15ID:???
仕様を完璧に作らないと後ですごく後悔しそうだなぁ。
まぁ何でもそうなんだが。
0248名前は開発中のものです。02/09/10 00:18ID:???
ネットゲーも場合は後から仕様を変更するのはざらなので
仕様を完璧に作ると後で後悔します
0249名前は開発中のものです。02/09/10 00:19ID:???
>ネットゲーも
ネットゲーの
0250名前は開発中のものです。02/09/10 00:20ID:???
うにゅ、そういう考えもあるのね。
0251名前は開発中のものです。02/09/10 01:20ID:H2ivPhsM
>>UDP
参考になるかわからないけど、QuakeはまずUDPで
ホストに接続していいかメッセージを送り、接続できる時は
送られてきたIPと一緒に送られたランダムに決められた数字を
ホストで記憶してたよ。
で、その後送られてくるのがどのマシンか解釈して処理してたよ。
通信に関して詳しい知識がないので上手く説明できないけど、
UDPでconnectってこんな感じのことじゃない?
0252名前は開発中のものです。02/09/10 04:44ID:???
UDPでconnectは文字通りconnectするだけです。
いちいち相手のアドレスを指定しなくても送信出来るようになるだけ。
決してコネクションを貼ることを指すわけではないです。
0253名前は開発中のものです。02/09/10 18:58ID:???
UDPの基礎についての質問はム板でやってくれ
http://pc3.2ch.net/test/read.cgi/tech/1023359282/l50
0254名前は開発中のものです。02/09/10 20:18ID:???
しっかし、おまえらはMXのためにはport開けるくせに、
ゲームの場合はTCPにしろとかほざくわけですか。
0255名前は開発中のものです。02/09/10 20:43ID:???
ってゆーか、UDP使う理由が無いよ。
0256名前は開発中のものです。02/09/10 21:08ID:???
>>255
ある。
http://game.2ch.net/test/read.cgi/gamedev/1018534410/
で実証済み〜
0257名前は開発中のものです。02/09/10 21:57ID:???
実証されてないじゃんw
0258名前は開発中のものです。 02/09/10 22:12ID:???
>>248ワラタ
0259名前は開発中のものです。02/09/10 22:41ID:???
>>257
ちゃんと読めバカw
0260名前は開発中のものです。02/09/11 00:58ID:???
厨ばかりだな
0261名前は開発中のものです。02/09/11 01:03ID:???
まぁ、それはいいから、ぺたんこおっぱいキヴォンヌ
0262名前は開発中のものです。02/09/11 01:44ID:???
>256
それはUDPを使う理由にはならないんじゃないか?
それとも君はあのレベルで満足なのかい?
0263名前は開発中のものです。02/09/11 02:17ID:???
>>262
何言ってんの、あなたのいうレベルって何なのよ?
TCPより速いからUDPを使う、この理由に不足している点がありますか?
ただの言い掛かりは遠慮願います。
0264名前は開発中のものです。02/09/11 03:07ID:???
UDP、TCP以前にもっとやることがあるような気がするよ・・・
0265名前は開発中のものです。02/09/11 08:05ID:???
>>264
いや、他にもやる事はあるが、サーバー側のプログラミングが重要だよ。
0266名前は開発中のものです。02/09/11 09:00ID:???
UDPだと欠落した部分を補ったり、順序がゴチャゴチャになるのを
防ぐためにID振ったりしていろいろとまんどくさいから
それを全部やってくれちゃうTCPマンセーってどこかで言ってたような。

0267名前は開発中のものです。02/09/11 11:45ID:???
UDP使うなら、落ちてもかまわないようなデータを送信するために使うのが普通なんじゃ?
シリアル振っといて、順番前後したら後から来たやつは無視するとか。

というか、プロトコルよりサーバ内の遅延のほうがが問題じゃないのかと。
0268名前は開発中のものです。02/09/11 15:42ID:???
>>263
自分でプログラム作って試してみ。
一応、俺が実験した環境を教えておくね。
Modem56k, ISDN64k 128k, ADSL8M 12M, CATV1M, 1.5M, 10M, 100M(光)で
サイズは1〜65536byte, 秒間パケット数は20〜60パケットで試したよ。
0269名前は開発中のものです。02/09/11 15:46ID:???
追加。
OSはWin, Linux, BSDでした。
0270名前は開発中のものです。02/09/11 19:19ID:???
>268
で?何その環境。ネタか
0271名前は開発中のものです。02/09/11 19:39ID:???
1パケット1kに届いたらアホだろ
0272名前は開発中のものです。02/09/11 20:59ID:???
適当にぼかして書いてるけどネタじゃないよ。
一応言っておくとADSLとか光は下りの速度を書いたんで実際の速度は違うし。
あとパケットじゃなくてデータだった、ゴメン。
0273名前は開発中のものです。02/09/11 23:37ID:dyZJMbvG
>>268
おお、ええなぁ、その環境。
テストした結果も書いてもらえると凄く嬉しいんだが…
0274名前は開発中のものです。02/09/12 00:48ID:???
まず
>263
の反論を聞きたいな
0275名前は開発中のものです。02/09/12 01:27ID:???
・・それは、263に対する反論ってことか?
漏れは>268のようにネタ的な環境は持ち合わせてないからなぁ。
かのPSOだってUDPを推奨してるんだから速いんじゃないのか?

っていうか、>268が香ばしすぎて面白い。
実験て何をしたんだよ。送信先はどこだよ。
それにその接続環境はアレか?知ってる環境書き連ねただけか?
仮にネタじゃないとしたら、かなりの努力家かブルジョワだな(w

「適当にぼかして書いてるけどネタじゃないよ。」
ぼかす所を間違えているか本当に無知なのかどっちだ?
0276名前は開発中のものです。02/09/12 01:37ID:???
UDPの方がハンドシェイクが少ないんだから早いのは当然でつ。
とはいえ、ゲームの設計として考えた場合、俺ならTCP繋ぎっぱにします。
繋ぎッぱならもっとハンドシェイク少ないし、
なによりプロトコルを2つも分けるのは面倒だから。
ここはゲー作板なんだから、純粋な技術ウンヌンではなく、
実際のゲーム製作にそくした検証をするべきでしょ。
0277名前は開発中のものです。02/09/12 08:03ID:???
>>268
 それ、少なくともWin環境では複数データが1パケットに纏まっていると思われ(TCP)。
 だからTCPとUDPとで差が出てないと推測。受け手側でデータ解析した?
0278名前は開発中のものです。02/09/12 09:30ID:bmxMyrR/
>>276
普通コネクションは確立させたままにするだろう。
毎回接続処理をするなんて発想がそもそも変。これが噂に聞くHTTPの弊害?w

で、回線が十分空いてる場合、UDPもTCPもそんなに差はないんじゃないかな?
(ヘッダサイズの問題とか、スタックでの処理の複雑さとかでTCPが不利なのは確かだが。)
問題は回線が混んできた時の挙動であって…。

>>277
ネットワークのレイテンシを考えるとそれでも問題なかったりして…
0279名前は開発中のものです。02/09/12 12:16ID:???
ごたくはその辺にしてそろそろ自分の目で【事実】を確認してみ。
そのほうが話が早いぞ。
0280名前は開発中のものです。02/09/12 12:18ID:???
うだうだいってねーで、プログラム作って比べてみたらいいんだよ。
だいたいちょっと試すだけならあのぐらいの環境はめずらしくないだろ?別に個人で全部持ってるって言ってないんだし。
0281名前は開発中のものです。02/09/12 16:18ID:???
>>278
スタックとかそういうのは関係ねーよ、
そんなもんはCPUが早ければ解決する問題。
TCPはパケットが届く毎に応答するのがネック。
0282名前は開発中のものです。02/09/12 19:15ID:???
試してみるったって・・送信先に出来る知り合いとか居ないし・・。

>279が自分で試した結果を書けば(・∀・)イイ!と思う〜
>280すごく珍しいと思います

っていうか268=279=280よ、>275に対して言う事は無いのか?
0283名前は開発中のものです。02/09/12 19:15ID:???
試してみるったって・・送信先に出来る知り合いとか居ないし・・。


>279が自分で試した結果を書けば(・∀・)イイ!と思う〜
>280すごく珍しいと思います

っていうか268=279=280よ、>275に対して言う事は無いのか?
0284名前は開発中のものです。02/09/12 19:18ID:???
二重投稿スマソ。・・なんてことよ(⊃д`;)
0285名前は開発中のものです。02/09/12 19:18ID:???
笑った。
お前ら脳みそちゃんと入ってるか?(W
028628002/09/12 19:58ID:???
>>283
漏れは268でも279でもねーよ。

会社は普通に専用線だろうし、ADSLな友達にちょっと頼めば
送信・受信のデータぐらいは取れるんじゃねーのか?

つか、それぐらいの知り合いも居ないんだったら
おまえはネトゲー作る前に友達作れよw
0287名前は開発中のものです。02/09/12 20:09ID:???
専用線…ISDN1500のことでつか?
あまり曖昧なこといってるとショボーンだよ
0288名前は開発中のものです。02/09/12 21:14ID:???
INS64でも専用線は専用線だと思うよ
0289名前は開発中のものです。02/09/12 23:03ID:???
どうせならフジTVにあるGigabit線も試して下さい

つか、会社の線で計測するのは良いけど、
常に回線があいているわけじゃないから、
測定データは採用できないよな。
0290名前は開発中のものです。02/09/12 23:20ID:???
ネットワークの混雑状態のシミュレートってどうやるのがいいかねえ。
0291名前は開発中のものです。02/09/13 00:26ID:???
winnyを立ち上げておく
0292名前は開発中のものです。02/09/13 01:29ID:jM8eEv1O
>>281
キミはもう少しTCPを勉強したほうがいいみたいだな。
0293名前は開発中のものです。02/09/13 01:31ID:???
ていうか、UDPは輻輳制御も自分でしなければいけないわけで、
大規模になればなるほど技術力が要るぞ?
まぁ、初心者は素直にTCP使っとけ。
0294名前は開発中のものです。02/09/13 04:49ID:???
でもTCPでリアルタイムゲーは無理だろうな・・・・。
0295名前は開発中のものです。02/09/13 12:00ID:???
リアルタイムゲーって何?
0296名前は開発中のものです。02/09/13 13:54ID:???
http://www.bc.wakwak.com/~lin/sisiden/index.html
↑これは違うのか?
0297名前は開発中のものです。02/09/13 14:08ID:???
エイジオブエンパイアはTCPでは?
0298名前は開発中のものです。02/09/13 14:31ID:???
PSOだって、UDP使えない場合、TCPでやってるね。
0299名前は開発中のものです。02/09/13 19:17ID:???
>>297
また馬鹿が・・・
■ このスレッドは過去ログ倉庫に格納されています