おいおい
このままだと
>>10の野郎進まねーぞ!!
オレは無理だが、誰かアドバイスでもサンプルでもいいから教えてやれ!!!
1VS1のチャットはソケットの同期で簡単なんだけど
1VSnになると非同期が必要になるからね
あと、作成プログラムが2つ必要(サーバ&クライアント)
ってのが、以外にめんどい
2つ揃わないとテスト出来ないってのが敷居を高くしてる
>>32 そうなんだよな
でもこれが作れないとオンラインゲームなんて100%つくれないからな
アドバイスっつってもなぁ・・・
何故
>>10がUDPに拘ってるのかがわからんと何とも言いようが無い。
UDPでMMOってのが如何に難しいかってのは、解っていてのことなんだろうか…。
Σ( ゚д゚)
ってお前さんも朝早いな
いや、別にUDPじゃなくてもいいんですよ。
ただ単に高速だからです。
でも、アカウント登録やログイン処理はTCPじゃないとダメだし。
UDPはキャラの座標とか少しくらい消えてもいいような部分にしか使いません。
UDPってルータ越えが難しいんじゃない?
TCPに限定して、その分高速化は送受信データの切り詰めで補った方が簡単確実ってこと?
>>38 普通はそうだなぁ。
UDPとTCPを混在させると
UDP<>TCP間の同期の取り方とか
UDPの部分は、どうしてもクライアント主導の
通信にならざるを得ないから、イレギュラーや不正の
対処方法とかプログラミング的にも難度が高くなるしな。
まずは確実に動くものをTCPで作ってからUDPに対応させりゃいいじゃん。
じゃあTCPでいくかな
ってかチャット作りTCPでやってたw
42 :
名前は開発中のものです。:2005/10/07(金) 19:54:42 ID:BQzEcK2V
オレVBで作ろうと思ってるんだけどさー
VBって速度的にどうなん?
問題無いなら勉強しようと思うんだけど
ログインなどの処理が一応実装できた
まだ暗号化とかしてないけど・・・
サーバーしか作ってないから、そろそろクライアント作らないとな
45 :
名前は開発中のものです。:2005/10/19(水) 19:40:46 ID:ifZ8caQI
MMO作ろうかと思ってますが、
ピアツーピアのMMOって無謀でしょうか?
無謀かも知れん。
が、どういう実装形態があるか考えるのは悪いことではない。
47 :
名前は開発中のものです。:2005/10/19(水) 19:56:30 ID:5zXty7Ea
同時接続人数少なくなると思うけどできるんじゃない?
>>18-21 1VS1の通信しか出来なくない?
複数クライアントの接続は宿題カナorz
ここはまだ生きてるのかな?
漏れの作り方
1. とりあえず1対1でもいいからエコーサーバーを作る。
2. エコーサーバーをテストに使い、クライアント側の通信部分を作る。
3. 2で作った通信部分をテストに使い、サーバー側の通信部分を作る。
誰も見てないだろうから初歩的な質問してみる。
複数クライアントのチャットサーバにおいて
サーバがあるクライアントとの接続を確立したあとどうすべきか悩んでいます。
1、forkしてクライアントとの通信は子プロセスに任せる
親プロセスはそのソケットディスクリプタをcloseして新たにacceptする
送受信データの同期はプロセス間通信で親プロセスがなんとかする?
>>19のscを受け取った時点でfork、親プロセスはscをcloseしたあとにbindのところに戻る
2、ひとつのプロセスで通信と同期を全てまかなう
最初から接続上限数のソケットディスクリプタをつくっておいて
サーバの中で送受信を接続上限数分ループさせる
>>19のscを配列にして
>>20のdo-whileをforにしてsc[i]を各々受信する感じ
1を使うとひとつのクライアントとの接続に不具合が発生しても
サーバがこけることはなさそうというのがメリットで
(他人の発言のような)送信すべきデータの取得がややこしそうになるというのがデメリット。
2の場合、親亀こけたら皆こけたの要領でひとつのクライアントとの通信不具合が
サーバ全体におよびそうというのがデメリットで
ループのおかげで受信の順番が決まってるのでそのときに送信をそれぞれ探ればいいから
送信データの取得はチャットだけを考えるなら簡単そうというのがメリット。
という風に考えています。
どっちをMMORPGサーバまで発展させると考えるなら採用すべきでしょうか?
間違った考え方をしている点や気づいていないメリットやデメリット、他の手段
などありましたらご指摘のほうお願いします。
>>51 つ thread
Linuxでやるなら最終的には1でやるしかないと思う。
FreeBSDは試したこと無いから知らん。SolarisならThreadで行ける。
>>52 どもども。
あのあと調べてみたんですが2のやりかたはselect()/poll()ってのを使うんですね。
でも大規模なものには向かない感じ?
スレッドが現在主流なんでしょうか。いくつかの資料にあたってみると
select()やfork()のやりかたも書いてあるけど大抵の場合、
最終的にこれからはマルチスレッドだ!って意見に落ち着いてるような。
Linuxの場合NPTL/LinuxThreadsという形でPthreadsを実装してるみたいですね。
ただまだ新しい機能のせいか今でもちょこちょこ仕様変更してるのが気になるところ…
あと気になったのがシステム的な限界。手持ちのLinuxの標準的な設定だと
開けるディスクリプタの上限:1024
同時起動できるプロセスの上限:なし
プロセスあたりのスレッドの上限:64
システム全体のスレッドの上限:16384(64スレッド*256プロセス?)
らしいのですが、1ユーザとの通信は1スレッド+1ソケットディスクリプタで
という考え方だとacceptを複数プロセスでやらない限りは、
1システムあたり64人しか同時接続できなくなるという解釈でいいのでしょうか。
各々協調作業するマルチスレッド+マルチプロセス+マルチシステムな知識が必須?
ほう
ここって板の一番下だよな・・・・?このスレのっとるか日記で
56 :
名前は開発中のものです。:2007/04/10(火) 22:36:07 ID:/BIIixjg
ageとくね
57 :
名前は開発中のものです。:2007/04/10(火) 22:41:43 ID:w90qBFR1
乗っ取りおめー
おまえら、いろいろとありえねーだろwwwwwwwwwwwwwwww何だよそのレス速度
ごめんね、この板の全スレでレスが
あったらすぐわかるようにしてるから…ごめんね。
60 :
名前は開発中のものです。:2007/04/10(火) 22:51:45 ID:w90qBFR1
専ブラでスレタイ検索してお気に入りに登録して、
新着レスに緊急出動態勢整えてるのは俺だけじゃない筈だ。
61 :
名前は開発中のものです。:2007/04/10(火) 23:18:37 ID:+7AxyvvI
イヤッホオオオオオオオオオオオオ!!!!1111
62 :
名前は開発中のものです。:2007/04/11(水) 16:12:28 ID:6TT42fR3
期待あげ。
63 :
名前は開発中のものです。:2007/05/25(金) 15:12:16 ID:s1jJ8pe0
64 :
名前は開発中のものです。:2007/05/25(金) 15:18:34 ID:N7du3zg1
なぜ宣伝?ここ製作なんだがネトゲは別なとこにあるが
MMORPGってどういうシステムで作るの?
C/C++?DirectX?他になんかライブラリとかあんの?
あとWinAPIとかWinSock。
言語はC/C++として、
システムはWinAPI&DirectX、通信はWinSockって感じ?
(仮に)ウィンドウ関連は最低限だけ触ってDirextXでガリガリ書くとしても、
DirectPlayはMS自身が見捨ててるので通信にはWinSockが必要。
そのWinSockを使うにはウィンドーメッセージ関連の処理が必要。
他に日本語入力(IME)の取得や、
全角文字のの表示にはWinAPIを使うのが現実的。
C++&DirectX+αだとこんな感じかな。
69 :
名前は開発中のものです。:2008/01/07(月) 15:09:38 ID:hwCbBhi8
VIPからき☆すた
70 :
名前は開発中のものです。:2008/01/08(火) 11:43:42 ID:6gzjxlz2
チャットにタバターつけておしまいの方向で
あ
72 :
名前は開発中のものです。:2009/10/28(水) 16:23:51 ID:Q3MsUvxA
なかったら作れてないはず
74 :
あ:2014/07/23(水) 06:17:21.73 ID:w8Mju97e
あ
75 :
名前は開発中のものです。:2014/10/13(月) 23:06:31.05 ID:IptKTXYi
ここからは、元のスレの趣旨関係なしに再利用の予定です。
MMORPGのシステム周りに興味ある方、作ってみたい思惑をもってらっしゃる方、
興味ある方は一言メッセージを残していただければお付き合いいたしますので
よろしくお願いします。
今の時代やっぱり、HTML5 と WebSocket ですかね
そう思いますね。
レスポンシブに作れば、PCでもスマホでも動く。
レスポンシブか・・・、質問スレで少し前に縦横サイズの話あったけど、
ズームをかけるか、フィールドなんかのみえる範囲が解像度によって
バラバラになるのか。 この辺も作りこみとユーザターゲッティングの
思惑によって変わってきますね。
WebSocketでサーバ側制御できる仕組みを無料で提供したら、
プログラミングやってみたい人って結構いそうだけど準備しようかな
WebSocketでサーバーにプログラムを送り込むって事?
どんな仕組みになりますか?
クライアントの効率の良い作り方悩む。
enchantJS使ってみたけど、UI作るのしんどい。
EdgeAnimate触ってみてるけど、これはかなり良さそうに思う。