トップページ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
0319名前は開発中のものです。02/09/14 22:35ID:???
>>318
ごめん。
オープンソースかしろって言いたかった訳じゃなくて、
>>309-311辺りに対して、オープンソース形式なら個人ベースでも
MMOまでもってけないかなーとか言ってみただけ。
>MMOなんでオープンソース化しちゃうとチートし放題になってしまう恐れもあります。
これが怖いんだけどね。

俺も115氏のをかなり期待して待ってる一人なので、がんばって下され。
0320みぜっと02/09/14 23:38ID:4DtV6Scp
ネトゲつくってる者です。ちょっと実験をします。
http://www.intio.or.jp/taka2/VWorldServer.exe
協力してくれる方、このスレに自分のIPアドレスを書いて、
23:50にこいつを起動させてください。
IPアドレスは http://taruo.net/e/ ここで調べてください。

協力者がいないときは、今日はもう寝ます・・・
0321みぜっと02/09/14 23:49ID:4DtV6Scp
115さんのとこ、からっぽなんですけど・・・
0322みぜっと02/09/14 23:51ID:???
うーん、元々この板、人少ないんですかね。
また明日来ます。それでは。
0323名前は開発中のものです。02/09/14 23:55ID:???
10分ちょっとで諦めるみぜっと萌え
0324名前は開発中のものです。02/09/15 00:32ID:???
1時間待ってくれりゃ、入ったのに
0325名前は開発中のものです。02/09/15 00:57ID:???
いきなりexeファイルを起動しろ、IPアドレスを記述しろといわれても、
そりゃだれもやらんて。
0326名前は開発中のものです。02/09/15 18:13ID:???
>>325
禿同。あまりに一方的すぎて笑えた
0327名前は開発中のものです。02/09/15 19:15ID:???
>>320
せめてリリースビルドしたものを置けよ・・・
0328名前は開発中のものです。02/09/15 22:34ID:???

http://game.2ch.net/test/read.cgi/gamedev/1031623683/42-46

みぜっとハッケソ
032911502/09/16 03:30ID:???
キャラ削除で指定したのと違うキャラが
削除されてしまうことがあるバグがありますた...
修正したバージョンをアップしました。

