トップページ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
0475ひきプロ ◆8fhky/PGis 02/10/07 22:34ID:???
115サソすげー、カルチャーショック(;´Д`
0476名前は開発中のものです。02/10/07 22:43ID:???
更なる発展を願って記念パピコ
0477名前は開発中のものです。02/10/08 07:10ID:???
>>474
折れ漏れも。ポリゴンの各頂点が縦横無尽に乱れ飛んでた。
047847702/10/08 07:47ID:???
スンマソン、ver.0.00051で直ってました。

カメラの位置が変更できて(・∀・)イイ!!
自キャラも正面から見れて(゚д゚)ウマー
0479名前は開発中のものです。02/10/08 12:18ID:???
萌えキャラ作りたいんですが
0480名前は開発中のものです。02/10/08 22:13ID:???
好きだけ作れば良いだろう
0481名前は開発中のものです。02/10/10 15:32ID:DCXnm4Qd
そうですね
0482名前は開発中のものです。02/10/11 04:15ID:???
   ____
  /      ヽ
  / __A___|〆
  ヽ(____> 
   ノ从ハ)从〉   シュ シュ
   クノ ´∀`§へつ シュウリョウ〜♪
    √ ヽ@_X  .|
   /│    ヽ丿 ))
  /  \    |つ
/    ヽ__ノ
く        │
 ヾ=====┘
   し  し
                       〜完〜
0483名前は開発中のものです。02/10/11 20:08ID:???
再開
0484名前は開発中のものです。02/10/14 18:57ID:zpniLE5e
あげ
0485名前は開発中のものです。02/10/14 21:38ID:???
とりあえずクライアントダウソしてみたのだが、グラフィックだけが何故か表示されない.......(レゾナンスエイジβもそうだった)。
なんでだしょ?
DirectXの問題じゃろか?
0486名前は開発中のものです。02/10/15 00:13ID:???
ビデオボードのせいだと思われ
0487名前は開発中のものです。02/10/15 02:58ID:???
>>486
ラグハイムは普通に出来るんだよねぇ......。
ロースキルだもんで、どこをどうすればいいのかようわからないぽ(´・ω・`)
0488名前は開発中のものです。02/10/15 07:51ID:???
グラフィックボード名ぐらい書いたほうがいいのでは?
書かないってことはだいたい目に見えているが。
0489名前は開発中のものです。02/10/15 09:56ID:???
>>488
メーカー製PCで、ボード名も解からないに、1ウォン
>>487どこをどうすればいいのか
ビデオボードを買ってきて、交換する
049011502/10/16 13:42ID:???
グラフィックカード/チップの種類は 画面のプロパティ→設定
あたりに書いてあると思います(@Win2K)。多分。

画面の色数/解像度を変えたり
ログインダイアログ→設定でイロイロ設定を変えると動作するかもしんないです。
815チプセトだと16bppでないと動作しないっぽいです。
画面が真っ白の場合には「フォグ無効」にするとイイと思います。


次バージョンでは職業・スキルあたりをいくつか導入しよーと思ってるんですが、
結構タイヘンなんす。キアイ入れて作ってるんでチョッピリ待ってちょ。
0491名前は開発中のものです。02/10/16 14:17ID:???
お疲れさまです、期待しています。
でも職業より萌えキャラつくらせて下さい。おながいします。
0492名前は開発中のものです。02/10/16 19:14ID:???
作らせてくださいということは>>491がモデリングしたデータを採用しろと?
0493名前は開発中のものです。02/10/17 02:05ID:???
hoge
0494名前は開発中のものです。02/10/17 03:58ID:???
多分装備アイテムとして
猫耳とか耳につける謎のキカイとかを追加しろゴルァということではないかと...
0495名前は開発中のものです。02/10/17 14:15ID:???
メイド服やセーラ服とかな。
0496 ◆HsptrkZmYk 02/10/17 16:53ID:i9wu2e8A
サーバ無しのオンラインゲームを作るにはどうやったらいいんですか?
0497名前は開発中のものです。02/10/17 17:11ID:???
>>496
外基地キタ━━━━(゚∀゚)━━━━!!!
0498名前は開発中のものです。02/10/17 17:15ID:???
>>496
プロバイダ無しでインターネットをするにはどうやったらいいんですか?
0499名前は開発中のものです。02/10/17 17:23ID:???
P2Pと言いたいのでは?
もしくはLANゲー
0500名前は開発中のものです。02/10/17 18:15ID:???
サーバなしにする方法
・全員が全員にゲームのデータを送る
・ブロードキャストを使う
・マルチキャストを使う
・まじめにP2Pネットワークを構築し、その中でブロードキャストでデータ交換する

ただ、サーバがない=データは個人管理=チートし放題なので、
そのための対処が必要。
0501名前は開発中のものです。02/10/18 03:28ID:???
漏れらも115さんに続こうとMMORPGを製作中なんだけど、
マップデーターの構造ってどんな感じになってるのか気になる。
格子状にすると表現力に欠けるし。マップは出来るだけ広くしたいのだけど、
BSPだと木がでかくなりすぎるような気がする。
どうしたらいいんでそ?
0502名前は開発中のものです。02/10/18 08:00ID:???
HeightMap + オブジェクト配置が常套かと
0503名前は開発中のものです。02/10/18 08:01ID:???
あ、でもUnrealTournament2003とかどうやってるか気になるな。
050411502/10/18 08:35ID:???
>>501
私は格子状のハイトマップデータを基本にして、
そこにオブジェクトぽつぽつを乗せる形で管理していますが、
これはマップエディタ作成/マップ作成に時間をかけたくなかったからです。
マップ作成に時間がかけられるならば格子にとらわれない
自由なポリゴンで表現すればよいのではないでしょうか。

自由なポリゴンで表現するからといって
BSPツリーが必要というわけではないと思うのですが、
何を目的にしてBSPツリーが必要なのか教えていただけると
アドバイスできるかもです。

なんにせよ同士ができるのはウレシイです。
切磋琢磨してお互い良いモノができるとイイですね。
050550102/10/19 06:13ID:???
ハイトマップだと螺旋階段みたいな地形の扱いをどうしたら良いか迷ってしまいます。
かといってBSPで空間をぶった切るような感じだと複雑になってしまう気がします。
箱庭って感じにはしたくないのです。
とりあえずアイデアが浮かんだので試してみる事にします。
0506名前は開発中のものです。02/10/20 00:12ID:???
ホシュ
0507名前は開発中のものです。02/10/22 11:17ID:8jsmzOaO
age
0508名前は開発中のものです。02/10/22 14:59ID:???
漏れら極悪非道の終了ブラザーズ!
クソスレは終わらせてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    END
 (・∀・∩)(∩・∀・)    ENDE
 (つ  丿 (   ⊂) FIN
  ( ヽノ   ヽ/  )   了
  し(_)   (_)J  完
0509名前は開発中のものです。02/10/22 15:21ID:q1BkHky6
>>508
書き込んでたら終らないだろ。
0510名前は開発中のものです。02/10/22 15:24ID:???
>>509
ここは過疎板なので書き込んでも書き込まなくても終わらない。
だから半年前に書き込みが途絶えたスレもage荒らしの餌食となる。
0511名前は開発中のものです。02/10/22 16:26ID:???
保守作業が必要ないという点で便利……?
0512名前は開発中のものです。02/10/22 16:42ID:???
Unexpected error encountered

File: F:\user\code\mmorpg08\main.cpp
line: 1987
Error Code: D3DXERR_INVALIDDATA(0x88760b59)
Calling: InitGeometry()



えーと・・・・・・
つながりません。がっくり。
0513名前は開発中のものです。02/10/22 18:08ID:???
ビデオボードのスペックを
0514名前は開発中のものです。02/10/22 22:47ID:77UdK/7g
>>512
画面の色数を16bitにして、設定で影を丸影に変える
あとDirectXの最新版をいれて無理だったらあきらめろ
0515名前は開発中のものです。02/10/23 00:58ID:???
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
0516名前は開発中のものです。02/10/23 22:25ID:???
期待age
(゚∀゚)アヒャ〜
0517名前は開発中のものです。02/10/23 23:41ID:???
全員チャット無くして欲しくないな・・・
0518名前は開発中のものです。02/10/26 14:36ID:RXKLOGg/
マターリAGE
0519東郷妖八郎02/10/26 19:34ID:???
kitai
052011502/10/28 07:26ID:???
次バージョンの機能のほとんどが実装できますた。
順調にいけば数日後に次バージョンを公開できそうなかんじです。

職業・スキル等が追加され、キャラクターデータの変更がかなりあるので、
申し訳ありませんが今までのキャラクターはワイプされる予定です。
0521名前は開発中のものです。02/10/29 00:13ID:???
ガンガレ!!
最近知りますた。
ケツがフリフリなのがイイ!!
0522名前は開発中のものです。02/10/30 22:36ID:TB1ZDHwp
>>115さん
開発日記みますた。
魔法使い(* ´∀`)ハァハァ
052311502/10/31 22:53ID:nAt/+U96
新バージョンupしましたYO!
職業・スキルなんかが追加されて、ゲームっぽくなってきたYO!

http://robrob.tripod.co.jp/mmo/
0524名前は開発中のものです。02/11/01 00:39ID:???
トップページ以外のファイルが見当たらないんだけど・・・。
0525名前は開発中のものです。02/11/02 09:29ID:???
115さんのゲームができない環境にある僕なんかは開発日記が充実しているととてもうれしいです。
0526名前は開発中のものです。02/11/05 08:13ID:ireVsZXj
そうでうsね。
052711502/11/05 21:25ID:???
日記ぜんぜん書いてなくてスマヌ。ガンガリます

ゲーム性の部分を作成できる段階になりつつあるので
そろそろ今後追加したいシステムとか機能とかについての構想(妄想)をまとめて、
公開しよーかなー。と思っております。
そーしたらみなさんから、「こーゆー機能が欲しい」とかの意見を聞きたいなー
って思ってます。
0528名前は開発中のものです。02/11/07 07:03ID:???
>>527
がんがれ
0529☆タクリン☆02/11/10 14:20ID:kp4I3dsW
ネットゲー作る技術持ってる人…
0530名前は開発中のものです。02/11/10 14:40ID:???
そんなこと言っちゃダメ!!
0531名前は開発中のものです。02/11/10 16:55ID:???
???
0532名前は開発中のものです。02/11/10 18:47ID:???
タクリン降臨sage

なんで居るんだ?
0533名前は開発中のものです。02/11/10 19:11ID:???
☆タクリン☆ってダレ?
↓この人????面白いコトやった人なの?おしえてけろ
ttp://www.vector.jp/vpack/browse/person/an029015.html
0534名前は開発中のものです。02/11/12 20:19ID:???
115さんのゲーム(・∀・)イイ!人が増えるといいね。

他のネトゲーみたいにエミュ鯖が出てくるのだろうか?と思ってみるテスト
0535名前は開発中のものです。02/11/12 20:42ID:???
将来的にはリソースを共有できたらいいのになあ、とか思ってみるテスト。
今はまだまだまだまだその時期じゃないけどね。
0536名前は開発中のものです。02/11/13 22:46ID:???
115さんのゲームに期待
0537名前は開発中のものです。02/11/15 00:17ID:I9WZR5U1
がんばれよぉ・・・(´д`;
0538あぼーんNGNG
あぼーん
0539New Thread02/11/15 12:52ID:+k9zS7j4
再開
http://hayari.tripod.co.jp/
http://www.geocities.co.jp/Technopolis-Mars/7486/
0540名前は開発中のものです。02/11/15 16:32ID:???
       〈 ̄ヽ
 ,、____|  |____,、
〈  _________ ヽ,
 | |             | |
 ヽ'  〈^ー―――^ 〉   |/
    ,、二二二二二_、
   〈__  _  __〉
      |  |  |  |
     / /  |  |    |\
 ___/ /  |  |___| ヽ
 \__/   ヽ_____)
0541名前は開発中のものです。02/11/15 17:35ID:???






>>115
0542名前は開発中のものです。02/11/16 16:23ID:???
>>540-541

ワラタ
0543名前は開発中のものです。02/11/17 18:02ID:i8UzChI8
マダカーヨ
0544名前は開発中のものです。02/11/17 18:45ID:???
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  終  了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
0545名前は開発中のものです。02/11/18 15:52ID:???
        ∧∧  ミ _ ドスッ
        (   ,,)┌─┴┴─┐
       /   つ.  再  開 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
0546名前は開発中のものです。02/11/19 05:09ID:???
敵キャラのモデルくらい提供したいなぁ。
115さんがよければ。
054754602/11/19 08:23ID:???
115さんがOKなら、もちろんプレイキャラなり、景観モデルなり、
何でも作れると思います。UVテクスチャ込みで。
054811502/11/19 20:16ID:???
>>546
わーーーい
モデル作成に協力してくださるなら、とってもうれしいです。
ただ、私はLightWaveしか持ってないので、
データの受け渡しとかできないと困ってしまうのですが、
ソフトは何をお使いでしょうか??
(3DSMaxもホシイんだけど高いから悩み中...)
あと、今のトコロお礼とかなんもできないですけど...
それでも協力してくれるならとてもうれしいです。
054954602/11/20 04:50ID:???
>>548
マジですか!自分の修行も兼ねてですから、やらせて頂けるだけでもうれしいです。
私はLWとMAX持ってますんで、データ形式は色々対応できます。
早速なんか作りたいと思うんですが、今の所仕様はどんな感じなんでしょう。
1キャラに使えるポリゴン数の制限とか、三角ポリか四角ポリか(もしくは混在OKとか)、
それからテクスチャの色数、大きさ、枚数制限等、、、です。
055054602/11/20 05:27ID:???
あぁ、あとこんなの作ってっていうのがあったら言ってください。
0551アホ02/11/20 12:40ID:4gIO4yYK
体の太さとか高さ大きさとか色とかいろいろ変えられたら、面白そう
055211502/11/20 16:20ID:???
>>551
PSOとかFF11では体格を変えられるようになってますね。
原理的にはボーンの大きさや太さを変えればそういったことはできるハズなのですが
各部の干渉とかあるんで実装できそうかどうかは実験してみないとわからないです。
できれば実装したいとも思ってるのですが手がまわってないです。
色は既に変えられるYO!

>>546さん
えーと、どんなカンジのモデリングを普段していて得意とかありますか?
「今までこんなの作った」とかあったら見てみたいです。
2ちゃんに晒すのはヤとかならメールしてください。

モデル作成の指針としてはとりあえず思いつくのは
・頂点/ポリゴン数/テクスチャサイズ/マテリアル数/ボーン数は小さい方がイイ。
・三角四角混在可ですが、X-fileにする時に三角にコンバートする場合アリ
・テクスチャサイズは最終的に2^n*2^n pixelの正方形になります
・テクスチャは1つのオブジェクトでなるべく1つ以下
・複数のオブジェクトで1つのテクスチャを使うのはOK
・テクスチャのブレンドタイプは「カラーそのまま」「乗算」「乗算して2倍」を
 使ってますが、必要なら「加算」「減算」もOKです。
・1つのオブジェクトでは1つのテクスチャブレンドタイプ
・半透明はなるべく使わない方向で...
・ボーンを組み込むオブジェクトにはそれなりの処理を
・モンスターはマテリアルの色1個変えると色違いになるようにしてホシイ
・マップ上の障害物は2m間隔のグリッド単位で衝突判定しています。
ってなカンジですかね...
頂点数・ポリゴン数はモンスターだと500〜600くらいかなぁと思うのですが、
自作のモデルでは無駄に使ってしまってるのが多いのでえらそうなコト言えないデス...

長文失礼しました。
0553アホ02/11/20 18:46ID:4gIO4yYK
>115さん
とても実施してほしいことで、
各ユーザがクエストや任務みたいなのをゲーム上のある場所で作れたり、任務に契約みたいなのができれば面白いと思います。
あらかじめ、その任務(クエスト)の賞金や、賞品は任務を作った人が出す。

私もオンラインゲームを作ってみたいと思ってて、こんなすごいゲームを一人で作ってしまったのには驚きました。
これからも応援してます!後、自分で言うのはなんですが、絵を描くのが得意です(洋ゲー風のなら)もし手伝ってほしいことがあれば言ってください、
できる範囲なら手伝いたいと思います。
色変えられましたね!失礼しました!!
0554あぼーんNGNG
あぼーん
055554602/11/20 20:32ID:5VJ3cwMV
>>115さん

遅くなってすいません。大体分かりました。
細かい事はメール送っておきましたので読んでください。
なんか送信ミスしたみたいだったんで再送しました。
(最初送ったファイルを確認したらやたらでかかったんで、
 再送では圧縮しました。でかいのも届いちゃってたらすいません。)
0556あぼーんNGNG
あぼーん
055711502/11/20 22:01ID:rXzu388j
スゲ――――――――(゚∀゚)――――――――!
メール届きますた。546さんスゲーっす。スゴスギ
オイラはグラフィックヘナチョコなんで
「少なくともオイラよりはイケテルだろう」なんて失礼なコト考えてたんですが、
スゴスギてびっくりした。写真かと思ったっす。オイラの100倍はスゲー
なんかワクワクしてきますた。
とりあえずこの興奮を2ちゃんにぶつけてしまいますたが、
細かいコトはメールしますです。
0558名前は開発中のものです。02/11/20 22:47ID:8uxivbBP
さらなる協力者降臨待ち
055954602/11/20 23:23ID:5VJ3cwMV
>>557
いやぁどうもどうも、こんなに誉めてもらえるとは。

ところでもうメール送ってもらえました?
あのアドレス新しく取ったんで、
試しで他のプロバから自分でメール送ってみたんですけど、
もうずいぶん経つのにまだ届かないんですよ。
そちらに送信したときもなんか調子悪かったし。
なので、大変お手数で悪いんですが、良かったら
さっき送ったメアドの最初の7文字目以降を、
このカキコのメアド欄のように書き換えて
そっちに送ってもらえませんでしょうか。
すいませんけど、おねがいします。
0560名前は開発中のものです。02/11/21 14:37ID:A7cfb1i7
ためしに鯖を作ってみているのですが(歩きまわれるチャットルーム程度になる予定)、
通信のrecvとsendはマルチスレッド化するのは当然として、
プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
マルチでやるとメモリ同時書き込みとか怖いのですが…
0561名前は開発中のものです。02/11/21 15:50ID:d9rcKvhC
>通信のrecvとsendはマルチスレッド化するのは当然として
当然なの?

>プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
オブジェクト毎にスレッド立ち上げる気?
0562名前は開発中のものです。02/11/21 16:21ID:A7cfb1i7
返事どうもありがとうございます。
舌足らずだったようで

>>通信のrecvとsendはマルチスレッド化するのは当然として
>当然なの?
一人通信障害がでただけで全体をとめるわけにはいきませんし……。
WinのAASyncなどを使う方法もありますが、私の足りない知識での判断では現実的ではないかなと
マルチスレッド化が当然とは思われていないようですが、何か良策をお持ちでしょうか。
教えていただければ幸いです。

>>プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
>オブジェクト毎にスレッド立ち上げる気?
そうではなく、広大なマップを管理する時、ある程度の大きさのエリアにわけてスレッド処理させるべきかなと
とりあえずPC1台を想定しているので。
ただエリア同士の接点部分で、どうしても同アドレス同時書き込み(読み込み)が起きそうなので相談を。

ひとつの解決策として、RagnarokOnlineのようにエリアの移動をワープにし
「絶対違う部屋同士干渉しない」とする手もありますね
115さんは広大なマップをお持ちですが、どうやっているのか興味のあるところです
0563あぼーんNGNG
あぼーん
0564名前は開発中のものです。02/11/21 17:11ID:CLrMF1mg
561じゃないけど。

>>562
>何か良策をお持ちでしょうか
上のほうにこれに関する議論があったよ。
select()を使うとか、ポーリング+小さいsleep()とか。

>ただエリア同士の接点部分で、どうしても同アドレス同時書き込み(読み込み)が起きそうなので相談を。
基本的にスレッド間で共有するデータの読み書きをちゃんと排他制御すれば大丈夫だと思うが。
ロックする粒度を考えないとパフォーマンスががた落ちになると思うけどね。
0565名前は開発中のものです。02/11/21 19:33ID:REn4AStS
javaつかってるとかいうオチだったりして
0566名前は開発中のものです。02/11/21 19:47ID:G9GGkiQ6
なるほど。IDは変化していますが562です。
使っている言語はC。
上のほうの関する議論というのをこれから読んでみます。

>基本的にスレッド間で共有するデータの読み書きをちゃんと排他制御すれば大丈夫だと思うが。
>ロックする粒度を考えないとパフォーマンスががた落ちになると思うけどね。
やっぱりここが問題となります。

今の私の方法だと、プレイヤー分recvスレッドをとり、受け取ったデータを蓄えなければいけません。
蓄え場所への、読み込み書き込み場所が、同時に同じ場所にならないようにするためには、
それぞれの場所を表すポインタ。計2個を見る必要があります。
(無限にメモリーを確保できるならまだしも、
(確保したメモリーを使いまわす必要がありますので
(書き込み終了フラグだけというわけにはいきません

最低限このポインタ2つは排他制御しなければなりません
特に読み込み時はその部屋にいる全てのプレイヤーの行動を、蓄えから読み込む必要があります。
途中でrecvスレッドが蓄えに書き込んでる度に、つっかえつっかえするわけにはいかないのですが……

(〜ません。など断定していますが、あくまで私の知識内での断定です)
0567あぼーんNGNG
あぼーん
0568名前は開発中のものです。02/11/21 20:17ID:AM1yliob
蓄えってのはただのメモリブロック?
で、メモリブロックへの書き込み用ポインタと読み出しようポインタがあると?
だとすると、そういう蓄えに直接データを書くというモデルが悪そうだな。

とりあえず
蓄え=「通信データブロック」のリスト(キュー)
として、
recvスレッドは、データブロックを(蓄えとは関係なく)まず作り完成したら
蓄えリストに追加するというように作れば、排他処理するのは「追加する」
という小さい処理だけになる。
同様にたくわえから読むほうも、リストからはずす処理だけ排他処理するようにする。

排他処理内にループが入ってなければ、ロックによるブロックはそんなに
気にならないと思うが、俺もマルチスレッドは初心者だったり。
まぁ、上みたいな粒度が大きいロックでも1CPUでの実行なら効率変わらないんだけどね。
0569名前は開発中のものです。02/11/21 20:22ID:CLrMF1mg
というか、エリアごとにスレッドがあり、
境界線上にいるキャラクタが2つのエリアから同時に参照されるときに
どうするのか?ってことを問題にしてるのかと思った。
戦闘時にプレイヤーと敵キャラが別々のエリアにいるときとか、難しそう。
UOとかでもなんか問題起こってたよね(アレはスレッドじゃなくてサーバだが)。
0570名前は開発中のものです。02/11/21 20:49ID:G9GGkiQ6
>>568
あ、どうも私の文章はわかりづらいようですね。
それでも読んで答えてくださるとは嬉しい限りです。

recvスレッドで、プレイヤーの1動作分蓄えてます
例えば:
[CM_MOVE, 80, 90] クライアントメッセージ、キャラ移動80の90に
[CM_ATTACK, 105] 105のオブジェクトに攻撃
などです。

一度のrecvで取得できるとは限りませんから、1動作分recvするまでは蓄え(「通信データブロック」のリスト)には書きません
568さんのおっしゃる通りの方法だと思います

ただ、「リストに追加する」「リストから排除する」を、
メインスレッドはプレイヤーの数だけするわけです。
1命令の間のクリティカルセクション入りが小石とはいえ、
1000人だとしたら最大2000回小石につまづく可能性を考えると、大丈夫なのかなぁと
ひとつの部屋に1000人いること自体問題かもしれませんが…

>>569
はい、それに関しても私が質問しました。
今はこのレスの上記のように「小石」について考えていますが、
RagnarokOnline式を用いない場合「エリア境界線でのデータ受け渡し」という「大石」な問題がでてきますね…。
とりあえず部屋移動はワープという、ragnarok式で作っています。

(´・ω・`)115さんすごいなぁ…
0571名前は開発中のものです。02/11/21 21:01ID:G9GGkiQ6
う…蓄えなんていうからわかりづらくなった気が…
今こんな方法でやっております

