2014年10月6日月曜日

sync bug


PBEMの経過中、sync bugを経験することがあります。sync bugとは、日本側プレイヤーの送ってくれたリプレイファイルを開いて連合軍側プレイヤーがみるリプレイの内容、そのリプレイでみることのできた戦闘などの出来事を記載したリポート類の内容と、ゲームセーブファイルを開いて表示されるマップ上にしめされている状況とが一致しないことをいいます。検証されてはいないのでしょうが、空母戦がらみでsync bugが多いといわれています。連合軍側プレイヤーがリプレイで派手な空母の戦いを見物したのに、セーブファイルを開いてでてきたマップ上には空母戦のかけらも見当たらないといった感じです。今回のプレイで1942年2月26日にあったsinc bugも日本側空母の連合軍TFに対する攻撃でした。

素のWitPではこのsync bugが少なくなかったそう(私は素のWitPは未プレイ)ですが、WItP AEでは双方のexeのバージョン違いを原因とするもの以外のsync bugはかなり減ったのだそうです。それでも、空母が相手のTFに接近するような状態で起きやすいということから、注目すべきバグではあります。そのsync bugをテーマにしたSync bug: effect on Tracker, Combat Reporter, Intel Monkeyというスレがたてられていたので紹介します。sync bugとリポートおよびツール類の関係についてとても勉強になりました。レスをつけた人の中にはDevチームの人は含まれていませんが、提供された情報が間違っていると言うレスがつけられることもなかったので、おおむね正しい情報と判断して良いものと思われます。

PBEMを始めて数ターンしかたっていないのに、sync bugに遭遇してしまった。リプレイの戦績とセーブファイルの戦績とが異なっていた。Trackerはたしかセーブファイルのデータを流用しているんだったよね?ということはsync bugがあってもTrackerの情報は信頼できるってことかな?でもCombat ReporterとIntel Monkeyはリプレイにともなって生成されるリポート類にもとづいているから、sync bugのあった日の情報は信用できないよね?sync bugが起きたのが簡単にみつかる方法ってどんなものだろ?
日本側プレイヤーに、セーブファイルと一緒に日本側のコンバットリポートを送ってもらう。そうすれば簡単に比較することができる。しょっちゅう、だいたい10ターンに一回くらいは不一致がみつかる。無駄に2時間もかけて本当は起きなかった大規模な海戦に釘付けになる経験をしたことがあるので、リプレイを見る前に両方のコンバットリポートをざっと比較することにしている。連合軍側プレイヤーが自分のコンバットリポートを日本側プレイヤーから送られたコンバットリポートで上書きしなければ、Combat ReporterとIntel Monkeyはsync bugの影響を受けることになる。 

ありがとう。日本側のコンバットリポートと連合軍側のコンバットリポートは同じもの? 

いや、コンバットリポートはリプレイにもとづいて生み出される。sync bugがおきると連合軍側のリプレイとコンバットリポートはおかしくなっている。だから連合軍側のコンバットリポートを日本側のものと比較することをお勧めしてるんだ。 

書き足りなかったみたいだ。私が知りたかったのは、sync bugのない理想的な状況にある日本側プレイヤーのコンバットリポートと連合軍側プレイヤーのコンバットリポートは同一のものなのかということ。それとも、sync bugのない状況下でも両者のコンバットリポートは、FoWの味付けが異なることにより、多少は違った情報を示しているんだろうか? 

興味深い。三つの可能性があるように思える。コンバットリポートに含まれる情報は
  1. 連合軍と日本側双方のコンバットリポートで同一
  1. FoWの影響を受けるが、FoW自体は双方にとって同じ
  1. FoWの影響下にあり、しかもそのFoWの様相が双方で異なる
私は2番めなのだろうと理解していたが、どうだろう。もしそうなら、コンバットリポートに示された数字、例えば被撃墜機数は、ゲーム内に表示される数値やVPの計算に使用される数値と一致しているんだろうか、一致していないんだろうか? 

「FoWの影響を受けるが、FoW自体は双方にとって同じ」というのが正しいように思う。ゲーム内のInformation画面の数値は、艦船沈没数と沈没艦船のVP値とを除くと同一だ。飛行機喪失数と艦船喪失に関するサブ画面は異なる。自分の側に関する数値は正しく、相手側の数値は不正確だ。コンバットリポートの飛行機喪失数はだいたいのところ控えめな値で、地上部隊の損失に関してはおおげさな値になっていることが多い。 

Intel Monkeyはsaveフォルダ内のarchiveフォルダの中にあるリポート類を使用する。それらリポート類のファイルが生成される際の名前の付けられ方を知っておこう。sync bugに出くわして、そのフォルダ内のファイルを日本側プレイヤーから送ってもらったファイルで置き換えることができる。名前を正しく付け替えることが必要だが。ただ、日本側プレイヤーから連合軍側のIntelリポートを送ってもらうわけにはいかない。日本側プレイヤーの手にする連合軍側のIntelリポートは常に空っぽだから(逆もまた真なり)。 訳注:Intel Monkeyの作者さんのレス 

あなたの教えてくれた通りにしても、オペレーショナルリポート(リプレイのもとづいて生成され、txtファイルとしてセーブされているもの)が違っているなら、オペレーショナルリポートにもとづいてCombat Reporterの示してくれる事項もまた誤りを含むことになる。 

リプレイにもとづいて生成されるSIGINTがsync bugのある状況下でも正しい(SIGINTは常に正しい?)のだとしても、ゲーム内で参照できるSIGINTとは異なっているかもしれない。もしそうなら、sync bugが生じたことによって連合軍側プレイヤーの得られるSIGINTの量が増えてしまったりなんてことがあるんだろうか? 

sync bugがSIGINTリポートに影響を及ぼすのかどうかは分からない。でも、sync bugはリプレイに影響を及ぼし、連合軍側の入手するリポート類はリプレイの間に生じた事態を反映するから、連合軍側の入手するリポート類はすべてsync bugの影響を受ける可能性があるんじゃないかな。 

飛行機が着陸時に損傷するかどうかなんてことを除くと、オペレーショナルリポートには大した違いが生じないだろう。根拠地の建設作業の99%は予想通りに進行するし、増援は予定通りに到着するし、部隊のwithdrawに関してもそうだ。 

みなさん、レスをありがとう。でも日本側のコンバットリポートと連合軍のコンバットリポートは同一だというのは確かなんだろうか?この情報が確実でないなら、PBEMの相手にコンバットリポートを送ってほしいと要求するのは躊躇される。saveフォルダをみると、日本側と連合軍側双方のオペレーショナルリポートとSGINTのtxtファイルがある。しかしコンバットリポートとコンバットイベントは一つずつしかない。ということは日本側と連合軍側のコンバットリポートは同一ということのように思えるが。 

sync bugがなければ双方のコンバットリポートは同一だ。

0 件のコメント: