Quote Originally Posted by Zhar View Post
通信データサイズと、通信頻度をごっちゃにしてません?それとも敢えて意図して「データ量」って表記なのかな?
ちなみに、oβ→製品版では、通信「頻度」は確実に減少してました。ルータのログがそうなってたのでw
最近はどうなんでしょうね・・・バージョンアップのたびにその辺まで弄ってるんでしょうか。そうは思えないけど。
ゲーム会社って所謂SEってのはいないって聞いたことがあるんですが、■さんはどうなんでしょうねえ。
でも何にしても、上からトンデモ仕様を投げられて「何でもいいから快適になるように実装してねwwwwww」
とか言われても下のPGとかはエラい迷惑じゃw Minnaさんご自身も経験ないです?w
最近ようやく、■の求人も正社員募集に変わったようですし、上も下もみんな頑張ってってことで一つw
特に松井さんにはホント超期待してます。オートアタックでかなり変わると思うんだよなあ
そんなこというSEなら、コード書く前に辞表届けを書きます。
しかし伝わりにくいようなので、出来る限り箇条書きで書いてみますね。

-データ量
 C/Sでのデータ量は極力小さくしなければならない。この際に有効なのがデータ圧縮。データ圧縮に関しては、もうかなりの先人が
 コードを書いているので、ソレを拝借することを考慮に入れつつ、最適な圧縮ルーチンを組み込む。かなりいろいろ圧縮ルーチンあると思うので
 例は割愛。簡単に言えば1MBのBMPの生画像を送るか、ZIPで圧縮した数KBのファイルで送るかといった感じ。

-通信頻度
 アクション毎に送らず、どこかでアクションをパック化し、1通信でのアクション量を増やしておく。パックすることにより、C/S間の通信頻度は下がる。
 例(クライアントから見た場合):
   殴れ(送信1回) -> ダメージ表示(受信1回) -> キャラモーション(受信1回) -> ログ表示しろ(受信1回)
     送信1受信3
 パックしてみる
   殴れ(送信1回) -> ダメージ表示+キャラモーション(受信1回) -> ログ表示しろ(受信1回)
     送信1受信2
 結果受信回数を1回減らすことが出来る。=通信頻度は下がる。

で、ユーザー(プレイヤー)が"ラグ"と感じるのは、行動/判定/モーションがちぐはぐになっているというところが大きいので、前の書き込みの
  
アクション実行->攻撃判定->ダメージポップアップ->キャラクターモーション->ログ表示(キャラクター視点)
攻撃判定->ダメージポップアップ->モンスターモーション->ログ表示(モンスター視点)
を考えてみる。
もちろん、量/頻度以外にも致命的なミスがあるので、それも修正してみる。

  アクション実行(送信1) -> [キャラクターモーション+攻撃判定+ダメージポップ](受信1) -> ログ表示(受信1)

送受信の頻度を下げ、いくつかの行動をパック化した状態がこれで、あとは圧縮しつつ送受信するのみ。
で、見ればわかると思いますが、アクション実行後の順序を若干変えている。これは今のちぐはぐな戦闘を解消する、また突然死や戦闘をより普通にするために変えてある。
#モーション前に判定って、即ち野球でボール投げる前にストライク!って言われているようなものですからね。

やば・・・余計わかりにくくなったかな・・・(涙