・recvスレッド
while(1){
・1動作分のデータをローカル変数に保存
・1動作分「プレイヤー行動リスト」にコピー
}

・メインスレッド
while(1){
for(int i = 0; i < player_num; i++){
・プレイヤーiさんの「プレイヤー行動リスト」から、一つローカル変数にコピー
・その行動について検討
・結果を「プレイヤー行動結果リスト」に書き込み(このプレイヤーを視認できる人全員に送る必要あり)
}
}

・sendスレッド
while(1){
・「プレイヤー行動結果リスト」から、一つローカル変数にコピー
・送る
}

・プレイヤー行動リスト
・プレイヤー行動結果リスト
の部分を排他しなければいけないので結構大変かもしれません

特にsendスレッドは、送らなければならないデータが溜まっているかを常に監視する必要があります。
クリティカルセクションに入ったり出たりと忙しそう…
057211502/11/21 22:31ID:PIqR+xfj
私の場合はWSAAsyncで処理してます。
サーバ側のゲーム処理は30fps単位でメッセージループから呼び出しているので
同期問題を気にする部分がほとんどなくて楽です。
#最初はプラットフォーム依存を少なくしようと思ってスレッドで作ってたのですが
#楽なもんでもう戻れないです...
sendについては、データをメモリに貯めて、
各フレームの最後にまとめて送信、全部送れなかった場合には
バッファが空いたメッセージがきた時点で残りを送信。という感じです。

マップをエリアで分ける、というのは多分
当たり判定を全ての組み合わせでやるのは負荷が高い、
遠くにいる敵キャラ等のメッセージまで送信すると帯域が足りなくなる。
という理由を考えてのことだと思います。
私の場合には距離が近いかどうかを保持してしていて
当たり判定、送受信は近い距離の場合のみ行っています。

距離が近いか遠いかの判定はキャラ数によって負荷が高くなる可能性がありますが、
必ずしもフレーム単位で行う必要があるわけではなので便利です。
このデータはマトリックスと線形リスト両方で持っていて、
処理に便利な方を使う、というようになっています。

一般的なやり方/適切な方法かどうかはわからないのですが...。
0573名前は開発中のものです。02/11/21 22:35ID:7YHJYPa6
>>570
>ただ、「リストに追加する」「リストから排除する」を、
>メインスレッドはプレイヤーの数だけするわけです。
プレイヤーごとに排他処理をすれば良い。
つまりリストをプレイヤー分よういして、それぞれに対応するmutexを作って
それぞれの追加/取り出ししょりで対応するmutexを使ってロックする。
送信も同じ。

>特にsendスレッドは、送らなければならないデータが溜まっているかを常に監視する必要があります。
ポーリングしようとしてる?
シグナル等とメインからsendに伝える方法はいくらでもありそうだけど。

>「エリア境界線でのデータ受け渡し」という「大石」な問題がでてきますね…。
スレッドならデータは共有されてるわけだから、こういう問題は起きないかと。

>>571
というか、どこをクリティカルセクションに仕様としているか示してくれると議論しやすそう。
0574560から色々質問してる人02/11/21 23:07ID:G9GGkiQ6
アドバイスありがとうございます。
115さんのやりかたおもしろいですね。
なるほど近いかどうかを「何フレームかに一度」判定して保持しておくわけですか。
たしかにMMOなら毎フレームシビアにする必要ありませんね。ナイスアイデアです。
そして環境依存の話ですが…。>>573さんの話と絡めてします。

>>573さん
もちろんプレイヤー数分クリティカルセクションを持っています
「余談」
 WindowsではMutexよりダントツにクリティカルセクションのほうが速いようです
 ttp://www-6.ibm.com/jp/developerworks/linux/020118/j_l-rt5.html

>エリア境界線でのデータ受け渡しによる「大石」
ご指摘の通りです。色々考えているうちに混乱したようです。
1つのマシンな限り、問題ないですね
■ このスレッドは過去ログ倉庫に格納されています