トップページgamedev
1001コメント402KB

MMORPGをHSPで作りたいな

■ このスレッドは過去ログ倉庫に格納されています
0001FAN04/05/11 11:12ID:Ky5hy7V5
とりあえず、作ってみたいんですけど参考になるサイトないですかね?
0681911 ◆RfGLxICaUo 2005/11/02(水) 05:57:16ID:lTXUMxje
>>679
そうですね。ランタイムは平気だったと思います。
0682101 ◆VhiWHt2b1s 2005/11/02(水) 13:22:34ID:R2dqpvpJ
DLL埋め込んでないですよ
圧縮ファイルを解凍した時にフォルダ内にDLLあるはずですけど・・・
0683名前は開発中のものです。2005/11/02(水) 19:47:01ID:XsJ7JN/z
MMOver0.1b .exe

KERNEL32.DLLをコピーして
KERNEL32にリネームしたら起動出来た。
0684101 ◆VhiWHt2b1s 2005/11/02(水) 20:28:09ID:R2dqpvpJ
>>683
KERNEL32.DLLなんて使ってないと思うけどなぁ

ちょっとバグの原因の可能性があるところを修正してうpしました。
昨日のソフトから自動ダウンロードできるはずです
0685名前は開発中のものです。2005/11/02(水) 21:12:28ID:XsJ7JN/z
スクリプト中で使ってなくてもHSP自体か、他のプラグインが使ってるんでわ

んで MMOver0.1c .exe も相変わらず kernel32 が無いと言われます。
リネームしたkernel32を用意すると起動できます。

ちなみに環境はwin2000 SP4です
0686101 ◆VhiWHt2b1s 2005/11/02(水) 21:18:53ID:R2dqpvpJ
>>685
そうですか〜
全員そのバグで起動できないのかな
0687名前は開発中のものです。2005/11/02(水) 21:42:55ID:JEi/ejHa
WinXP SP2の環境で、エラー無く起動できることを確認しますた。
0688101 ◆VhiWHt2b1s 2005/11/02(水) 22:35:03ID:R2dqpvpJ
>>687
確認ありがとです。
俺のパソコンもWinXP SP2なんですけど、問題なくできるんで
環境によるみたいですね;
でも、どちらでも一応起動できるみたいなのでよかったです。
パッチはとりあえずこのままにしておいて、次はログインできる所くらいまで作ろうと思います。
アカウント登録はソフトから登録するか、HPから登録するか、のどちらがいいですかね?
06896392005/11/02(水) 23:08:21ID:1+tVluC9
>>675
提言ありがとうございます
私のプログラムはまだサーバでログインネーム取得・認証と切断監視だけ
まだアカウントのダブりチェックもパスワードも無し
クライアントで同期信号取得・サーバへの接続監視だけです
最初非同期で組んでいたのであちこちでチェックかけてまして、
無駄なwaitもあったので、そのせいで遅かったようです。お恥ずかしい
今は動作を確認しながらシェイプアップしているところです
同期についてはクライアント側をサーバにあわせているだけです
基本的な部分なので、あまりあせらずじっくりやっていきますね
ただ今後のやるべきことを考えると、負荷をサーバとクライアントのどちらに
割り振るかを考える必要があるなと思ってます
これは想定される接続人数や規模によって変わってくると思ってます
大規模なものならログイン鯖・パッチ鯖・メイン鯖をそれぞれ別PCで起動させて
同期したほうがいいのでしょうが、私の想定する規模は50人以下
たぶん20人前後になるだろうなと思います。
その場合はせっかく鯖をわけてもそのメリットがないと思われるので、
その規模に最適化された処理を考えています
06906392005/11/02(水) 23:10:14ID:1+tVluC9
とか偉そうなこと書いちゃってますが、ぶっちゃけtry&errorでやります・・・

みなさんがんばってくださいね
0691名前は開発中のものです。2005/11/03(木) 01:42:41ID:g3SGgzDQ
>>688
「ソフトから登録」の方が抵抗が無くていいんじゃないでしょうか?

あと、おそらく>>685の方がエラーが出てるのは、
*使用しているDLLの仕様上の問題(内部でのDLLのコール方法等)
*OSの管理するパス問題
*呼び出しているAPIの問題(XP依存とか呼び出し規約の違いとか)
あたりが怪しい気がします。
06926392005/11/04(金) 21:24:51ID:FmXnGpcM
自己レス

HSP自体の使い方を覚えながら通信関係を作るという大風呂敷広げてしまった私
button goto *Labelをloopの中で使ってました・・・
なんでエラーでるのかやっとわかった私・・・
それをなおしてサーバーawait1にしたらloopカウンタぎゅんぎゅんまわるまわる
必要に応じてコマンドリファレンスでコマンドとか覚えていってるから効率悪いけど、
プログラムは面白いですね
そろそろ同期以外にサーバ・クライアント間で通信処理をぽつぽつ始めました
意図してなかったのですが、わざとクライアントに負荷かけてラグの状態をつくってみたら、
ラグが解消したとたん一気にパケットがクライアントにながれこんで早送り状態
リネージュの処理を思い出しました。
もしかして似たような処理をしてるのかなぁ
06936392005/11/04(金) 21:27:16ID:FmXnGpcM
毎回ゴミレスですみません

ある意味ここにカキコしてモチベーション維持はかってますのでお許しをorz
0694名前は開発中のものです。2005/11/04(金) 22:44:18ID:/14blWr7
かまわんから存分にやりたまえ
0695名前は開発中のものです。2005/11/04(金) 22:45:06ID:eOYz9FPq
人少ないしね(ノ∀`)
06966392005/11/05(土) 23:48:01ID:VlimTCW7
昨夜一晩、クライアントのウインドウをドラッグ状態にしておくと
パケットがどんどんたまっていってしまい
オーバーフローしてしまう現象に悩みました。
変数にメモリ割り当てすればいいだけだったorz
これでひとつHSPについておりこうさんになった

進捗状況
1 ログイン処理
  まだ名前だけ・ダブり判定なし(通信動作テスト時簡易的な名前で複数クライアントを起動するのに面倒なので)
2 同期など
 サーバから同期信号以外のデータ(ランダムな数値・簡単なメッセージ)も受信・解析し表示まで
 (クライアント数20まで確認)
 クライアント側のラグ対策
3 ログアウト処理
  クライアントを強制切断してもサーバに一定時間残して置く処理導入

今後の予定(優先順位順)
1 データ(数値・メッセージ共)のちゃんとした(?)処理(現在は暫定的な処理)
2 サーバにデータを送信しサーバで解析・処理
3 X,Y座標を利用した移動処理


06976392005/11/05(土) 23:53:44ID:VlimTCW7
補足

ラグ対策といっても受信バッファがたまってしまった場合に
それらを一気に処理するだけです
みためには以前かいたけどバッファがなくなるまで早送りみたいになるだけdす

0698101 ◆VhiWHt2b1s 2005/11/06(日) 15:08:45ID:aZZw0zhY
ログインと新規登録が出来るようになりました。
ダウンロードして試してください。
以前と同じような方法で処理しているので
また、ログインできないバグ出るかも;
0699名前は開発中のものです。2005/11/06(日) 19:54:31ID:w73OdDpw
みんなガンガレ
07006392005/11/06(日) 20:57:37ID:ETFOocGZ
みなさんがんばりまっしょい

進捗状況

クライアントからデータ送信・サーバで解析・処理 OK
クライアント側でX,Y座標をランダムに増減させてサーバで管理 OK
サーバからメッセージ送信・クライアントで表示 OK

今後の予定

クライアントのX,Y座標を他クライアントに送信・管理
クライアントからメッセージ送信・サーバから他クライアントに送信

0701101 ◆VhiWHt2b1s 2005/11/06(日) 21:18:42ID:aZZw0zhY
>>698
書き忘れてたけど、IDとパスの両方を6文字以上入力しないとボタン押せませんので;

ログインと新規作成が特に問題なかったら、
次は
クライアントから送信された座標を他クライアントに送信
を出来るようにしたいですね
0702名前は開発中のものです。2005/11/06(日) 22:38:10ID:5AL+nx1Z
皆ガンバレ。私もひっそり頑張る。
0703101 ◆VhiWHt2b1s 2005/11/06(日) 22:47:42ID:aZZw0zhY
>>702
なにか作ってる?
0704名前は開発中のものです。2005/11/06(日) 23:58:00ID:5AL+nx1Z
とある深部にあるスレを乗っ取ってぼそぼそやってます。
が、まあ完成するかどうかはさっぱり分かりませんね(´д`)
0705名前は開発中のものです。2005/11/07(月) 01:05:34ID:RVCrkauP
>>701
新規作成、ログイン共に正常に動作しました。
WinXP SP2でそ。

>>704
…某モンスターゲームの人…?
0706101 ◆VhiWHt2b1s 2005/11/07(月) 01:08:55ID:bBSWEgcV
>>705
確認ありがとです。
他の方も問題なかったかな
ログイン部分はOKみたいなので次に進みたいと思います。
でも今日は寝る。
サバ立てておきますね
0707107 ◆a6JcKaYOUI 2005/11/07(月) 22:19:25ID:T8ZXdTCo
>>701
新規作成、ログイン共に正常に動作しました。
Windows XP Pro x64 SP1 でつ

テスト中に接続に失敗したんだけど、鯖落とした?
0708101 ◆VhiWHt2b1s 2005/11/07(月) 23:06:48ID:bBSWEgcV
>>707
確認ありがとです。
作り続けてたんでサバ落としたり立てたりしてたんです。
どうやらログイン・新規作成は問題ないみたいですな

最新版うpしました
パッチが効かない方は下からどうぞ
http://create-mmo.ddo.jp/mmo.zip
パッチはいつもどうり下です
http://create-mmo.ddo.jp/game.zip
0709107 ◆a6JcKaYOUI 2005/11/07(月) 23:48:57ID:T8ZXdTCo
>>708
テストしてみました。

1.なんか、ログインボタンの効きが悪い気がします
具体的には長く押していないとログイン出来ないです
ボーリングではなくOnClickでやっていますか?

2.多重ログインはチェックしていないですか?
試したところでは4クライアントで同じIDを使いログインできました。

3.あと、座標とともにログインの有無も表示できていたほうが
デバッグにはいいかなと思いました。
たとえば、ログオンの有無で文字の色を変えるとか

以上、明日もあるのでもうすぐ寝まつ
0710101 ◆VhiWHt2b1s 2005/11/08(火) 00:04:21ID:bBSWEgcV
>>709
1.ログイン画面の更新情報が、かなり重たいみたいで動作が悪くなってるみたいです;
OnClickではなく普通にStickでやってますよ

2.今のところは多重ログインをチェックしてないです。
次回までには実装しておきたいと思います。

3.作っているときにそう思ったんですが、「これでいいかな」って感じでうpしちゃいましたw
文字変えしてみようかな
0711107 ◆a6JcKaYOUI 2005/11/08(火) 00:17:20ID:JT+aXTx6
ボーリングって何だよorz
ポーリングだった
気が付け盛れorz
0712名前は開発中のものです。2005/11/08(火) 00:52:47ID:O5Y+fAi/
>>710
パッチャーで接続中に、進行状況が分かると安心です。
0713101 ◆VhiWHt2b1s 2005/11/08(火) 01:11:07ID:ZboO11Gd
>>712
進行状況を表示できるようにしたいと思ってるんですが、実装が難しかったような気がしたからこの状態になってるんです。
そのうち改善されると思いますので、それまでは今のままで勘弁してください;

ログインしてる方の文字色を変更しました。
最新版うpしてあります。
0714101 ◆VhiWHt2b1s 2005/11/09(水) 00:54:14ID:efly312Z
最新版うpしました。

変更点
・マウスカーソルの位置にあわせてマスを表示するようにした
・他のプレイヤーのいる座標の上にカーソルを乗せると文字列表示
です。

これは意外と簡単に実装できました。
3Dで作る予定なのに2Dっぽくなっちゃってるw
07156392005/11/13(日) 01:09:23ID:V3ipI0ed
とりあえず進捗状況

X,Y座標をキー入力で変化
サーバでログイン・ログオフ(一定カウント数waitしてから切断)
クライアント側で他クライアントのX,Y座標管理

まで出来ました。

付け足しながら組んでいったのでソースがきたなくなり
最初から組みなおそうとしたんですがうまくいかなくなってしまった(笑
結局汚いソースのまま;

今後の予定
チャット機能追加の為にinput処理とテキスト表示の「コマンドを覚える」orz
グラフィック関係の「コマンドを覚える」orz

これが実装されればとりあえずアバターで動き回りながらチャット出来ることになります
ここまでいったらいったん公開したいなぁ。
まだ鯖は立てるつもりがないので鯖とクライアントを公開(コンパイルしたものですが)
したいとおもってます
いいあぷろだないですかね;


07166392005/11/14(月) 01:13:20ID:o6g1tXsY
進捗状況

クライアントからアカウント(兼キャラネーム)・パスワード登録 実装
サーバでアカウント管理 実装
アカウント多重ログインチェック 実装
ログイン・ログアウト時にサーバ側にあるX,Y座標等のデータ読み書き 実装

今後の予定
知らないコマンドを覚える事orz

HSPでのプログラム第一弾にMMOを選ぶのは結構無謀な気がしてきました
今はデータ管理はキャラネーム・パスワードとX,Y座標だけですが
それ以外の膨大なパラメータを処理することを考えるとorz
07176392005/11/15(火) 00:31:22ID:D3uwfFKq
進捗状況

アカウント新規作成用に専用サーバ作成
サーバとクライアントのバージョンチェック実装
 (クライアントが古い場合、新しいバージョンのダウンロードをするように表示
  アップデータとかは今のところ作成の予定無し)

今のところ自力でどうにか作ってます。
今後もがんがります。
 
0718名前は開発中のものです。2005/11/15(火) 00:44:09ID:potRLfZO
ヽ(´ー`)ノ がんがれ 応援してるょ
07196392005/11/17(木) 01:46:24ID:6s1jcyiF
ありがとうございまふ

本日の進捗状況

サーバのソースの全体的な手直し
他PCが近くにいる時だけ座標データ送信 実装
MAPの仕様決定 最大100×100マスでひとつのMAP・MAP数最大100
座標データとともにMAP IDとでもいうようなものも送信

MAPデータと表示部分を作ればとりあえず動きまわれる所までという感じでしょうか
でもそれは後回し
チャット機能も後回し

今後の予定

もう一度ソースの見直し・不具合の発見・対処
NPC移動処理実装

疲れたorz 寝ます ノシ
07206392005/11/19(土) 14:45:22ID:65jC9aVL
進捗状況
送受信データの見直し

最近は送受信データを監視しては変更の繰り返しです
クライアント数が少ない時は効率的だと思った方式が、数が増えてくると逆にデータ量が増えてしまったり、面白いです
グラフィック関係は最後にする予定
見た目から作ったほうがモチベーション維持できると思いますが、あとの楽しみに取っておく予定です
07216392005/11/19(土) 14:46:00ID:65jC9aVL
進捗状況
送受信データの見直し

最近は送受信データを監視しては変更の繰り返しです
クライアント数が少ない時は効率的だと思った方式が、数が増えてくると逆にデータ量が増えてしまったり、面白いです
グラフィック関係は最後にする予定
見た目から作ったほうがモチベーション維持できると思いますが、あとの楽しみに取っておく予定です
07226392005/11/19(土) 14:48:17ID:65jC9aVL
二回送信すまそorz
0723名前は開発中のものです。2005/11/19(土) 15:03:50ID:v5gQrmiI
その謝罪も連投してこその職人だろが!
0724名前は開発中のものです。2005/11/19(土) 15:04:31ID:+/gTJIO7
ご苦労様です
07256392005/11/22(火) 01:25:55ID:2xgRvk/S
進捗状況

ひたすら送受信データを眺めて、調整していました。
地味な作業です。

そういえばこのスレのログ全部は見ていないなぁと思い、見てみました。
>>206こ、これは!!!このような方法があるとは!!!
>>207こ、これは!!!いまの私の方法に似ている!!

話は少しずれますが、サーバのメインloopのwait時間を短くすると、
送受信データ(とくにクライアントへの同期信号)処理が
おいつかなくて、かといって長くすると全体的にもっさりになってしまい
悩んでました。

メインloopをカウントして、一定の値になった時だけ同期信号を出して、
クライアントと通信し、それ以外は処理速度を稼ぐ為にwait時間を短くすれば
いいような気がしたのでやってみました。
というわけでawait1でぎゅんぎゅん回しながらクライアントへはぽつぽつと
同期信号を出す実験開始

いまのとこいい感じ。
つかもっとはやく気づけよ俺orz

寝ます ノシ
07266392005/11/22(火) 01:33:49ID:2xgRvk/S
いまトイレでおもったのですが同期しないほうがいいのかなー
もしくは同期信号を出すタイミングをクライアントごとにずらすとか
これだと表示したときに変かなぁ・・・でも負荷減りそうだなぁ・・・

今度実験してみます

寝ます ノシ
0727名前は開発中のものです。2005/11/22(火) 01:54:56ID:ukDHpGmf
乙です、ワクテカしてまってます。
07286392005/11/23(水) 01:38:30ID:9+oEd7uQ
スレを私物化ぎみですみませんですorz

気になっていることがあります
会社のPCと自宅のPCで動作速度に大きな差があるのです
CPUは似たようなものですし、メモリも同程度。
しかし会社のPCだとパフォーマンスがかなり落ちます
謎です

話はかわりますが色々やってみて思ったこと
座標移動処理で差分だけ送受信だとなんらかの原因でデータの欠損等が
発生した場合に表示と実際の座標位置がどんどんずれる予感なので座標データそのものを
やりとりしたほうが確実ぽい
TCP通信は予想よりかなり速度が遅かった気配
やはり同期させたほうがなにかと好都合な気がする神のお告げ
データの信頼性と速度は反比例する予感

進捗状況
サーバを手動でシャットダウンさせる場合
オンラインのクライアントのデータをサーバ側に保存する機能の実装

今後の予定
大まかな全体の仕様の考察
そろそろこれを決めないと先に進めない予感

寝ます ノシ

0729名前は開発中のものです。2005/11/23(水) 12:55:46ID:jBwie6qc
>>728
> スレを私物化ぎみですみませんですorz

別に問題ないと思うよ。製作している人のためのスレだし。

> しかし会社のPCだとパフォーマンスがかなり落ちます

グラフィックの問題じゃないかな
ビジネス用途のPCは、ビデオカードが貧弱だから
ゲームのようにグラフィック処理に負荷がかかる処理には弱いと思う。

> TCP通信は予想よりかなり速度が遅かった気配

座標データの様に、バンバンやりとりするものなら
UDPの方が処理が軽くて良いよ。
ただし、届く順序が前後する場合があるので、
そこを考慮する必要があるけど。
07306392005/11/23(水) 23:05:20ID:9+oEd7uQ
>>729
うーん会社のPCには自宅よりランク上のグラボはいってます・・・
もっとも画面にはx,y座標や通信データの羅列ぐらいしか表示されていなかったです・・・
UDPについてはもう少し勉強してからじゃないと頭が混乱しそうです;

進捗状況

仮のmapデータ作成。読込、表示、他クライアントの座標を元に表示 実装(2D表示です)
ドット絵とマップエディターについてはフリー素材でお茶を濁しました
壁判定やイベントフラグについては未実装です
でもこれで複数がmapの中を移動している様子が視覚的にわかるようにしました。
まだいらないと思って実装しなかったんですが、なんとなく区切りとして実装しました。
ちなみにまだメッセージ送受信及び表示については未実装です
最悪IRC使ってくれとかにして逃げてしまおうかと半分本気で検討中;
07316392005/11/24(木) 00:41:41ID:nZYOH1u3
むむむむむ・・・

半同期タイプをテストしてみたら完全同期タイプよりレスポンスがいい・・・
しかしラグった場合にまわりにいたPCがワープする。
んーーーーしばらくテストしてみる価値ありそうです

寝ます ノシ
0732名前は開発中のものです。2005/11/24(木) 09:48:59ID:3eKF0MRS
911と101は元気かい
生きてるかい
0733107 ◆a6JcKaYOUI 2005/11/24(木) 22:33:08ID:TeyNLKYg
ttp://gamedev.ddo.jp/
は鯖が死んでる
07346392005/11/25(金) 00:30:15ID:kHBDzTEC
ここまでの私の行ったまとめメモ(説明下手ですみません)

1.非同期タイプ(サーバ・クライアント共自由なタイミングで送受信)
 no waitではデータがバッファにたまり処理出来ない
 適当なwait時間を設定する必要有るが調整が難しい
 へたなwaitを設定するとタイミングのズレが発生し効率が悪かった
2.同期タイプその1(サーバから同期信号を一定時間で送信・クライアントはその信号がくるまで一切の処理を止めて待つ)
 一定時間までサーバから送信するデータを対象クライアントごとに一つにまとめ、
 同期信号にデータ(自分及び近くにいるPCの座標その他)を付けて一気に送信
 利点・サーバでクライアントからの送信タイミングを決められる
 欠点・クライアントで一度に受信するデータ量が増大し、処理に時間がかかる為同期信号の間隔をあまり早く出来ない
     また、その間隔の為にサーバでawaitを利用していた為、クライアント数が増えると一気にデータがくるために
     サーバ側も処理が間に合わなくなった

 
 
 
 
07356392005/11/25(金) 00:30:39ID:kHBDzTEC
3.同期タイプその2(サーバのawaitのかわりにメインloopカウント数が規定の数値になった場合に同期信号送信)
 サーバはwait等で止まらないために常になんらかの処理が出来るようにした
 クライアントへの同期信号はloopカウントを利用し一定カウントで送信
 利点・サーバの負担減・結果レスポンス向上
 欠点・クライアント側での受信の仕方は同期タイプその1と変わらない為、同じ状態
4.半同期タイプその1(同期タイプその2をベースに、クライアントからの処理データをその都度送信)
 クライアントからのデータを一つずつ解析し結果に同期信号を付けてその都度送信
 利点・サーバのレスポンス向上・クライアントの負担減
 欠点・相変わらず一定間隔で同期信号も送信していた。無駄な処理増につながっていた
5.半同期タイプその2(半同期タイプその1をベースに、処理データと同期信号を分離)
 処理データはその都度送信・同期信号は同期タイプその2の方式
 (クライアントへの同期信号はloopカウントを利用し一定カウントで送信)とし、分離した
 利点・他PCの座標データは同期信号とは別に処理できる為クライアントの負担減
    同期信号を受信した時のみ移動許可とした為他PCとの同期もとれた
07366392005/11/25(金) 00:31:18ID:kHBDzTEC

※○○タイプとか適当に名前つけたので実際の方式と合うかは知りません;
07376392005/11/25(金) 00:55:27ID:kHBDzTEC
現在は5の方式を元に、さらに無駄な部分を削ぎ落としています。
今後取り扱うデータが増えるハズなので、その前にもう少し手直しをします。

ふと思ったのですが、このスレはMMORPGを完成させて発表するまでの
道のりスレ的なものなんでしょうか
それともHSPでMMORPGを作成するにあたっての技術的な話題を
発言するスレなのでしょうか

私の場合ほとんど独り言に近いのでorz

07386392005/11/25(金) 01:05:36ID:kHBDzTEC
本来ならここらへんで一度公開テストしてみたい所なのですが、
開発用PCを鯖にするわけにいかず(ゲームしたいし・・・つか最近これにかかりきりですが)
以前web鯖として使用していたPC(現在休止中)はLinuxなのでHSPが動かせませんorz
折をみてWin入れなおすか・・・でもスペック的に心配orz

寝ます ノシ
0739名前は開発中のものです。2005/11/25(金) 01:20:49ID:lkxMipFL
お疲れ様ー
07406392005/11/26(土) 18:20:13ID:gB1gutAY
>>735の5番の方式をもとに、

「サーバからの移動間隔信号を出すタイミングをクライアント毎に設定」してみました。

つまり「足の速いキャラ」「足の遅いキャラ」が出来ます。

今テスト中です。結構面白い要素です。
07416392005/11/27(日) 01:30:32ID:kBMQLm+S
手を加えるたびにテストし不具合見つけて修正しての日々です
変更点を言葉で表すのは簡単ですが>>740を実装した事によるバグや
不具合の潰し込みに今までかかってましたorz

今回の実装で思ったのですがやはりまず通信系を作りこんでいこうと思います
それ以外のシステムについては考えている部分もあり未定の部分もあります
考えている事に通信系を対応させてから実装するやりかたをしたいと思ってます
例えば今回の移動の速さ実装に関しては、
ステータス又はアイテム・魔法等で移動速度アップの要素を入れることを見越しての事です
mobにも移動速度の設定をして足の遅いやつ・おっそろしく速いやつとかを
つくったら面白いかなと。
実際あまり速い設定にしてしまうと負担が大きくなるので極端な設定は出来ないとは
思ってます。ここらへんは調整する必要があるでしょうがまだ先になります

寝ます ノシ
07426392005/11/30(水) 01:08:36ID:qCFauRfw
マップチップを暫定で16×16で作成しマス単位で移動させていたのですが(スクロールめんどくさ)
しょぼいのでキャラチップだけを32にしてみました。結構いいかもしれないけど今度はマップチップが
キャラとスケールが違ってしまうので32のマップチップを用意して処理は16のチップ扱い
(32のチップをmapデータ4つ割り当てる形です。
データ的には無駄だけど処理は変えずに移動の見た目がマス単位じゃなくなる感じ  って説明ヘタすぎorz )
にしようかと思案中です。
また、今まで19×19マスで表示していたのをキャラがデカくなった為、せまく感じたので32×32にしました。
そういえば昨夜DirectXがHSPで使用出来る事を知りました。スプライトもあるんですね
HSPのコマンド知らなすぎorz
NPCの実装と壁フラグの関係もあるんでマップチップとキャラの大きさについて決める必要が出てきました
あとスプライトの方が判定処理簡単なのかなぁ。今のとこ全部gcopyです。今度調べてみます
知らないコマンドの動作を理解するのにいちいち動作検証program組んで結果を確認しながらなのでメンドクサorz
そういや最近はprogram組むじゃなくてスクリプトって言い方するんでしょうかね。よく知りません
07436392005/11/30(水) 01:09:17ID:qCFauRfw
最近の状況
クライアント10個立ち上げて(処理重くなるんで画面処理しないデバグモードで)、
座標移動の通信ぐらいならとくにストレスなく動作出来る事を確認しました
鯖立ち上げて運営開始しても、多分多くてもonline数10人前後だろうから十分です(笑)
あとキャラチップどうしよう。。。フリーのツクール素材を拝借してもいいんですが、
出来ればかわいい系じゃなくて濃いグラフィックが自分好みなんで(汗)なかなか見つからないです
あとは装備によって見た目を変えるかその処理はしないかも決めないと。。。
装備によって見た目を変える場合各装備だけのチップを用意して合成処理をしないといけないですが
そうなるとパケット量が増えるし、悩むところです
一番困るのはHSPの処理速度自体全然把握してないので(これがHSPでの始めてのprogramなので)、
どこまでつくりこむか、どこまで手抜きするかを決めかねてますorz

ちなみに今キャラチップはふんどし(?)一丁のキャラです
装備はふんどしだけにして色だけ変えようかな(笑
もちろん赤フンを最高級装備にする(笑
ふんどしonline(笑

寝ます ノシ
0744名前は開発中のものです。2005/11/30(水) 01:17:27ID:0ioB0iLp
お疲れ様。順調に進んでるようで期待させていただきます。
07456392005/11/30(水) 12:20:27ID:27yguAmR
会社からです…なんてこった…
スプライト使えばあんな処理とかこんな処理とか楽じゃないか…
その部分のコード書き直すか現状でいくか…
どうする俺orz
0746名前は開発中のものです。2005/11/30(水) 13:26:28ID:eHmOSmll
>>745
後々の処理や作業量を考えたら、今、書き直すべきかと思います。
大変だとは思いますが、がんばって下さい。お手伝いできる事があれば良いのですが・・・
いかんせん、私は無能ですので・・・応援しかできません。
07476392005/12/02(金) 01:02:17ID:ht2wbtfp
ちょっとまだコードについては検討中ですorz

今日までの状況
サーバでNPCのランダム移動実装
クライアント一つだけ立ち上げて負荷テストしてみました。
PCに関しては自分の可視領域にいる他PCのみデータ送受信をしていますが、
NPCに関しては負荷テストの意味もこめてmap上の全NPC座標を
クライアントに送信してみました。

テスト状況その1
プレイヤー(クライアント)が一人だけonline
NPC(mob)数がmapに100人(全てのNPC座標データをプレイヤーに送信)
NPC表示はプレイヤーの可視領域内のみ(データは全NPC分保持)
プレイヤーへの同期信号とmobの移動間隔を同じにした

結果
正常に表示された
プレイヤーの移動に関しては時折もたついたが気にならないレベル

テスト状況その2
プレイヤーが一人だけonline
NPC(mob)数がmapに100人(全てのNPC座標データをプレイヤーに送信)
NPC表示はプレイヤーの可視領域内のみ(データは全NPC分保持)
mobの移動間隔を倍にした

結果
プレイヤー移動時多少もたついた(多分NPCデータ処理時に負荷が大きくなる為)




07486392005/12/02(金) 01:07:34ID:ht2wbtfp
テスト状況その3
プレイヤー(クライアント)が一人だけonline
NPC(mob)数がmapに150人(全てのNPC座標データをプレイヤーに送信)
NPC表示はプレイヤーの可視領域内のみ(データは全NPC分保持)
プレイヤーへの同期信号とmobの移動間隔を同じにした

結果
mobちらつき発生(原因不明)
プレイヤー速度ダウン
07496392005/12/02(金) 01:14:53ID:ht2wbtfp
テスト状況その4
プレイヤーが一人だけonline
NPC数が1000人(ランダムに座標増減・但しクライアントへは100人分のみ送信)
NPC表示はプレイヤーの可視領域内のみ(データは全NPC分保持)
プレイヤーへの同期信号とmobの移動間隔を同じにした

結果
多少遅くなったが致命的なほどではなかった
07506392005/12/02(金) 01:19:18ID:ht2wbtfp
本当はクライアント数も増やして確認したいのですが、
一台のPC(この場合はパソコン)で複数立ち上げると、
それだけでパフォーマンスが落ちるのでやっていません

寝ます ノシ
0751名前は開発中のものです。2005/12/02(金) 19:20:23ID:LmQczCFK
>638
いつも参考にさせてもらってますm(__)m
私もネットワークゲームを開発しているのですが、パケットの暗号化にどんなアルゴリズムを使えばいいか悩んでます。
いまはRC4(オープンソースなほう)をつかってやろうと考えてますが、ほかにお薦めとかあるでしょうか?
高速なストリーム暗号だと、RC4くらいしか思いつかなかったので…。
0752名前は開発中のものです。2005/12/02(金) 19:22:30ID:LmQczCFK
↑ごめんなさい。639さんですねorz
07536392005/12/03(土) 00:02:24ID:GhwP9zeb
すみません暗号化とかまったく考えていませんorz
RC4についてはバイト単位で暗号化出来るみたいですが、
私の想定している規模のものだと暗号化はいらないかなとか思ってますがだめですかねorz
通信部分についても、なんか好き勝手に組んでますので
傍から見るとアホな事をしているのかもしれませんorz

本日はprograming休憩して、久々にlinuxでweb鯖立ち上げました。こちらはこのまましばらく通電しときます
つかlinuxも使ってるならCで鯖組めよとかツッコミは無しの方向でお願いしますorz
昨夜のテストについて書き忘れていましたが、同期信号を出す間隔は
メインループの2,3回に一度程度でがつがつ出力しました それ以上落とすとモッサリでした
PCとNPCと戦闘、生産等を実装したと仮定した場合メインループ毎に同期信号を出さないと
だめぽなのかも知れないなぁとか思ってます。

というか・・・・

スプライト関連のリファレンスを見て思ったのですが、もしかすると今までの作業が根本的に
ひっくり返りそうな予感です
すくなくとも移動・可視領域外に他PC等が移動した場合の処理・画面スクロール等の処理が
今の手法より効率が良さそうな気がします。
他にも知らない便利なコマンドがありそうorz

つかHSP付属のヘルプだけでMMOつくろうとするなよ俺orz
0754名前は開発中のものです。2005/12/03(土) 19:30:01ID:P6bg9nkO
正直言うと凝ったことしたいならHSPは捨てるべきだと思う。
HSP本来のコンセプトと外れるし、ソフト単体で見ても質を落とすだけ。
07556392005/12/03(土) 22:49:17ID:GhwP9zeb
私はHSP自体始めて使うのですが、その意味では正直VBでもjavaでもその他でも条件は同じなんです・・・
どれも使ったことないですから(汗
元々MMORPGが好きなので、自分で作れたらいいなぁというノリで作ってます
早い話自己満足なわけですので、スレ汚しになっていたらすみませんです
0756名前は開発中のものです。2005/12/04(日) 09:29:50ID:qZA/Q2b9
人の好みも、考えも個人個人違う。
もっとも、愚かしく、みっともない事は、自分の考えを他人に押し付ける事である。

>>755
今まで通り、がんばって下さい。
0757名前は開発中のものです。2005/12/04(日) 15:27:55ID:xC4pKK+i
そーゆー思春期みたいな価値観止めたら?
754は単に忠告してるだけだと思うけど。
0758名前は開発中のものです。2005/12/04(日) 16:26:31ID:Tyia1dD3
とりあえず動いて、十数人から何十人かが接続でき、
簡単なMMO世界を構築する喜びを味わうのならばHSPでもええんちゃう?
商用レベルで利益出せるようなシステムを構築しようってわけでは無いのだし。
HSPで限界を感じて、更に上を目指す意思があるのなら、その時はC++でも何でも勉強していくだろうし。
HSPでプログラムの楽しさに触れてみてくださいっていうコンセプトには合致してるでしょ。
0759名前は開発中のものです。2005/12/04(日) 17:06:32ID:jIDPCMqM
身の丈にあった方法をとるのは大事。
力みすぎて計画倒れになる757よりましだろう。
0760名前は開発中のものです。2005/12/04(日) 20:53:27ID:qZA/Q2b9
>>756
お前が何をどう思おうが、お前の勝手。
>>755の発言を、>>639がどう思おうが、どう扱おうが>>639の自由。

そして俺が、がんばる人間を応援しているのも、俺の勝手。
0761名前は開発中のものです。2005/12/04(日) 20:54:45ID:qZA/Q2b9
アンカー間違えた・・・orz
まぁ、いいか。厨房じゃなければ理解できるだろう。別にできんでも構わんが。
07626392005/12/05(月) 01:34:12ID:vL1s5iVn
なんか騒ぎになってしまったようで申し訳ないですorz
想定している規模は>>758さんの言うように極小規模なものです

進捗状況
NPCランダム移動をmobがそれっぽく動いているような感じのランダム移動に手直し
(ランダムにx,y座標を増減する方式から今いる座標に近い座標をランダムに設定し
さらにランダムに移動許可を出して許可のあった場合のみそこに向かって行き
到達時にまたランダムに目標とする座標を設定)
可視領域にNPCの座標があるときだけ鯖から送信:レスポンス向上

今後の予定
NPC行動パターンのバリエーションを増やす
チャットをそろそろ実装したいのでコマンドリファレンスを見る予定

寝ます ノシ
0763名前は開発中のものです。2005/12/05(月) 02:30:51ID:qt5SixLV
小規模はMMOとは言わない気がするけど…まあいいかw
ガンバレ
07646392005/12/06(火) 01:27:01ID:43ex6rOD
進捗状況
チャット実装(全体チャットのみ)
接続用のIPアドレスをローカルからDNSに変更

今後の予定
タイヤをスタッドレスにかえる

寝ます ノシ
07657512005/12/06(火) 23:03:58ID:f4Fja9eV
>>753
返事どもです。
いろんなこと検証してて、すごいなぁと感じたので、暗号化も
やってるかなと安直に期待してました。すみません。
個人的には、MMOに暗号化は必須だと感じてるのでぜひとも
入れたいところです。
ひとまず、RC互換のArcfourのライブラリらしきものがみつかった
ので、これを使ってみようかと思います。
ttp://d.hatena.ne.jp/studiokingyo/20040630
(HSPスレなのにC用ですんませんorz)

ちなみに、DxLibにこだわってるわけでないので、その辺の
突っ込みはご容赦を。

あとLinuxですが、私は鯖プログラムがWin→Linux→Winと移ってきてます。
結局完成せずに、やりたいことでOS移行してるだけなんですが。。。
Linuxプログラミングは、Cが少しわかれば趣味程度のものならすぐ作れますよー。
この本とかお勧めです。
ttp://i.loveruby.net/ja/linuxprog/
興味があったらどぞ。


いまは先の暗号化とP2Pに興味ありです。
できればP2Pを取り入れたいので。
想定しているのは、ロビー+αをP2P(ハイブリッド型)で作ろうかと
考えてます。
07666392005/12/07(水) 00:20:44ID:7yI4PKyb
パソコンの前で2時間寝てしまい起きたばかりで首が痛い639ですこんばんはorz
今日は貴重なprograming時間を寝てしまいますたorz

>>751
うーすみません通信がらみのものを組むのは言語問わず初めてなので、
実際に組んでみて勉強したかったのでメモがわりにここにカキコしてます
実際にテストしてみると予想と違う結果になったりしてます
理屈より実践です(汗

Linuxについては、正直C(C++)関連についての興味もあります
今回の場合はWinで構築してゲーム鯖とweb鯖兼用の方が楽チンな予感です
しかしWinではweb鯖構築した事が無いので、ちょっと時間的に厳しいので放置orz
ノートPCにもLinuxを入れてあるのですがデスクトップ用途に使ってます
ゲーム鯖用にもう一台Winマシン導入しようかしらと思案中ですが、どうする俺orz
たまにC関連で鯖programを組む事が頭に浮かびますが、今回はHSPでやってみます
情報ありがとうございました。
0767名前は開発中のものです。2005/12/07(水) 00:43:43ID:nk7VDbdU
>>765
暗号アルゴリズムは特に何でもいいと思います。解析者に暗号・改竄チェックに何のアルゴリズム使われてたり等が漏れるのがマズイかもしれません。
MMOの為の技術は詳しくないのでですが、WPE等で簡単に通信が偽造されて、それを検出できないようじゃダメでしょうね。
通信の暗号化と改竄チェックは簡単なものでもいいのでとりあえず実装しておき、解析防止関連は軌道に乗り始める少し前から取りかかれば良いと思います。
MMOにP2Pは・・・私は知りません。作って実験しながらがんがれー。
>>766
乙です。

余談: つ[Cygwin] Linux用にC(C++)で鯖作ってもWindowsで運用も可。テストにも使えると思います。
HSPの中間コードは解析に弱い。通信部分の一部をDLLに組み込むとか。HSP本体の制約は後になって面倒かもしれません。ご注意を。
07686392005/12/07(水) 01:19:13ID:7yI4PKyb
>>767
ご提言ありがとうございます。
とりあえず現状で一度負荷テストをやってみたいと思っていたのですが、
暗号化を実装してからにした方が良さそうかなぁと思ったりしました
Cygwinについては、実は会社のPCにこっそり入れてあります(汗
UNIXも仕事で使うので、GUIでリモートログインをしたいなぁ程度の理由ですが(汗汗

現状、PCとNPCが壁フラグ無しのmapをお互い当たり判定無しで自由に動き回り、
入力の使い勝手の悪い(苦笑)全体チャットが出来る程度までしか実装出来ていないので、
後からソース全体を眺めてみると通信関連のノウハウ以外は大したことやってないんですよねorz

眠いのでなに書きたいのか自分でわからないのでとりあえず寝ます ノシ
0769名前は開発中のものです。2005/12/07(水) 19:53:27ID:YGdB+oRq
書籍「Winnyの技術」のPDFが、出版社が許可だしてwinnyで配布されてる。
P2PとMMO(C/S)は違う方式のネットワークだけど、開発手法(暗号技術、設計など)の記述は参考になると思われる。
07707512005/12/07(水) 20:53:17ID:RjlM7DZz
暗号化のご助言どもです。
正直、暗号化は初なので、なにからやろうか迷っていたところなんです。
WPEってオープンβであってます?
パケットの偽装防止はまだまだ不明な部分が多いですorz

「Winnyの技術」は本買ってたりします。
ピュアP2Pの参考になりました。あとクラスタとか。
ソースとかサンプルがすこしでものってると、さらにお得だったんですがねー。。。

私の作っているものがすれ違いなので、あれですが、ネットワークゲーム
制作って事で書かせてください。
個人的にMMOをいきなり作ることに限界を感じてます。
最初の敷居だと思う、チャット&ロビーのようなものを最初につくり
その後はP2Pで遊べるものを目指してます。
一番の目的は、クライアントにIPを意識させないこと、パッチ配布の効率化です。
補足で、大切なデータはサーバに送るようにする予定なので、どっちかというとMOに近いかな?

Cygwinは私も使ってます。便利ですよねこれ。
MinGWあたりも一時期は使ってましたが、いまはVC++に戻ってしまいました。

長文でなにもおかないのも失礼なので、既知かもしれませんがネットワークゲーム
つくるのに参考になったページを。
ttp://www.geocities.jp/ol_lc/
ttp://www.multiterm.co.jp/
07716392005/12/07(水) 21:20:27ID:7yI4PKyb
639です・・・

どっちかというと体育会系ですorz

みなさんレベルが高いので話についていけんとですorz

難しいサンプルソースとか見ても理解出来ませんorz

頭じゃなく体で覚えるタイプですorz

今後も目先の事だけ考えることにしますorz

今日は 「なんちゃって暗号化」に取り組んでみます

07726392005/12/08(木) 00:29:54ID:xQCz2cu9
暗号化は先になりそうですorz
勉強しないとorz

寝ます ノシ
07737512005/12/08(木) 22:41:27ID:Tk06wjbh
>>639
実践してる分、私なんかよりLv高いですよorz
気にせず開発がんばってください。
実は毎日の書き込みを見るのが、日課になりつつあったり。。。


なんだかんだいいながら、私が今できているのは、チャット+ロビー一歩手前ってとこですので。
いろんな本のソースをいじりながら、目標としてるサーバを作ってますorz

ちなみに、普段は仕事で鯖関連やセキュリティ(FW)とかをいじってるんで、その辺なら多少フォローできます。
困ったら遠慮なくー。
0774107 ◆a6JcKaYOUI 2005/12/08(木) 23:12:19ID:WmB8x0uc
あーだんだん数字さんが増えてゆくw
0775名前は開発中のものです。2005/12/11(日) 11:12:33ID:xHHVEIki
プログラマでもあり、チーターでもある俺から言わせてもらえば
半端な暗号化は無駄。
逆アセンブル出来ないような仕組みと、介入を禁止できるシステムじゃなきゃ
究極的には意味無いよ。
最近は、暗号化せずシステムで介入を保護するタイプもあるしね。

まぁ、この辺の話は、商用なり、大規模になるまではほっといてもいいよ。
HSPじゃ、根本的な対策は無理だし。
07766392005/12/11(日) 11:38:54ID:W3DAS+nI
風邪でダウン中ですorz
ベッドの中から携帯でカキコです
逆アセンブルまでされてしまうと無力ですね
商用のものでもチートやBOTの対策で大変みたいですし
今思考能力ゼロなので寝ます ノシ
0777107 ◆a6JcKaYOUI 2005/12/11(日) 12:33:10ID:LNXjnTj9
>>775
半端な暗号でも厨房を弾くのには十分だと思う
まあクラックプログラムが登場したら意味ないけど
凄腕はアカウント停止で対処しても問題ないと思うが...
0778名前は開発中のものです。2005/12/11(日) 14:40:59ID:ohNVp0t4
>>777
チーターの中にはツールを配布する奴もいるけどね。
マクロ系をアカウント剥奪するのは難しいぞ。疑わしきは罰せずだから。
07797752005/12/11(日) 14:51:52ID:xHHVEIki
>>777
あんまし荒れても困るからこれっきりにしとくけど、
コードを読める奴はアカウント停止なんてされない。
なぜなら、証拠は残さないから。
俺もいくつかのゲームの解析してるけど、ゲームへの介入は一切しない
から、当然banされたことも無い。

banされるのは、俺tueeeする子供だけ。
0780名前は開発中のものです。2005/12/11(日) 14:52:19ID:au6ZY7E9
チートで鯖が異常な処理するのは、バグだから潰せばいい。
チートで特に有利になる操作&情報入手ができるのは、設計の問題。

マクロで特に有利になるわけではないが、楽できるのはまぁ許容範囲じゃないかな。
むしろその程度の操作は、鞍の機能に組み込んでほしい。
■ このスレッドは過去ログ倉庫に格納されています