logo UO Mapistro
Japanese / English

位置共有が速い理由


 一応の説明として、uovmcの位置共有がなんで速いのかの理屈の説明を書きます。

 まず大前提として共有の前になぜuovmcの位置の追尾が速いのかです。
 それは既存のマップツールではUOAに仲介してもらう必要があったため、UOAが座標情報を更新してくれているかを特定の間隔で見に行き、それをさらにコピーして適用するというタイムラグが発生していた事と、単にプログラムが速度を重視していなかったからです。

 このタイムラグはuovmcには一切ありませんので、uovmcが必要なときにそのリアルタイムの数値を拾うことができます。
 さらに開発している私個人は、とにかく速く軽いプログラムを作ることを長年独学で勉強してきたので、表示やもろもろにかかる負荷に対する速度の維持率がとても良いということが、結果的に全ての反応が速い事に繋がります。



 次に既存のマップツールのネットワークにおける位置共有は、どれもなんらかの同期タイミング(1秒間隔だったり)でサーバーへ位置を送信し、サーバーからも同期タイミングで位置を受け取っています。

 つまり移動するのが0.125秒だったとすると、地図に反映されるのに0.5秒くらい? さらにサーバーに送信されて更新が行きわたるまで1~2秒。
 通信の状態がよくてもだいたい5、6歩前はそのへんにいたはず。というのが解る程度のものです。


 これに対してuovmcは一定の間隔で同期を行う方式ではありません。
 ゲストは移動を感知したタイミングでホストに位置情報だけを送信し、送信されたホストは送信してきたゲスト以外のゲストにそのコピーをタイムラグなしに伝播させます。
 必要な時に必要なものだけを送受信するため、従来のマップツールのように位置共有をオンにするとだれも移動してないのに通信のランプが点滅し続ける。というようなこともありません。
 (Version 0b5では改良により共有の反映速度がそれ以前のバージョンと比べてほぼ倍速化しています)


 最後に捕捉ですが、私は別に対人(PvP)を支援する目的のためにこのマップツールを作ったわけではありません。
 単に私の技術とセンスで作ったものの品質が、速度と正確性を重視する対人プレイにたまたま需要がマッチしただけです。

 単純に品質が違いすぎるというだけで、やっていることはUOAMとなにも変わりません。

 Pub100でサードパーティーツールが見直されるという話を聞いたので、公認ツールと認められる可能性がでたのなら腕試しに挑戦してみようと思って作りました。
 もし気に入っていただけたら、可能な範囲で公認ツールへのプッシュをお願いします。
© Gakuto Matsumura (uo.mapistrogmail.com)