MMORPG
■ このスレッドは過去ログ倉庫に格納されています
0001-Я-
2005/09/24(土) 16:41:08ID:SuwAeEoS0002名前は開発中のものです。
2005/09/24(土) 17:10:56ID:UGCNNHQm0003名前は開発中のものです。
2005/09/24(土) 17:40:26ID:xEgDYVdH知らんけど
0004名前は開発中のものです。
2005/09/24(土) 19:21:07ID:tFIprWQK0005名前は開発中のものです。
2005/09/24(土) 22:15:19ID:J5oxGrnTない
0006名前は開発中のものです。
2005/09/24(土) 22:19:13ID:tFIprWQK0007名前は開発中のものです。
2005/09/24(土) 22:56:27ID:J2roar/D■ネットワークRPGメーカー2000
■発売元:アスキー
■価格:9800円
■問い合わせ先:アスキー
TEL 03-5351-8728
■動作環境:Windows 95/98/2000,MMX Pentium/200MHz以上(推奨PentiumII/300MHz以上),メモリ64MB以上(推奨128MB以上),空きHDD容量50MB以上
糸冬 了
0008名前は開発中のものです。
2005/09/24(土) 22:57:29ID:J2roar/Dhttp://www.4gamer.net/review/live/nrpg.html
糸冬 了
0009名前は開発中のものです。
2005/09/24(土) 23:27:37ID:UGCNNHQmそれ、発売も中止のようだし、サーバーも動いてないような、HP調べたが
過去の製品リストからも排除されているようで、出てこなかった〜〜よ。w
0010名前は開発中のものです。
2005/09/27(火) 22:22:38ID:fJ8kPMi+o0011名前は開発中のものです。
2005/09/27(火) 22:46:38ID:/b0+bht72.素材を用意(ドット・音楽など)
3.各種サーバー
4.クライアント
この手順が良いと思いますよ〜
0012名前は開発中のものです。
2005/09/27(火) 23:20:12ID:yn+0L+ICクライアントのグラフィックスエンジンが動いている必要がある。
仮素材を用意するのなら、その手順でも構わないが…
001310
2005/09/27(火) 23:47:59ID:SkI+GD38難しそうだな〜
頑張ってみる
001410
2005/09/28(水) 16:27:20ID:9jNPEdSe0015名前は開発中のものです。
2005/09/29(木) 03:06:45ID:ToR8zilx001610
2005/09/29(木) 17:46:52ID:gkIkra0Iそりゃそうだよなw
DOSプログラムとWINプログラムってどっちがサーバーにむいている?
個人的にはDOSの方がいいかなって思ってるんだけど
0017名前は開発中のものです。
2005/09/29(木) 19:55:53ID:CAD+EvmP0018TCPサーバ基本1/3
2005/09/29(木) 22:35:37ID:LE7U2HkX#include <windows.h>
#include <winsock.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define PORT_NO 2500//ポート番号
#define MSG_SIZE 512//受信バッファサイズ
void ErrorProccess(SOCKET, char *);//エラー処理関数
int main(int argc, char * argv[]){
WORD wVerReq ;//WinSock要求Ver.
WSADATA wsadata ;//WinSockライブラリ情報
SOCKET s,sc ;//接続待ち受けソケット、通信用ソケット
struct sockaddr_in addr,addrc ;//サーバーアドレス構造体、クライアントアドレス構造体
char hello[] = "Hello!\n\"bye\"で終終了\n" ;//最初に送信する文字列
char msg[MSG_SIZE + 1];//文字列送受信バッファ
int ret ;//返値
0019WindowsのTCPサーバ基本2/4
2005/09/29(木) 22:36:55ID:LE7U2HkXif(WSAStartup(wVerReq, &wsadata) != 0){printf("ライブラリ初期化失敗\n");return 1;}
s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
if(s == INVALID_SOCKET) ErrorProccess(0, "socket()");
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET ;
addr.sin_addr.s_addr = htonl(INADDR_ANY); // 全てのインターフェイスを許可
addr.sin_port = htons(PORT_NO);
ret = bind(s, (struct sockaddr *)&addr, sizeof(addr));
if(ret == SOCKET_ERROR) ErrorProccess(s, "bind()");
ret = listen(s, SOMAXCONN);
if(ret == SOCKET_ERROR) ErrorProccess(s, "listen()");
ret = sizeof(addrc);
sc = accept(s, (struct sockaddr *) & addrc, &ret);
if(sc == INVALID_SOCKET) ErrorProccess(s, "accept()");
closesocket(s);
printf("Cliant Address : %s\n", inet_ntoa(addrc.sin_addr));
printf("Cliant Port : %hu\n\n", ntohs(addrc.sin_port));
ret = send(sc, hello, (int)strlen(hello), 0);
if(ret == SOCKET_ERROR) ErrorProccess(sc, "send()");
0020WindowsのTCPサーバ基本2/4
2005/09/29(木) 22:37:56ID:LE7U2HkXret = recv(sc, msg, MSG_SIZE, 0);
if(ret == SOCKET_ERROR) ErrorProccess(sc, "recv()");
msg[ret] = '\0';
printf("受信 : %s\n", msg);
ret = send(sc, msg, (int)strlen(msg), 0);
if(ret == SOCKET_ERROR) ErrorProccess(sc, "send()");
printf("送信 : %s\n", msg);
}while(strcmp(msg, "bye"));
closesocket(sc);
WSACleanup();//ソケットライブラリの終了処理
return 0;
}
0021WindowsのTCPサーバ基本4/4
2005/09/29(木) 22:38:30ID:LE7U2HkXvoid ErrorProccess(SOCKET s, char * api_name){
printf("Error Area = %s , Error Code = %d\n",api_name, WSAGetLastError());
if(s != 0){closesocket(sock);s = 0;}
WSACleanup(); //ソケットライブラリの終了処理
exit(1);
}
0022名前は開発中のものです。
2005/09/29(木) 22:40:07ID:LE7U2HkX0023名前は開発中のものです。
2005/09/30(金) 18:05:54ID:SLqzHEJo藻舞ら、いつの時代の人間じゃ?
Linuxを使え
002410 ◆pF5cbfQoT2
2005/09/30(金) 18:51:13ID:6eJVvR2pありがと
助かるよ
>>23
windowsだよ
windowsで作りたいんで
通信はUDPにする
0025名前は開発中のものです。
2005/10/01(土) 13:53:50ID:GUmXustT少なくともUDPオンリーではゲームはつくれないよ
どうしても厳密な同期が必要なプロトコルがでてくるんだし。ログイン処理とかね
まずUDPが高速であるとされるファクターの最たるものがパケットロストしたときの再送の
リクエストが行われないという事だろうが、ゲームの場合はパケットが未到達であれば
ゲームはとまってしまうか情報不足の状態で補完していくことになるだろう、
これはTCPが再送のリクエストをしていてパケットがまだ届かないのと何も変わらない
状態じゃないのか。ユーザーに見える部分で何も変化がないわけでこれじゃ意味がないだろ。
加えて、パケットそのものの大きさが小さいということもあるだろうが、ゲームはものすごく小さな
パケットを連続的にではなく比較的穏やかな頻度で投げつけるので動画ストリームとかと比べて
大した差異にはならないと思うのだ
たまにパケットが届かなかったり、たまに順番が狂ってたりする場合を考慮して処理を書いたり、
または書き忘れて低頻度で起こるこういう現象に起因するバグに半日悩んだりするよりは、
普通にTCPを使うことを俺はおすすめする。
反論をたのむ
0026名前は開発中のものです。
2005/10/01(土) 14:16:34ID:GUmXustTストリーミングすることは未来一切あり得ないからこれでいいんだ。
正直チャットをつくれとかそういうのはどーでもいい。
ちゃんとデータが行き来するのが確かめられれば必要なし。
0027名前は開発中のものです。
2005/10/01(土) 16:12:17ID:UQfKbq0R簡単に作れるなら、チャットの実装も悪くない
動作が見て分かるからね
プログラムを知らない人も説得しやすいし
002810 ◆pF5cbfQoT2
2005/10/01(土) 19:24:24ID:Y+BAe+9Hなるほど
とりあえず送受信ができないとな
fd_setとselect関数を使って作ってみるかな
0029名前は開発中のものです。
2005/10/01(土) 22:28:59ID:rWkQ4tzq/logout /dice /tellなど特殊なコマンド使いまくれる
003010 ◆pF5cbfQoT2
2005/10/04(火) 22:17:25ID:MWidbNs2結構難しいな
0031名前は開発中のものです。
2005/10/05(水) 18:44:52ID:81Ajv+Fyこのままだと>>10の野郎進まねーぞ!!
オレは無理だが、誰かアドバイスでもサンプルでもいいから教えてやれ!!!
0032名前は開発中のものです。
2005/10/06(木) 05:45:55ID:B/FQ+W/o1VSnになると非同期が必要になるからね
あと、作成プログラムが2つ必要(サーバ&クライアント)
ってのが、以外にめんどい
2つ揃わないとテスト出来ないってのが敷居を高くしてる
0034名前は開発中のものです。
2005/10/06(木) 07:08:52ID:cRcXPgR2何故>>10がUDPに拘ってるのかがわからんと何とも言いようが無い。
UDPでMMOってのが如何に難しいかってのは、解っていてのことなんだろうか…。
0035名前は開発中のものです。
2005/10/06(木) 07:10:26ID:cRcXPgR2ってお前さんも朝早いな
003610 ◆pF5cbfQoT2
2005/10/06(木) 16:16:28ID:EoIY9AKcただ単に高速だからです。
でも、アカウント登録やログイン処理はTCPじゃないとダメだし。
UDPはキャラの座標とか少しくらい消えてもいいような部分にしか使いません。
0037名前は開発中のものです。
2005/10/06(木) 16:17:10ID:B/FQ+W/o0038名前は開発中のものです。
2005/10/06(木) 17:20:03ID:ZL+hX5KE0039名前は開発中のものです。
2005/10/06(木) 17:30:16ID:O+9CjehL普通はそうだなぁ。
UDPとTCPを混在させると
UDP<>TCP間の同期の取り方とか
UDPの部分は、どうしてもクライアント主導の
通信にならざるを得ないから、イレギュラーや不正の
対処方法とかプログラミング的にも難度が高くなるしな。
0040名前は開発中のものです。
2005/10/06(木) 17:33:18ID:EeRPt6Ud004110 ◆pF5cbfQoT2
2005/10/07(金) 07:30:12ID:NvWZ9rBjってかチャット作りTCPでやってたw
0042名前は開発中のものです。
2005/10/07(金) 19:54:42ID:BQzEcK2VVBって速度的にどうなん?
問題無いなら勉強しようと思うんだけど
0043名前は開発中のものです。
2005/10/07(金) 19:58:48ID:aJRkgDa2ttp://eternal.s19.xrea.com/
004410 ◆pF5cbfQoT2
2005/10/10(月) 00:05:49ID:7RGrKLIzまだ暗号化とかしてないけど・・・
サーバーしか作ってないから、そろそろクライアント作らないとな
0045名前は開発中のものです。
2005/10/19(水) 19:40:46ID:ifZ8caQIピアツーピアのMMOって無謀でしょうか?
0046名前は開発中のものです。
2005/10/19(水) 19:55:44ID:ovh0Jg+Hが、どういう実装形態があるか考えるのは悪いことではない。
0047名前は開発中のものです。
2005/10/19(水) 19:56:30ID:5zXty7Ea0048名前は開発中のものです。
2005/10/28(金) 06:47:56ID:pyIjKpZE1VS1の通信しか出来なくない?
複数クライアントの接続は宿題カナorz
0049名前は開発中のものです。
2005/11/03(木) 17:10:06ID:cIr991LE0050名前は開発中のものです。
2005/11/21(月) 11:50:42ID:08eNFaZz1. とりあえず1対1でもいいからエコーサーバーを作る。
2. エコーサーバーをテストに使い、クライアント側の通信部分を作る。
3. 2で作った通信部分をテストに使い、サーバー側の通信部分を作る。
0051名前は開発中のものです。
2006/01/22(日) 19:53:14ID:QU3Ld80h複数クライアントのチャットサーバにおいて
サーバがあるクライアントとの接続を確立したあとどうすべきか悩んでいます。
1、forkしてクライアントとの通信は子プロセスに任せる
親プロセスはそのソケットディスクリプタをcloseして新たにacceptする
送受信データの同期はプロセス間通信で親プロセスがなんとかする?
>>19のscを受け取った時点でfork、親プロセスはscをcloseしたあとにbindのところに戻る
2、ひとつのプロセスで通信と同期を全てまかなう
最初から接続上限数のソケットディスクリプタをつくっておいて
サーバの中で送受信を接続上限数分ループさせる
>>19のscを配列にして>>20のdo-whileをforにしてsc[i]を各々受信する感じ
1を使うとひとつのクライアントとの接続に不具合が発生しても
サーバがこけることはなさそうというのがメリットで
(他人の発言のような)送信すべきデータの取得がややこしそうになるというのがデメリット。
2の場合、親亀こけたら皆こけたの要領でひとつのクライアントとの通信不具合が
サーバ全体におよびそうというのがデメリットで
ループのおかげで受信の順番が決まってるのでそのときに送信をそれぞれ探ればいいから
送信データの取得はチャットだけを考えるなら簡単そうというのがメリット。
という風に考えています。
どっちをMMORPGサーバまで発展させると考えるなら採用すべきでしょうか?
間違った考え方をしている点や気づいていないメリットやデメリット、他の手段
などありましたらご指摘のほうお願いします。
0052名前は開発中のものです。
2006/01/23(月) 12:16:06ID:78YZ2Dnqつ thread
Linuxでやるなら最終的には1でやるしかないと思う。
FreeBSDは試したこと無いから知らん。SolarisならThreadで行ける。
0053名前は開発中のものです。
2006/01/24(火) 11:00:46ID:KzBEIj3yどもども。
あのあと調べてみたんですが2のやりかたはselect()/poll()ってのを使うんですね。
でも大規模なものには向かない感じ?
スレッドが現在主流なんでしょうか。いくつかの資料にあたってみると
select()やfork()のやりかたも書いてあるけど大抵の場合、
最終的にこれからはマルチスレッドだ!って意見に落ち着いてるような。
Linuxの場合NPTL/LinuxThreadsという形でPthreadsを実装してるみたいですね。
ただまだ新しい機能のせいか今でもちょこちょこ仕様変更してるのが気になるところ…
あと気になったのがシステム的な限界。手持ちのLinuxの標準的な設定だと
開けるディスクリプタの上限:1024
同時起動できるプロセスの上限:なし
プロセスあたりのスレッドの上限:64
システム全体のスレッドの上限:16384(64スレッド*256プロセス?)
らしいのですが、1ユーザとの通信は1スレッド+1ソケットディスクリプタで
という考え方だとacceptを複数プロセスでやらない限りは、
1システムあたり64人しか同時接続できなくなるという解釈でいいのでしょうか。
各々協調作業するマルチスレッド+マルチプロセス+マルチシステムな知識が必須?
0054名前は開発中のものです。
2007/04/04(水) 23:58:35ID:QQY5EYRe0055名前は開発中のものです。
2007/04/10(火) 22:34:17ID:DFToSQZr0056名前は開発中のものです。
2007/04/10(火) 22:36:07ID:/BIIixjg0057名前は開発中のものです。
2007/04/10(火) 22:41:43ID:w90qBFR10058名前は開発中のものです。
2007/04/10(火) 22:42:33ID:DFToSQZr0059名前は開発中のものです。
2007/04/10(火) 22:43:52ID:/BIIixjgあったらすぐわかるようにしてるから…ごめんね。
0060名前は開発中のものです。
2007/04/10(火) 22:51:45ID:w90qBFR1新着レスに緊急出動態勢整えてるのは俺だけじゃない筈だ。
0061名前は開発中のものです。
2007/04/10(火) 23:18:37ID:+7AxyvvI0062名前は開発中のものです。
2007/04/11(水) 16:12:28ID:6TT42fR30063名前は開発中のものです。
2007/05/25(金) 15:12:16ID:s1jJ8pe0http://www002.upp.so-net.ne.jp/tbbt/rpg_info.html (Ancient Saga Online)
http://www.platon.co.jp/~akake/outlive/ (OUTLIVE ONLINE)
http://www.abars.net/ruina/ RUINATERRA
http://dragon.warcry.biz/ DRAGON WARCRY
http://www.smokymonkeys.com/triglav/ TRIGLAV
http://homepage1.nifty.com/TMS/ エクソシズムブリーズ
http://www.aa.alpha-net.ne.jp/kataho/roa/ Revelation of ALTERMIA
http://www5e.biglobe.ne.jp/~thewar/ キリーク
0064名前は開発中のものです。
2007/05/25(金) 15:18:34ID:N7du3zg10065名前は開発中のものです。
2007/11/15(木) 19:18:09ID:KUufpguCC/C++?DirectX?他になんかライブラリとかあんの?
0066名前は開発中のものです。
2007/11/15(木) 19:43:17ID:34wKrQCn0067名前は開発中のものです。
2007/11/15(木) 21:52:26ID:KUufpguCシステムはWinAPI&DirectX、通信はWinSockって感じ?
0068名前は開発中のものです。
2007/11/15(木) 22:21:10ID:34wKrQCnDirectPlayはMS自身が見捨ててるので通信にはWinSockが必要。
そのWinSockを使うにはウィンドーメッセージ関連の処理が必要。
他に日本語入力(IME)の取得や、
全角文字のの表示にはWinAPIを使うのが現実的。
C++&DirectX+αだとこんな感じかな。
0069名前は開発中のものです。
2008/01/07(月) 15:09:38ID:hwCbBhi80070名前は開発中のものです。
2008/01/08(火) 11:43:42ID:6gzjxlz20071名前は開発中のものです。
2009/01/25(日) 00:47:06ID:piilkok40072名前は開発中のものです。
2009/10/28(水) 16:23:51ID:Q3MsUvxAhttp://yutori7.2ch.net/test/read.cgi/news4vip/1256707678/
456909179687499
■ このスレッドは過去ログ倉庫に格納されています