キャラ消えちゃった人ホントにごめんなさい。
0330名前は開発中のものです。02/09/16 05:32ID:???
>>115
 またがんがるからチミもがんがれ! (´▽`*川
0331名前は開発中のものです。02/09/16 12:26ID:???
>>330
みぜっとuzeeeeeeeeeeeee!!
0332みぜっと02/09/16 17:04ID:???
うざくて悪かったな。
もうちょっとちゃんとしたものになったらまた来る。
0333名前は開発中のものです。02/09/16 17:17ID:???
>>332
もう来ないで
0334名前は開発中のものです。02/09/16 18:14ID:???
来てもいいけど今度は2時間くらいは待ってみろ
033511502/09/16 19:02ID:???
ver0.0004a、ローカル用のサーバ設定ファイルにしてしまってました...鬱
server.txtの内容を改行無しで
robrob.dyndns.tv
にするとログインできます...
修正したものもすぐアップします...たびたびスマソ。スレ汚しスマソ

ちなみに330はみぜっと氏ではなく私の友達と思われ...
みぜっと氏はナニやってんのか、ドンナゲーム作ってるのか
サパーリわかんないから教えてたもれ。
実験に協力しようにもどのポートを空ければいいのかもわからんし...
0336名前は開発中のものです。02/09/16 20:01ID:???
>>みぜっと
関係無いけどその名前、昔の漏れと同じだ
0337名前は開発中のものです。02/09/16 20:02ID:???
ホントに関係ないなw
0338名前は開発中のものです。02/09/16 20:05ID:???
>>336-337ご苦労さん
0339名前は開発中のものです。02/09/16 20:25ID:???
ホントは別人なんだけど
漏れもジサクジエンだと思ったよ・・
0340名前は開発中のものです。02/09/17 17:19ID:XWjnQ5wf
質問です。recv()を使うとゲームが止まってしまいます。
スレッドを使えばいいと言われたのですが、よくわかりません。
詳しく教えて下さい。
0341名前は開発中のものです。02/09/17 17:50ID:???
>>340
勉強しなさい。
0342名前は開発中のものです。02/09/17 18:37ID:???
あまりにも漠然としていてビクーリ
0343名前は開発中のものです。02/09/17 18:41ID:???
このてのAPIには完了型と非完了型がある。
完了型は文字通り、処理を終えないと戻ってこないもの。
非完了型はリクエストを出したら関数を抜けてくる。

recv( )は完了型なので、リアルタイム処理中はNG。
だから、本来のゲームの流れの外で(つまり別のスレッドで)
実行しなければならない。


なんて、言われないと分からない奴の完成は数年後だろうなぁ・・・。
まあコツコツと続けたまい。
0344名前は開発中のものです。02/09/17 20:49ID:???
>>329
Σ(゚д゚lll)ズガーン !
消えてました。ま、アップデートと思えば。開発中だし。
0345名前は開発中のものです。02/09/17 20:56ID:???
がんばれ、みぜっと。

なんだかんだで面白ければ認められるから
034611502/09/17 21:04ID:???
tripod垢消されたっぽいdeath
とりあえず暫定的にhoopsに置いときます...( ´Д⊂ヽ
http://rob-rob.hoops.ne.jp/mmo/
0347名前は開発中のものです。02/09/17 21:06ID:???
悪いことしてないのに、なんで消されたんだろ?
アクセス過多でも消えるんか?
0348名前は開発中のものです。02/09/17 21:28ID:???
> recv( )は完了型なので

ノンブロッキングモードを知らない奴が
ネットゲーのプログラミングを語るなんて信じられない
0349名前は開発中のものです。02/09/17 21:32ID:???
ノンブロッキングにしてメインループでポーリングさせると
無駄な時間のロスになるんで、別スレッドで行うのが最善だと思うが。
もしくは、Winなら非同期で。
0350名前は開発中のものです。02/09/17 21:34ID:???
winでもunixでもポーリングする馬鹿なんていないと思う
0351名前は開発中のものです。02/09/17 21:45ID:???
selectつかえばいいじゃねぇか。
0352名前は開発中のものです。02/09/17 22:52ID:???
selectを待ち時間0で使うととんでもない負荷かかるぞ
0353名前は開発中のものです。02/09/17 22:58ID:???
そういう馬鹿もいないと思いたい
0354名前は開発中のものです。02/09/17 23:17ID:???
ブロッキングが困る上にスレッドがイヤだからノンブロックモードって話が出たんだろ。
selectで待機したら意味無いから待ち時間0かポーリングしか選択肢無いと思うが。
0355名前は開発中のものです。02/09/18 01:05ID:???
じゃー、select()で拾ったらSIG_ALERT発生させて、そこで拾う。
0356名前は開発中のものです。02/09/18 11:30ID:???
・・・・・無理しないでマルチスレッドにしとけよ。
0357名前は開発中のものです。02/09/18 13:39ID:???
>>350
>winでもunixでもポーリングする馬鹿なんていないと思う
サーバならポーリング&ウェイトなしでCPU100%使う設計でも問題なさそうに思えるが、
そうすると、ネットワークとかHDDアクセスとかのI/Oのパフォーマンスに
影響が出ちゃったりするのかな?
0358名前は開発中のものです。02/09/18 18:52ID:???
> サーバならポーリング&ウェイトなしでCPU100%使う設計でも問題なさそうに思えるが

素人じゃあるまいし、そりゃねーべよ。

> そうすると、ネットワークとかHDDアクセスとかのI/Oのパフォーマンスに
> 影響が出ちゃったりするのかな?

OSがカーネル内もしくはサービスとして別のアクティビティを持ってる
かもしれないし、構成として一つのマシン内に複数のサーバプロセスを
立ち上げるときに非常に困る(OSにもよるがCPU割り当てが偏る場合がある)。
また、CPU Usageをサーバの状態監視項目の一つにしておくと、異常状態を
検知するのに有効なので、通常時に100%でブン回すのは避けたい。

ソケットにしろ何にしろ、OSからの通知を受けて動作するように設計すべき。
winもunixにもそのための仕組みはある。
0359名前は開発中のものです。02/09/18 19:00ID:???
ブロック無しのselectで受け取る物がなければ他の処理に回せば良いだけでは?
0360名前は開発中のものです。02/09/18 19:03ID:???
> selectで待機したら意味無いから待ち時間0かポーリングしか選択肢無いと思うが。

うーんと、クライアント側はおそらく
[入力処理]→[ネット処理]→[ワールド更新]→[描画]
みたいなループが回ってると思うんだけど、この[ネット処理]のところを
待ち時間0のselectにするのは問題ないと思うYO
FPSを調節したいなら、待ち時間のところに調節時間を入れるというのも手だNE!

クライアント側はソケット数なんて多くても数本だろうから、
このときは352のいうような負荷はかからないと思う。

大量のクライアントをさばくサーバーでは負荷が問題になるそうだ
http://www.kegel.com/c10k.html
ただし大量でないならどうでもいい
0361名前は開発中のものです。02/09/18 20:28ID:???
>>360
勿論それは分かってる。
しかし、高々数本だとすると、毎ループrecvで確認していた方が負荷が少ないよ。
selectはどの実装でも高負荷だからな。
selectが重すぎて使い物にならないから、kqueueとかIOCP(これはそうでもないか)が出来た。

複数のディスクリプタからの入力を待機する用途以外にselectは使えないし、使っちゃダメ。
待ち時間0の時は別の方法を考えるべき。
0362名前は開発中のものです。02/09/18 20:38ID:???
高負荷って実用上まったく影響のないものを気にしてどうするのか
小一時間問いつめたい
0363名前は開発中のものです。02/09/18 21:02ID:???
>>362
じゃ、ポーリングじゃなくてわざわざselectを選択する理由って何?
0364名前は開発中のものです。02/09/18 21:11ID:???
これまでの経緯

1 recvで止まっちゃう
2 recvとはそういう物
3 ノンブロッキングも知らんの(プ
4 ノンブロッキングでポーリングすると無駄
5 ポーリングするかよ、馬鹿。select使え
6 selectでブロックすんの? 1に戻るじゃん
7 待ち時間0でselect汁
8 それじゃポーリング馬鹿と変わらないだろ

こんな所か。
0365名前は開発中のものです。02/09/18 21:12ID:???
>>362はselectをタイムアウト無しで使うって話なんじゃ?
0366名前は開発中のものです。02/09/18 21:13ID:???
>>364
マルチスレッドで全て解決だと思うが、使わないという前提?
0367名前は開発中のものです。02/09/18 21:20ID:???
負荷云々言っている奴は頭が固いかまともな実装が考えられないのでは?
>[入力処理]→[ネット処理]→[ワールド更新]→[描画]
でネット処理のささいな負荷が気になるのなら
ループ毎で毎回ではなく、適当に処理しない回を作れば?
送られてきた瞬間に受け取る必要はないし
それとも今度はタイミング云々言い出すのか?
0368名前は開発中のものです。02/09/18 21:28ID:???
>>366
マルチスレッドで解決というのは分かるんだが、

ポーリング>馬鹿
待ち時間0のselect>賢い?

というのが理解できないだけ。
0369名前は開発中のものです。02/09/18 21:35ID:???
>>376
負荷云々は
selectとポーリングで期待できる効果が全く同一であるのに、
負荷の低いポーリングを選択せず、selectにすべきと言うからには、
selectにはそれ相応の価値があるからだと思うんだが、
それが何かを知りたいだけ。

もしかして、待ち時間0selectと言う言葉を使ってきたけど、
タイムアウト無しとは違うって事?
タイムアウト無しが第5引数をNULLにする事を指すなら、
今回の問題への解答としては的はずれでないの?
0370名前は開発中のものです。02/09/18 21:43ID:???
ところでポーリングというのは非同期をさしてるの?
0371名前は開発中のものです。02/09/18 21:52ID:???
>>370
毎ループrecvを繰り返す事かと
ジョイスティックのAPIにPollとかあったような。
0372名前は開発中のものです。02/09/18 21:58ID:???
非同期のrecvは切断判定が難しい
0373名前は開発中のものです。02/09/18 23:12ID:???
>>372
recvで受信する毎にn=0
1秒毎にn++
nが30になったら切断処理・・とは違うのん?
037434002/09/18 23:24ID:???
なんかいっぱい釣れた(プ
0375名前は開発中のものです。02/09/18 23:41ID:???
>>364
そこまではすぐに追えるというか頭の準備だね。

・ノンブロッキングなsocket"数個"に対しrecv()する
・待ち時間0のselect()をする

この2つはパフォーマンスにおいては同等でしょう。内部処理も同じだろうし。

ただ、諸般の事情でブロッキングにせざるを得ない場合があったりするとヤだから、
俺はselectのほうが柔軟だと思うッス。

>>361
> 高々数本だとすると、毎ループrecvで確認していた方が負荷が少ないよ。

何と比較してどのようなテストをしたのか教えてくだせえ
0376名前は開発中のものです。02/09/19 04:52ID:???
>>374 ヴァカめ。釣ったのはオマイじゃない。>>343だ。
0377名前は開発中のものです。02/09/19 07:32ID:???
>>373
接続が切れても30秒間待たされるのはいただけない
0378名前は開発中のものです。02/09/19 08:29ID:???
winならWSAGetLastErrorで判別出来る
0379名前は開発中のものです。02/09/19 08:51ID:???
>>374は騙りだと思われ・・・
0380名前は開発中のものです。02/09/19 21:50ID:???
>>377
UDPの場合は話は別よ?
TCPならタイムアウトは標準で判定処理出来るんだっけ・・こっちは良く知らないから。
0381名前は開発中のものです。02/09/20 02:50ID:???
おまえらソケットの勉強はム板でお願いします
0382名前は開発中のものです。02/09/20 06:37ID:???
ネトゲの技術についてなんだからスレ違いでも無いと思うが
0383名前は開発中のものです。02/09/20 15:10ID:???
すれ違い
0384名前は開発中のものです。02/09/21 09:01ID:???
UDPでコネクション張るだとか言ってたのは例外として
そこまで初級レベルの話はでてないとは思うんだけどなあ
そういや実践的なテクニックの解説なんかをした本はあんまり出てないね
0385名前は開発中のものです。02/09/21 20:47ID:???
特に、(リアルタイム系)ゲームみたいにメインループがあって毎回送受信が必要な場合の
実践的なテクニックとか知りたいね。

たしか、戦闘シミュレーションとかで分散系で云々って論文があったような気がした。
まぁ、それは、マルチキャスト前提みたいな話だったと記憶してるけど。
0386名前は開発中のものです。02/09/21 21:24ID:???
リアルタイムだとしても通信がリアルタイムである必要ってあるんですか。
機械的に発生するウインドウシステムのメッセージですら非同期だというのに、
主に人間の操作によるアクションを伝達するためのゲームないでのメッセージを
強引に同期させる理由が思い浮かばない。
0387名前は開発中のものです。02/09/21 22:39ID:???
何を同期させたいか、によるんじゃないかなあ
200近辺でその議論が始りそうな雰囲気があったが・・・

ウィンドウシステムのメッセージが非同期で構わないのは、
同一システム内ゆえ、メッセージの発生とハンドラでの処理が
リアルタイムに(=人の目に気づかないほど素早く)行われるからでしょう。
実際にはマウスの位置もドラッグしてるウィンドウの位置も
ビミョウーに遅れてるんだろうけど、気づかないし、問題にならないよね。

これがネットゲーで問題になる理由は、メッセージというかイベントの発生場所と
ハンドラの処理主体がネットをまたいだりすることに起因するわけで、
そういう意味でも区別したほうがいいとおもう。

ところでおまえらUnrealTournament2003のデモ(体験版)はやりましたか?
対戦が熱いYO!
038838702/09/21 22:43ID:???
補足です

> リアルタイムに(=人の目に気づかないほど素早く)行われるからでしょう

この文は、ここでのリアルタイムの定義(?)を意図しています

リアルタイムの本来の意味は「締め切りに間に合うようにする」とかいう
ものなので誤解なきよう・・・
0389名前は開発中のものです。02/09/21 23:41ID:???
>>387
だから、原理的に遅延を防ぐことができないんだから、
遅延が発生しても問題ない、または影響を最小限に抑える仕組みにするんだよ。
0390名前は開発中のものです。02/09/21 23:52ID:???
>>389
違う、回線をATMにして回線の信頼性を上げるんだ!
0391名前は開発中のものです。02/09/22 07:44ID:???
だから電話で直繋ぎが正しいって言っただろ
0392名前は開発中のものです。02/09/25 11:51ID:???
電話で直つなぎでも遅延はするけどね。
インターネット経由みたいな不安定さは無いけど。
0393 02/09/25 21:58ID:???
誰かボンバーマンオンラインの完全フリー版作ってくれ!
本家ボンバーマンオンラインだとアイテムとかステージとか少なくてすぐ飽きる
0394名前は開発中のものです。02/09/25 22:01ID:???
自分で作るか製品が出るのを待てば?
ここは厨房製作依頼板ではない
0395名前は開発中のものです。02/09/25 22:43ID:???
>ボンバーマンオンラインの完全フリー版
同じものをつくっても同じ理由ですぐ飽きると思うがどうか?
0396名前は開発中のものです。02/09/26 00:47ID:???
wizgate作と違って、意見を出せば直ぐに反映してくれるんなら飽きないと思うけど。
0397名前は開発中のものです。02/09/26 07:02ID:???
>>393
他力本願プロジェクトは9割り失敗する

というのは置いておいて、オープンソースで公開すればいいのかもな。
0398名前は開発中のものです。02/09/26 08:39ID:???
ゲームの場合オープンソースでうまくいくケースは稀。
見方によっては成功例は全くないとも言える。
0399名前は開発中のものです。02/09/26 08:47ID:???
オープンソースってもしかして共同開発だけだと思ってる?
0400名前は開発中のものです。02/09/26 08:47ID:???
> オープンソースで公開
つまり、完成品のソースを公開するという罠。
0401名前は開発中のものです。02/09/26 08:48ID:???
それなら単に、ソース公開とだけ言えばいいだろう
0402名前は開発中のものです。02/09/26 11:50ID:???
開発者でもないのにいきなり現れて、
オープンソースは?!
オープンソースは?!

って聞いてくる馬鹿ってどこにでもいるよな
0403名前は開発中のものです。02/09/26 12:08ID:???
いるいる
0404名前は開発中のものです。02/09/26 14:12ID:???
>>402は粘着か?
なんかオープンソースにトラウマでもあるんだろうか?
0405名前は開発中のものです。02/09/26 14:17ID:???
オープンソースを迫ったりスレを立てたりして結局ゲームをつくらなければ
粘着厨房に絡まれますよ?ということだ
0406名前は開発中のものです。02/09/26 14:22ID:???
最近は知らないけど、昔は何か公開すると、
必ず直後に「ソースきぼん」というレスがついてゲンナリした。
おたふくソースでも飲んでろ、とか思った。

それはそうと目的のある共同プロジェクトは絶対失敗する。
一人がメインでバリバリ書いて、残りが周囲の枝葉末節を仕上げる、
という形ならそれなりにうまく立ち回るが、
目的優先のプロジェクトだと作業を押し付けあって頓挫するのは必定。
0407名前は開発中のものです。02/09/26 14:23ID:???
別に本家じゃなくてもオンラインのボンバーマンなんてあるにはあるが
いったいどういったものを望んでるんだ?
常に新フィーチャーを含んだバージョンアップを繰り返してくれるもの
なんて言ったら殺頃すからな
0408名前は開発中のものです。02/09/26 14:52ID:???
ころころすんでちゅか?(藁
0409名前は開発中のものです。02/09/26 14:58ID:???
↓乙たけくんのAA
0410名前は開発中のものです。02/09/26 15:26ID:???
 o
 Q
0411名前は開発中のものです。02/09/26 17:47ID:wkxP3FUl
>>404
ウンコーヽ(・∀・)ノ ウンコー
0412名前は開発中のものです。02/09/26 20:14ID:???
>>399
もしかしてソースを晒せばそれでオープンソースだと思ってる?
0413名前は開発中のものです。02/09/26 21:44ID:???
>>412
当たり前やん。
配布形態:オープンソース
ライセンス:なにか別な物
0414名前は開発中のものです。02/09/26 22:12ID:???
たとえそれが改良版の配布を禁じたりしても
勉強になるので公開はうれしいです>ソース公開
0415名前は開発中のものです。02/09/30 20:43ID:4Vteu644
そうですね
http://www.freeml.com/ctrl/html/MLInfoForm/martian2@freeml.com
0416名前は開発中のものです。02/09/30 23:44ID:???
>>413
それは現実と矛盾する。
「ライセンス」と「配布形態」は「別なもの」ではない。
ライセンスの中で再配布条件は定義されるからだ。
(再配布条件は配布形態の要素である)
 
「ソースが自由に入手できるならオープンソースである」
という考え方は世間一般においてはマイナーである。
(正誤の話をしてるわけではない)
 
メンテするつもりのない間違いだらけの目糞鼻糞なソースコードを
無断改変禁止&再配布禁止などの制約条件の下でwebページに公開し
続けている人間は多い。
彼らの行為は世間一般には「オープンソース」とは認知されていない。
(彼らの行為の是非を問うているわけではない)
 
オープンソースの定義には“細かい点では”では諸説あるのは確かだ。
しかし、「ソースを公開すること」≠「オープンソース」という点においては
共通の認識として定着している。
0417名前は開発中のものです。02/09/30 23:59ID:???
>>416
配布形態がライセンスによって定義されるというのは大間違い。
それが正しいなら、ライセンスの存在しないソフトは配布されないことになる。

それから、ソース公開=オープンソースで間違いではない。
OSI準拠の配布ではないが、オープンソースがOSIの登録商標でも何でもないから、
頭の固い奴が勝手に騒いでるに過ぎない。
041841602/10/01 00:16ID:???
繰り返すが
  「ライセンス」と「配布形態」は「別なもの」ではない。
と言っている。
>配布形態がライセンスによって定義されるというのは
これが何処から出てきたのか当方も分からない。
■ このスレッドは過去ログ倉庫に格納されています