( ´∀`)ネットゲー作る技術持っている人? 2
■ このスレッドは過去ログ倉庫に格納されています
0001喫煙者は臭い
02/06/01 12:05ID:If0C3IRYhttp://www.hayariki.com/
http://game.2ch.net/test/read.cgi/gamedev/1016812752/l50
0521名前は開発中のものです。
02/10/29 00:13ID:???最近知りますた。
ケツがフリフリなのがイイ!!
0522名前は開発中のものです。
02/10/30 22:36ID:TB1ZDHwp開発日記みますた。
魔法使い(* ´∀`)ハァハァ
0523115
02/10/31 22:53ID:nAt/+U96職業・スキルなんかが追加されて、ゲームっぽくなってきたYO!
http://robrob.tripod.co.jp/mmo/
0524名前は開発中のものです。
02/11/01 00:39ID:???0525名前は開発中のものです。
02/11/02 09:29ID:???0526名前は開発中のものです。
02/11/05 08:13ID:ireVsZXj0527115
02/11/05 21:25ID:???ゲーム性の部分を作成できる段階になりつつあるので
そろそろ今後追加したいシステムとか機能とかについての構想(妄想)をまとめて、
公開しよーかなー。と思っております。
そーしたらみなさんから、「こーゆー機能が欲しい」とかの意見を聞きたいなー
って思ってます。
0528名前は開発中のものです。
02/11/07 07:03ID:???がんがれ
0529☆タクリン☆
02/11/10 14:20ID:kp4I3dsW0530名前は開発中のものです。
02/11/10 14:40ID:???0531名前は開発中のものです。
02/11/10 16:55ID:???0532名前は開発中のものです。
02/11/10 18:47ID:???なんで居るんだ?
0533名前は開発中のものです。
02/11/10 19:11ID:???↓この人????面白いコトやった人なの?おしえてけろ
ttp://www.vector.jp/vpack/browse/person/an029015.html
0534名前は開発中のものです。
02/11/12 20:19ID:???他のネトゲーみたいにエミュ鯖が出てくるのだろうか?と思ってみるテスト
0535名前は開発中のものです。
02/11/12 20:42ID:???今はまだまだまだまだその時期じゃないけどね。
0536名前は開発中のものです。
02/11/13 22:46ID:???0537名前は開発中のものです。
02/11/15 00:17ID:I9WZR5U10538あぼーん
NGNG0539New Thread
02/11/15 12:52ID:+k9zS7j4http://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:???ワラタ
0543名前は開発中のものです。
02/11/17 18:02ID:i8UzChI80544名前は開発中のものです。
02/11/17 18:45ID:???( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0545名前は開発中のものです。
02/11/18 15:52ID:???( ,,)┌─┴┴─┐
/ つ. 再 開 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0546名前は開発中のものです。
02/11/19 05:09ID:???115さんがよければ。
0547546
02/11/19 08:23ID:???何でも作れると思います。UVテクスチャ込みで。
0548115
02/11/19 20:16ID:???わーーーい
モデル作成に協力してくださるなら、とってもうれしいです。
ただ、私はLightWaveしか持ってないので、
データの受け渡しとかできないと困ってしまうのですが、
ソフトは何をお使いでしょうか??
(3DSMaxもホシイんだけど高いから悩み中...)
あと、今のトコロお礼とかなんもできないですけど...
それでも協力してくれるならとてもうれしいです。
0549546
02/11/20 04:50ID:???マジですか!自分の修行も兼ねてですから、やらせて頂けるだけでもうれしいです。
私はLWとMAX持ってますんで、データ形式は色々対応できます。
早速なんか作りたいと思うんですが、今の所仕様はどんな感じなんでしょう。
1キャラに使えるポリゴン数の制限とか、三角ポリか四角ポリか(もしくは混在OKとか)、
それからテクスチャの色数、大きさ、枚数制限等、、、です。
0550546
02/11/20 05:27ID:???0551アホ
02/11/20 12:40ID:4gIO4yYK0552115
02/11/20 16:20ID:???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とても実施してほしいことで、
各ユーザがクエストや任務みたいなのをゲーム上のある場所で作れたり、任務に契約みたいなのができれば面白いと思います。
あらかじめ、その任務(クエスト)の賞金や、賞品は任務を作った人が出す。
私もオンラインゲームを作ってみたいと思ってて、こんなすごいゲームを一人で作ってしまったのには驚きました。
これからも応援してます!後、自分で言うのはなんですが、絵を描くのが得意です(洋ゲー風のなら)もし手伝ってほしいことがあれば言ってください、
できる範囲なら手伝いたいと思います。
色変えられましたね!失礼しました!!
0554あぼーん
NGNG0555546
02/11/20 20:32ID:5VJ3cwMV遅くなってすいません。大体分かりました。
細かい事はメール送っておきましたので読んでください。
なんか送信ミスしたみたいだったんで再送しました。
(最初送ったファイルを確認したらやたらでかかったんで、
再送では圧縮しました。でかいのも届いちゃってたらすいません。)
0556あぼーん
NGNG0557115
02/11/20 22:01ID:rXzu388jメール届きますた。546さんスゲーっす。スゴスギ
オイラはグラフィックヘナチョコなんで
「少なくともオイラよりはイケテルだろう」なんて失礼なコト考えてたんですが、
スゴスギてびっくりした。写真かと思ったっす。オイラの100倍はスゲー
なんかワクワクしてきますた。
とりあえずこの興奮を2ちゃんにぶつけてしまいますたが、
細かいコトはメールしますです。
0558名前は開発中のものです。
02/11/20 22:47ID:8uxivbBP0559546
02/11/20 23:23ID:5VJ3cwMVいやぁどうもどうも、こんなに誉めてもらえるとは。
ところでもうメール送ってもらえました?
あのアドレス新しく取ったんで、
試しで他のプロバから自分でメール送ってみたんですけど、
もうずいぶん経つのにまだ届かないんですよ。
そちらに送信したときもなんか調子悪かったし。
なので、大変お手数で悪いんですが、良かったら
さっき送ったメアドの最初の7文字目以降を、
このカキコのメアド欄のように書き換えて
そっちに送ってもらえませんでしょうか。
すいませんけど、おねがいします。
0560名前は開発中のものです。
02/11/21 14:37ID:A7cfb1i7通信のrecvとsendはマルチスレッド化するのは当然として、
プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
マルチでやるとメモリ同時書き込みとか怖いのですが…
0561名前は開発中のものです。
02/11/21 15:50ID:d9rcKvhC当然なの?
>プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
オブジェクト毎にスレッド立ち上げる気?
0562名前は開発中のものです。
02/11/21 16:21ID:A7cfb1i7舌足らずだったようで
>>通信のrecvとsendはマルチスレッド化するのは当然として
>当然なの?
一人通信障害がでただけで全体をとめるわけにはいきませんし……。
WinのAASyncなどを使う方法もありますが、私の足りない知識での判断では現実的ではないかなと
マルチスレッド化が当然とは思われていないようですが、何か良策をお持ちでしょうか。
教えていただければ幸いです。
>>プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
>オブジェクト毎にスレッド立ち上げる気?
そうではなく、広大なマップを管理する時、ある程度の大きさのエリアにわけてスレッド処理させるべきかなと
とりあえずPC1台を想定しているので。
ただエリア同士の接点部分で、どうしても同アドレス同時書き込み(読み込み)が起きそうなので相談を。
ひとつの解決策として、RagnarokOnlineのようにエリアの移動をワープにし
「絶対違う部屋同士干渉しない」とする手もありますね
115さんは広大なマップをお持ちですが、どうやっているのか興味のあるところです
0563あぼーん
NGNG0564名前は開発中のものです。
02/11/21 17:11ID:CLrMF1mg>>562
>何か良策をお持ちでしょうか
上のほうにこれに関する議論があったよ。
select()を使うとか、ポーリング+小さいsleep()とか。
>ただエリア同士の接点部分で、どうしても同アドレス同時書き込み(読み込み)が起きそうなので相談を。
基本的にスレッド間で共有するデータの読み書きをちゃんと排他制御すれば大丈夫だと思うが。
ロックする粒度を考えないとパフォーマンスががた落ちになると思うけどね。
0565名前は開発中のものです。
02/11/21 19:33ID:REn4AStS0566名前は開発中のものです。
02/11/21 19:47ID:G9GGkiQ6使っている言語はC。
上のほうの関する議論というのをこれから読んでみます。
>基本的にスレッド間で共有するデータの読み書きをちゃんと排他制御すれば大丈夫だと思うが。
>ロックする粒度を考えないとパフォーマンスががた落ちになると思うけどね。
やっぱりここが問題となります。
今の私の方法だと、プレイヤー分recvスレッドをとり、受け取ったデータを蓄えなければいけません。
蓄え場所への、読み込み書き込み場所が、同時に同じ場所にならないようにするためには、
それぞれの場所を表すポインタ。計2個を見る必要があります。
(無限にメモリーを確保できるならまだしも、
(確保したメモリーを使いまわす必要がありますので
(書き込み終了フラグだけというわけにはいきません
最低限このポインタ2つは排他制御しなければなりません
特に読み込み時はその部屋にいる全てのプレイヤーの行動を、蓄えから読み込む必要があります。
途中でrecvスレッドが蓄えに書き込んでる度に、つっかえつっかえするわけにはいかないのですが……
(〜ません。など断定していますが、あくまで私の知識内での断定です)
0567あぼーん
NGNG0568名前は開発中のものです。
02/11/21 20:17ID:AM1yliobで、メモリブロックへの書き込み用ポインタと読み出しようポインタがあると?
だとすると、そういう蓄えに直接データを書くというモデルが悪そうだな。
とりあえず
蓄え=「通信データブロック」のリスト(キュー)
として、
recvスレッドは、データブロックを(蓄えとは関係なく)まず作り完成したら
蓄えリストに追加するというように作れば、排他処理するのは「追加する」
という小さい処理だけになる。
同様にたくわえから読むほうも、リストからはずす処理だけ排他処理するようにする。
排他処理内にループが入ってなければ、ロックによるブロックはそんなに
気にならないと思うが、俺もマルチスレッドは初心者だったり。
まぁ、上みたいな粒度が大きいロックでも1CPUでの実行なら効率変わらないんだけどね。
0569名前は開発中のものです。
02/11/21 20:22ID:CLrMF1mg境界線上にいるキャラクタが2つのエリアから同時に参照されるときに
どうするのか?ってことを問題にしてるのかと思った。
戦闘時にプレイヤーと敵キャラが別々のエリアにいるときとか、難しそう。
UOとかでもなんか問題起こってたよね(アレはスレッドじゃなくてサーバだが)。
0570名前は開発中のものです。
02/11/21 20:49ID:G9GGkiQ6あ、どうも私の文章はわかりづらいようですね。
それでも読んで答えてくださるとは嬉しい限りです。
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スレッドは、送らなければならないデータが溜まっているかを常に監視する必要があります。
クリティカルセクションに入ったり出たりと忙しそう…
0572115
02/11/21 22:31ID:PIqR+xfjサーバ側のゲーム処理は30fps単位でメッセージループから呼び出しているので
同期問題を気にする部分がほとんどなくて楽です。
#最初はプラットフォーム依存を少なくしようと思ってスレッドで作ってたのですが
#楽なもんでもう戻れないです...
sendについては、データをメモリに貯めて、
各フレームの最後にまとめて送信、全部送れなかった場合には
バッファが空いたメッセージがきた時点で残りを送信。という感じです。
マップをエリアで分ける、というのは多分
当たり判定を全ての組み合わせでやるのは負荷が高い、
遠くにいる敵キャラ等のメッセージまで送信すると帯域が足りなくなる。
という理由を考えてのことだと思います。
私の場合には距離が近いかどうかを保持してしていて
当たり判定、送受信は近い距離の場合のみ行っています。
距離が近いか遠いかの判定はキャラ数によって負荷が高くなる可能性がありますが、
必ずしもフレーム単位で行う必要があるわけではなので便利です。
このデータはマトリックスと線形リスト両方で持っていて、
処理に便利な方を使う、というようになっています。
一般的なやり方/適切な方法かどうかはわからないのですが...。
0573名前は開発中のものです。
02/11/21 22:35ID:7YHJYPa6>ただ、「リストに追加する」「リストから排除する」を、
>メインスレッドはプレイヤーの数だけするわけです。
プレイヤーごとに排他処理をすれば良い。
つまりリストをプレイヤー分よういして、それぞれに対応するmutexを作って
それぞれの追加/取り出ししょりで対応するmutexを使ってロックする。
送信も同じ。
>特にsendスレッドは、送らなければならないデータが溜まっているかを常に監視する必要があります。
ポーリングしようとしてる?
シグナル等とメインからsendに伝える方法はいくらでもありそうだけど。
>「エリア境界線でのデータ受け渡し」という「大石」な問題がでてきますね…。
スレッドならデータは共有されてるわけだから、こういう問題は起きないかと。
>>571
というか、どこをクリティカルセクションに仕様としているか示してくれると議論しやすそう。
0574560から色々質問してる人
02/11/21 23:07ID:G9GGkiQ6115さんのやりかたおもしろいですね。
なるほど近いかどうかを「何フレームかに一度」判定して保持しておくわけですか。
たしかにMMOなら毎フレームシビアにする必要ありませんね。ナイスアイデアです。
そして環境依存の話ですが…。>>573さんの話と絡めてします。
>>573さん
もちろんプレイヤー数分クリティカルセクションを持っています
「余談」
WindowsではMutexよりダントツにクリティカルセクションのほうが速いようです
ttp://www-6.ibm.com/jp/developerworks/linux/020118/j_l-rt5.html
>エリア境界線でのデータ受け渡しによる「大石」
ご指摘の通りです。色々考えているうちに混乱したようです。
1つのマシンな限り、問題ないですね
0575560から色々質問してる人
02/11/21 23:08ID:G9GGkiQ6・プレイヤー行動リスト
・プレイヤー行動結果リスト
この二つに読み込み、書き込みするのですが、
それが重ならないようには作ってあります。
具体的には
・256行動分プレイヤーコマンドを保存する変数を配列で確保する
・読み込み場所ポインタ、書き込み場所ポインタを用意する
・読み込むたび、書き込むたびにポインタを一つ加算する
・限界まできたらポインタを配列の最初に
・書き込みしてポインタを加算したとき、読み込みポインタと書き込みポインタが一緒だったら1周して追い越した。エラーとして通信遮断
・↑以外の時、読み込みポインタと書き込みポインタの位置が一緒なら、リストにデータは溜まっていないと判断
こうつくってあるので、
「ポインタをローカル変数にコピーする時だけ排他すればOKです」
つまり、
・プレイヤー行動リスト
・プレイヤー行動結果リスト
を読み書きする寸前にちょびっとということになります
>ポーリングしようとしてる?
>シグナル等とメインからsendに伝える方法はいくらでもありそうだけど。
シグナルを調べてみたのですが、これは便利ですね。
ただ私が調べた限りlinuxにおいて同等の機能がありません。(´・ω・`)
115さんもAASync使っていらっしゃるようですが、なるべくならサーバーはLinuxとしたいところ。
(Linuxの勉強をかねているので)
自分自身にソケットでコネクション張って、recvで待たせ、メインからsendで1バイトのデータを送れば信号代わりにできそうですね!
……(´・ω・`)
0576560から色々質問してる人
02/11/21 23:14ID:G9GGkiQ6>115さんAASyncについて
つまり115さんはスレッドを使ってない。
ちょっとsockについて詳しく調べたわけではないので恐縮ですが、
回線細い人にsendしたり、回線が実は切れてる人にsendすることによって、全体のパフォーマンスが落ちたりはしないのでしょうか
*「↑この疑問が出た理由」
*以前AASyncを使ってファイル送受信ツールを作ったことがあります
*そのさいためしにsendで大きなデータを送ろうとしたら、そのsendで処理がしばらく止まりました(もちろん送れはしました)
*非同期設定なのにこのsend。送信し終わるまで待つのかな?? と疑問に思ったのです
関連して、
・sendで時間をとられると、人数が多くなった時にゲームが一定間隔(FPS20とか)で進まなくなるかなぁ
・AASyncの受信メッセージって、ちゃんと偏らず全員からまんべんなくいただけるのかなぁ
という疑問が生じました
質問ばかりですいません。
なるべく実装結果の報告などで情報提供に努めますのでご容赦ください
0577名前は開発中のものです。
02/11/21 23:40ID:7YHJYPa6ちょっと同じようなことをやってたもんで。
>>575
>を読み書きする寸前にちょびっとということになります
問題なさそうに見えるけど、それでも問題でるんだろうか?
>ただ私が調べた限りlinuxにおいて同等の機能がありません。(´・ω・`)
pthreadつかってるなら、
pthread_sigmask(how, set, oset)
pthread_kill(thread, signal)
がそれ相当かな。
UNIXのシグナルをスレッド毎に使える仕組み。
select(), pause(), read(), write(), recv()とかなら、シグナル受けると
EINTRでブロックが中断される。
pthread_cond_*でもできそうだけど実はよく知らないw
LinuxとWindowsネイティブのこともよく知らなかったり…。
0578名前は開発中のものです。
02/11/21 23:45ID:7YHJYPa6スレッドプログラミング相談室 その2
http://pc3.2ch.net/test/read.cgi/tech/1037636153/
マルチスレッドプログラミング相談室
http://pc3.2ch.net/test/read.cgi/tech/997345868/
pthread地獄
http://pc.2ch.net/test/read.cgi/unix/1010933537/
0579560
02/11/22 00:54ID:gCRvC6O9FIONREADでrecvに溜まっているデータ量を調べて、1行動分あるならrecvでゲット。
>>561さんはこれのことを知っていたので「当然なの?」ときたのかも
早速実装してテストしておきます
0580名前は開発中のものです。
02/11/22 22:37ID:tU50iy3f0581560
02/11/24 01:31ID:NHE65aTZ次はクライアントがんばるぞー
0582名前は開発中のものです。
02/11/24 02:40ID:qyjJh1110583560
02/11/25 01:22ID:UneiBCjfアドバイスなどあればお願いいたします。
・ワールド鯖 ・ログイン鯖 ・ゲームエリア鯖
「ワールド鯖」(世界の数だけ存在する。UOでいう無限鯖、瑞穂鯖などの単位)
世界中に存在するキャラのデータが入っている。
ゲー鯖、ログイン鯖からLANを通して参照される。
いわゆるセーブデータ領域。
起動した時にHDDから全データを読み込む。
(とりあえず単純にtxtに保存するつもりです。いちいちfopenなんぞしてられない)
「ログイン鯖」(1つだけ存在する予定。複数必要なほど頻繁にアクセスはないと思う)
最初にここへ繋いでもらう。IDとパスを管理。
ワールド鯖からログインしたID用のキャラデータをロードする必要がある。
使うキャラ(1ID3キャラくらいいる?)のいるゲー鯖IP:PORTをクライアントに伝えなければいけないし、
キャラセレの時にもキャラデータは見えるべきです。
「ゲームエリア鯖」(ワールド鯖1つにつき複数。多いほど快適ヽ(´Д`)ノ)
世界を構成するたくさんのエリア。それら一つ一つをつかさどる鯖です。
クライアントは、自分のいるエリアのゲームエリア鯖と通信をする。
敵動かしたり、PC動かしたりするメインの鯖ですね。
PCがエリア内に現れると、ワールド鯖からデータをロードします。
PCがエリアから抜ける(エリア移動orログアウトする)と、ワールド鯖にデータをセーブします
問題はログイン鯖からゲー鯖への移行時…。
いきなりゲー鯖に繋がれて(チートされて)も、平気なようにするには…
うまくやらないとラグナロクのようにキャラクターチェンジ現象が起こってしまう
何か良い手を思いつかれるかたいませんでしょうか
0584名前は開発中のものです。
02/11/25 01:38ID:+0Ik5l5O認証情報(アカウントID,時刻,IPアドレス)を送っておくというのはどうかな。
クライアントにはチケットIDを送る。
クライアントはゲー鯖に繋ぐと、最初にチケットIDを送る。
ゲー鯖はチケット鯖にチケットを照会して、
正しいアカウント/時刻/IPアドレスであるかを確認する。
一度使ったチケットは破棄される。
チケット鯖はログイン鯖に同居しても構わないと思う。
参考になりましたらどうぞ。
kerberos認証とかをちょっと勉強してみるといいかもしれないよ。
0585New Thread
02/11/27 08:22ID:a9vr698J0586あぼーん
NGNG0587名前は開発中のものです。
02/11/27 08:44ID:u4GoXNHd過度に人の注意を引こうとする障害です。自分が注目されていないと楽しさを感じないので、誇張した表現を用いたりします。
自己演技化するような感じですね。
●反社会性人格障害
社会的な規則を平気で無視し、人を傷つけたり衝動的な暴力を振るったりします。
自分にブレーキをかける事ができないので、周りの人も大変迷惑します。
●分裂病型人格障害
親密な関係で突然不快になったり、認知的または知覚的な歪曲行動の奇妙さが伺える障害です。
話も細かい事にこだわりすぎたり、まわりくどかったりします。家族以外には親しい友人がいなかったりもします。
0588あぼーん
NGNG0589560
02/11/28 20:40ID:yuQtZVAK通信部やデータ管理部は最低限作ったものの、
例えばキャラのステータス1つ書き換えただけで、全ての鯖とクライアントを書き換えなきゃいけない
うう、めんどい…
0590名前は開発中のものです。
02/11/29 23:39ID:MjrDrSuB0591560
02/11/29 23:43ID:PdCH3V+Mステータスが1つ増えた(体力パラメータを追加した)ら、
クライアントはもちろん、ワールド鯖のセーブデータの型も変わりますし、
ゲーム鯖も体力パラメータを実装
ログイン鯖くらいですかね、変えなくても済むのは(iniファイルでパケットの大きさを設定できるようにしておく)
0592名前は開発中のものです。
02/11/29 23:49ID:ONQzsoNNつらいと思うよ・・・
0593560
02/11/29 23:56ID:PdCH3V+Mキャラのステータス部は変更も多そうですし、ひとつのdat扱いにしたほうが良さそうですね
そうすればdat部に変更があっても、そのサイズをiniで指定するだけで済みます
ワールド鯖はdat部の中身には興味ありませんし、login鯖も同様。
変更があってもクライアントとゲー鯖だけで済みますね
0594名前は開発中のものです。
02/11/30 12:03ID:iUWTFlA20595560
02/11/30 12:29ID:aykncWXi全部の機能とは、ログイン、ゲーム、データベース鯖のことです
0596名前は開発中のものです。
02/11/30 12:35ID:qb/xrxwu0597560
02/11/30 16:30ID:aykncWXiそこでまた相談
まずログイン鯖。これは入口として必須。なるべくずっと同じIP:ポートに存在
IDとパスと使うキャラを渡すと、「あなたはこのIP:PORT鯖からスタートです」と、
自分が前ログアウトした鯖のIP:PORTをくれる
これは良いんですが、マップ移動するとき(別のゲーム鯖に繋ぎなおすとき)、
一旦ゲームから切断して、再びログイン鯖に繋げるべきですかね
もちろんクライアントの機能で、自動で同じIDとパスを送信するのですが
・利点
簡単なシステム
・欠点
ログイン鯖にアクセス集中
IDとPASSが何度も何度もネット上を流れる
0598560
02/11/30 16:37ID:aykncWXi0599名前は開発中のものです。
02/11/30 18:32ID:qb/xrxwu>>584を読んでないんか?
0600名前は開発中のものです。
02/11/30 19:25ID:/ZeGUqgS0601560
02/11/30 19:50ID:aykncWXiいえ、読んだのですがチケットを盗聴されると
そのチケットでゲー鯖に入られるのは必至。
そうなるとID:PASS認証とあまり変わらないかなと
今のところ「どうしても一回Login鯖通れ!」という理由も見つからず、
ゲー鯖でID:PASS認証。ログイン鯖の代わりにキャラメイキング鯖でも置こうか
とか考えていたのですが、やっぱり同アカウント使用管理はログイン鯖かなぁとか
色々苦悩中。
ゲー鯖から別ゲー鯖、ログイン鯖からゲー鯖に接続を移動する時の認証に困ってるわけですが・・・
私が>>584を理解しかねてるのかもしれません
0602560
02/11/30 20:00ID:aykncWXiクライアントをC
元居たゲー鯖(ログイン鯖)をX鯖
移動先のゲー鯖をY鯖とします
ワールド鯖(キャラ管理鯖)をWとします
XとCはコネクト中Y鯖への移動することになった
XはWに、そのキャラが移動中であることを伝え、CにはYへ繋ぐよう命令
CはYに繋ぐ
YはCのキャラをWに問い合わせ、移動中であることを確認。Yは移動PASSを作成してWに送る
Wは移動PASSを書き込み、Yに書き込み完了を伝える
YはCに移動PASSを教える
CはXに移動PASSを教える
XはWに問い合わせて正しいことを確認。WはCは移動完了済みと書き込む
XはCに成功と伝え接続を切る
CはYに成功と伝える
YはWに問い合わせて完了済みと確認
やっとY鯖で遊べます
これでどうでしょう。途中移動PASS等を盗聴されてもOKにしたつもりなんですが、
穴があればご指摘願います。
技術持ってる人スレなのに、相談ばかりで申し訳ありません
0603名前は開発中のものです。
02/11/30 20:02ID:iUWTFlA2誰が次の鯖IPとポートを教えるかって問題だよね?
全鯖が同じ機能を持っててINIで動作指定してるってなら、どうせ機能共有してるんだし
前にいた鯖が次の鯖を教えてあげればいいと思うんですが。
>IDとPASSが何度も何度もネット上を流れる
気になるなら公開鍵暗号とか使えば盗聴対策にはなるよ。
0604名前は開発中のものです。
02/11/30 20:07ID:iUWTFlA2ゲーム鯖はクライアントのIP+ポート+チケットで認証すればそんなに問題は起きない。
Webのクッキーが問題になるのは、IP情報をチェックしてないからだね。
Webの場合はProxy切り替えでアクセスごとにIPが変わる可能性があるから。
0605名前は開発中のものです。
02/11/30 20:20ID:iUWTFlA2いいURLしらないけど、↓くらいなら雰囲気は分かるかな?
http://www.computerworld.jp/resource/keyword/back/200010sw.html
0606560
02/11/30 20:54ID:aykncWXiなるほど。チケットを盗聴したあげくIPまで一緒というのはそうそう無いことですね
同じLAN内の人の仕業?
次のゲー鯖IPを教えるのは各ゲー鯖に機能を持たせます。
あとは暗号化ですね。
>>605
ありがとうございます。
一応何個か調べたのですが専門的なサイトだったようで(;´Д`)こんな感じに
ご紹介のサイト見てみようと思います
0607560
02/11/30 21:49ID:aykncWXiこれならログイン鯖とターゲット鯖との接続がなくても、保証できそうです。
ただ、今回の私のではログイン鯖とターゲットのゲー鯖との間に、
ワールド鯖を介したつながりがあります。
このあたりを考えて>>602を考えたのがいかがだったでしょうか?
0608名前は開発中のものです。
02/11/30 23:56ID:iUWTFlA2移動パスとかはいらなさげ。
というか、DB鯖(ワールド鯖)が接続管理もやってることに違和感を覚えるんですが。
0609560
02/12/02 12:02ID:/eBd4hmu>>608
DB(ワールド)鯖が接続管理をやっているというのとはちょっと考え方が違います。
DB鯖は「プレイヤーがどんなステータスでゲームを終了したか」を保存しますよね。
その「ステータス」の「現在の接続状況」の項目に「鯖移動中」を保存しているのです。
これはログイン鯖やゲー鯖からの「これこれをセーブしてくれ」という命令に基づくもので、
DB鯖はその内容が何を示しているかについては興味を持ちません。
DB鯖は淡々と頼まれたセーブロードを行い、それが完了したら完了通知を返すだけです
>>602の方法は、あるキャラへのSAVEができるのは絶対に1クライアントであるということを利用しています
わかりやすく書きなおすと
・CはXからYのアドレスをもらう
・YはCからキャラ番号をもらう
・CはYからまず重ならないPASS(通し番号でも可ですね)をもらい、Xに伝える
・XはWにPASSの書き込みをお願いする
・YはPASSがちゃんと書き込まれているのを確認
実際は、W鯖への書き込み・読み込み完了通知をちゃんと待ってから次のアクションを起こします
0610610
02/12/05 06:30ID:VKHhHYSt・WはYからキャラ番号をもらう
・YはCからまず重ならないPASS(通し番号でも可ですね)をもらい、Xに伝える
・WはXにPASSの書き込みをお願いする
・CはPASSがちゃんと書き込まれているのを確認
これで・・・
0611610
02/12/05 06:32ID:VKHhHYStWは移動PASSを書き込みYに書き込み完了を伝えYはCに移動PASSを教えCはXに移動PASSを教えXはWに問い合わせて正しいことを確認しWはCは移動完了済みと書き込みXはCに成功と伝え接続を切りCはYに成功と伝えYはWに問い合わせて完了済みと確認すればOK。
同じこといってたらスマソ
0612560
02/12/05 13:24ID:3Zgyidkz最も噛み砕いて言うと
Y「おらC。お前キャラ○○なんやて?本当なら今から俺が言う数字を
(Cがキャラ○○であると保証済みである)X鯖を通してデータベースに
書き込んでみーや。それができたら認めたる」
と言ってるわけですね
0613嫌煙
02/12/09 09:24ID:ifwLS5NL0614あぼーん
NGNG0615再開
02/12/11 08:48ID:3WrMQ7GU今日、松浦亜弥秋コンサート、ラスト名古屋公演いってきました。
新曲の、草原の人 が聞けました。
あややの楽曲のジャンルに、また新しいのが加えたような感じがしました。
あややも、この曲の意味を理解し、表現できるまで成長したのですね。
したがって、衣装が若干、変わっていました。
オレンジ色のふさふさのドレスのやつがなくなっていました。
柴田:(手を挙げて)今回柴田がリードボーカルを担当してるんですが、
やっぱりね、切ない中にも彼とのね明るい思い出とか
そういうのをイメージして歌ったので、
そこらへんにも注目してください。
「今回柴田がリードボーカルを担当」って言ってますけど、柴田以外がシングル
でリードボーカルを担当することなんて、あるんだろうか。「柴田がリードボー
カルを担当していない」6月発売の前曲では、ソロパートの6割柴田だったし。
その前は、あー、何だっけ、「♪愛のボタンを連射連射」、その曲では場違いな
黒のスーツ着てラストフレーズ歌ってました、確か。
ラストフレーズ→ソロパートの6割→リードボーカル。ドンドンドンと来てま
すよ。でも、もうこれ以上はないと思うんですけど。もう普通の4人組です。
0616あぼーん
NGNG0617bloom
02/12/11 09:21ID:EVS8SY4xhttp://www.agemasukudasai.com/bloom/
0618560
02/12/11 16:15ID:FqfpEXIw私はというと、データセーブのところで悩んでおります
ゲー鯖とデータベース(以下DB)鯖を1本コネクションをはり、これで全部まかなうつもりだったのですが
ゲー鯖から一気に人が落ちた時にsendバッファをオーバーする危険性に気づきました
かといってプレイヤーの数分だけDB鯖とコネクションを張ると、
DB鯖が人数分(個人ではありえないけど10000人分とか)のコネクションを張る必要があります
確か張れるSocketの数には制限があったはず
だいたい、DBとconnectをするとき非同期にしなければならないという問題点もやっかい
セーブデータも全部ゲー鯖が持ってれば、データの呼び出し書き込みのタイムラグ気にせず作れるのにー
0619あぼーん
NGNG0620名前は開発中のものです。
02/12/13 08:35ID:cx8+DBFs鯖落ちなんかのときに、セーブデータが矛盾しちゃったりしないのかな。
(sendバッファってどこのバッファだろう…?)
■ このスレッドは過去ログ倉庫に格納されています