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

MMORPGをHSPで作りたいな

■ このスレッドは過去ログ倉庫に格納されています
0001FAN04/05/11 11:12ID:Ky5hy7V5
とりあえず、作ってみたいんですけど参考になるサイトないですかね?
0073名前は開発中のものです。04/06/03 13:06ID:ckAz3NYj
あほばっか
0074名前は開発中のものです。04/06/03 13:07ID:ckAz3NYj
アホばっか
0075名前は開発中のものです。04/06/03 13:08ID:ckAz3NYj
阿呆ばっか
0076名前は開発中のものです。04/06/03 20:22ID:5zEO6Pvp
>>72
すでに採算に乗せている日本のMMOは複数存在している。
>それが今の日本だな。
意味不明。
過去どころか現在の状況すら理解していない人間が、何を語っているのか全く理解できない。
0077名前は開発中のものです。04/06/04 00:06ID:gjSVVRZD
所詮は知ったかなんだよ
0078名前は開発中のものです。04/06/04 20:28ID:5TXq8lTF
>BCBはちゃんとプログラミングしたことあるのか?
>本当に簡単だっつってんなら実際に作ってみろよ。

別にBCBの肩持つ訳じゃないが、本人の最初の書き込みでは、
「チャット、2Dで歩くくらい」は出来たと言ってるじゃん。
まあ実際は分からんけど、これが出来りゃ大きな飛躍にはなるわな。

0079名前は開発中のものです。04/06/04 23:07ID:9Ec5dAq4
>>78
BCB、あまりにレベル低すぎ。
MMORPG を作成する際に発生する様々な問題を頭の中に想像できるレベルじゃない。
チャットが付いて2Dで歩くぐらいなら、
プログラムの初学者が趣味で作るレベルだよ。

ただ、>68の言いたいこともわからんではない。
最初のうちは、その壁が結構大きいからな。
ただ、BCBがそのレベルでMMORPG がどうこうとか
偉そうに言ってたのは信じられないわ。
0080名前は開発中のものです。04/06/05 00:06ID:VyhV/44m
BCBはBorlandC++Builderの事かな?
あれはGUIを簡単に使うには便利だがDirectXとの相性が悪いので
ゲーム製作には向かないかもよ。
工夫すればちゃんとDirectXを使ったプログラムもコンパイル
できるらしいが、どうにも参考文献が少なすぎる。
0081名前は開発中のものです。04/06/05 13:17ID:mLWvAc5d
スレの流れがまったく見えてない者が乱入
0082名前は開発中のものです。04/06/06 01:19ID:H1Z3N9nw
BCBはBorlandC++Builderの事ではありません。
勝手に一人で突っ走らないでください。
0083名前は開発中のものです。04/06/06 09:41ID:e9jfnD5Y
BCBは知ったか馬鹿のコテハン。
Borland C++Builderに失礼だろ。
0084名前は開発中のものです。04/06/06 18:53ID:xf2SHIjK
 HSPか…同時接続64人までは可能だろうが、100人超えた辺りからキツイんで
なかろうか。100人だと、一人頭10msの処理時間しかないし、マルチスレッドじゃないから
パケットの生成やらファイルアクセスのオーバーヘッドなどで遅れに遅れまくる予感。
 処理を段階的に分けて擬似マルチスレッドを実現しようとすると、その管理などで
かえって処理時間が食われてしまうというオチ。
0085FAN04/07/08 09:19ID:EsDzfyYE
参考になりました
0086名前は開発中のものです。04/07/20 03:00ID:7KVUQhVo
HSP製のMMO
ttp://www.tms-hp.com/

関連スレ
ttp://game8.2ch.net/test/read.cgi/netgame/1085990179/

可能可能。
0087名前は開発中のものです。04/07/30 13:48ID:7G+hOCOX
http://o2.zener.co.jp/
これを使って作ろうとしている香具師いる?
0088名前は開発中のものです。04/07/30 17:25ID:QwlLmTqX
http://o2.zener.co.jp/faq.html より引用
>どのようなソフトを開発できるのですか?
>O2では、2〜8人が同時に対戦するタイプのゲームで、
>非リアルタイムのものを手軽に作成することができます。
>数十人、数百人が同時にデータを取り交わす大規模な(MMO)ネットワークゲームには、
>現状で対応しておりません。

なので居ないと思われ
0089名前は開発中のものです。04/09/09 02:40ID:M/ndArWt
なぁ、スレの流れから関係ないが、CGIゲームならイケルだろうか。
Perlをかじり始めていつかは本格的なCGIゲームなんか作りたいと思ってる者なんだが
(現時点では鼻糞もいい所のレベルだが)
単純にMMOよりも遥かに維持、運営面では楽だよね?
まぁ当然よほど面白くないかぎり地味なCGIゲームなんかに課金する奴なんていないだろうが・・
現時点で課金に成功してるCGIゲームもいくつかあるにはある
MMOと比べたらまだ現実的だと思うのだが。
こっちはこっちでどういう問題があるか、とか厳しく指摘してもらえんだろうか。
将来への心構えにしたいっす
0090名前は開発中のものです。04/09/09 09:01ID:wWPNa6SD
cgiでゲームを作るのは可能だろう。
携帯向けのゲームなんかはcgiってのも結構あるしな。
維持、運営は楽かも知れ無いが、プレイヤー間の繋がりを作るのは大変だぞ。
cgiでゲームって事はIE等のブラウザーを使ってのプレイだと思うが
戻ってやり直しされた場合とかURLを直接編集されないようにセッションの管理を
しっかりとやらないとゲームとして破綻するから気をつけろ。
0091名前は開発中のものです。04/09/18 17:52:54ID:hi86lVWi
■ここまでのまとめ
>9-14 おっぱい
>15 オプソのJewel-mmo(Ruby製)を紹介
>26 ネットワークRPG エクソシズムブリーズ(HSP製)
>27 BCB登場(BCB使い)
>29 RPG製作講座とネットゲーム製作講座(HSP向け)
>36 まとめページ紹介
>45 mmo!紹介
>63-66 採算についての日本企業の認識と時代背景
>70-71 草の根ネット時代のMMORPG
>84 HSPで作成する場合の問題点。マルチスレッドが使えない。
>86 再びネットワークRPG エクソシズムブリーズ(HSP製)の紹介
>87-88 O2の検討
>89-90 Perl/CGIでネットゲームが作れるか

■関連HP
SMITH PROJECT (2D RPG 製作講座やネットワークゲーム製作講座など)
http://www.smith-project.jp/main/index.html
O2 development (HSPネットゲーム用ソリューション。無料でゲームサーバーをレンタルできます)
http://o2.zener.co.jp/
HSPオフィシャルホームページ
http://www.onionsoft.net/hsp/
■関連スレ
HSPでRPG
http://pc5.2ch.net/test/read.cgi/gamedev/1082902759/
HSP - Hot Soup Processor [8]
http://pc5.2ch.net/test/read.cgi/gamedev/1091694802/
【HSP】HSPで3Dゲーム【3D】
http://pc5.2ch.net/test/read.cgi/gamedev/1016699230/

■MMORPGを作ってみたい (2chMMORPG製作・運営総合まとめ)
http://gamdev.org/w/?%5B%5BMMORPG%A4%F2%BA%EE%A4%C3%A4%C6%A4%DF%A4%BF%A4%A4%5D%5D
0092名前は開発中のものです。2005/05/13(金) 20:38:10ID:QeyFIi/h
age
0093名前は開発中のものです。2005/05/13(金) 23:41:49ID:QeyFIi/h
MMORPG作成について(再)
http://game10.2ch.net/test/read.cgi/mmosaloon/1112603218/l50
0094名前は開発中のものです。2005/05/14(土) 23:34:50ID:K4YVqopU
これ以上廃人を増やすな
0095名前は開発中のものです。2005/05/15(日) 22:11:03ID:6dcbdIwM
ウルティマって、HSPで作ったような感じがしますよ。
0096名前は開発中のものです。2005/06/14(火) 15:59:09ID:EbKWHI9k
保守age
0097 ◆SxOcx2fLm. 2005/06/26(日) 21:18:00ID:LzEd6q4y
あげ
AMdplayでMMO作ってるやついる?
0098名前は開発中のものです。2005/06/26(日) 21:28:45ID:LHRQs0HR
MMOってほどの規模じゃないけど、ネットゲームなら作ってた
0099 ◆SxOcx2fLm. 2005/06/26(日) 22:29:21ID:3G22+GQM
RPG系のゲーム?
俺はRPG作ってる
0100名前は開発中のものです。2005/06/28(火) 00:03:44ID:6W5cl70v
あげ
0101名前は開発中のものです。2005/08/30(火) 17:47:40ID:GJDQVwDq
このスレゲット!!
再利用していいか
0102名前は開発中のものです。2005/08/30(火) 20:06:16ID:WLq0OrMr
作ってみてます。
ttp://nekonoteigi.ddo.jp/
0103101 ◆VhiWHt2b1s 2005/08/30(火) 20:37:00ID:DvsQWqE7
トリップ付けたです

>>102
すごいうまいですね
通信には何を使用してますか?
01049112005/08/30(火) 20:51:35ID:WLq0OrMr
PCBnetです。
0105名前は開発中のものです。2005/08/30(火) 20:55:00ID:WLq0OrMr
あ、トリップってどうつけるのですか?
ギコナビはじめてでわかりません。;
0106101 ◆VhiWHt2b1s 2005/08/30(火) 21:00:34ID:fsyDvNCd
>>104
PCBか〜
俺と同じだw

>>105
トリップは
名前欄に、[#好きな文字列]で出来ます。
0107 ◆RfGLxICaUo 2005/08/30(火) 21:03:53ID:WLq0OrMr
>>106
なるほどありがとうございます。(できたかな?
もしかして>>106さんも何か作っているのですか?
0108101 ◆VhiWHt2b1s 2005/08/30(火) 21:38:53ID:fsyDvNCd
>>107
はい
俺もMMOを開発してます。
接続人数多くなると、動作が遅くなるから
高速化がたいへんですね
0109911 ◆RfGLxICaUo 2005/08/30(火) 21:50:25ID:WLq0OrMr
ageつつ
確かに人数が増えると比例して大変ですよね;
プロトコルはTCP/IPですか?

私の場合はシナリオ・ゲーム設定が下手で困ってますw
あとRPGとか作ったことないので・・・ (-∀-;)
0110101 ◆VhiWHt2b1s 2005/08/30(火) 22:02:55ID:fsyDvNCd
>>109
あがってないのでageつつ
TCP/IPです。
特にシナリオが無く
永久的に出来るようにしたいと思ってます
そう、うまくはいかないでしょけどorz
0111911 ◆RfGLxICaUo 2005/08/30(火) 22:11:34ID:WLq0OrMr
なるほど比較を出してみたのですが…
【TCP/IP】 61~92msec
【UDP】 10~24msec
9倍近く違うのと往復*人数となるとどんどん遅くなるみたいです。(;
個人的にはUDPで開発してます。

#以前はTCP/IPでしたが諦めました orz
お互いがんばりましょう!
0112101 ◆VhiWHt2b1s 2005/08/30(火) 22:24:00ID:fsyDvNCd
>>111
9倍も違うんですか!
UDPにしたほうがいいかな
チャットは当然TCPですよね?

アカウントサーバ作ってるんですけど
アカウントの保存と読み出しってどうやってます?
0113911 ◆RfGLxICaUo 2005/08/30(火) 22:39:59ID:WLq0OrMr
参考程度にページ下に書いてあります。
http://nekonoteigi.ddo.jp/

アカウント情報だけTCPで通信してます。
以前はTCPでしたけど・・・IM機能考えてUDPに変えました。
UDPにRTPという方法で通信することでTCPみたいな信頼性持たせてます。

アカウントサーバーの処理はセキュリティ上詳しくいえませんが・・・
(暗号化名).cache → (暗号化)最後パケットを保存。これだけです。
【パケット流れ】クライアント→ホスト→アカウント→ホスト
絶対に情報をクライアントに送らない様にしてます。
0114101 ◆VhiWHt2b1s 2005/08/30(火) 22:46:08ID:fsyDvNCd
RTPですか
初めて聞きます
ググってみます

アカウントの認証はどう行えばいいでしょうか?
アカウントファイルをバッファに読み込んで
そこから検索して該当するものがあればログインする
ではだめですかね?
0115911 ◆RfGLxICaUo 2005/08/30(火) 22:54:13ID:WLq0OrMr
あ〜デザイナでしてプログラム初心者なのであんまりわからんです;

かなり姑息なやり方ですが・・・
クライアントから名前とパスワードを受け取り。
名前をパスワードで暗号して 暗号化した名前+.cache を検索。
if (あったら) {
   ログイン許可
   内容をロード
} else {
   ログイン拒否
}
これが個人的には最小の方法かな・・・。
本当はデーターベースに書き込むらしいですが。
0116名前は開発中のものです。2005/08/30(火) 23:02:05ID:WLq0OrMr
>アカウントファイルをバッファに読み込んで
>そこから検索して該当するものがあればログインする

全然いいと思います。
てか、考えればこの方がいいですw
0117101 ◆VhiWHt2b1s 2005/08/30(火) 23:06:32ID:fsyDvNCd
>116
でもこの方法だと、例えば
Aさんはアカウント「abc」
Bさんはアカウント「abcd」
というときに
Bさんがログインしようとすると
Aさんのアカウントも検索にヒットしてしまう
どうしようかな?
0118101 ◆VhiWHt2b1s 2005/08/30(火) 23:07:29ID:fsyDvNCd
ミスった
Aさんがログインしようとすると
Bさんのアカウントも検索にヒットしてしまう
でした
0119911 ◆RfGLxICaUo 2005/08/30(火) 23:09:31ID:WLq0OrMr

なるほど、私だったら文字列が多いほうから処理させれば重複がないと思います。
以前同じようなことでつまずいたことありましたw
0120名前は開発中のものです。2005/08/30(火) 23:15:28ID:BZ2+UeFa
101がまだ何もうpしてない件について、。
0121101 ◆VhiWHt2b1s 2005/08/30(火) 23:15:48ID:fsyDvNCd
でも、先に登録した人から順に保存されていくから
文字列が多い方から、というのが無理っぽい
0122101 ◆VhiWHt2b1s 2005/08/30(火) 23:21:16ID:pw2GgF0o
>>120
まだうpしません
アカウント登録が出来るようになって
UDP通信に直せたら、うpすると思います
0123911 ◆RfGLxICaUo 2005/08/30(火) 23:25:29ID:WLq0OrMr
なるほど・・・
今考えた程度の処理でいいならこんなのはいかがですか?

「abc」を受け取ったら「abc」付くユーザー名を全て配列に一時保存。
そして、abcの文字列数を取得して「abc」より大きいものは排除。
するとあら不思議abcしか残らない。なんて・・・

NAME = "abc"

notesel BUF
repeat noteinfo(0)
  noteget a,cnt
   if (instr(a,0,NAME) ! -1) {tmp(cn) = a : cn++}
loop
repeat cn
  if (strlen(tmp(cnt)) = strlen(NAME)) {ここで処理}
loop
noteunsel
0124911 ◆RfGLxICaUo 2005/08/30(火) 23:27:24ID:WLq0OrMr
↑はそのまま使えませんから気をつけて;
書き直してみてください。
0125911 ◆RfGLxICaUo 2005/08/30(火) 23:29:33ID:WLq0OrMr
何度もすいません・・・これで使えるはずです。

NAME = "abc"
sdim tmp,64,36

BUF = "abc35q\nabc434\nabc"

notesel BUF
repeat noteinfo(0)
noteget a,cnt
if (instr(a,0,NAME) ! -1) {tmp(cn) = a : cn++}
loop
repeat cn
if (strlen(tmp(cnt)) = strlen(NAME)) {dialog ""+tmp(cnt)}
loop
noteunsel
0126名前は開発中のものです。2005/08/30(火) 23:30:06ID:zifRUWIk
なんなら、パスワードとかをMD5とかでハッシュかしてもてば?
クライアントから送るのはハッシュ値

と、@IT(だったか?)で認証方法として紹介されてたかな。
(ほんとうはさらにハッシュ値も公開鍵とかで暗号化いるけどね)
0127101 ◆VhiWHt2b1s 2005/08/30(火) 23:33:28ID:pw2GgF0o
ほぉ、その方法いいかも
使わせてもらいます

UDPのRTPという技術、調べてもよくわからんかったです。orz
0128911 ◆RfGLxICaUo 2005/08/30(火) 23:34:17ID:WLq0OrMr
MD5は知ってましたが使い方知らないです;
今調べたら・・・すっごい可能性ある方法ですね。

あ〜また仕様変更かもです orz
0129101 ◆VhiWHt2b1s 2005/08/30(火) 23:37:09ID:pw2GgF0o
うひゃ、ハッシュとかよくわかんね
とりあえず、911さんの方法でやってみます
0130911 ◆RfGLxICaUo 2005/08/30(火) 23:38:19ID:WLq0OrMr
UDPのRTPについて

UDPは基本的にデータ送信したら終わりなプロトコルです。
つまり、データを先に送信しても後のデータが先に着くこともあります。
TCPが好まれるのは送信した順番と確実だからです。
UDPでそれを実現するには 送信した順番(シーケンス番号)と時間(タイムスタンプ)を追加すればいいのでは?
ということで考え出された技術です。

基本的にリアルタイムな通信に使います。(IP電話など)

ただ、弱点もたくさんあって・・・データでいっぱいになるとか。
その辺も含めていろいろ開発中だったり。
0131101 ◆VhiWHt2b1s 2005/08/30(火) 23:38:55ID:pw2GgF0o
MD5ってそんなにすごいんだ〜
また、勉強してみます
0132101 ◆VhiWHt2b1s 2005/08/30(火) 23:41:13ID:pw2GgF0o
RTPはすごいですな
でも、俺には
送信した順番(シーケンス番号)と時間(タイムスタンプ)を追加する
という方法がワカンネ
0133名前は開発中のものです。2005/08/30(火) 23:43:26ID:zifRUWIk
まぁ、MD5,SHA-0とかも去年コリジョンでの脆弱性が公表されたけどね(おぃ
0134911 ◆RfGLxICaUo 2005/08/30(火) 23:46:06ID:WLq0OrMr
あ〜それなのですが・・・
本当の方法はプラグイン内部でやらなければいけない処理でして。
私の考えてる方法はパケット自体に細工する方法です。
以下のパケットを送ります。そんで、到着した順に一時保持。
シーケンス番号順にソートして実行をサーバー側で行います。
例)
シーケンス番号(タイムスタンプ)@コマンド
12(3:45:6)@say[0,Hello!!]


お互いがんばりましょう。
と言いたいのですが・・・個人での開発に限界感じて諦めかけてます;
とにかくドット絵・プログラマ・音楽・・・私には足らないものが多すぎで orz
0135911 ◆RfGLxICaUo 2005/08/30(火) 23:47:52ID:WLq0OrMr
>>133
煤i゚∀゚) ナッ!!

マジですか・・・まぁ、個人的に考えたXORレベルの暗号よりかはいいかなw
0136101 ◆VhiWHt2b1s 2005/08/30(火) 23:50:59ID:pw2GgF0o
>>134
難しいですな
まぁ、がんばってみるです
0137911 ◆RfGLxICaUo 2005/08/30(火) 23:54:46ID:WLq0OrMr
よかったら共同で開発なんてどうですか?
通信の方はできそうなのですが・・・ゲームプログラムが苦手で困ってるんですよ;
0138911 ◆RfGLxICaUo 2005/08/31(水) 00:05:22ID:h//GOLL5
人のスレ利用してる気がするのでやっぱりスレに書き込むの辞めます。
本当にごめんなさい。今日はありがとうございました。
0139101 ◆VhiWHt2b1s 2005/08/31(水) 00:06:21ID:WSQckSfa
>>137
いや〜、共同開発もいいですけど、今は一人でがんばってみます。

>>125のソースってHSP3用みたいですけど、2.6用には出来ませんか?
いろいろと直してみたんですけど、やっぱりエラーが出ちゃうんです
0140911 ◆RfGLxICaUo 2005/08/31(水) 00:11:03ID:h//GOLL5
そうですか・・・残念です。 orz

NAME = "abc"
sdim tmp,64,36

BUF = "abc35q\nabc434\nabc"

notesel BUF
notemax i
repeat i
noteget a,cnt
instr stats,a,NAME,0
if (stats ! -1) {tmp.cn = a : cn++}
loop
repeat cn
strlen SIZE,tmp.cnt
strlen SIZE2,NAME
if (SIZE = SIZE2) {dialog ""+tmp.cnt}
loop
0141911 ◆RfGLxICaUo 2005/08/31(水) 00:12:25ID:h//GOLL5
2chのルールはよくわからないのですが・・・
同じようなスレッドは立ててはいけないんですよね?
0142911 ◆RfGLxICaUo 2005/08/31(水) 00:16:01ID:h//GOLL5
あ・・・
ちなみに1つのファイルでアカウント管理するとヤバイですよ。
一人が更新中にもう一人がアクセスしたら・・・衝突が起きますよ。
(それを防止する意味で別々のファイルにしてるんです。)
0143101 ◆VhiWHt2b1s 2005/08/31(水) 00:18:28ID:WSQckSfa
>>140
デキターと思ったらやり方書いてくれてたw
ありがとん

>>141
同じようなスレはやめた方がいいと思いますよ
このスレ誰もいなかったから俺が占領しましたw
0144101 ◆VhiWHt2b1s 2005/08/31(水) 00:21:49ID:WSQckSfa
>>142
一人ずつ違うファイルに保存するわけですな
ログイン時に全てのファイルを開くのが重くならないかな?
0145911 ◆RfGLxICaUo 2005/08/31(水) 00:25:48ID:h//GOLL5
>>144
私が試したところ鯖専用PCだったら24人同時アクセスでも2~5%程度の負荷でした。
で、アカウント管理鯖は24人までにしました。(この人数以上に同時ログインすることないから)

ちなみにスペック
CPU:celeron2.4Ghz
MEM:1024MB
回線:100Mbps
の場合なのであしからず。
0146名前は開発中のものです。2005/08/31(水) 00:29:02ID:bSw2Q65V
>>142
データベースで言えばトランザクション処理部分だね。

hspdbは使えなかった?(てか、isolation level変えられない?)
0147名前は開発中のものです。2005/08/31(水) 00:29:15ID:7+RRt3IJ
>911
スクショ見る限りでは
ゲームの方もできそうなのだが
あれでは、だめなのか
0148911 ◆RfGLxICaUo 2005/08/31(水) 00:31:25ID:h//GOLL5
>>146
そうです。ただDBを実装したことないのでなんとも;
HSPでDB使えるのは知ってても実際に使ったことないんです。 orz
この辺がヘタレの証拠ですね;

ちょっと要らない情報書き込み過ぎたかもしれませんね・・・
0149101 ◆VhiWHt2b1s 2005/08/31(水) 00:33:30ID:WSQckSfa
24人か〜
確かにそれくらいで十分ですね

スペック高いですな
うちのと大違い
CPU:600Mhz
MEM:192かな?
回線:AirH
超最悪環境orz
近いうちに買い換えます。
回線もケーブルテレビにする予定です
0150911 ◆RfGLxICaUo 2005/08/31(水) 00:35:42ID:h//GOLL5
>>147
あ〜なんていうか、RPG的な処理ができないんです。
画面のスクロールやら・・・マップ作るのがめんどくて。
あのSSは背景は固定イラストなんです;(恥

+ゲームシナリオとかバランスが苦手です。

>>149
AirH・・・・256kbpsはちょっと鯖はきついですね;
昔はmmo作りたくて本気だったので20万近く費やして設備揃えました。
はい、馬鹿です;
0151名前は開発中のものです。2005/08/31(水) 00:37:50ID:bSw2Q65V
>>148
まぁ、とりあえずはMySQL+MyODBCを使ってみればいいさ。(hspサンプルはそれだしね)
環境整えば難しくないし。
0152911 ◆RfGLxICaUo 2005/08/31(水) 00:42:19ID:h//GOLL5
>>151
試したいのですが・・・あれです。
MySQLインスコ失敗してから怖くなってしまって;(最新版使わなきゃよかった。
時間空いたら鯖にMySQL導入してみますね。

明日アキバでテスト用PC買ってきまつ…
そしたらmmo公開早まる・・・といいなw
0153101 ◆VhiWHt2b1s 2005/08/31(水) 00:44:21ID:WSQckSfa
>>152
公開始まったら、呼んでくださいな
テスターとしてガンバルよ

ってか、このスレ進むの早ッ!
0154911 ◆RfGLxICaUo 2005/08/31(水) 00:46:23ID:h//GOLL5
私が無駄なレス入れ過ぎました。すいませんorz
0155101 ◆VhiWHt2b1s 2005/08/31(水) 00:48:54ID:WSQckSfa
いいんじゃない?
俺も無駄レス多いしねw
0156911 ◆RfGLxICaUo 2005/08/31(水) 00:57:43ID:h//GOLL5
一応少しづつ公開していきます。
ゲーム画面(小) < http://nekonoteigi.ddo.jp/game0.gif
アカウント鯖のSS < http://nekonoteigi.ddo.jp/game1.gif

明日から恐らく毎日ここ来ます。
少しづつDBやら実装したりしてがんばります。
末永く〜
0157101 ◆VhiWHt2b1s 2005/08/31(水) 01:01:42ID:WSQckSfa
>>156
俺も負けずにがんばりますよ〜
明日は忙しいですので開発できるか分かりませんがorz
俺も毎日来るんでよろしく
以上!
じゃあ寝る
0158911 ◆RfGLxICaUo 2005/08/31(水) 01:11:15ID:h//GOLL5
私のログイン処理を書いておきます。
もし製作されている方おりましたら指摘・参考・意見などあると嬉しいです。
http://nekonoteigi.ddo.jp/

ログインの流れ

クライアント            |         ゲーム鯖          |     アカウント鯖
【名前・パスワード送信】  → → → → ここへ
                          【DB検索許可】 → → → → ここへ 
                                     【衝突安全確認のち同期】
                                   ここへ ← ← ← ← 【DB結果・読出】
           ここへ ← ← ← ← 【DBを保持・完了通知】
                          【ゲーム処理へ移行】

クライアント側には一切情報を送らないのがみそ。
おそらく、正しい方法ではないです。
0159911 ◆RfGLxICaUo 2005/08/31(水) 01:26:50ID:h//GOLL5
HSPでできるだけラグを少なくする方法は・・・

全てにおいて

*main
repeat 最大人数
   通信判定
loop
repeat 最大人数
   受信
loop
repeat 最大人数
   ゲーム
loop
repeat 最大人数
   送信
loop
wait 1
goto *main

と、スレッドを動かすことで全てのユーザー処理をwait 1〜誤差少しで済みます。
これは【ジエンの無人島】なるソースにもあります。(ただ、バグが多いです。
0160911 ◆RfGLxICaUo 2005/08/31(水) 01:27:21ID:h//GOLL5
しかし、以下のように全ての処理を

*main
repeat 最大人数
  通信判定
  受信
  ゲーム
  送信
  wait 1
loop
goto *main

だと、0番〜最大nまで分がラグ発生します。
256人ならば wait 256tラグ発生する点に注意してください。
実際はそこまで遅れないと思いますが。。。(LAN外ならもっと
0161911 ◆RfGLxICaUo 2005/08/31(水) 02:03:27ID:h//GOLL5
ちょっと質問です。
MySQL&MyODBC導入しましたがイマイチわからないです。
なんかODBCでエラーがどうたらと noPASSWORD とか・・・
設定などの参考サイトお教えいただけると嬉しいです。
0162911 ◆RfGLxICaUo 2005/08/31(水) 02:38:22ID:h//GOLL5
MD5の導入完了しました。
すごく便利で助かりました。ありがとうございました。
0163名前は開発中のものです。2005/08/31(水) 12:47:49ID:HHO36KTG
おー!こんな良スレあったんですね。
かなり参考にさせていただきました。
私も以前からMMOつくりたいと思い、SOKETやLinuxプログラムの本買って勉強してます。
言語がCなので、微妙にスレ違いですが…。
ただ、プロトコル設計とかつまるところは、似てるので参考になります。

ちなみに、今日発売のMMORPGサーバープログラミングを買う予定なので、あとで報告しますね。
良本だといいんですが。
0164101 ◆VhiWHt2b1s 2005/08/31(水) 13:19:16ID:vh2Zi6CW
>>163
Cで作ってるんですか!
難しそうですね
俺も半年ほど前にCで作ろうと思ってたんだけど
VRAMが3.5しかなくて、DirectXが使えなかったから
開発をやめたんですw

まぁ、お互いがんばろう
0165911 ◆RfGLxICaUo 2005/08/31(水) 15:39:26ID:h//GOLL5
私もMMORPGプログラムの本買って来ました。
あと、テスト用PCもw

これから楽しみです〜
今日は仕事で5:00〜11:00まで居ません。でわ〜
0166名前は開発中のものです。2005/08/31(水) 16:55:02ID:8d7O4VMk
>>159
>>これは【ジエンの無人島】なるソースにもあります。(ただ、バグが多いです。
 ゴメ(; ;

 wait命令だと人数が増えるとCPUパワーに係わらず遅延が酷くなるので、await命令
で拍子を取らないと。クライアントの描画部分は60fps出したとしても、通信部分では
それほどのフレームレートは必要無い訳なので適度にスキップさせてよいかと。

 あと、アカウントですが、ユーザー名をファイル名としてパスワード等のデータを保存
する方法ではダメなんでしょうか? 無人島はステータス等を保存するタイプのゲーム
仕様ではないので、そのあたりは適当にしか考えてませんが…。

 なんにしろネトゲ作る人が増えて嬉しいデスヨ
0167101 ◆VhiWHt2b1s 2005/08/31(水) 17:05:37ID:2/MYVBqe
>>166
俺も最初そうしようと思ったんだけど
ファイルを読み込むときに
どうすればいいか迷ったから
番号をファイル名にすることにしました
そうすれば、認証の時などにループして読み込めるから
便利だと思いました
0168名前は開発中のものです。2005/08/31(水) 20:46:51ID:01AV07ZN
>>161
とりあえず、ODBC設定くさいので
ttp://allabout.co.jp/career/database/closeup/CU20021003/
とかどう?
0169911 ◆RfGLxICaUo 2005/08/31(水) 22:09:40ID:h//GOLL5
こんばんわ〜
>>166
あっ作者さん・・・スマセン。とても参考になっておりますです。
wait と await比べたのですが、余りわからなかったのでwaitでした。
やはり、await位の単位の方がいいのですか。 参考になります。

私はアカウント名をファイル名にして、中身にパスワードにしてます。
ただし、アカウント名はある程度暗号化してます。
一応、DBなんかも比較しながら導入検討してます。

私はネトゲをやったこと無いのですが、面白そうだと思い作ってます;
実際に作ってみたら・・・普通のゲーム製作が簡単に感じられましたw
0170911 ◆RfGLxICaUo 2005/08/31(水) 22:10:49ID:h//GOLL5
>>167
こんばんわ〜

番号をファイル名にすると・・・
いや実際に運用して試して下さい。意外なところでバグがw
0171911 ◆RfGLxICaUo 2005/08/31(水) 22:12:53ID:h//GOLL5
>>168
おぉ・・・これなら平気そうです。ちょっと試してみます。
DBは衝突という考え方は起きるのですか?(lock,unlockとかあるのかな?
それとも、マルチスレッドで動いているとか?
0172911 ◆RfGLxICaUo 2005/08/31(水) 22:18:44ID:h//GOLL5
でわ、飯食べてから来ますね〜
■ このスレッドは過去ログ倉庫に格納されています