記事一覧

ラグ戦闘防止 /equipと/equipsetをTab文字(定型文辞書)で記述しましょう!

※注意
この記事は危機感を伝えるために、ループ回数等のクライアント上の処理は最悪ケースを想定して大げさな表現がなされています。実際のクライアントの処理は候補集約検索等の最短処理を模索していると思われますので、あくまでも目安として受け取ってください。

以下のわしの「例のExcel」関連記事。
 FF11 「かばん・金庫等」 & 「装備セット」 & 「マクロ」 読込表示&相互解析 MS-Excelファイル公開

上記の例のExcelの宣伝でもあるのですが、FF11の20周年記念 第5弾で作成公開した「装備品相互解析」では、
 /equip
 /equipset
 /lockstyleset
これら上記のマクロ(部位やアイテム名含む)が、以下のようなTab文字(定型文辞書)で記述されている必要があります。
Tab文字(定型文辞書)

このTab文字ですが6バイト(ASCII文字6文字分で始端と終端記号を除くと4バイト)の情報量しかないので、一般的なコマンド名やアイテム名の長さよりも少ない処理で判別できます。

以下のわしの関連記事。
 装備セットのシーケンス図 ~セット数が足りませんよ?~

上記の記事を参考にクライアントでマクロ解釈して、通信でスクエニのサーバに/equip等の行動を伝えているのですが、この時にクライアントでは以下のようなコマンド解釈をしているのです。

コマンド解釈
 ① /equip等のコマンドかどうか判別
 ② サブパラメータの有無
 ③ アイテム名をアイテムID(ASCII文字2文字分)に変換

この時に1文字づつコマンドかどうか?とか、アイテム名を抽出してクライアントのアイテム一覧を1文字づつ全検索したりするのは、とてもとても時間がかかる事はプログラムに詳しくない人でも想像できるかと思われます。

ちなみに検索しなければならないデータの量がどれくらいあるかと言うと、以下のボリュームになります。プログラムの処理を速く終わらせるにはループ処理(ここでは文字列がパターンに一致するかを調べる事)を少なくすることが、もっとも有効な手段であり、特にアイテムは37万バイトもあって1アイテムにつき最悪37万回ものループをしないと処理を終わらせられないので解釈に時間がかかることが分かるかと思われます。

コマンド    211種類   2,112バイト
アイテム 29,695種類 370,746バイト

どうも戦闘中に「ラグ」と言われる現象があってクライアントの反応が悪くなり「もっさり」した動作になる人に聞いたのですが、通信上の問題以外で、このTab文字を使っていない人がより多くいるのではないかと推測しています。

(通信系と言えば、このゲーム古いのでWi-Fiの無線LANと携帯のテザリングは絶対にやめましょう。出来なくはないが公式で非推奨扱いして欲しいくらいです。)

これらのラグ症状がでる人は一時期ツイッター等で話題になった以下の様に/equipにストレージ番号を記述するといった対処療法が流行ったと思いますが、これを行っても緩和しただけで、まだラグが残っていると言った意見を集約して行き今回の話になります。

例) /equip 右手の指 どらプリング 5
 /equip 装備部位 装備品名 ストレージ番号

 例の装備品名は架空の物です。

 ストレージ番号はマイバッグ0から始まり、モグワードローブ1~8の
 どのストレージに装備が入っているか番号で指定します。
 ストレージ番号なしの場合は若い順番順に検索されます。

試してみませんか?
ラグ戦闘防止に/equipと/equipsetをTab文字(定型文辞書)で記述を!

ついでに例のExcelの使用も検討どうぞ(笑)

コメント

コメントの投稿

非公開コメント

プロフィール

washi2018

Author:washi2018
FF11活動鯖:現在Bahamut(出身Ramuh)
キャラ名:Likter(リクター)
育成ジョブ:戦白黒ナ獣吟コ学風剣

遍歴とブログ紹介:
リアルフレに嫌々連れ出されてFF11発売前イベントでの試遊台で遊んだ頃から2009年元日までプレイして一時は引退し、2015年4月16日に復帰したら強制的に鯖移転されていた、タルプリ(タルタルのプリッとしたお尻をさらけ出した戦闘不能の状態)をこよなく愛するお髭の管理人です。

「FF11ストレージ・装備セット・マクロ読込表示&相互解析 MS-Excelファイル」公開用と、タイトルに名前のあるLSリーダー捜索用(復帰済み)に自分用の日記帳 兼 メモ帳としてブログを立ち上げました。

Windows上のブラウザで閲覧する事を推奨致します。確認はGoogle Chromeのみで行っています。スマホでの閲覧はお勧めしません。

誹謗中傷や記事の趣旨に沿わないコメントは非公開または削除の対象です。提案は検討させて頂きますが、わしのプレイスタイルに反する押し売り行為やレッテルを貼る行為等についても同様です。

基本的にリンクフリーです。ただし著作権法により引用は認められていますが、転載は管理人の許可が必要です。

当ブログに記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。Copyright (C) 2002 - 2024 SQUARE ENIX CO., LTD. All Rights Reserved.

カウンターは「二重カウントしない」設定なので24時間で1日1ユーザにつき1カウントです。

カウンター

Twitterタイムライン

リンク