[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/10 01:20 / Filesize : 81 KB / Number-of Response : 270
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ネットゲー



1 名前:名前は開発中のものです。 [01/12/20 06:48 ID:WLADMjH3]
ネットワーク対戦型(対話型)ゲームだよ!
おそまきながらネットワークの時代だとおもうんだ!
やっぱ相手がいるから熱くなると思う。
1player型だって良く考えれば作者と対戦しているといえる。
それと人が相手だと飽きない。
2チャンネルだってゲーム性の弱いゲームだけど、
人が集まるとこれほどに面白くなるという好例だよ。

146 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/07 08:56 ID:???]
>((ラグa/2)+(ラグb/2))+100ms になるということに
全くその通りですが、HPの減算処理、将来の回復処理を入れたとき、サーバーで計算するので全遅延時間に占める通信ラグ部分が大きくなると回復が間に合わなくて死ぬ事が多くなるかなーと。
通信ラグがまぁ100msとすると、100msに一回ダメージ/回復処理を解決することでラグのせいで回復が間に合わなかった、が避けられるかと思って。
ラグがたとえば130msと200msでどれぐらい操作感に違いがでるかですが、ローカルでのレスポンスを上げ、遅延の分はアニメーションでごまかせば誤差範囲かと考えました。
どんなもんでしょうか。
拙作はクライアントは200msに一回データを送信しており、50msに一回受信しています。描画は50msごとに行っていて、順調に動いているときは通信間隔200msごとに4駒のアニメーション(今のところ移動の補完だけですが)を行ってます。
サーバからのデータがラグなどでまとまって着くと、アニメーションを飛ばして早送りで処理してます。
サーバは受信は最大速度で行い、100msごとに受信したデータ(最大でクライアント数n。各クライアントから複数回は受信せずソケットバッファにためてます)をまとめて処理し、n回送信してます。
これでどんな感じに動くか、っていうのはさわってもらえばいいのですが今Geoが動いてないので後ほど・・・。

WDiffいいですねー。WinDiffと誤解しておりました。

147 名前:名前は開発中のものです。 mailto:age [02/05/07 11:15 ID:???]
差分でやると更新時に送るデータが少なくて良いんですが、
しばらくゲームをやってなかったりすると更新が貯まってて
差分パッチをあてるだけで数時間待ちとかなりかねないので、
マイナーバージョンアップは差分方式、メジャーバージョンアップは
通常のダウンロードという混在方式がよいかと思われ。
#まぁ、作る手間は2倍ですが。

148 名前:RUR [02/05/07 14:11 ID:qX5uc02I]
>>140
(笑)優秀な人材は常時募集中です。

149 名前:DXスレの417 mailto:sage [02/05/07 14:31 ID:???]
こんなところにネトゲスレが…。
あちらでは少しスレ違いな雰囲気があったのでこちらで質問させてください。
game.2ch.net/test/read.cgi/gamedev/1016276254/417

最初は、メッセージを受け取ってキューに貯めるスレッドと、
そのキューから少しずつ取得するスレッド(ゲームのメインスレッド)でよいと思っていたのですが、
上の発言の通りDPN_MSGID_INDICATE_CONNECTのところで躓いてしまいました。
素直にDPN_MSGID_RECEIVE以外は受け取ったスレッドで処理しちゃえばよいのかなぁ。

150 名前:150(c++ Winsock) ◆Iam..... [02/05/07 16:19 ID:urzcE23c]
ネットワークプログラミング初心者ですが、参加してよいですか?
開発環境はBCC、winsockという金無しプログラミングです。

151 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/07 19:46 ID:???]
>149
すんません力になれません。
>150
俺も同じですよ。BCCです。

取りあえず作りかけの物を一度披露しておきます。
www.geocities.co.jp/SiliconValley-Oakland/2840/vbvc_020507_srv_cli.lzh
サーバとクライアントセットです。
クライアントはVBで作っていますが、5なのでWin95以外のほとんどの方はランタイムをダウンロードする必要はないと思います。

152 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/07 19:51 ID:???]
あ、サーバマシンは用意できないんですよ。ケーブルなもので。
テストは友人マシンで行ってますが、他人のIPを晒すわけにも行きませんのでご勘弁を。

153 名前:416(HSP) ◆HoSW/FCI [02/05/07 23:30 ID:3mKZAWWI]
>>146
 ネットゲームって同期方法によって次の3つに分類できると思うのね。

・完全同期型…ターン制及び内部カウンタを取るなど、全員のデータがそろってから結果を出す仕様。
・不完全同期型…一定間隔で処理を行うが、未達のデータは未来予測などで補完して結果を出す仕様。
・非同期型…到達したデータから順次結果を出していく仕様。

 「無人島forHSP」では非同期型で、ホストに到達したデータが現在でかつ真実であると割り切って処理しています。だから一刻でも早くデータを受信して、一刻でも早く送信する方法を取っていて、全体としての整合性は無視していますw

>>147
 そうしましょう。

154 名前:416(HSP) ◆HoSW/FCI [02/05/07 23:30 ID:3mKZAWWI]
>>149
 HSPはシングルスレッドなので、受信・処理・送信ともに人数分回す感じになっています。
 概念で表すと

┌─┐
│ ↓
│入力 [TCP受信]×人数→UDP受信→[[UDP解析]×コマンド数]×パケット数
│ ↓
│処理 [[コマンド解析・実行]×コマンド数]×人数
│ ↓
│出力 [UDP送信]×人数→[TCP送信]×人数
└─┘

 V0.3は受信+処理・送信ですが、V0.2だったかなぁ、受信+処理+送信だったから、
16人接続してバトル始めたらホストが落ちたのはw。
 つまり、プレイヤー1のデータを受け取ったら、解析実行で他の全員に送信、プレイヤー2のデータを受け取ったら…で、1ターンで人数^2の送信を行っていたといふ(16*16だから16msで256回送信…)。
 でも、落ちた直接の原因はバッファオーバーかも。

|素直にDPN_MSGID_RECEIVE以外は受け取ったスレッドで処理しちゃえばよいのかなぁ。
 悩むよりトライ&エラーのほうが早い場合も。



155 名前:416(HSP) ◆HoSW/FCI [02/05/07 23:31 ID:3mKZAWWI]
>>151
 ホストが異様に重いのは当方窓98無印だから? メモリは256MBですが、なんか使いきっている感じ…。他のソフトがカクカクになるるる。
 で、クライアントがのたうちながら立ちあがるんですが、接続ボタンを押すとエラーが出て終了してしまいます。なぜに。

 一応エラーダイアログのメッセージは

CLIENT の 10H 例外です。
モジュール : MSVBVM50.DLL

 ホストのメッセージは「Socket Recv Error at HIBYTE 10054」です。

156 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/07 23:58 ID:???]
98ではそんなになりますか・・・スレッドがらみがうまくいってないのかな。
多分そうだろうな。メモリではなくてCPUを使い切ってるのだと思います。
95系持ってないので試せないんですよ。面目ないです。
クライアントのエラーメッセージも斬新ですなぁ。あ、DirectX7が必要なんですわそういえば。
結構要求高いかなぁ。
ホストのエラーメッセージは「1バイトも受信できねーよ」っていみですハハー

157 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/08 00:29 ID:???]
>>156
 ちなみにDirectXは8.1(4.08.01.0881)が入ってます。

158 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/08 00:34 ID:???]
もきゅきゅ
友人からも98では起動しないと言う話が・・・なんでやねーんねーんねーん

159 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/08 01:12 ID:???]
95系が無いなどと抜かしておきながらよく思い出してみれば98と200のデュアルブートでした。アホですか俺は。
いちおうこちらの98ではある程度まともに動くように改造し、さっきと同じ
www.geocities.co.jp/SiliconValley-Oakland/2840/vbvc_020507_srv_cli.lzh
に上げました。
あきれていなければお試しください。
なお、よくわからないんですがWin2000に比べて圧倒的に描画がぎこちないです。
サーバーを起動したときもマウスポインタが消えちゃって、Alt+Tabしないとフォーカス切り替えられません。
なんだかなぁ。

160 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/08 01:40 ID:???]
>>159
 話がVB寄りになってるので…ううん、専用スレが無い。雑談スレに移動します。
game.2ch.net/test/read.cgi/gamedev/1005039431/969

161 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/08 02:16 ID:???]
 えーっと、使用ポートが2345になっていますが、
www.iana.org/assignments/port-numbers

で調べると、登録済みのポートでした。dbmってなんだろ。たぶん衝突はしていないはずなんですが、一応、Unassignedのポートを使用するようにしてください。

 あと、待受けソケットを作った後、接続要求があってから新たにポートかソケットを作る流れだと思うのですが、作った後に充分な待ち時間はとっていますか? 作り立てのソケットに間髪入れずに送受信を行うと、取りこぼしとかが起こるみたいです

162 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/08 02:43 ID:???]
登録済みのポート。全くしかりです。
面倒だったので・・・変更しますハハー。
>待受けソケットを作った後、接続要求があってから新たにポートかソケットを作る流れだと思うのですが、
>作った後に充分な待ち時間はとっていますか? 

なんと。そうでしたか。十分というと・・・100msぐらいですかね?

163 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/08 06:18 ID:???]
>>150
 人は多いほどよいぞ。金無しプログラミングはHSP+pcbnetも同じだし。

>>162
 ソース見直したら「wait 10」…1000msもマッテタ(藁。本来はソケットが確立して、通信可能状態か調べるのが礼儀正しいかと。
 しかし、まあ、あれだ、マルチスレッドならそのまま休憩、シングルスレッドならその間空転ということで。

 マルチスレッドで思い出したけど、「Tonyu(豆乳)」っていうプログラミングツールは期待してるぞ。まだ通信には対応していないみたいだけど、ゲーム作るのはHSPより楽々かも。
game.2ch.net/test/read.cgi/gamedev/1015143101/l50

164 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/08 06:27 ID:???]
>>159
 動きがぎこちないのは、一時停止命令(HSPではwaitやawait、CだとSleep)がなくてOSにタスクが回っていないのかも。窓9x系は擬似マルチタスクだから。

 あと、画面を更新する描画系命令をそのまま使うと、1つ描くたびに垂直同期を待って更新されたりするぞ。描画するけど画面にはまだ反映させないという命令を使うか、バッファに描画して絵を完成させ、一気に転送するとか。



165 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/08 08:38 ID:???]
>164
正論ですな(一時停止命令無し)。最初のサーバがえらく重かったのはSleep(0)でブン回していたからで、
Sleep(10)にしたらまともになりました。
描画についてはちゃんとバックバッファリング行っておりますハハー。
まぁ、そもそもうごかないみたいなのでニンともカンともですが。

166 名前:名前は開発中のものです。 mailto:sage [02/05/08 09:09 ID:???]
> 窓9x系は擬似マルチタスクだから。

9xでもWin32アプリはプリエンプティブマルチタスク。

167 名前:名前は開発中のものです。 mailto:sage [02/05/08 13:48 ID:???]
> ネットゲーム特有の技術や制作、アプリケーションプロトコルや、送受信ルーチン
> 並列処理、ラグ対策などについて気軽に語り合いましょう。

↓このスレでも100-くらいから真面目に話し合ってたみたい(過去形)
game.2ch.net/test/read.cgi/gamedev/1005040802/

168 名前:130 ◆v3R1XL8M mailto:sage [02/05/09 00:06 ID:???]
あの、顔出しついでに質問なんですが、

回線速度がUP 256kのAさんと、DWN 128KのBさんが居た場合、
AからB宛てに、毎frameウェイト無しで256kbit分のデータを送信した時に、
Bさんは全てのデータを1frameで落としきる事は出来ませんよね?
しかしA側はそんな事を知らずに、また256kbit分のデータを送信する・・。

これだと、Bさんが受信し切れなかったデータが何処かに溜まっていくような構図が
頭を悩ましているのですが、実際どこに溜まっているのでしょうか?


・・なんていうか、これって同期・非同期通信と関係があることなんでしょうか。

169 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/09 00:36 ID:???]
まず、そんなに大量にはどうせ送れないですよ。
まぁ、それはわかってるでしょうけど。
で、データ送る速さが受信より早いとどうなるか、ですが、最終的にデータは受信側のソケットのバッファにたまります。
で、取り出す速さが遅いのでやがてソケットのバッファはあふれ、「ソケットのバッファあふれたよ」エラーがでることでしょう。

170 名前:130 ◆v3R1XL8M mailto:sage [02/05/09 01:53 ID:???]
はい、数値はあくまで仮定です。(笑

うーんと、"取り出す速さ"は関係あるのかよく理解出来ないです。
基本的に1frameにつき、受信バッファのデータは"全て"処理しています。
なのでバッファが溢れるような事は無いと思うんです。


・・・・・あ。送信バッファは全て処理してたっけ・・・。
あれ、なんか・・・忘れているような・・(´ー`)?

・・・なにかこれは、受信では無く送信部分に酷い問題が潜んでいるような気がしてきました。(((( ;゚Д゚)))ヤ、ヤッチャッタヨ・・
361さんありがとうございました。早速検証してみますー。

171 名前:684 ◆MxrMc/mk mailto:sage [02/05/09 07:23 ID:???]
>>168
そういう時には、データは送信側のバッファに溜まっていきます。256kbitのデータを
一度に送ると言っても、IP層の制限で大体1500bytes毎(だったと思う)のパケットに分割されて送信されてしまうので
おそらく伝送路の途中(128kbpsになるところ)でパケット損失が起こって再び再送されるはずです。

今はTCPも賢くなってスロースタートとか云う技術があるみたいで、パケット損失を起こすことも
少なくなってるとか。

あ、間違ってたらゴメンなさい(ばく

172 名前:名前は開発中のものです。 mailto:sage [02/05/09 14:49 ID:???]
>>168
受信側の読み取り速度が遅い場合、
UDPなら受信側のバッファがいっぱいになり次第、データは問答無用で捨てられる。
TCPならデータは捨てられない。(もちろんIPレイヤーではドロップ、再送信は起こってるが)

で、TCPで受信側が受信しきれない場合はどうなるかというと、
TCPの送信制御によって送信側がデータを送れない状態になる。
具体的にいえば、送信側で
・ソケットに対しての書き込みがエラーになる
・ソケットに対しての書き込み処理が、そのデータをすべて送信し終えるまで
(受信側がすべて読み取るまで)終わらない(実行がストップする)。
のどちらかの事が起こる。(どちらが起こるかはソケットの非同期書き込み設定による)

こんなんでわかるかな?

173 名前:130 ◆v3R1XL8M mailto:sage [02/05/10 20:18 ID:???]
プロバイダの回線調整でレスが遅くなりました、ごめんなさい。

あー何だか凄くよく分かったような気がします。
ようするに送信側のバッファに溜まるんですね〜

という事は・・、非同期設定にしていると相手が受信を完了してなくても
こちらからは送信バッファにノンストップで送れるワケですよね?

とすると、最低限必要と思われる通信速度を持っていないクライアントは
あらかじめチェックをして接続を切ってしまうべきなんでしょうか・・

あ、でも、ソケットに対しての書き込みがエラーになってから切断、
のほうが良心的なのかな。(笑

174 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/11 12:11 ID:???]
 みぎゃあああああ。VB5ランタイム突っ込んだら「Easy CD Creator」がお亡くなりにぃぃ。



175 名前:416(HSP) ◆HoSW/FCI [02/05/11 23:22 ID:ubPKqzXU]
 データの種類によっては完全同期は非現実的なんだろうけど、以下の方法でホストとクライアントの時間を合わせることはできるかと。

・ホスト起動時にPCを起動してからの時間(ms)を取得。その値をスタートにしてゲームタイム(以下gt)を設定。
・クライアントが接続してきたら、接続確立後、ping値を複数回(10回前後)計測
・計測したping値をソートし、真ん中の数個から平均値を算出。
・現在のgtとping計測による平均ラグ値を送信
・クライアントもPCを起動してからの時間(ms)を取得し、gtにping計測値を加算した値から減算し、クライアントからみたスタート値を取得。
・以後、送受信データにgtを付加し、ping計測値を加えた値から経過を算出。

 基本的に送受信データは「gtxxxに敵aを出現させる」といった予定コマンドの発行が中心になるかと。例えば「gtxxxに命中予定」とか。

176 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/11 23:23 ID:???]
 死亡問題にしても、死亡したのgtより以前のgtをもつ回復コマンドが到着した(あった)ら、生存回復が確定。なければ死亡確定ということで。
 なお、ゲーム中「あー、ラグったぁ」というラグと、通信速度からくる常時ラグは別物なので注意。前者は障害ラグかと。

177 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/11 23:24 ID:???]
 あ、そうそう。送信側が16msのテンポで送信命令を発行しても、実際のデータは16msの間隔で送信されなかったりしますし、受け取るほうも当然16ms毎に届くわけでもなく。
 「1コマンド1パケットで〜」を想定しても、TCPではバッファ内で複数のコマンドがくっついたりしますし、長すぎるコマンドは分断されることも。

 1500バイトっていう具体的な数値は、実質設定されている値ではあるんですが、実働ではそれ以下で分断されたりするみたいです。100KBの長いデータを送信すると、最初は500バイト前後のパケットで様子をみて1500バイトになったり、途中で800とかゆれ幅があったり。
 途中で経由するルーターの混雑具合をみて、適切なデータ長をやり取りしているんではないかと推測。httpでhtmlファイルとかを取得しているときはそんな感じでした。

178 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/12 02:58 ID:???]
 ひとつ提案なんだけど、ここで作るネトゲはどのみちポートもアプリケーションプロトコルも公開することになると思うから、各ゲーム間でとりあえずチャットデータが送れるようにしてはどうだろう。
 もちろん、ユーザーの意思として特定のゲームで遊んでいるプレイヤーにメッセージが送れるというだけのもので、他のゲームの会話が流れこんでくるというものではなく。

 イメージとしてはPSOのメールみたいな物で、ID(カード)を交換したもの同士のみがおりとりできるというもの。
 ホスト一覧CGIが完成したら、他のゲームのホスト情報も一応は取得できるわけで、今このホストでID○○は居るか? というやりとりをおこなったりする。

 必要なのは、ホスト間の一時的なコネクションと、ホスト間でやりとりされるコマンドの制作と、共通IDの生成…だろうか。

179 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/12 05:18 ID:???]
>130氏
先に書き込んだことがちんぷんかんぷんなことに成っていてすみませんハハー。
受信バッファあふれエラーは自分で作成してました。

>416氏
EasyCDCreaterが亡くなったのはおれのせい??面目次第もございません。

共通チャット、なかなか意欲的ですねー。可能かなぁ。ゲームIDとゲーム無いIDがわかれば可能と言えば可能か。
もうちょっと膨らませて、あるゲームで取れる特別なアイテムが渡せるとかあっても良いかも知れないですなー。
クリア必須アイテムや、便利アイテムなどが違うゲームをやってる人からしかもらえないとかね。ただどうやって知り合うのかっちゅーのが・・・。

なお私は仲間内のテストで「受信側当たり判定は駄目駄目、サーバで行うべし」といわれ、サーバを一から作成し直しております・・・。

180 名前:RUR [02/05/13 02:48 ID:523o0yKA]
>>178
実際のゲーム会社でもできないようなことを(政治的な理由だけど)
2chでやろうとする意欲に幸多からん事を。

181 名前:150(Winsok||DX8.1||c++) mailto:sage2002 [02/05/13 13:30 ID:???]
最近、BCCつらいのでVC++に乗り換えようかと考え中。
(DirectX8が気持ちよく動かんのですよ・・・)

学生なのでアカデミックパックウマ−なはずが
Visual.netだと推奨環境が高すぎて無理。
こんなことなら早めにVC++6.0Proアカデミック買っておくんだった・・・

VC++のみインストールでも家のボロPCでは動かないかな>.net


>共通チャット
イイですね。あんまり難しいことはわかりませんが
何か協力できることがあればさせていただきます。

182 名前:416(HSP) ◆HoSW/FCI [02/05/14 05:49 ID:7TFNrLEk]
>>179
 Easy CD CreaterはベクターにあったVB5の新めのを入れたら復帰しました。でも、サンプルのほうは相変わらず10Hのエラーです。当方がCeleronだから? レイテンシが高いから? メモリとFBSが66Mhzだから? ウワァァァァァァン、メンドシノがバカにされてるヨー ← 古っ

 共通チャットは、アイテムとかゲームバランスに影響を与えるモノは、ひとまず抜きにしたほうがよいかと。
 とりあえずグローバルチャットと名付けまして、GCメッセージを送信したプレイヤーのいるホストが、他のホストに問い合わせを次々に行うP2Pタイプにするか、専用のホストを立てて、CG-IDをもつプレイヤー情報を一気に集約して管理するC/Sタイプにするか考え中です。

 P2Pタイプの利点は、常時稼動のホストが不用であることなんですが、欠点として通信コストが高いこと(相手を見つけるまでに手間取る)です。
 C/Sタイプは、相手をすぐに見つけられるんですが、常時稼動のホストが必要なことと、CG-IDを収集するためセキュリティの面でちと不安があります。

 稼動ゲームが少ないうちはP2Pで、スポンサーが見つかったらC/Sがいいんじゃないかと思う曇り空の朝。

183 名前:416(HSP) ◆HoSW/FCI [02/05/14 05:50 ID:7TFNrLEk]
>>180
 実験してなんぼのフリーなネットゲームですしね。

 ほんとはホストプログラムの余残パワーを利用して共通ロビーを構築し、そのネットワーク網で共通チャットを実現するのが近道な気もするんですが、インターネット網のような安定性を得るにはどうしたらいいか、まだちょっと考える暇が無いんで…。

184 名前:416(HSP) ◆HoSW/FCI [02/05/14 05:50 ID:7TFNrLEk]
>>181
 DirectX8.1って…3Dばりばりですか。うちの貧疎なオンボードのグラフィックアクセラレーターでは、多分動かないですよ…。PSO動かなかったし(RADEON差して動いた)。

 共通チャットはとりあえず置いといて、まずは動くモノを作りましょうヨ。
 まずは、複数人接続->チャット->退室 がきちんとできる通信エンジンを作ってみてはどうでしょぅか>ALL それから自分の作るゲームに適したアプリケーションプロトコルを考案して、どれをTCPにしてどれをUDPにするか決めると。
 一気に組み上げないで、動く物に少しずつ手を加えていくほうが、テストプレイヤーも参加できますし、なによりバグの温床を防ぐことができます。



185 名前:名前は開発中のものです。 mailto:sage [02/05/14 06:39 ID:???]
>共通チャット
自分で作らないで、IRC利用しちゃうとかね。

186 名前:名前は開発中のものです。 mailto:sage [02/05/14 07:03 ID:???]
実にどうでもいいことだが、416はでしゃばりすぎ。

187 名前:名前は開発中のものです。 mailto:sage [02/05/14 07:07 ID:???]
>>184
まず作る、っていうのはどうかと思うぞ。
設計をしっかりとしておけばバグはかなり減るよ。
Tryal & Error なんて開発効率が下がるだけ。

188 名前:名前は開発中のものです。 mailto:sage [02/05/14 16:46 ID:???]
416ウザイ

189 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/14 20:35 ID:???]
>184
それぐらいならできておりますハハー。攻撃もできます。
今作り直してますがねー。通信はTCP/IPオンリーです。ソケットの数がもったいないような気がして。
って、「エンジン」ですか。DLLか何かにしようと?上から構造体を渡すと向こうで受け取れるとかそういうのですか。
一般化は難しいですなー。やるならクライアント側は取りあえずWindowsのDLLでいいでしょうが、サーバ側はUnixなんかになることも考えたソースをかかねばなりませんな。

>187
Tryal&Errorだと開発効率は下がるかもしれないですが何かはできるけど、設計をしっかりしてからと考えるといろいろ考えちゃって結局何も作れないヘタレなので、作っておりますハハー

190 名前:名前は開発中のものです。 [02/05/14 21:37 ID:.e.pT2og]
 

191 名前:名前は開発中のものです。 [02/05/14 22:17 ID:7jsYbZuU]
416は無人島forHSPという実績を残しているので
そこまででしゃばってないよ。

むしろうざいのは何もやらんで
あっちのほうががいい・こっちがいいと口だけだすシッタカクン。

192 名前:ゴルメガ [02/05/14 22:44 ID:fiICSFq6]
11時にショウーブしようよ

193 名前:名前は開発中のものです。 mailto:sage [02/05/15 03:48 ID:???]
>>187
仕事でやるんなら確かにその方が良いし、そうするべきだと思うが、
2ch、特にこの板でそれをやると確実に荒れるので
渡来&エラーを繰り返しつつ話を進めていくやり方の方が
結果的にはよいように思うナリ。

そもそも明確な目標が無いので設計段階で曖昧な部分が多いし
そんな状態で汎用的に使えるものを作っていくと
形になる前に力尽きるかと。
#成果が目に見えて現れる方がやる気が出るでしょ?

194 名前:名前は開発中のものです。 mailto:age [02/05/15 03:49 ID:???]
>>186 >>188はゲハ厨ケテーイ



195 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/15 04:49 ID:???]
>>184
 設計をきちんとしようにも通信に関する知識と経験がないから手探り状態なんですよ。
いわゆる「はじめて」の領域だから雛型作りを1からしているみたいなもので。

>>189
 TCPだと接続数+1だけソケットが必要ですが、UDPならソケットは常に1つで済みますよ。
 ただ、ローカルテストのためにポートが2つ必要というのは難点かなぁ。今、ローカルで2接続以上のテストが出来なくて困ってます。…って、ポート可変にすればいいのか。

 通信エンジン部はDLL化するほど大げさじゃないと思いますよ。実質的な送受信部分は十数行で済む代物ですし。エラー時の処理が今のところ課題かなぁ。

>>192
 aaさぬのところで待ってたのに来ないしw

196 名前:ゴルメガ [02/05/15 18:24 ID:pu341VSY]
そんときゃやめてた

197 名前:ゴルメガ [02/05/15 18:26 ID:pu341VSY]
キョウーハ夜七時〜夜10時

198 名前:名前は開発中のものです。 [02/05/15 18:30 ID:pu341VSY]
イマヤテルーヨ

199 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/15 21:14 ID:???]
そうか、UDPだとソケットは一個で良いのか。
ちょっと勉強してみないと駄目だなー。

200 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/16 07:55 ID:???]
 TCPとUDPの違い

 TCP…コネクション型プロトコルとも呼ばれ、「送信元確立要求」「受信応答と受信先確立応答」「受信応答後のデータ送信」と3回のパケットのやり取りを経てデータを送り出す。
 また、コネクションの確立、エラー制御、フロー制御の機能を有し、24バイトのヘッダが付加する。

 UDP…コネクションレス型プロトコルとも呼ばれ、パケットの転送のみを行い到達の保証は行わない。8バイトのヘッダが付加する。

201 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/17 05:02 ID:???]
 FF11online(関連のスレ)を眺めつつ思ったこと。

 ID認証とかの登録手続きは、サービス開始1ヶ月前から受け付けたほうがよさげ。FF11の場合、HDD込みで済ませておいたほうがよかったのでは?
 Webmoney多重引き落としはちょっとやばげ。

 んで、相当数の鯖死亡中らしく。各鯖200人前後の入りだと書かれてるけど、なぜに落ちますか。初日鯖落ちはある種のお約束ではありますが。
 まぁ、MMORPGの場合、ゲームに必要なデータ転送がゲーム開始(入室)時に集中するからねぇ。その辺りの分散処理が不充分だったのかなと無責任に呟いてみるテスト。

202 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/18 21:50 ID:???]
だめだ、サーバーメインに直していたら、BCCじゃ辛いわ。TurboDebuggerの使い方がわかんねー。
さっぱり進まなくなってしまった。

203 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/20 23:27 ID:???]
歩いて喋るところまで復活。
戦闘可能なところまで戻る前に戦闘の仕様を考えねば・・。

204 名前:361(C++/VB) ◆fiQMk5WM [02/05/21 00:02 ID:5wws19LA]
人集めage



205 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/21 00:07 ID:???]
>>204
 VBのランタイムは同じバージョンでもリリースされた日が違うモノがあるみたいなので、今度あぷするときは再配布可能なDLLも付けてくだしぃ。ハヤクプレイシタイヨ ウワァァァァン!

206 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/21 01:31 ID:???]
いやー、ランタイムの問題ではないようです。
こちらでできなかった人間はDirectXなど対応して皆できるようになりました。
10H例外はドライバがあってないとでるとか、そういううわさです。
取りあえずクライアントはほとんど作り直してないので・・・最新版でもたぶん動かないでしょうな。
VBのランタイムは確かにたくさん種類がありますけど、バグのあるところは使ってないのでたぶんどれでも本当は動きます。

ところで上げておいて上げた目的を忘れておりました。
たぶん416さんもだと思いますが、

○○○○○○ドッター募集しておりますーー○○○○○○○○○○○

探しても見つからないので、ゲーム制作板を訪れる絵描きさんの方、
フリーの素材ページとか持ってませんかーー?

207 名前:130 ◆v3R1XL8M mailto:sage [02/05/22 18:56 ID:???]
10H例外、検索してみました。
www.google.co.jp/search?q=cache:9YfajatD9msC:members.tripod.co.jp/tatuken/windows_ERA.htm+10H%E4%BE%8B%E5%A4%96%E3%80%80%E5%AF%BE%E5%87%A6&hl=ja&ie=UTF8

私は良くワカラナイのですが、浮動少数点がなんとか。らしいです。

208 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/05/22 21:25 ID:???]
検索までしてもらって面目ないです。
ただ、VBレベルからは出そうと思っても出せないんですよ。
直そうにもどこを直せばよいのかさっぱりわからないのです。
私フリーソフトも作っている人間ですが、そのソフトでもやはり10H例外がでると言う報告が特定の人物から入ったことがあります。
バージョンアップしてもらったら直ったのですが、問題のエラーが何故出たのかはさっぱりわからずじまい。エラーが出る点とバージョンアップ時に変更した点は全く関係なかったのです。
特定のバージョンで報告が重なったことがあったので、何らかの原因があるであろう事はわかるんですけどねぇ。

209 名前:名前は開発中のものです。 [02/05/22 21:36 ID:Ls4F1cac]
age

210 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/23 13:22 ID:???]
>>206
 DirectX関連なら、うちのオンボードグラフィックアクセラレーターは120%、DirectX8.1に対応していないから、そのあたりでエラーが出ていると思われ。DirectDrawが無くなって、全部3Dに統合されたからねぇ。
 手持ちのRadeonを差せばokなんだろうけど、いかんせんPCIなやつなんで、主要で使っている某3Dソフトがダメダメになっちゃう罠。

 ただ、HSPからDirectX使う分には大丈夫なのよねぇ。なんか特殊な命令つかってり?

211 名前:361(C++/VB) ◆fiQMk5WM [02/05/23 14:36 ID:yfO3OUYo]
DirectX7しか使ってないですなぁ。

212 名前:名前は開発中のものです。 [02/05/23 16:07 ID:R08HfVdk]
ごめんなさいって言えておりこうさんね

213 名前:130 ◆v3R1XL8M mailto:sage [02/05/23 21:14 ID:???]
>>212
ごめんなさいヽ(´ー`)ノ

214 名前:416(HSP) ◆HoSW/FCI [02/05/24 06:22 ID:btbuBamk]
 ホスト(サーバー)プログラムを稼動させて、クライアントを待つとなるとドメイン持っていない人はIPアドレスを公表しないといけない…という問題が、satoshiさんの作ってくれたホスト登録CGIで解決しそうです。
 まぁ、DirectPlayの待ちうけロビーを使えばOKとかいう話もありますが、あれ、重いし。

 HTTPでCGIへ以下のデータを送信すれば、大抵のネットゲームで利用できるはず。



215 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/05/24 06:23 ID:???]
■立ち上げ時
「[new]」「ゲーム名」「バージョン」「ポート」「部屋名」「最大参加人数」
例: com=new&game=ジエンの無人島forHSP&ver=0402&room=aa&port=48558&max=16

■参加者が増加及び減少
「[mod]」「部屋名」「ポート」「参加数」
例: com=mod&room=aa&port=48558&mem=4

■終了時
「[end]」「部屋名」「ポート」
例: com=end&room=aa&port=48558

 クライアントは以下のコマンドを送信すると、データが送られてくるというわけ

■情報要求
「[inf]」「ゲーム名+バージョン」
例: com=inf&game=ジエンの無人島forHSP&ver=0402

 CGIからは

「部屋名」「IPアドレス」「最大参加人数」「参加数」
例: aa,127.0.0.1,16,4\n

216 名前:名前は開発中のものです。 mailto:sage [02/05/24 07:45 ID:???]
横から失礼。
ゲートサーバーはcgiじゃなくて専用で立てた方が良いと思うよ。
1〜遅くても5分感覚でpingとばして生存確認しないとダメ

217 名前:361(C++/VB) ◆fiQMk5WM [02/05/24 08:39 ID:YHCcFk0c]
おお、CGIできたんですな。すばらしい。
>>216
それはそうかも知れないけど、CGIの方がおけるところ多いですしねぇ。
ゲームが本格的にできればそのとき考えましょう。
紹介されて接続詞に言ったクライアントが、サーバが死んでいたらCGIに知らせても良いかもねー。

218 名前:216 mailto:sage [02/05/24 08:55 ID:???]
cgiによる生存確認の問題点を2つ

クライアントが確認してサーバーに伝えるタイプだと、
リストデリーターが簡単に作れてしまう。

リクエストがあったときにcgiが確認しに行く方法だと、
設置場所によってcgiからのソケット利用を許さないところがある

219 名前:名前は開発中のものです。 mailto:sage [02/05/24 12:08 ID:???]
・クライアント(Host?)が定期的にCGIへ生存報告
・CGIは一定時間報告が無かったHostをリストから削除
・Hostの認証はCookieなどで行う
あたりで十分でしょ。というか、もうやってる?

220 名前:satoshi@DGW ◆7m/R4F.. mailto:sage [02/05/24 13:35 ID:???]
>>216
FWの関係でPINGを受け付けない環境の人もいるそうです。

>>219
今のところその方法が有力かもしれません。
Hostの認証はCookie使わなくてもIP+Portをパスワード代わりに使ったり。
定期的に生存報告する方法としては>>215で定義してある「参加者が増加及び減少」で代用するとか。

221 名前:名前は開発中のものです。 mailto:sage [02/05/24 13:58 ID:???]
>>220
pingつっても、ICMP使うんじゃなくてサーバープロトコルの仕様に盛り込んだ
アプリケーションレベルのpingで十分でしょ

222 名前:361(C++/VB) ◆fiQMk5WM [02/05/24 19:08 ID:4LkW.hPA]
ゲーム間チャットの話がありましたが、ゲーム間とまでは行かなくてもあるゲームにログ
インして誰かから呼ばれるのを待つ、って言うのもありかもしれませんね。
ゲームって全画面だったり重かったり敵が来たりするからぼへーっと友達待ちにくいじゃ
ないですか。
それで、ログインするときにゲーム参加/チャット参加を選択し、チャット参加にすると
直接話し掛けられたメッセージ(あるいは全体チャットのようなものも?)やオンラインの
友達リストのようなもののみを表示するウィンドウを出して、ゲームには参加せず会話だ
けできる。もちろん切り替えも可能、ってどうでしょうか。
そうすれば待ちながら2ちゃんねるでも見られますな。

223 名前:satoshi@DGW ◆7m/R4F.. mailto:sage [02/05/24 21:29 ID:???]
>>221
そんなもの実装するより定期的にCGIに報告した方がマシかなぁと。

224 名前:361(C++/VB) ◆fiQMk5WM [02/05/28 00:26 ID:/pjDY2R2]
週末がんばろうと思ったが、マシンがぶっ壊れて何もできなかった・・・
とりあえず敵が出て、たたかえるようにはなりました。サーバーは。
クライアントを作るには絵がなぁ



225 名前:130 ◆v3R1XL8M mailto:sage [02/05/28 01:26 ID:???]
>>224
それで、クライアントは

動 く よ う に は な り ま し た か ?

226 名前:361(C++/VB) ◆fiQMk5WM [02/05/28 14:02 ID:jSa7y6t2]
これは手厳しい。
前から動いてますよ、一応。
動かない環境もあるっていうだけです。

現状ではモンスターの絵や攻撃のアクションを書いていないので、
最新のサーバとクライアントを動かすと自分が向きも変えず動き回り、
同じ姿をした敵がうごめいていて、その敵同士がお互いつぶしあっていますが、
絵がないのでぶつかっているように見えるだけで、
死んでも絵が変わらないので敵がふっと消えてまた違うところから出現するだけ。
というところですなー。
今度の週末には敵を3種類ほど入れて、自分も向きぐらいは変わるようにし、
敵を攻撃できるようにする、予定です。

227 名前:361(C++/VB) ◆fiQMk5WM [02/06/02 22:44 ID:rGju/.sA]
下らんことに引っかかってぜんぜん進まなかったよ。
まぁ忙しいんだけど。
敵が出て殴られるところまではできたけど、殴れねー。
複数人がつなぐことは可能です。後でいったん上げます。

228 名前:361(C++/VB) ◆fiQMk5WM [02/06/03 00:05 ID:NHJSjnb2]
www.geocities.co.jp/SiliconValley-Oakland/2840/set.lzh
まぁじりじりですが作ってますよってことで。
ソースも出したほうがいいかな。

229 名前:130 ◆v3R1XL8M mailto:sage [02/06/03 01:26 ID:???]
361サソお疲れ様です。動きました〜。

ちょっと気になったのですが、たまにスライムのグラフィックが
兵士のグラフィックと摩り替わっちゃう事があるようです。

・・では、がんばってください。

230 名前:361(C++/VB) ◆fiQMk5WM [02/06/03 08:51 ID:fEGc1exA]
切り替わってしまいますなー。
オブジェクト存在情報を先に送り、それを見て種別情報がわかっていない場合はサーバーに聞き返し、
それでスライムであるという返事が返ってきてからスライムに描画しなおしておりますので。
種別が未確定のうちはすべて兵士になっておるわけです。
もちろん最終的には直しますが、アルゴリズム確認のためにこうなっております。
とりあえず現状ではなかなかスライムにならないやつがいたりしてアルゴリズムがいけてない、ってことが
わかるんですがね・・・

231 名前:416(HSP) ◆HoSW/FCI mailto:sage [02/06/03 09:31 ID:???]
 (・∀・)ウゴイター

232 名前:361(C++/VB) ◆fiQMk5WM mailto:sage [02/06/03 10:07 ID:???]
416さん動きましたか。
やっぱり不思議だなー。別にこれといった修正はしてないんですけどねー。
クライアントについてはほとんどプロトコル周りの修正で。

233 名前:名前は開発中のものです。 mailto:sage [02/09/08 21:42 ID:???]
>>1は?

234 名前:名前は開発中のものです。 [03/05/13 18:15 ID:ofp1++tY]
 



235 名前:名前は開発中のものです。 mailto:sage [03/06/01 10:38 ID:yxhj/rEv]
このスレは繰り返しのっとられるスレになりますた。

236 名前:名前は開発中のものです。 mailto:sage [03/09/15 15:34 ID:nCwzLArB]
3Dチャットが絶滅の危機・・・。
ttp://www.tecnet.or.jp/~af67463/sai3/keck1/japan.htm
リンク集、ほとんどがリンク切れ。リムチャットも20日に閉鎖。



自作アバターが使えるとこ、無くなっちゃった。








237 名前:名前は開発中のものです。 [04/01/17 01:49 ID:qRP2CuMM]
どうやらサイト作って本格的に始動し始めてるみたいだぞ
やる気ある奴はいってみな

俺らでネトゲ作ろうぜ
game3.2ch.net/test/read.cgi/mmo/1056843833/l50

238 名前:名前は開発中のものです。 mailto:age [05/01/26 12:44:33 ID:F1s8Zwef]
a

239 名前:名前は開発中のものです。 mailto:sage [05/01/28 23:25:28 ID:KYxQmjpe]
ネットゲームな、ネットゲーム作りたいけどな〜・・・
どういうネトゲがいいんだろうな。
俺の理想としては総プレイヤー数1000人程度で、同時接続数は100人前後かな。

つーか、ブラウザ(JavaScript使用)さえあればできるゲームと、
アプリケーションをダウソする必要があるゲームではどっちがいいんだろ。
JavaScriptだけで組むほうが簡単だけど、アプリケーションにしてしまえばDirectX使えるしな。
DirectPlayはまだやったことないが簡単らしいし。
Winsockで専用の鯖ソクト作ってそれでやるってのが一番いい気はするが。

つか、もうすぐ光にするから回線速度はカナーリ速くなるが、今はAirH"なんよ。
だからネトゲ自体あまりやったことがないんだよね。
なんかSTANDARDFANTASY2ってやつと、BARギコくらいだな。
SF2はブラウザだけで動作したし、BARギコはFLASHだったな。

カードでもRPGでもいいんだが、1対1対戦がいいかな。
バトルはP2Pでやらせれば鯖の負荷も軽くなるし。
ま、光になって鯖立ててから考えるわ。

240 名前:親父のストレス [2005/06/23(木) 01:15:29 ID:+VDhOGKz]
お聞きしたい事があるのですが。今のネットゲームでは。
何が。いいですかね(人間関係も)なんか当たり前な事聞いてすいません
今やろうとしてるのはリネージュですが。友達がやめた方がいいと言います。
できれば、内容など教えてくださいネットゲーの。
話のできぐあい。が悪く申し訳ございませんが。お願いします^^;

241 名前:名前は開発中のものです。 [2005/06/23(木) 11:34:01 ID:2M5H/Ry4]
教えるから名前の由来を教えろwww

242 名前:名前は開発中のものです。 mailto:sage [2005/06/23(木) 14:31:36 ID:Fji3AkjB]
リネやるならリネUのエリカきなさい!
いろいろ芝居高いが…

243 名前:親父のストレス [2005/06/23(木) 17:31:29 ID:fyyqAibV]
親父のストレスはなんとなくですw
リネ2ですか〜重くないっすか?
リネ1(今はわかりませんが)は人間関係よくて。よかったですw
うろこも発見して金持ちでしたが。引退ww


244 名前:名前は開発中のものです。 mailto:sage [2005/06/23(木) 18:04:11 ID:WnRRk4RN]
句点と読点の使い分けが出来ないのは何故ですか?



245 名前:親父のストレス [2005/06/23(木) 18:27:50 ID:fyyqAibV]
馬鹿ですからです^^;
お恥ずかしい

246 名前:名前は開発中のものです。 mailto:sage [2005/06/23(木) 18:42:58 ID:JdE+wNXu]
ネトゲはやめとけ、どれやっても廃人化あるいは人間不信になる事必至だ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<81KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef