MMORPGをHSPで作りたいな
■ このスレッドは過去ログ倉庫に格納されています
0001FAN
04/05/11 11:12ID:Ky5hy7V50635107 ◆a6JcKaYOUI
2005/10/09(日) 12:35:57ID:VBscmiicあーその流行に乗っちゃった人です
Athlon64 X2 3800+ 2GHz
Windows XP Pro x64
エクスプローラのエクステンションが全滅
ドライバー類も全滅_| ̄|○
0636911 ◆RfGLxICaUo
2005/10/19(水) 16:18:11ID:t74yEUwu今更ですが…
よく考えたらPenVはデュアルコア対応だった orz
そして、そのスペックはなんじゃらほいです。
あ〜PCこの頃つけなくなった。
昔は同人やらでうんせこらせ使ってたけどなんだかなぁ。
0637名前は開発中のものです。
2005/10/19(水) 18:56:54ID:DCTr+JyWいまも15禁でうんせこらせしてるものとばかり…
0638911 ◆RfGLxICaUo
2005/10/21(金) 11:07:14ID:Bp+litmi同人ゲーム製作って疲れるけど面白いです。
見返りとか将来考えたらこんなことしてる場合かと…ギガンテ
0639名前は開発中のものです。
2005/10/24(月) 22:26:53ID:lLFO9uRnプログラムはBASIC&アセンブラ(Z80CPU)以来なのでブランクありすぎですが、
先日、上司にVB覚えてデータ処理プログラム組んでくれとか無茶言われてしまい、
とりあえず逆らってHSP使おうと思ってます。
それでたまたまこのスレ知ったんですが、HPは閉鎖ですか?
0640名前は開発中のものです。
2005/10/24(月) 22:32:13ID:lLFO9uRn>見返りとか将来考えたらこんなことしてる場合かと…ギガンテ
趣味って大抵役にたたないもんでしょ
0641名前は開発中のものです。
2005/10/24(月) 22:56:11ID:m04zowX4同人サークルでもやってるのかと思ってた。
>>639
素直にVB使った方が良いと思う。
HSPだとコントロールとその配置に手こずる
まあ、データ処理の内容によるけど…
0642639
2005/10/24(月) 23:13:14ID:lLFO9uRnHSPの仕様を(ほんのさわりですが)見た感じだとボタン配置その他、
全て座標で指定する方式みたいですね
後々の機能追加などを考えた場合はVBの方が楽だと思いますが、
HSPを選んだのは、それと同時進行で趣味プログラムもやりたかったからです
(BASIC使ってた頃はゲームつくるのが好きだったので)
そ れ に 金 が な い
とりあえず仕事とは無関係の通信関係の勉強からスタート予定
0643名前は開発中のものです。
2005/10/25(火) 01:00:27ID:726uCc60VBの購入費を上司にせびる訳にはいかんのですか?
ライセンスの関係で
会社のPCにインスコしたら趣味には使えなくなるかも知れないけど。
0644639
2005/10/25(火) 22:20:29ID:GhNPsxW2でもさすがにそれを家のPCにインスコしちゃぁまずいだろうし
スレ違いになってきそうなのでこの話題は終了
0645639
2005/10/25(火) 22:44:04ID:GhNPsxW2AMdplay pluginとpcbnet pluginを発見
どちらも通信関係のpluginですね
ぱっと見ただけでですが、ゲーム作成という観点からはAMdplay、
細かく制御できそうなのはpcbnetって印象をいけました。
さてどちらを採用しようか。。。
0646639
2005/10/25(火) 23:43:42ID:GhNPsxW2といってもセッション開始まで;
次回はクライアント認証の勉強
0647911 ◆RfGLxICaUo
2005/10/26(水) 04:34:24ID:bEW+u/AV認証、移動までは終わってる内容になってるはずです。
PCBnet2がお薦めです。
AMdplayはDirectX9互換問題とかサポート打ち切りやらでお薦めできません。
0648639
2005/10/26(水) 23:31:03ID:P/Ey5tjAな、なんですとーorz
素直にpcbnet2使ってみました。
とりあえずTCPで
サーバ
接続待機→要求確認→受け入れ→クライアントからの文字列受信→表示
クライアント
接続要求→接続判断→サーバに文字列送信
まで組んでみました。
しかしエラーがorz
試行錯誤の末、どうもソケットで間違いをしていた事が判明、無事成功しました
いまのとこ順調かな〜
0649639
2005/10/26(水) 23:36:05ID:P/Ey5tjA今回のは一応想定として、ネトゲの
1 文字列にクライアントバージョンを入れサーバに送信
2 サーバでバージョン確認
のひな型のつもり
ここでバージョンが古ければパッチor新しいクライアントのダウンロードを促すメッセージ表示
でも多分新クライアントをダウソ汁!になりそう;
0651名前は開発中のものです。
2005/10/28(金) 00:18:40ID:pqeoafa00652911 ◆RfGLxICaUo
2005/10/28(金) 05:20:21ID:cMKwNT00でも、速度面ではまだ改善の余地ありです。
素直にC++に移行しようかと思いましたが、ここまできたらやり切ろうと思います。
一部で配布開始してるので探して見てください。諸事情で当URLは更新できません。
0653名前は開発中のものです。
2005/10/28(金) 05:32:06ID:H0Sored70654名前は開発中のものです。
2005/10/28(金) 19:36:41ID:pqeoafa0楽しみにしています
がんば〜
0655名前は開発中のものです。
2005/10/29(土) 00:27:01ID:fyTsyDU40656911 ◆RfGLxICaUo
2005/10/29(土) 04:16:03ID:k6MIvcDd変数BUFの内容が隣に漏れてる…システムダウンするし。
(10人以上アクセスすると段々ずれてパケットが…)
0657911 ◆RfGLxICaUo
2005/10/29(土) 05:14:27ID:k6MIvcDdで、HSPで作った同期テスト用ファイル。
中身はモジュール本体抜いたセットです。
・クライアント本体(gamedev.ddo.jp固定)
・鯖本体(127.0.0.1)
・クライアント本体(127.0.0.1)
・鯖ソース
・栗ソース
・pcbnet2プラグイン
まだ、16人までしか確認してません。
是非ご参考にしてください。
0658名前は開発中のものです。
2005/10/29(土) 05:44:07ID:aFnxAvgU0659名前は開発中のものです。
2005/10/29(土) 09:24:05ID:3bkSav340660639
2005/10/29(土) 10:23:36ID:Qp4orUM0私もサーバ、クライアント共にHSPで作る予定です
>>648でつくったものは動作できたのですが、いま複数のログインに対しての
処理を組み直し中です
主に会社の昼休みを利用してのプログラミングなのでなかなか進まないですがorz
0661名前は開発中のものです。
2005/10/29(土) 10:25:38ID:Agzb4EyKhttp://pc8.2ch.net/test/read.cgi/tech/1125422557/72
とか。
0662名前は開発中のものです。
2005/10/29(土) 10:48:16ID:WSPsPKn/10蔵以降の座標がずれてる。
ttp://gamdev.org/up/img/3601.png
0663911 ◆RfGLxICaUo
2005/10/29(土) 16:38:24ID:k6MIvcDd0664911 ◆RfGLxICaUo
2005/10/29(土) 17:36:01ID:k6MIvcDdHSPのメモリーとかポインタ見てみたのですが特に問題なしです。(多分;
で、いちかばちかクライアント側の反応速度を50ms→200msに変更。鯖側を1msに変更。
すると、単純に100ms=10~12人位,200ms=20~24人位となってました。
反応速度を落とせば落とすほど綺麗に通信できました。
64人なら600ms〜700ms程度まで下げる必要があるっぽいです。
以上、ずらずらすいませんでした。
0665名前は開発中のものです。
2005/10/29(土) 19:14:29ID:TzwwxC8ctcpcountでバッファサイズ取得して、その後tcpgetしてるよね。
tcpgetって1行受信だけどバッファの中身が1行に満たない場合ってブロックするんだっけ?
ブロックしないでエラーとして返ってくるのなら、その辺の処理はいらないのかな?
もうずっとpcbnetもHSPも使ってないので変なこと言ってたらごめん。
0666911 ◆RfGLxICaUo
2005/10/29(土) 21:01:12ID:k6MIvcDd以前の仕様通りtcpgetじゃだめですね。かなり思い当たる部分あります。
ありがとうございます。
今テーブルから作ってるので、それ含めて見直していきます。
でわでわ。
0667639
2005/10/30(日) 02:32:20ID:rLS1KkDw同一port内で複数のsocketを扱うことは可能でしょうか
どうもtcpmakeでうまくいかなくてorz
0668名前は開発中のものです。
2005/10/30(日) 03:55:51ID:WrgJVw2L0669911 ◆RfGLxICaUo
2005/10/30(日) 05:49:13ID:Hhkn49VLTCPサーバーなら1ポート=1soketです。
UDPはどっちもサーバー仕様なので1ポート=1soketです。
0670911 ◆RfGLxICaUo
2005/10/30(日) 05:51:49ID:Hhkn49VLUDPでもマルチセクション(?)だか何だかは同一ポートで複数起動できます。
難点はルーター越えできない事です。(設定とか変えれば平気なのかな?)
0671名前は開発中のものです。
2005/10/30(日) 10:17:47ID:PXHqFkamスクショキタ━━━━(゚∀゚)━━━━ッ!!
ttp://junpipo.hp.infoseek.co.jp/cgi-bin/updown/updown/ss.jpg
0673101 ◆VhiWHt2b1s
2005/10/31(月) 22:58:10ID:Ma1dW7hc久しぶりの更新です。
以前とはかなり見た目が変わりましたw
まだログイン画面のみで、ログインとかもできないですが見てください
更新情報を自動ダウンロードして表示するようにしました。
http://create-mmo.ddo.jp/game.zip
0674639
2005/11/01(火) 01:49:09ID:wDSCUIPX>>672で作ったものは非同期型で、どんどんawait短くしていくとsocketが行方不明になってしまい
やばげなのでサーバから同期信号だしてクライアントを完全に同期させることにしてみました
結果
おっそいorz
クライアントの数を増やしていくと泣けてきます
今後の予定
UDPに組替え
0675911 ◆RfGLxICaUo
2005/11/01(火) 03:27:10ID:8gYo7wW/HSPで操作するのはお薦めしません。
(LANのクラスタ通信は○ WANの通信はプロトコル設計が大変)
同期が遅いのはパケットの配信方法に問題あるんだと思います。
私もつい昨日まで同じ現象で悩んでましたが…調べたら分かりました。
要は
ユーザー毎のデータをユーザー毎に送る ×
ユーザー毎のデータをユーザー毎にパケットに送る、そしてユーザー毎に送る ○
です。
まだ実験段階ですが…かなり負荷減ります。
要は効率よくするためにキューイング(溜め込む)が必要みたいです。
まだ、書き途中ですがモジュール公開しました。
参考に見てください。でわ。
0676101 ◆VhiWHt2b1s
2005/11/01(火) 22:52:41ID:ksbqZlXjなんとなく、かなりハイスピードで作ったのでバグあるかも;
http://create-mmo.ddo.jp/game.zip
0677911 ◆RfGLxICaUo
2005/11/02(水) 00:21:25ID:lTXUMxje・ライブラリ(DLL)が足りないと注意
・srexが読み込めないと注意
でした。がんばって〜!
FTP接続ならPCBnet2から出来ますよ…(ポートとプロトコル合わせれば)
0678101 ◆VhiWHt2b1s
2005/11/02(水) 00:36:20ID:pFnJcuDRちゃんと入ってたけどなぁ〜
0679名前は開発中のものです。
2005/11/02(水) 02:37:30ID:+JSYRkgF0680名前は開発中のものです。
2005/11/02(水) 02:38:33ID:+JSYRkgF0682101 ◆VhiWHt2b1s
2005/11/02(水) 13:22:34ID:R2dqpvpJ圧縮ファイルを解凍した時にフォルダ内にDLLあるはずですけど・・・
0683名前は開発中のものです。
2005/11/02(水) 19:47:01ID:XsJ7JN/zKERNEL32.DLLをコピーして
KERNEL32にリネームしたら起動出来た。
0684101 ◆VhiWHt2b1s
2005/11/02(水) 20:28:09ID:R2dqpvpJKERNEL32.DLLなんて使ってないと思うけどなぁ
ちょっとバグの原因の可能性があるところを修正してうpしました。
昨日のソフトから自動ダウンロードできるはずです
0685名前は開発中のものです。
2005/11/02(水) 21:12:28ID:XsJ7JN/zんで MMOver0.1c .exe も相変わらず kernel32 が無いと言われます。
リネームしたkernel32を用意すると起動できます。
ちなみに環境はwin2000 SP4です
0687名前は開発中のものです。
2005/11/02(水) 21:42:55ID:JEi/ejHa0688101 ◆VhiWHt2b1s
2005/11/02(水) 22:35:03ID:R2dqpvpJ確認ありがとです。
俺のパソコンもWinXP SP2なんですけど、問題なくできるんで
環境によるみたいですね;
でも、どちらでも一応起動できるみたいなのでよかったです。
パッチはとりあえずこのままにしておいて、次はログインできる所くらいまで作ろうと思います。
アカウント登録はソフトから登録するか、HPから登録するか、のどちらがいいですかね?
0689639
2005/11/02(水) 23:08:21ID:1+tVluC9提言ありがとうございます
私のプログラムはまだサーバでログインネーム取得・認証と切断監視だけ
まだアカウントのダブりチェックもパスワードも無し
クライアントで同期信号取得・サーバへの接続監視だけです
最初非同期で組んでいたのであちこちでチェックかけてまして、
無駄なwaitもあったので、そのせいで遅かったようです。お恥ずかしい
今は動作を確認しながらシェイプアップしているところです
同期についてはクライアント側をサーバにあわせているだけです
基本的な部分なので、あまりあせらずじっくりやっていきますね
ただ今後のやるべきことを考えると、負荷をサーバとクライアントのどちらに
割り振るかを考える必要があるなと思ってます
これは想定される接続人数や規模によって変わってくると思ってます
大規模なものならログイン鯖・パッチ鯖・メイン鯖をそれぞれ別PCで起動させて
同期したほうがいいのでしょうが、私の想定する規模は50人以下
たぶん20人前後になるだろうなと思います。
その場合はせっかく鯖をわけてもそのメリットがないと思われるので、
その規模に最適化された処理を考えています
0690639
2005/11/02(水) 23:10:14ID:1+tVluC9みなさんがんばってくださいね
0691名前は開発中のものです。
2005/11/03(木) 01:42:41ID:g3SGgzDQ「ソフトから登録」の方が抵抗が無くていいんじゃないでしょうか?
あと、おそらく>>685の方がエラーが出てるのは、
*使用しているDLLの仕様上の問題(内部でのDLLのコール方法等)
*OSの管理するパス問題
*呼び出しているAPIの問題(XP依存とか呼び出し規約の違いとか)
あたりが怪しい気がします。
0692639
2005/11/04(金) 21:24:51ID:FmXnGpcMHSP自体の使い方を覚えながら通信関係を作るという大風呂敷広げてしまった私
button goto *Labelをloopの中で使ってました・・・
なんでエラーでるのかやっとわかった私・・・
それをなおしてサーバーawait1にしたらloopカウンタぎゅんぎゅんまわるまわる
必要に応じてコマンドリファレンスでコマンドとか覚えていってるから効率悪いけど、
プログラムは面白いですね
そろそろ同期以外にサーバ・クライアント間で通信処理をぽつぽつ始めました
意図してなかったのですが、わざとクライアントに負荷かけてラグの状態をつくってみたら、
ラグが解消したとたん一気にパケットがクライアントにながれこんで早送り状態
リネージュの処理を思い出しました。
もしかして似たような処理をしてるのかなぁ
0693639
2005/11/04(金) 21:27:16ID:FmXnGpcMある意味ここにカキコしてモチベーション維持はかってますのでお許しをorz
0694名前は開発中のものです。
2005/11/04(金) 22:44:18ID:/14blWr70695名前は開発中のものです。
2005/11/04(金) 22:45:06ID:eOYz9FPq0696639
2005/11/05(土) 23:48:01ID:VlimTCW7パケットがどんどんたまっていってしまい
オーバーフローしてしまう現象に悩みました。
変数にメモリ割り当てすればいいだけだったorz
これでひとつHSPについておりこうさんになった
進捗状況
1 ログイン処理
まだ名前だけ・ダブり判定なし(通信動作テスト時簡易的な名前で複数クライアントを起動するのに面倒なので)
2 同期など
サーバから同期信号以外のデータ(ランダムな数値・簡単なメッセージ)も受信・解析し表示まで
(クライアント数20まで確認)
クライアント側のラグ対策
3 ログアウト処理
クライアントを強制切断してもサーバに一定時間残して置く処理導入
今後の予定(優先順位順)
1 データ(数値・メッセージ共)のちゃんとした(?)処理(現在は暫定的な処理)
2 サーバにデータを送信しサーバで解析・処理
3 X,Y座標を利用した移動処理
0697639
2005/11/05(土) 23:53:44ID:VlimTCW7ラグ対策といっても受信バッファがたまってしまった場合に
それらを一気に処理するだけです
みためには以前かいたけどバッファがなくなるまで早送りみたいになるだけdす
0698101 ◆VhiWHt2b1s
2005/11/06(日) 15:08:45ID:aZZw0zhYダウンロードして試してください。
以前と同じような方法で処理しているので
また、ログインできないバグ出るかも;
0699名前は開発中のものです。
2005/11/06(日) 19:54:31ID:w73OdDpw0700639
2005/11/06(日) 20:57:37ID:ETFOocGZ進捗状況
クライアントからデータ送信・サーバで解析・処理 OK
クライアント側でX,Y座標をランダムに増減させてサーバで管理 OK
サーバからメッセージ送信・クライアントで表示 OK
今後の予定
クライアントのX,Y座標を他クライアントに送信・管理
クライアントからメッセージ送信・サーバから他クライアントに送信
0701101 ◆VhiWHt2b1s
2005/11/06(日) 21:18:42ID:aZZw0zhY書き忘れてたけど、IDとパスの両方を6文字以上入力しないとボタン押せませんので;
ログインと新規作成が特に問題なかったら、
次は
クライアントから送信された座標を他クライアントに送信
を出来るようにしたいですね
0702名前は開発中のものです。
2005/11/06(日) 22:38:10ID:5AL+nx1Z0704名前は開発中のものです。
2005/11/06(日) 23:58:00ID:5AL+nx1Zが、まあ完成するかどうかはさっぱり分かりませんね(´д`)
0705名前は開発中のものです。
2005/11/07(月) 01:05:34ID:RVCrkauP新規作成、ログイン共に正常に動作しました。
WinXP SP2でそ。
>>704
…某モンスターゲームの人…?
0706101 ◆VhiWHt2b1s
2005/11/07(月) 01:08:55ID:bBSWEgcV確認ありがとです。
他の方も問題なかったかな
ログイン部分はOKみたいなので次に進みたいと思います。
でも今日は寝る。
サバ立てておきますね
0707107 ◆a6JcKaYOUI
2005/11/07(月) 22:19:25ID:T8ZXdTCo新規作成、ログイン共に正常に動作しました。
Windows XP Pro x64 SP1 でつ
テスト中に接続に失敗したんだけど、鯖落とした?
0708101 ◆VhiWHt2b1s
2005/11/07(月) 23:06:48ID:bBSWEgcV確認ありがとです。
作り続けてたんでサバ落としたり立てたりしてたんです。
どうやらログイン・新規作成は問題ないみたいですな
最新版うpしました
パッチが効かない方は下からどうぞ
http://create-mmo.ddo.jp/mmo.zip
パッチはいつもどうり下です
http://create-mmo.ddo.jp/game.zip
0709107 ◆a6JcKaYOUI
2005/11/07(月) 23:48:57ID:T8ZXdTCoテストしてみました。
1.なんか、ログインボタンの効きが悪い気がします
具体的には長く押していないとログイン出来ないです
ボーリングではなくOnClickでやっていますか?
2.多重ログインはチェックしていないですか?
試したところでは4クライアントで同じIDを使いログインできました。
3.あと、座標とともにログインの有無も表示できていたほうが
デバッグにはいいかなと思いました。
たとえば、ログオンの有無で文字の色を変えるとか
以上、明日もあるのでもうすぐ寝まつ
0710101 ◆VhiWHt2b1s
2005/11/08(火) 00:04:21ID:bBSWEgcV1.ログイン画面の更新情報が、かなり重たいみたいで動作が悪くなってるみたいです;
OnClickではなく普通にStickでやってますよ
2.今のところは多重ログインをチェックしてないです。
次回までには実装しておきたいと思います。
3.作っているときにそう思ったんですが、「これでいいかな」って感じでうpしちゃいましたw
文字変えしてみようかな
0711107 ◆a6JcKaYOUI
2005/11/08(火) 00:17:20ID:JT+aXTx6ポーリングだった
気が付け盛れorz
0712名前は開発中のものです。
2005/11/08(火) 00:52:47ID:O5Y+fAi/パッチャーで接続中に、進行状況が分かると安心です。
0713101 ◆VhiWHt2b1s
2005/11/08(火) 01:11:07ID:ZboO11Gd進行状況を表示できるようにしたいと思ってるんですが、実装が難しかったような気がしたからこの状態になってるんです。
そのうち改善されると思いますので、それまでは今のままで勘弁してください;
ログインしてる方の文字色を変更しました。
最新版うpしてあります。
0714101 ◆VhiWHt2b1s
2005/11/09(水) 00:54:14ID:efly312Z変更点
・マウスカーソルの位置にあわせてマスを表示するようにした
・他のプレイヤーのいる座標の上にカーソルを乗せると文字列表示
です。
これは意外と簡単に実装できました。
3Dで作る予定なのに2Dっぽくなっちゃってるw
0715639
2005/11/13(日) 01:09:23ID:V3ipI0edX,Y座標をキー入力で変化
サーバでログイン・ログオフ(一定カウント数waitしてから切断)
クライアント側で他クライアントのX,Y座標管理
まで出来ました。
付け足しながら組んでいったのでソースがきたなくなり
最初から組みなおそうとしたんですがうまくいかなくなってしまった(笑
結局汚いソースのまま;
今後の予定
チャット機能追加の為にinput処理とテキスト表示の「コマンドを覚える」orz
グラフィック関係の「コマンドを覚える」orz
これが実装されればとりあえずアバターで動き回りながらチャット出来ることになります
ここまでいったらいったん公開したいなぁ。
まだ鯖は立てるつもりがないので鯖とクライアントを公開(コンパイルしたものですが)
したいとおもってます
いいあぷろだないですかね;
0716639
2005/11/14(月) 01:13:20ID:o6g1tXsYクライアントからアカウント(兼キャラネーム)・パスワード登録 実装
サーバでアカウント管理 実装
アカウント多重ログインチェック 実装
ログイン・ログアウト時にサーバ側にあるX,Y座標等のデータ読み書き 実装
今後の予定
知らないコマンドを覚える事orz
HSPでのプログラム第一弾にMMOを選ぶのは結構無謀な気がしてきました
今はデータ管理はキャラネーム・パスワードとX,Y座標だけですが
それ以外の膨大なパラメータを処理することを考えるとorz
0717639
2005/11/15(火) 00:31:22ID:D3uwfFKqアカウント新規作成用に専用サーバ作成
サーバとクライアントのバージョンチェック実装
(クライアントが古い場合、新しいバージョンのダウンロードをするように表示
アップデータとかは今のところ作成の予定無し)
今のところ自力でどうにか作ってます。
今後もがんがります。
0718名前は開発中のものです。
2005/11/15(火) 00:44:09ID:potRLfZO0719639
2005/11/17(木) 01:46:24ID:6s1jcyiF本日の進捗状況
サーバのソースの全体的な手直し
他PCが近くにいる時だけ座標データ送信 実装
MAPの仕様決定 最大100×100マスでひとつのMAP・MAP数最大100
座標データとともにMAP IDとでもいうようなものも送信
MAPデータと表示部分を作ればとりあえず動きまわれる所までという感じでしょうか
でもそれは後回し
チャット機能も後回し
今後の予定
もう一度ソースの見直し・不具合の発見・対処
NPC移動処理実装
疲れたorz 寝ます ノシ
0720639
2005/11/19(土) 14:45:22ID:65jC9aVL送受信データの見直し
最近は送受信データを監視しては変更の繰り返しです
クライアント数が少ない時は効率的だと思った方式が、数が増えてくると逆にデータ量が増えてしまったり、面白いです
グラフィック関係は最後にする予定
見た目から作ったほうがモチベーション維持できると思いますが、あとの楽しみに取っておく予定です
0721639
2005/11/19(土) 14:46:00ID:65jC9aVL送受信データの見直し
最近は送受信データを監視しては変更の繰り返しです
クライアント数が少ない時は効率的だと思った方式が、数が増えてくると逆にデータ量が増えてしまったり、面白いです
グラフィック関係は最後にする予定
見た目から作ったほうがモチベーション維持できると思いますが、あとの楽しみに取っておく予定です
0722639
2005/11/19(土) 14:48:17ID:65jC9aVL0723名前は開発中のものです。
2005/11/19(土) 15:03:50ID:v5gQrmiI0724名前は開発中のものです。
2005/11/19(土) 15:04:31ID:+/gTJIO70725639
2005/11/22(火) 01:25:55ID:2xgRvk/Sひたすら送受信データを眺めて、調整していました。
地味な作業です。
そういえばこのスレのログ全部は見ていないなぁと思い、見てみました。
>>206こ、これは!!!このような方法があるとは!!!
>>207こ、これは!!!いまの私の方法に似ている!!
話は少しずれますが、サーバのメインloopのwait時間を短くすると、
送受信データ(とくにクライアントへの同期信号)処理が
おいつかなくて、かといって長くすると全体的にもっさりになってしまい
悩んでました。
メインloopをカウントして、一定の値になった時だけ同期信号を出して、
クライアントと通信し、それ以外は処理速度を稼ぐ為にwait時間を短くすれば
いいような気がしたのでやってみました。
というわけでawait1でぎゅんぎゅん回しながらクライアントへはぽつぽつと
同期信号を出す実験開始
いまのとこいい感じ。
つかもっとはやく気づけよ俺orz
寝ます ノシ
0726639
2005/11/22(火) 01:33:49ID:2xgRvk/Sもしくは同期信号を出すタイミングをクライアントごとにずらすとか
これだと表示したときに変かなぁ・・・でも負荷減りそうだなぁ・・・
今度実験してみます
寝ます ノシ
0727名前は開発中のものです。
2005/11/22(火) 01:54:56ID:ukDHpGmf0728639
2005/11/23(水) 01:38:30ID:9+oEd7uQ気になっていることがあります
会社のPCと自宅のPCで動作速度に大きな差があるのです
CPUは似たようなものですし、メモリも同程度。
しかし会社のPCだとパフォーマンスがかなり落ちます
謎です
話はかわりますが色々やってみて思ったこと
座標移動処理で差分だけ送受信だとなんらかの原因でデータの欠損等が
発生した場合に表示と実際の座標位置がどんどんずれる予感なので座標データそのものを
やりとりしたほうが確実ぽい
TCP通信は予想よりかなり速度が遅かった気配
やはり同期させたほうがなにかと好都合な気がする神のお告げ
データの信頼性と速度は反比例する予感
進捗状況
サーバを手動でシャットダウンさせる場合
オンラインのクライアントのデータをサーバ側に保存する機能の実装
今後の予定
大まかな全体の仕様の考察
そろそろこれを決めないと先に進めない予感
寝ます ノシ
0729名前は開発中のものです。
2005/11/23(水) 12:55:46ID:jBwie6qc> スレを私物化ぎみですみませんですorz
別に問題ないと思うよ。製作している人のためのスレだし。
> しかし会社のPCだとパフォーマンスがかなり落ちます
グラフィックの問題じゃないかな
ビジネス用途のPCは、ビデオカードが貧弱だから
ゲームのようにグラフィック処理に負荷がかかる処理には弱いと思う。
> TCP通信は予想よりかなり速度が遅かった気配
座標データの様に、バンバンやりとりするものなら
UDPの方が処理が軽くて良いよ。
ただし、届く順序が前後する場合があるので、
そこを考慮する必要があるけど。
0730639
2005/11/23(水) 23:05:20ID:9+oEd7uQうーん会社のPCには自宅よりランク上のグラボはいってます・・・
もっとも画面にはx,y座標や通信データの羅列ぐらいしか表示されていなかったです・・・
UDPについてはもう少し勉強してからじゃないと頭が混乱しそうです;
進捗状況
仮のmapデータ作成。読込、表示、他クライアントの座標を元に表示 実装(2D表示です)
ドット絵とマップエディターについてはフリー素材でお茶を濁しました
壁判定やイベントフラグについては未実装です
でもこれで複数がmapの中を移動している様子が視覚的にわかるようにしました。
まだいらないと思って実装しなかったんですが、なんとなく区切りとして実装しました。
ちなみにまだメッセージ送受信及び表示については未実装です
最悪IRC使ってくれとかにして逃げてしまおうかと半分本気で検討中;
0731639
2005/11/24(木) 00:41:41ID:nZYOH1u3半同期タイプをテストしてみたら完全同期タイプよりレスポンスがいい・・・
しかしラグった場合にまわりにいたPCがワープする。
んーーーーしばらくテストしてみる価値ありそうです
寝ます ノシ
0732名前は開発中のものです。
2005/11/24(木) 09:48:59ID:3eKF0MRS生きてるかい
0733107 ◆a6JcKaYOUI
2005/11/24(木) 22:33:08ID:TeyNLKYgは鯖が死んでる
0734639
2005/11/25(金) 00:30:15ID:kHBDzTEC1.非同期タイプ(サーバ・クライアント共自由なタイミングで送受信)
no waitではデータがバッファにたまり処理出来ない
適当なwait時間を設定する必要有るが調整が難しい
へたなwaitを設定するとタイミングのズレが発生し効率が悪かった
2.同期タイプその1(サーバから同期信号を一定時間で送信・クライアントはその信号がくるまで一切の処理を止めて待つ)
一定時間までサーバから送信するデータを対象クライアントごとに一つにまとめ、
同期信号にデータ(自分及び近くにいるPCの座標その他)を付けて一気に送信
利点・サーバでクライアントからの送信タイミングを決められる
欠点・クライアントで一度に受信するデータ量が増大し、処理に時間がかかる為同期信号の間隔をあまり早く出来ない
また、その間隔の為にサーバでawaitを利用していた為、クライアント数が増えると一気にデータがくるために
サーバ側も処理が間に合わなくなった
■ このスレッドは過去ログ倉庫に格納されています