MMORPGをHSPで作りたいな
■ このスレッドは過去ログ倉庫に格納されています
0001FAN
04/05/11 11:12ID:Ky5hy7V50126名前は開発中のものです。
2005/08/30(火) 23:30:06ID:zifRUWIkクライアントから送るのはハッシュ値
と、@IT(だったか?)で認証方法として紹介されてたかな。
(ほんとうはさらにハッシュ値も公開鍵とかで暗号化いるけどね)
0127101 ◆VhiWHt2b1s
2005/08/30(火) 23:33:28ID:pw2GgF0o使わせてもらいます
UDPのRTPという技術、調べてもよくわからんかったです。orz
0128911 ◆RfGLxICaUo
2005/08/30(火) 23:34:17ID:WLq0OrMr今調べたら・・・すっごい可能性ある方法ですね。
あ〜また仕様変更かもです orz
0129101 ◆VhiWHt2b1s
2005/08/30(火) 23:37:09ID:pw2GgF0oとりあえず、911さんの方法でやってみます
0130911 ◆RfGLxICaUo
2005/08/30(火) 23:38:19ID:WLq0OrMrUDPは基本的にデータ送信したら終わりなプロトコルです。
つまり、データを先に送信しても後のデータが先に着くこともあります。
TCPが好まれるのは送信した順番と確実だからです。
UDPでそれを実現するには 送信した順番(シーケンス番号)と時間(タイムスタンプ)を追加すればいいのでは?
ということで考え出された技術です。
基本的にリアルタイムな通信に使います。(IP電話など)
ただ、弱点もたくさんあって・・・データでいっぱいになるとか。
その辺も含めていろいろ開発中だったり。
0131101 ◆VhiWHt2b1s
2005/08/30(火) 23:38:55ID:pw2GgF0oまた、勉強してみます
0132101 ◆VhiWHt2b1s
2005/08/30(火) 23:41:13ID:pw2GgF0oでも、俺には
送信した順番(シーケンス番号)と時間(タイムスタンプ)を追加する
という方法がワカンネ
0133名前は開発中のものです。
2005/08/30(火) 23:43:26ID:zifRUWIk0134911 ◆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煤i゚∀゚) ナッ!!
マジですか・・・まぁ、個人的に考えたXORレベルの暗号よりかはいいかなw
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いや〜、共同開発もいいですけど、今は一人でがんばってみます。
>>125のソースってHSP3用みたいですけど、2.6用には出来ませんか?
いろいろと直してみたんですけど、やっぱりエラーが出ちゃうんです
0140911 ◆RfGLxICaUo
2005/08/31(水) 00:11:03ID:h//GOLL5NAME = "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同じようなスレッドは立ててはいけないんですよね?
0142911 ◆RfGLxICaUo
2005/08/31(水) 00:16:01ID:h//GOLL5ちなみに1つのファイルでアカウント管理するとヤバイですよ。
一人が更新中にもう一人がアクセスしたら・・・衝突が起きますよ。
(それを防止する意味で別々のファイルにしてるんです。)
0143101 ◆VhiWHt2b1s
2005/08/31(水) 00:18:28ID:WSQckSfaデキターと思ったらやり方書いてくれてたw
ありがとん
>>141
同じようなスレはやめた方がいいと思いますよ
このスレ誰もいなかったから俺が占領しましたw
0144101 ◆VhiWHt2b1s
2005/08/31(水) 00:21:49ID:WSQckSfa一人ずつ違うファイルに保存するわけですな
ログイン時に全てのファイルを開くのが重くならないかな?
0145911 ◆RfGLxICaUo
2005/08/31(水) 00:25:48ID:h//GOLL5私が試したところ鯖専用PCだったら24人同時アクセスでも2~5%程度の負荷でした。
で、アカウント管理鯖は24人までにしました。(この人数以上に同時ログインすることないから)
ちなみにスペック
CPU:celeron2.4Ghz
MEM:1024MB
回線:100Mbps
の場合なのであしからず。
0146名前は開発中のものです。
2005/08/31(水) 00:29:02ID:bSw2Q65Vデータベースで言えばトランザクション処理部分だね。
hspdbは使えなかった?(てか、isolation level変えられない?)
0147名前は開発中のものです。
2005/08/31(水) 00:29:15ID:7+RRt3IJスクショ見る限りでは
ゲームの方もできそうなのだが
あれでは、だめなのか
0148911 ◆RfGLxICaUo
2005/08/31(水) 00:31:25ID:h//GOLL5そうです。ただDBを実装したことないのでなんとも;
HSPでDB使えるのは知ってても実際に使ったことないんです。 orz
この辺がヘタレの証拠ですね;
ちょっと要らない情報書き込み過ぎたかもしれませんね・・・
0149101 ◆VhiWHt2b1s
2005/08/31(水) 00:33:30ID:WSQckSfa確かにそれくらいで十分ですね
スペック高いですな
うちのと大違い
CPU:600Mhz
MEM:192かな?
回線:AirH
超最悪環境orz
近いうちに買い換えます。
回線もケーブルテレビにする予定です
0150911 ◆RfGLxICaUo
2005/08/31(水) 00:35:42ID:h//GOLL5あ〜なんていうか、RPG的な処理ができないんです。
画面のスクロールやら・・・マップ作るのがめんどくて。
あのSSは背景は固定イラストなんです;(恥
+ゲームシナリオとかバランスが苦手です。
>>149
AirH・・・・256kbpsはちょっと鯖はきついですね;
昔はmmo作りたくて本気だったので20万近く費やして設備揃えました。
はい、馬鹿です;
0151名前は開発中のものです。
2005/08/31(水) 00:37:50ID:bSw2Q65Vまぁ、とりあえずはMySQL+MyODBCを使ってみればいいさ。(hspサンプルはそれだしね)
環境整えば難しくないし。
0152911 ◆RfGLxICaUo
2005/08/31(水) 00:42:19ID:h//GOLL5試したいのですが・・・あれです。
MySQLインスコ失敗してから怖くなってしまって;(最新版使わなきゃよかった。
時間空いたら鯖にMySQL導入してみますね。
明日アキバでテスト用PC買ってきまつ…
そしたらmmo公開早まる・・・といいなw
0153101 ◆VhiWHt2b1s
2005/08/31(水) 00:44:21ID:WSQckSfa公開始まったら、呼んでくださいな
テスターとしてガンバルよ
ってか、このスレ進むの早ッ!
0154911 ◆RfGLxICaUo
2005/08/31(水) 00:46:23ID:h//GOLL50155101 ◆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俺も負けずにがんばりますよ〜
明日は忙しいですので開発できるか分かりませんが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全てにおいて
*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//GOLL5MySQL&MyODBC導入しましたがイマイチわからないです。
なんかODBCでエラーがどうたらと noPASSWORD とか・・・
設定などの参考サイトお教えいただけると嬉しいです。
0162911 ◆RfGLxICaUo
2005/08/31(水) 02:38:22ID:h//GOLL5すごく便利で助かりました。ありがとうございました。
0163名前は開発中のものです。
2005/08/31(水) 12:47:49ID:HHO36KTGかなり参考にさせていただきました。
私も以前からMMOつくりたいと思い、SOKETやLinuxプログラムの本買って勉強してます。
言語がCなので、微妙にスレ違いですが…。
ただ、プロトコル設計とかつまるところは、似てるので参考になります。
ちなみに、今日発売のMMORPGサーバープログラミングを買う予定なので、あとで報告しますね。
良本だといいんですが。
0164101 ◆VhiWHt2b1s
2005/08/31(水) 13:19:16ID:vh2Zi6CWCで作ってるんですか!
難しそうですね
俺も半年ほど前にCで作ろうと思ってたんだけど
VRAMが3.5しかなくて、DirectXが使えなかったから
開発をやめたんですw
まぁ、お互いがんばろう
0165911 ◆RfGLxICaUo
2005/08/31(水) 15:39:26ID:h//GOLL5あと、テスト用PCもw
これから楽しみです〜
今日は仕事で5:00〜11:00まで居ません。でわ〜
0166名前は開発中のものです。
2005/08/31(水) 16:55:02ID:8d7O4VMk>>これは【ジエンの無人島】なるソースにもあります。(ただ、バグが多いです。
ゴメ(; ;
wait命令だと人数が増えるとCPUパワーに係わらず遅延が酷くなるので、await命令
で拍子を取らないと。クライアントの描画部分は60fps出したとしても、通信部分では
それほどのフレームレートは必要無い訳なので適度にスキップさせてよいかと。
あと、アカウントですが、ユーザー名をファイル名としてパスワード等のデータを保存
する方法ではダメなんでしょうか? 無人島はステータス等を保存するタイプのゲーム
仕様ではないので、そのあたりは適当にしか考えてませんが…。
なんにしろネトゲ作る人が増えて嬉しいデスヨ
0167101 ◆VhiWHt2b1s
2005/08/31(水) 17:05:37ID:2/MYVBqe俺も最初そうしようと思ったんだけど
ファイルを読み込むときに
どうすればいいか迷ったから
番号をファイル名にすることにしました
そうすれば、認証の時などにループして読み込めるから
便利だと思いました
0168名前は開発中のものです。
2005/08/31(水) 20:46:51ID:01AV07ZNとりあえず、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こんばんわ〜
番号をファイル名にすると・・・
いや実際に運用して試して下さい。意外なところでバグがw
0171911 ◆RfGLxICaUo
2005/08/31(水) 22:12:53ID:h//GOLL5おぉ・・・これなら平気そうです。ちょっと試してみます。
DBは衝突という考え方は起きるのですか?(lock,unlockとかあるのかな?
それとも、マルチスレッドで動いているとか?
0172911 ◆RfGLxICaUo
2005/08/31(水) 22:18:44ID:h//GOLL50173101 ◆VhiWHt2b1s
2005/08/31(水) 22:48:27ID:GTGct16k番号をファイル名にしてやってましたが
特に問題なく動きましたよ
どんなバグがあったんですか?
0174911 ◆RfGLxICaUo
2005/08/31(水) 23:02:19ID:h//GOLL5多数でアカウントファイルを作ると言うことは?
つまりは個人のステータス保存を行うことを意味します。(セーブ機能
番号だと特定されやすい気がします。
さらには、ユーザー削除したら?(clr)追加したら?以前使った人はどうなるの?
と・・・
私ならハッキングして好きなレベル。アイテムを加えちゃいます。
よく考えればバグという程でもないかな・・・ orz
仕様と考えれば平気だと思います。すいませんでした。
0175名前は開発中のものです。
2005/08/31(水) 23:08:02ID:01AV07ZNとりあえず、トランザクション分離レベルを。
ttp://www.atmarkit.co.jp/fnetwork/rensai/sql27/sql1.html
基本的には、マルチスレッドのように複数のトランザクションを作成したら
衝突は起きますね。
0176911 ◆RfGLxICaUo
2005/08/31(水) 23:14:36ID:h//GOLL5採用する意義ありそうだこりゃ。
※HSPで開発してる間は自分なりに考えたDB使いますね。
0177911 ◆RfGLxICaUo
2005/08/31(水) 23:29:09ID:h//GOLL5という本を買って読んだ感想。
絶 対 に 買 っ て 損 は し な い ぞ !
0179911 ◆RfGLxICaUo
2005/08/31(水) 23:47:10ID:h//GOLL5参考にしたのは書籍mmorpg,,でとりあえず、リネージュの初期設計を流用してみたり。
【ローカル内部】:分散%vista(o)
----------------------- ------------------------
↓ ↑ ↑ ↓ ↓
クライアント ⇔ パッチ鯖 → 認証鯖 →ロビー鯖 → 管理鯖 ⇔ ゲーム鯖1 ⇔ 同期サーバー
↑ ⇔ ゲーム鯖2 ⇔ ↓
---------------------------------------------
1つの鯖で256人(192.168.0.0〜255)まで。
0180911 ◆RfGLxICaUo
2005/08/31(水) 23:52:42ID:h//GOLL5私の場合は
アカウントファイルを個別に生成してます。166さんと同じような感じです。
ただ・・・色々弱点もあるので今は別の方法考えてます。
クライアント アカウントサーバー
【TCP】ユーザー名とパスワード送信 → 【TCP】受信
【existでファイルを探す。】※ユーザー名とパスワードは暗号化すること
【ゲーム鯖にステータス配信】
【TCP】受信 ← 【TCP】TRUEだったらMD5ハッシュ送信
【ハッシュ値が合ってるか?】
0181101 ◆VhiWHt2b1s
2005/08/31(水) 23:54:55ID:GTGct16kそれともC言語?
0183911 ◆RfGLxICaUo
2005/09/01(木) 00:00:15ID:zCrIKZfZc++ベースでWin,Linux対応らしいっす。
ソース読めばHSPに応用できないことも・・・まぁ無いことは無いかな?(;
0185911 ◆RfGLxICaUo
2005/09/01(木) 00:07:44ID:zCrIKZfZ【通信経路は略】
キャッシュ(1づファィル)に独自アルゴリズムで配置する。※暗号化ではない。
そして、その内容をハッシュ値として保存。(新しく生成)
ダミーアカウントに名前のみを入れる。※ここで暗号化する。
通信は基本的にさっきと同じ手順。
なにが違うかというとユーザー名・パスワード・ファイル名など全てが流動的なのでハッキングされにくい。
ログインするごとにテキストが変化するのに、内容は変わらないと。
>>184
この類では意外に安いかもです。¥3400。
0186911 ◆RfGLxICaUo
2005/09/01(木) 00:14:29ID:zCrIKZfZ今後は完成したものを公開するだけにします。
なんか悲しいなぁ・・・開発者MLとかないかな〜・・
0187101 ◆VhiWHt2b1s
2005/09/01(木) 00:14:50ID:lc8CaCbR買ったことがあります
表紙が色違いだけでそっくりですな
その本DirectX使ってますか?
0189911 ◆RfGLxICaUo
2005/09/01(木) 00:16:42ID:zCrIKZfZオンラインゲームの方も買おうと思いましたが、サーバーの方が興味あったので;
0190101 ◆VhiWHt2b1s
2005/09/01(木) 00:19:35ID:lc8CaCbRサーバーだけか〜
でも良さそう
今度本屋で見てくる
うひゃ、こういうのが無駄レスかw(orz
0191911 ◆RfGLxICaUo
2005/09/01(木) 00:23:32ID:zCrIKZfZ私はオープンソースmmoを作って色んな人が簡単に作れるのが目標です。
それを完成させるまでここいるです。あ〜楽しいかも。
0192911 ◆RfGLxICaUo
2005/09/01(木) 00:30:30ID:zCrIKZfZなんか・・・流れが・・・
0193101 ◆VhiWHt2b1s
2005/09/01(木) 00:33:23ID:lc8CaCbRいいんじゃない?
今なんとなく
何の処理もしてないプログラムの
FPSを調べていたら
1万を余裕で超えていたw
0194911 ◆RfGLxICaUo
2005/09/01(木) 00:35:17ID:zCrIKZfZfspあれどっちだっけ?
0196911 ◆RfGLxICaUo
2005/09/01(木) 00:41:45ID:zCrIKZfZ今日は書籍読んで寝ますね。
思いついたら鯖でも公開してみます。でわおやすみなさい〜
(とかいいつつ多分書き込むかも・・)
0197911 ◆RfGLxICaUo
2005/09/01(木) 00:45:09ID:zCrIKZfZのアカウントさーばーがMD5送信しないです。すいません。
アカウントさーばーで判定して結果(TRUE,FALSE)のみ送信でした。
0198名前は開発中のものです。
2005/09/01(木) 00:50:19ID:YCOa9VynFPSっと大文字だと一人称視点シューティング
fpsっと小文字だと1秒間の画面更新回数
と理解されるよ。
このスレはどっちにしろ機能してなかったから別段独占しても構わんかと。
あー、明日も仕事だ。はよ、寝よ。
0200911 ◆RfGLxICaUo
2005/09/01(木) 01:19:07ID:zCrIKZfZクライアント・パッチ鯖・認証鯖
を、テスト的な位置付けで作ります。
実装して欲しい機能あったら書き込んでください。
mmo遊んだことないので知識だけで;
でわ〜本当におやすみ!!
0201無人島(HSP3) ◆quHoSW/FCI
2005/09/01(木) 02:11:24ID:Rm+OmXay一番単純な「アカウント名+拡張子( .datとか)」だと、exist命令でファイルの有無が
確認できます。登録アカウント数が1000を越えるようなら先頭文字別にフォルダに仕
分ければいいと思います。
>>169
waitとawaitの違いですが、精度の違いだけでなく内容も大きく異なります。
waitだと、「処理に掛かった時間+wait待ち時間」とループ毎の処理時間が異なって
しまいますが、awaitは、「前回のawait命令から計算して指定時間になるまで待機する」
ということで、awaitでの指定時間以上にメインの処理時間が掛からない限り一定になり
ます。
wait -> メイン処理に15ms掛かった+wait 2(20ms) = 掛かる時間35ms
await -> メイン処理に15ms掛かった+await 20(msで残り5msだけ待機) = 掛かる時間20ms
0202名前は開発中のものです。
2005/09/01(木) 08:00:55ID:ZdnOF/2PFPVは確かに一人称視点だがシューティングゲームの要素が入るとFPSという
0203911 ◆RfGLxICaUo
2005/09/01(木) 10:23:20ID:zCrIKZfZ一応、昼間暇な職業なのでその辺よろしくです。
>>201
waitとawaitだったらawaitの方が良さそうですね。
昔使ったときCPU使用率が10%前後まで上がったような・・・
これは関係ないですかね?
で、パッチ鯖は完成しました。
【機能】
・バージョンチェック
・付属ファイル 破損チェック
・更新内容チェック
今から認証鯖に取り掛かります。
0204911 ◆RfGLxICaUo
2005/09/01(木) 11:40:00ID:zCrIKZfZ最初はパイプライン経由でどんどん起動・終了しようと考えたのですが・・・今書いてるのはレベル管理(変数)でして;
みなさんはどんな方法使ってますか?
0205911 ◆RfGLxICaUo
2005/09/01(木) 12:40:33ID:zCrIKZfZ以前は認証数24人にしてましたが・・・専用サーバー作る予定なので256人に修正。
通信暗号もクライアント→鯖のみにして軽くします。
【CON】
【tcp_CL】バージョン → 【tcp_PT】バージョン判定
【tcp_CL】結果 ← 【tcp_PT】TRUE,FALSE
【tcp_CL】定義MD5 → 【tcp_PT】MD5比較
【tcp_CL】結果 ← 【tcp_PT】TRUE,FALSE
【tcp_CL】ユーザーMD5 → 【tcp_PT】MD5比較
【ログイン試験回数を+1する】 ・・・もし3回以上なら凍結。
【tcp_CL】結果 ← 【tcp_PT】TRUE,FALSE
【FIN】
【通信レベルを+1する】 ・・・ ロビー鯖に移行。
こんな感じでしょうか?
速ければ今日中に稼動できそうです でわ〜
0206911 ◆RfGLxICaUo
2005/09/01(木) 13:20:20ID:zCrIKZfZ認証のためのパケットを作っておくと便利だと思います。
HSP(PCBnet)だと特にパケット自体の操作できないみたいなので・・・その中身の話になります。
だから、専用の凡庸スクリプトを用意しました。
METHOD = 命令
CLASS = 要素
cMAX = 要素の数
c(n) = n番目の要素
HEX = 通信最大byte数(512が妥当)
cMAX = 16
sdim c,HEX,cMAX
getstr METHOD,BUF(n),0,'[' : getstr CLASS,BUF(n),strsize,']'
SIZE = 0
repeat cMAX
getstr c(cnt),CLASS,SIZE,',' : SIZE = SIZE+strsize
loop
実際に使うと login[1.00,管理人,12345] という文章だけ解釈できます。
通信回数もかなり減ると思います。
if (METHOD = "login") {
if (VER = c(0)) {TRUE} else {FALSE}
・
・
・
}
と、とりあえず参考程度にみてください。
0207無人島(HSP3) ◆quHoSW/FCI
2005/09/01(木) 14:29:49ID:n6yjs02gうほ。getstr命令でCSVが処理できたのか。csvnote命令は要プラグインだったので
instr命令とstrmid命令の組み合わせで処理してましたよ(苦笑
無人島では先頭が命令で以下は全てパラメーターとして処理しています。命令ごとの
区切りは改行コードで、各パラメーターの区切りコードは「,」です。
911さんのもそうだと思うけど、アカウント名とかで区切りコードを使われないように
ダメ文字チェックは欠かせないと思います。そういう意味ではあまり区切りコードを増や
さないほうがいいのではないかと。もしくはセパレーター使われた時はメタ処理するか。
0208無人島(HSP3) ◆quHoSW/FCI
2005/09/01(木) 14:37:15ID:n6yjs02gHSP2.6以前でawait命令を使用すると、実際の負荷とは関係無しにCPUを100%使って
たりします。CPUの温度の上がり具合から見ると本当に100%使い切っているわけじゃな
いんですけど、なんか表示ではそうなってしまい。
ちなみにHSP3からはこの不具合は無くなっています。でも専用エディタで、たまに
変数に前後の半角スペースがくっついて別の変数扱いになるバグはたまらんす。
0209911 ◆RfGLxICaUo
2005/09/01(木) 14:43:04ID:zCrIKZfZ無人島のみてみましたがすごくスマートで驚きました。
CSV・・?あまり詳しくないですが、もともとノベルゲースクリプト言語作ってて↑の方法思いつきました。
アカウント名のチェックのこと忘れてました。(;
私の場合はa~z,A~Z,0~9の文字コード検索してそれ以外はダメとかですかね?
日本語での登録は弾いて、ニックネーム機能で可能にしようと思ってます。
基本的にプログラムというものが分からないので制限で押さえ込もうかなと orz
0210911 ◆RfGLxICaUo
2005/09/01(木) 14:46:44ID:zCrIKZfZなるほど・・・ではawaitで決まりですねw
まぁ、CPU100%だろうと専用鯖なので気にしないですがw
HSPエディタが突然落ちるのには萎えます。
この前なんか一回も保存せずに200行ぐらい書いてて・・・ orz
そいえば、無人島ソースって変数が日本語ですよね?すごく見やすくてよかったです。
0211101 ◆VhiWHt2b1s
2005/09/01(木) 14:51:31ID:2KxWURtYMMORPGゲームサーバープログラミング
っていう本探してたんですが、売ってなかったですorz
0212911 ◆RfGLxICaUo
2005/09/01(木) 14:54:31ID:zCrIKZfZアキバみたいな専門書揃ってるとこじゃないとないかも。
単価高いから。
いや・・・本当に他の製作者から意見もらったりできるのは嬉しいや。
普通にアカウントのこととか忘れてたし;
0213911 ◆RfGLxICaUo
2005/09/01(木) 15:05:36ID:zCrIKZfZちなみにログイン画面ってGUIで実現してますか?
今、2Dスプライトでそれっぽくしようか悩んでます。
0215911 ◆RfGLxICaUo
2005/09/01(木) 15:18:28ID:zCrIKZfZできたらここにアップしますのでテストよろしくです。
じゃあ、残り1時間がんばります。
0216911 ◆RfGLxICaUo
2005/09/01(木) 23:22:50ID:zCrIKZfZ誰もいないみたいですね・・・では、マッタリギコナビ立ち上げて待ってます。
今やってるのはシステムコンソール作ってます。でわでわ。
0217911 ◆RfGLxICaUo
2005/09/01(木) 23:36:11ID:zCrIKZfZソース汚いですがアップしますか?あと、サーバー立ち上げと来ますか?
とりあえず、2:00までは起きてますんでノシ
0218101 ◆VhiWHt2b1s
2005/09/01(木) 23:39:54ID:1G2S7oH9テストできますか?
0219911 ◆RfGLxICaUo
2005/09/01(木) 23:45:14ID:zCrIKZfZそれとかなり最適化などは行ってないです。手抜きも許してください。
(アカウント名の制限も取り入れてません。)
このソースは簡易クライアント・認証サーバーの.hspです。
http://nekonoteigi.ddo.jp/200591.zip
0220911 ◆RfGLxICaUo
2005/09/01(木) 23:49:57ID:zCrIKZfZとりあえず、内部処理はわかると思いますが・・・
暗号化や最適化は絶対必要なので各自よろしくです。
無人島の作者の方も見て評価頂けると嬉しいです。
0221911 ◆RfGLxICaUo
2005/09/01(木) 23:53:43ID:zCrIKZfZ今日は寝ちゃおうかな・・・
0222101 ◆VhiWHt2b1s
2005/09/01(木) 23:58:31ID:1G2S7oH9サーバーうまいです
ちょっとパクっちゃおw
0223911 ◆RfGLxICaUo
2005/09/02(金) 00:02:13ID:ImspL3Tn恐らく今後かなり変わってくるので・・・
明日までに
・アカウント名文字制限
・暗号化
・不正パケット破棄
を付加して公開しますね。
0224101 ◆VhiWHt2b1s
2005/09/02(金) 00:05:57ID:Toy5l8o6こちらもガンバって製作中です。
まだ公開とまではいきませんがorz
0225911 ◆RfGLxICaUo
2005/09/02(金) 00:11:10ID:ImspL3Tnセキュリティ上の問題があるので、内容をほぼ70%は書き換えます;
ふと認証鯖で必要な機能ってなんだろう・・・と思ったり。
■ このスレッドは過去ログ倉庫に格納されています