MMORPG 作成at GAMEDEVMMORPG 作成 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト138:長文御免81 01/11/09 15:55 0SDIp8Ul >132 ええ、私も最初、そう思ってたんです。 でも、これはC>Sのハナシなんで、例えば視野範囲に何人居ようと実は 関係なくて、常に1サイクルで (総クライアント数*メッセージ)で済むわけです。これは増減しません。 また、UDPの場合、相手のオンラインのチェックを自前で行うので、 一定のサイクルでのC>Sは欠かせませんので、これにも利用してます。 (一定時間、C>Sが無ければ、そのクライアントは落し、次のプレイヤー のために、その座席を空席にします。) やってみた感想では、(結果はまだこれからの実績次第でしょうけど) やはり大量の情報を流さねばならないのは、 「新規に視野に入ってきた時の最大瞬間風速時」なんですよね。 人種であったり、何を着て、何の武器を持っているか等、外観の 情報を含んだメッセージを送らねばなりません。 しかし、視野に入った後であれば、1オブジェクトの行動は1バイトくらいで (行動の種類によっては256では足りないかな。) クライアントに現状を通知できます。 方法1 「アナタから見て、~座標にいるクライアントは、今回~をした」 という感じで、既知のオブジェクトを示す座標とその行動コマンドを 1セットとして人数分で送る方法。 視野内の人数が少なければ、総量は小さくなりますが、視野内に大量に オブジェクトがある場合、座標情報が足を引っ張ります。 =(座標情報+行動)*人数 新規で視野に入った際に、固有のIDを振っておけば、座標ではなく =(ID+行動)*人数 と読み替えても良いです。 方法2 オブジェクトの有無を問わず、視野座標すべてを羅列して行動メッセージを 並べて送る。これはとても無駄使いです。誰も居ない座標でも1ボックス 使ってしまいますので。 ただ、良い点が一つだけありまして、視野内のプレイヤー数に関わらず、 つねに情報量が増減しません。 =(視野範囲数*行動) 方法3 そこでちょっと改良。 羅列されたボックスの内、誰もいない座標は圧縮しちゃいます。 圧縮方法は後で考えるとして、こうする事で、視野内満員を最大数として 人数に応じて、可変的に小さく潰れてくれるメッセージになります。 =(圧縮された視野範囲数*行動) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch