ネットゲーat GAMEDEV
ネットゲー - 暇つぶし2ch100:1
01/12/30 00:00
最近進みが遅いがここで練っておくと後で楽する。
断続送信なんかできるようにしとこう。
送信受信バッファが必要だ。
そして断続送信インターバルの計算式を考えておく。

101:1
02/01/07 19:28
密かに再開しますか。
12/30から一歩も進んでないぜ。
年末からいままでずっと遊んでたということだ。
ようし今日は何をしようかな?

102:1
02/01/10 21:44
なかなか進まんので、別のゲーム作りに逃避している。
現在悩んでいるところ

・サーバーの負荷を減らすための断続送信
・集計処理
・クライアントがダウンした場合
・集計元がダウンした場合
・集計先がダウンした場合

103:g
02/01/10 21:52
参考にさせてもらうつもりです。

気負わず、まったりと頑張ってください!

104:1
02/01/10 22:45
>>103
どもー。
参考になれば幸いですが・・・、
あっさりとしか言っていないので(開発の内実は泥沼です)

105:名前は開発中のものです。
02/01/13 02:43 rJSwrpds
このスレおもろいね。もっとやれ(藁

106:名前は開発中のものです。
02/01/13 03:23
情報交換したくて立てたのに
オナーニスレになっちゃってるのね。カワイソ

107:名前は開発中のものです。
02/01/14 01:21
とりあえず、ソースを晒すといろいろ盛り上がると思われ。

108:名前は開発中のものです。
02/01/20 06:23
これは良いスレですね
是非C++でやってほしい今日この頃

109:名前は開発中のものです。
02/01/20 13:21 BSuwq+vF
>>108
C++でCS形式のネトゲを作るときに参考にさせて欲しい。
漏れもc++でキボンヌ

110:名前は開発中のものです。
02/01/20 14:24
1は逃げたんだろ。そっとしといてやれよ。無理にageんな。

111:1
02/01/27 12:38
久々に来たよ。
逃げたというのは当たり、逃避して別のゲームを作っていた。
つうか最近このスレを見失っていた。
やっぱ自分のHPでやるべきことなのかもね。
毎日カキコするほど熱入れてやるなら別だけど。




112:1
02/01/27 12:41
あくびがでるほどのんびり進めるつもり。


113:プログラム未経験
02/01/29 08:03 g/7F6xBo
あの、質問させていただきたいのですが、
FFアドベンチャやサッカスタリオン等のようなネトゲは、
どの言語で書くのが良いのでしょうか?
将来的に、上記のようなネトゲを作りたいと思っているので、
これらに向いている言語を教えて下さい。
C言語を勉強中の友人には、「JAVAでいんじゃない?」と言われました。
よろしくお願いします。

114:名前は開発中のものです。
02/01/29 10:51
>>113
えーと、それは「エベレスト登りたいんだけど、登山用具はどこで買うの?」
みたいな質問なんで、最初はどこでもいいです。
どうせ貴方がそんなネトゲを作れるころには、他の知らない言語なんか
仕様書2時間読めば覚えられるようになってますよ。

115:名前は開発中のものです。
02/01/29 10:51
C

116:名前は開発中のものです。
02/01/29 17:32
>>114の言ってる事は、>>115の言語を最初に覚えることが前提に
なってる。

117:Unknown name
02/01/30 17:15
すげえよ >>1
草葉の陰で見守ってるからな


118:1
02/01/31 19:35
>>113
クライアント側とサーバー側とは別の言語でもいい。
自分の場合
クライアントjava
サーバーcまたはc++(現行のローカルテストではjava)の予定。

作りやすさではjavaだろうね。
データベースならばjavaでさほど問題にならない実行速度も
ゲーム作るとなるとホントに遅いよ。



119:名前は開発中のものです。
02/02/01 10:33
スレッドをバリバリ使う必要がありそうなところを考えると、
サーバはJavaが安全だろうなぁ。
ただ、GCとかがどれくらい影響してくるかがちょっと不安かもね。
全部オブジェクトプールにすれば、そんなにGCかからないかな?

クライアントは、アプレットがいいなぁ(ユーザとして)。
アプレットの場合、アプレットダウンロードのトラフィックが
ゲーム本体を邪魔しないかどうかが問題になりそう。

120:1
02/02/01 21:09
信用に足らないサイトからダウンロードした実行ファイル
は怖い。ハードディスク全部消すプログラムは簡単に書けるからね。
アプレットはその点安全だからいいよね。


121:名前は開発中のものです。
02/02/01 21:48
ただJava2Dor3Dでどのくらいパフォーマンスが出るかが問題だな。

122:名前は開発中のものです。
02/02/02 02:21
>>121
スレリンク(tech板:244-245番)

123:名前は開発中のものです。
02/02/03 13:03 MJ0ExQJf
ガンダム凄いね。
よく動いてる。

124:名前は開発中のものです。
02/02/03 13:09
>>123
URLリンク(java.sun.com)
Java1.4から新設されたAPIだね。

125:1
02/02/10 20:23
JAVA1.4使おうかな・・・

126:1
02/02/17 06:20
JXTA

127:1
02/02/20 14:31
なんか知らんけど書き込めない

128:1
02/02/20 19:36
規制?

129:クソスレまじん
02/02/27 22:58
ぼく、クソスレまじん。ゲームせいさくばんの、ちていおくふかくから
やってきたんだ。
ちじょうには、たくさんヒトがいるとおもったのにここには
みわたすかぎりなんびきかのわなびーしかいないみたいだね。



なんだかネットゲームばんのほうからこうばしいかおりがしてきた。
ちょっといってみるね。んじゃ。

130:名前は開発中のものです。
02/02/28 01:49
記念カキコ

131:名前は開発中のものです。
02/04/12 16:01
JAVAでやろうか。

132:名前は開発中のものです。
02/04/12 16:13 NNAMDqSw
ひろゆきっぽい。>>間人

133:416(HSP) ◆HoSW/FCI
02/05/07 00:47 XKfkToEo
 ということで、スレ乗っ取りです。

 ネットゲーム特有の技術や制作、アプリケーションプロトコルや、送受信ルーチン、並列処理、ラグ対策などについて気軽に語り合いましょう。
 あのネットゲームのあのデータはこう処理している!…だろう、という想定ネタもok。それだとあれがこうなって、というツッコミもokです。

 これからネットゲームを実際に作ってみようと考えているけど、なにをどうしたらいいのかわからない人もどうぞ。名前のところに使用言語を書いて、以後、番号+(言語)、場合によってはトリップを使ってください。
 なお、当方、HSP使いなので大抵の質問には答えられない自信はありますがw。

134:361(C++/VB) ◆fiQMk5WM
02/05/07 01:13 V16cWMtg
ども、416さんに引っ張られて参りました。
私どもアマチュアネトゲ制作者としては、サーバ選択プログラム、差分ダウンロードプログラムなどがほしいところでもあります。
取りあえず、自分のを作りつつ差分ダウンロードプログラムでも手がけてみようかと思っておりますが、誰か持ってたら提供してくださいハハー。

135:361(C++/VB) ◆fiQMk5WM
02/05/07 01:18
で、差分サーバの仕様ですが、いろいろ考えると面倒なのでとりあえずWin用で良いでしょうか。
C++で作成して、iniファイルの中身をみてクライアントから送信されてきたバージョンに対応するダウンロードファイル(lzhで一個をイメージ。無ければクライアントのバージョンより古い物に対応した最新差分)を送信。
差分ダウンロードのクライアント側は自分のディレクトリにそれを解凍すると。
ディレクトリ構造などは圧縮時に指定しておくと。
サーバはcgiの方がいいかな?あ、何か簡単にできそうだな。

136:361(C++/VB) ◆fiQMk5WM
02/05/07 01:21
URLリンク(??????????)ゲーム名&=バージョン
とかでhttpではなくlzh返せば良いんですよね。掲示板とかとおなじか。
すると後は解凍プログラムだけか。

137:416(HSP) ◆HoSW/FCI
02/05/07 01:32 XKfkToEo
>>134
 サーバ選択ソフトは汎用性が高いので、共同制作してもいいんじゃないかと考えています。差分取得ソフトもかな。

 今、ホスト登録用CGIを制作依頼しているんですが、…どこまで出来てるんだろ。
URLリンク(hyper6.amuser-net.ne.jp)
 「部屋名」「ゲーム名+バージョン」「IPアドレス+ポート」「最大参加人数」「参加人数」だけでokと想定してるんですが、他にやり取りしたほうがいいデータ項目はあるでしょうか?

 差分の方は、既存の差分更新プログラムを利用するのはダメですかね?

138:RUR
02/05/07 01:42 qX5uc02I
416さんに引っ張られてネトゲ板より参戦します。

139:361(C++/VB) ◆fiQMk5WM
02/05/07 02:19
いやー、既存のがうまくみつけられなくて。
何か良いのありますかね。

140:416(HSP) ◆HoSW/FCI
02/05/07 02:41 XKfkToEo
>>138
 ようこそです。ネットワークプログラマー探しのRURさんという認識であってますかw。

>>139
 差分更新といっても、アーカイブに変更分を梱包して上書き展開という方法と、「WDiff」みたいな感じにプログラムの変更部分だけ抽出して組み込み更新という方法が。

 前者は仕様に大幅な変更があって、大部分を更新しないといけない場合、後者はちょっとした修正で実行ファイルがちょっとだけ変わったというときに便利。どちらも対応としておくと便利かも。

141:361(C++/VB) ◆fiQMk5WM
02/05/07 03:17
後者に手を出すと切りがないので前者の気分でいますハハー。
どうせそんなにでかいプログラムには手は出さないし、出すなら専用のを書くでしょう。

142:416(HSP) ◆HoSW/FCI
02/05/07 05:22 XKfkToEo
スレリンク(gamedev板:366番)
|また、送信間隔ですが、ログを見てみると30msとか何ですか?
|ひょっとして。よけいな御世話かも知れませんが、タイムラグを
|考えればもっと間隔を広げても良さそうな気が・・・接続可能数に
|直結しますよね?拙作では100msです。

 30fps(33ms)で、受信バッファに溜まっている全員(n人)のデータを取得(n回)して、解析(コマンド数により不定。ただし、最大n*n回以下)、全員に送信(n回)しています。なお、ホストは60fps(16ms)で回転しています。
 当然、データが無ければスキップしますし、送信もされません。

 で、30fpsはあくまでも1秒間に30回送信できる可能性(機能)があるだけで、実際に30回毎にデータを送信しているわけではありません。単に届いたデータはできるだけ早く送りたいだけです。
 受信ルーチンを抜けた直後に届いた運の悪い(?)データは、ウェイト時間分待機することになりますから、100ms待機すると、

 Ca ─(ラグa)→ S ─(ラグb)→ Cb 

の遅延時間が最大、((ラグa/2)+(ラグb/2))+100ms になるということに。

143:416(HSP) ◆HoSW/FCI
02/05/07 05:26 XKfkToEo
 ちなみに、とあるバージョンではミスって、1秒間に60回フルに黒ジエン4匹分の位置データを送ってしまったこと(1秒間に240コマンド送信、これプラス通常のコマンドも)があります(爆。
 ホスト500MHz(ADSL)、クライアント500MHz(56K)だと処理しちゃってました。さすがにホスト333MHzはダメだったみたいで(w。

 単純に考えて1秒間に6歩制限だと、40人は処理できるんではないかと推測。ただし、窓9x系だとどうも40個以上のソケットは作れないらしく…。
 なお、コマンドの長さは「24(TCPヘッダ)+14(AP)」38バイトです。

144:416(HSP) ◆HoSW/FCI
02/05/07 05:36
 差分での自動バージョンアップは、オンラインでの頒布ゲームでも活用できるネタなので、雑談スレで煮詰めてもらうのがよいかも。
 私個人では素直に「WDiff」を利用しようと考えていましたが。

 「WDiff」で差分ファイル(実行型)制作
  ↓
 Webにあぷ
  ↓
 更新ソフトが比較して取得した後、差分ファイル実行
  ↓
 各種データが最新版に
  ↓
 (゚д゚)ウマー

145:416(HSP) ◆HoSW/FCI
02/05/07 05:53
 あ、今ソース思い出したら4匹×60回じゃなくて5匹×12回の60コマンドでした。
 …じゃなくて、await 1で回してたって言ってたから、1000/5か。200コマンドですね。もしも、順次方式じゃなくて一括処理だったら5000回発行してたのか…。処理落ち必至だから絶対5000は行かないけど。

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

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

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

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

149:DXスレの417
02/05/07 14:31
こんなところにネトゲスレが…。
あちらでは少しスレ違いな雰囲気があったのでこちらで質問させてください。
スレリンク(gamedev板:417番)

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

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

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

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

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

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

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

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

>>147
 そうしましょう。

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

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

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

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

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

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

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

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

160:416(HSP) ◆HoSW/FCI
02/05/08 01:40
>>159
 話がVB寄りになってるので…ううん、専用スレが無い。雑談スレに移動します。
スレリンク(gamedev板:969番)

161:416(HSP) ◆HoSW/FCI
02/05/08 02:16
 えーっと、使用ポートが2345になっていますが、
URLリンク(www.iana.org)

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

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

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

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

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

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

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

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

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

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

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

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

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

↓このスレでも100-くらいから真面目に話し合ってたみたい(過去形)
スレリンク(gamedev板)

168:130 ◆v3R1XL8M
02/05/09 00:06
あの、顔出しついでに質問なんですが、

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

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


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

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

170:130 ◆v3R1XL8M
02/05/09 01:53
はい、数値はあくまで仮定です。(笑

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


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

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

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

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

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

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

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

こんなんでわかるかな?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

182:416(HSP) ◆HoSW/FCI
02/05/14 05:49 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 7TFNrLEk
>>180
 実験してなんぼのフリーなネットゲームですしね。

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

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

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

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

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

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

188:名前は開発中のものです。
02/05/14 16:46
416ウザイ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

197:ゴルメガ
02/05/15 18:26 pu341VSY
キョウーハ夜七時~夜10時

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

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

200:416(HSP) ◆HoSW/FCI
02/05/16 07:55
 TCPとUDPの違い

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

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

201:416(HSP) ◆HoSW/FCI
02/05/17 05:02
 FF11online(関連のスレ)を眺めつつ思ったこと。

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

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

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

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

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

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

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

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

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

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

207:130 ◆v3R1XL8M
02/05/22 18:56
10H例外、検索してみました。
URLリンク(www.google.co.jp)

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

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

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

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

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

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

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

213:130 ◆v3R1XL8M
02/05/23 21:14
>>212
ごめんなさいヽ(´ー`)ノ

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

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

215:416(HSP) ◆HoSW/FCI
02/05/24 06:23
■立ち上げ時
「[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:名前は開発中のものです。
02/05/24 07:45
横から失礼。
ゲートサーバーはcgiじゃなくて専用で立てた方が良いと思うよ。
1~遅くても5分感覚でpingとばして生存確認しないとダメ

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

218:216
02/05/24 08:55
cgiによる生存確認の問題点を2つ

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

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

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

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

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

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

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

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

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

225:130 ◆v3R1XL8M
02/05/28 01:26
>>224
それで、クライアントは

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

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

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

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

228:361(C++/VB) ◆fiQMk5WM
02/06/03 00:05 NHJSjnb2
URLリンク(www.geocities.co.jp)
まぁじりじりですが作ってますよってことで。
ソースも出したほうがいいかな。

229:130 ◆v3R1XL8M
02/06/03 01:26
361サソお疲れ様です。動きました~。

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

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

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

231:416(HSP) ◆HoSW/FCI
02/06/03 09:31
 (・∀・)ウゴイター

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

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

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

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

236:名前は開発中のものです。
03/09/15 15:34 nCwzLArB
3Dチャットが絶滅の危機・・・。
URLリンク(www.tecnet.or.jp)
リンク集、ほとんどがリンク切れ。リムチャットも20日に閉鎖。



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








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

俺らでネトゲ作ろうぜ
スレリンク(mmo板)l50

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

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

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

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

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

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

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

242:名前は開発中のものです。
05/06/23 14:31:36 Fji3AkjB
リネやるならリネⅡのエリカきなさい!
いろいろ芝居高いが…

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


244:名前は開発中のものです。
05/06/23 18:04:11 WnRRk4RN
句点と読点の使い分けが出来ないのは何故ですか?

245:親父のストレス
05/06/23 18:27:50 fyyqAibV
馬鹿ですからです^^;
お恥ずかしい

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

247:親父のストレス
05/06/23 19:23:42 fyyqAibV
そうなんですか、でも暇だから何かやってみたい気持ちもあります。
前は、無料の自作ゲームを利用させてもらいましたけど、すぐ終わってしまうのでね。
やっぱり、いいネットゲームはないですかね?。

248:名前は開発中のものです。
05/06/23 19:51:09 JdE+wNXu
じゃあ参考までにROでも紹介しておこうか。

要求スペック:非常に低い。ノートですら出来る
中毒性:かなり高い、ヘタすると社会復帰不可能
雰囲気:基本マターリ
人間関係:馴れ合い重視、ほとんど内輪でしか話さない
運営:期待するだけ無駄

取り敢えず話相手が見つかれば延々とだべっていられるが
ダンジョン等は、必死過ぎる人や不正ツールを使ってる人等のせいで雰囲気最悪に。

249:親父のストレス
05/06/23 20:00:26 fyyqAibV
そうなんですか、ひどいもんですね。
リネージュとかも中国人とか多くて、荒れてますよね。
運営とはRMTですかね?ラグナはかなり多いですよね、オークションとかかなり
RMTで売ってますし^^;
ラグナロクは体験で一回やりましたが、いいものではなかったので
控えさせていただきます。


250:名前は開発中のものです。
05/06/23 20:49:03 o3/m4z/5
>>249
結構ネトゲをご存知の様に思われるのですが
これから始めるのならば、夏にβ開始するECOなんてどうでしょ?
キャラが可愛いので期待してる。

251:名前は開発中のものです。
05/06/24 08:10:59 +VGmvTCi
エリカに来てよ
メモリは1G以上あれば最初の起動も一分くらいだしw

252:親父のストレス
05/06/26 04:55:47 H3WOp7VX
結構ネットゲーご存知です!w
リネ2ですか、前やってみたけど重かったです;;。
ECOとは何でしょう?、ネットゲーやってても仲間居ないと楽しくないんですよね
エリカサーバいければ行きます~(世話してくれるならw

253:名前は開発中のものです。
05/10/13 18:02:25 YZXBM/4N
有用なスレを発見したので居座らさせていただきます

254:名前は開発中のものです。
05/10/14 02:46:39 L0hsCBK7
よく見たら廃墟でした^^;

255:名前は開発中のものです。
05/12/03 23:58:32 tfmuUXZr
残念、一月半書き込みのないのか

ここを俺の落書き帳にするか
とりあえずWinsockから初めてみるぜ

256:名前は開発中のものです。
05/12/04 01:40:54 mGHr5pbm
ふーむ、要するに初期化して接続すれば、あとは送受信するだけか。
で、最後に終了処理をすると。一見簡単そうだけどなー、そうじゃないんだろうな。

んで、同期と非同期があると。とりあえず同期で行ってみるか。

257:名前は開発中のものです。
05/12/05 00:10:22 reAI0IQh
同期でいくためのマルチスレッド用に、Boostを触ってみる
現在コンパイル中。既に一時間経過…長いな…

258:名前は開発中のものです。
05/12/10 04:30:42 RZwoPeBl
俺も落書きしておく

ブレブレオンライン的なゲームを構想中
通信関係は頭の中では動いてる、後は3DとWinプログラミングの勉強

手始めにHSPでP2Pの2Dアクションを製作し通信ゲームのあらかたを知った
ローカルではそこそこの評価を得る、ゲームシステムの構想は得意だ

リアルとの時間もあるのでいつになるかわからないが、
5年後か10年後か、もっと早いか作らないかもしれない
もし実現できた暁には今の馴れ合いMMOは一部を除いて淘汰されるだろう


と書いておくことである程度モチベーションを確保


259:名前は開発中のものです。
06/08/06 15:15:12 GDaOHyUH
DirectPlayってどうなん?
既存のライブラリって正直チートされやすい気がするんだが。
使ってる香具師おるんかいな。

人がいなそうなんで一応age

260:名前は開発中のものです。
06/08/06 19:21:45 +z6nHg86
自分の場合は1週間でネットのライブラリ依存部分を書こうとして、
DirectPlayを弄り始めたんだけど、LANの調子が悪くなって、
家族のPCがネット接続が出来なくなる問題が発生して難航した。
そうやって5日間を浪費した後、WinSockに手を出したら2日で完了。
すべて計画どおり。

チートに関しては↓の偉かったりエロかったりする人にまかせた。

261:名前は開発中のものです。
06/08/07 18:31:58 kzTE28AN
抗解析能力は、Playだとたしかパケットにデフォルトで暗号化掛かってるから
パケットエディタ系には強いのかね。
まぁ暗号化なんてすぐ自作できるだろうが。

どっち使おうとクライアント処理をなくして、
パケットの整合性を鯖でちゃんと確認すれば大丈夫だとは思うよ。
てかそれやらないと、リバースエンジニアには何やっても勝てないキガス

俺は人の作ったライブラリって信用できないたちだから
クレジットとかやるなら自己責任でちゃんと作った方がいいと思ふ。

262:名前は開発中のものです。
06/08/10 13:40:30 4EsAA3Oe
ネットゲーマジで作るの?

263:名前は開発中のものです。
06/08/11 11:18:16 9MWdwnex
質問です
ネトゲで、ポート開放する必要があるものとないものの通信の差は何なんでしょうか?
アホな質問かもしれないけれど教えてください
お願いします

264:名前は開発中のものです。
06/08/11 21:45:59 fg/MOWGF
ポート待ちさせたいならポート空けないとだめ。

265:名前は開発中のものです。
06/08/11 22:02:47 3hBKR2pM
WinSockでは…

サーバーの機能を使う場合は、ポート開ける。
この場合は不特定の相手から通信を待ち受けることができる。

クライアントの機能だけなら、ポート開ける必要は無い。

だからポートを開けるのはサーバーの機能を使う場合。
開けないのはどこかにサーバーが有る場合。
ゲームによっては自身がサーバー兼クライアントな事もあるのが…

266:263
06/08/11 23:23:00 tSrXJWV7
>>264-265
解説ありがとうございました
とても分かりやすかったです

267:芋娘
07/08/30 13:59:07 Up22jIzz
よろww

268:名前は開発中のものです。
09/02/28 00:39:41 xYgG79o2


269:名前は開発中のものです。
09/12/10 00:22:17 mMLW3axY
いもこ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch