2015年3月14日土曜日

Bombardment attack


2014年9月にたてられた Bombardment gone wrongというスレ。当時、目を通したはずですが、あまり記憶に残っていません。 先日、他のスレにリンクをはられていたので再読したところ、学ぶ点が少なくないと感じました。だいぶ古いスレですが以下に紹介してみます。

なお、スレの中でふれられている砲を表にしてみましたが、日本語の名称には誤りがあるかも知れません。

PBEMで砲撃を数ターン続けたところ、ひどい結果になった。砲の数では連合軍が日本側の2倍近かったのに、連合軍の方が多数の死傷者を出してしまった。 この件について
ハイデラバードの砲撃は空襲と同じようにうまくゆかなかった。最初は全部隊で砲撃してみた。どのユニットも1~2のfort(防御施設)で守られ、expも50~70と上々だった。連合軍側の砲の数は同じヘクスの日本側の砲の2倍はあったのに、死傷者数は連合軍側の方がずっと多かった。次に私は砲兵ユニットだけで砲撃してみた。結果はさらに悪く、砲30門ほどが破壊されてしまったが、幸いなことにそのほとんどは3.7インチ山砲で25ポンド砲(訳注:英連邦軍の25ポンド砲は配給数の少ないことで有名なdevice)ではなかった。また砲撃中止の指示を出し忘れて、さらにもう一日、同じようなことになってしまった。このヘクスには多数の4.5インチ、18ポンド、25ポンド砲のユニットがいて、経験値も充分だ。ハイデラバードの日本軍の防御施設は固いが、それにしても片寄った結果だと思う。私がし忘れたこと、不手際だった点は何だろう? 
とAARに書いたところ 
これよりももっと悪い事態を経験したことがある。 ある種のregister error(訳注:私には意味不明。なんだか分かる人いますか?)によるものだと説明してもらった。それ以来、ターンを進める際にはPCをシャットダウンさせている。以前はゲームを立ち上げたままスリープさせておくのがふつうだった。もちろん。こんなことをするのはTrackerを再起動(訳注:400ターンくらいだと5分以上かかります)させたりなどいろいろ面倒なんだが... それでも砲撃をしかけたことでひどいめをみることはなくなった。 
とレスをくれた人がいた。このスレを立てた理由は、こういった不思議な現象についてもっと学びたいと思ったからだ。ここ数日分のコンバットリポート(訳注:省略したので、元スレをご参照ください)をお示しする。砲兵ユニットはすべてfort 1、師団の方はfort 2になっていた。砲兵ユニットのほとんどが経験値50台で、landスキルとleadershipスキルを重視して指揮官を選任してある(とはいっても可能な範囲で選任しただけ。英連邦には優秀なスキルの指揮官が多くはない)。すでに数日戦闘が続いているので、私がここに示した結果は秘密でもなんでもない。このスレには相手の人にも参加してもらおうと思う。私だけが知らなかった周知のなにかが関係している?tech板のスレとして始めた方がいい?部隊の構成や、私の見落としている条件で説明がついたりする?


私の経験では、fortification(訳注:根拠地を支配している側の防御施設は恒久的なものだが、その根拠値を攻撃する側の防御施設は一時的なものなので野戦築城とよぶべきか)の規模が大いに関係している。規模1~2になるまでまてば、もっとましになってくると思う(開けた地形だとその効果がもっとはっきりする)。私が野戦築城を活かしたのは1942年2月の2個師団によるマニラ攻囲戦だった。戦闘工兵をつかって連合軍の防御施設の規模を0に下げ、こちらの兵はたこつぼを掘り、大口径砲がいっせいに砲撃する.... 


Grey Joyさん(スレ主の対戦相手):mr.Kaneさん相手のプレイの1944年にもっとひどいめにあったことがある。連合軍にはホンモノの攻城砲がない。連合軍最良の砲は155ミリ砲と25ポンド砲だ。これらは優秀な野戦砲ではあっても、堅固な防御施設を叩くには充分でない。他方、日本の対砲兵射撃には150ミリ、240ミリ、300ミリ砲が含まれていた。たくさんあったというわけではないが、こういった結果をもたらすのに充分な数だった。上述の「バグ」については聞いたことがない。でも、今度からターンを進めるたびにPCをシャットダウンしてみるよ。なにか変化がみられるかどうかお楽しみに。


スレ主さん:たしかに、わたしも日本側でプレイしていた時には使った!巨大な攻城砲を山砲のように動かしてね。今までしたことがなかったことだけど、私もこのところPCをシャットダウンするようにしてみたので、なにか判明するかもしれない。ところで、私が途方に暮れてしまうのは、提示した戦いに参加している師団2個は多数の25ポンド砲を保有していて、しかもすでにfortが規模2に達しているってこと。

私はこのゲームのエディターに精通しているわけではないけど、砲のrange射程が影響しているんじゃないかな。大きな砲に対して砲撃する時には、砲撃を始めるのに充分な距離まで接近するまでにも反撃される危険がある。これと同じようなことが、連合軍の戦車と日本の戦車の関係について言われていたのを聞いた憶えがある。連合軍戦車が日本の戦車よりずっと有利に戦える最大の理由はこの射程にあるということだった。


砲撃を始める前に対砲兵射撃(訳注:日本語に対砲兵砲撃という言葉はない??)を受けるなんて変だ!測距して正しい距離に接近する前に反撃されてしまうってこと?発射間隔も関係していたりはしない?


戦略級のゲームだから、戦闘がそんなに細かいところまでつくりこまれているとも思えないが... 通常の砲の砲撃に臼砲が脆弱なことは知っていたけれど... これ(訳注:trackerの陸軍兵器の表ですが省略、元スレをご参照ください)は1942年の日本陸軍の武器を示している。砲撃に使われるホンモノの砲を黄色でマークしてみた。簡単に比較できるよう、連合軍側のこれにあたる砲の表を連合軍側をプレイしている人がレスしてくれるといい。


スレ主さん:この表を見て、攻城砲の大きな”effect”威力値が念頭になかったことに気付いた。この威力値の数値は艦砲と同じく、発射速度を含めてモデル化されているんだろうか?英印豪軍の現用砲の表(訳注:エディターの陸軍兵器の表ですが省略、元スレをご参照ください)はこんな感じ。英軍の4.5インチ砲でさえ日本の攻城砲より射程が長いから、射程が原因でないのは確かだ。単に威力値が原因になっているように思える。そして、もしaccuracy精度値が発射速度を反映して(訳注:このゲームでは砲deviceの性能値に発射速度というものがないので、命中精度x単位時間の発射数=命中数がaccuracy値の算出につかわれていたはずです)いるのなら、大きな24~30センチ砲の精度値は半分くらいになってしまう。ということは威力値の大きな差も精度値によって相殺されてしまう。すべての陸軍が戦場を制するのに攻城砲をつかおうとしたわけではなかったのはなぜだと思う?おかしな話だが、わたしも日本側をプレイした時には攻城砲をつかって戦果をあげていたし、今後も日本側のプレイではそうするだろう。だから不満を述べるつもりはない。単に、これら攻城砲と通常の野戦砲の威力値がこれほど違っていること、しかも精度値にそれを相殺するほどの差がつけられていないこととが腑に落ちないってだけだ。


3.7インチ山砲は連合軍の兵器の中でも最も役立たずの砲だ。敵の堅固な陣地への砲撃を実施しただけで、この砲を装備した部隊が消滅したのを経験したことがある... それも一度だけじゃない!こんな砲に頼っちゃダメだ。私が言うことを信じてくれ。今プレイ中のゲームで何回も経験したんだから...


スレ主さん:たしかに、3.7インチ山砲は日本の山砲にも劣っていて、精度は半分しかない。3.7インチ山砲装備のユニットはこのスレのテーマであるハイデラバードの戦いでも散々だった。でもそれは4.5インチ砲や25ポンド砲装備の部隊もいっしょのこと。英軍師団だけでも25ポンド砲を72門装備していて、インドやオーストラリアの師団、それに独立砲兵ユニットはもっと多数を装備していた。それに4.5インチ砲が40~50門。かなりの火力だと思うんだけど。


砲についてはSymonさん(訳注:Devチームのひと)が何度か発言している。Alfredさんがこのスレに立ち寄ってくれたら、該当するスレを探し出してくれるだろう。発射速度はaccuracy精度値とload cost値として表現されている。砲撃と対砲兵射撃に関してはrange射程値が重要で、臼砲が75ミリ砲に対抗できないのはそれが理由だ。effect威力値は与えるダメージで、たしかmichaelmさんがしばらく前のベータパッチで防御施設の規模が大きいほどよく耐えられるよう修正していたように思う... つまり、強固な要塞にダメージを与えるには大きな威力値が必要になる。上記の説明はSymonさんの爆弾についてのレスにもとづいてものだが、砲にも適用されると思う。少なくとも私の経験では、そう感じる。


Symonさん:頭痛の種だよ、まったく。何度も修正して、最近ではmichaelmさんが2014年3月5日の1123x6で何ごとかいじっている。砲戦のルーチンがどんなに入り組んだものか、想像もできないだろう。艦砲射撃、沿岸砲の射撃、防御側の対砲兵射撃、爆弾、ロケット弾も。砲兵戦とそこでの対砲兵射撃、DeliberateやShock attack時の砲撃と防御側の射撃フェーズもある。少しは分かってもらえるかな。
変な結果の原因となる要素はたくさんある。一つのバグをつぶすと、新たなバグが三つも四つも出現するかもしれない。そんなものだ。
こういったことはすべて、私もWdolsonさんも承知していて、michaelmさんがもっとコンパクトでもっと合理的なコードに書き直す際の参考にしてもらえるようなうまいやり方を探している。私もWdolsonさんもこのゲームのコードに接する資格はないから、この問題の落としどころをはっきりと示すことはできない。でもこれまでも私とmichaelmさんは成果を上げて来た経緯があるから、彼のことを信頼している。
みんな落ち着いて。とんでもない結果も甘受して、あわてて海に飛び込んだりはしないように。毎ターン、デスクトップからゲームを起動し、メモリの適切な使用の効果を信頼しよう。



スレ主さん:ありがとう。なんとかできないかいろいろと、システム内部の問題(または上の方のレスでも指摘されているレジストリの問題)なのか、それとも私のユニットの使い方に問題があるのかどうか、見極めようとしているところだ。あなた方の成し遂げたことついてはよく認識しているし非常に感謝している。DaBabes modがプレイや感覚にもたらしてくれた変化はすばらしい。


毎ターン後にPCを再起動させるようにしてから、変なことは何も起きていない。それにこれは戦争のゲームだから、予期しなかったことが起きても不思議はない。前の晩、飲み過ぎたからかもしれないw


この場合にしなければならない再起動というのは、WitP AEを再起動させることで、PCを再起動させることではないのでは。


スレ主さん:私はすでに毎ターンWitP AEを再起動してきている。彼が言っているのはPCの再起動の方だと感じた。たしかに再起動してはいたが、毎ターンというわけではなく、1~2日に一回だった。PC再起動で変化が見られるかどうかは、不幸にも同じような展開の砲撃戦が起きる機会を待たなければ分からない。


Alfredさん:Symonさんのレスを読むと、砲撃関連の実装がいかに複雑なもののかがよく分かる。この分野に対してDevチームがまとまってレスしているスレはなく、多くのスレに分散している。したがって、これから以下に述べることがそういったバラバラのレスを正しく総合できていることを、信じてもらうしかない。さらに、このスレに見受けられる不正確な思い込みも正しておこうと思う。
 1.  対砲兵射撃で、守備側が先に砲撃を始めることはない。スレ主さんの例では連合軍側が先で、その次に日本側の対砲兵射撃があった。
 2.  Range射程が影響している。実に多大な影響だ。
  (a)  砲兵の砲撃ルーチンは陸戦兵器deviceの射程が3以上かどうかをチェックする。3未満だとその陸戦兵器は砲撃に参加できない。
  (b)  両用砲deviceが砲撃に参加できるかどうかは射程が15に達しているかどうかで選別される(Symonさんがなぜ修正にともなう悪影響についてこぼしていたか分かるだろう)。
  (c)  2010年5月5日のBig62さん(Devチームのひと)のレスによると、より射程の長い砲をもつ側はより多く命中させることができ、しかもお返しに受ける命中弾は少なくて済み、またその威力も軽減される。Blackhorseさん(Devチームのひと)も2011年8月20日に同様のレスをつけていた。
 3.  コンバットリポートに記されるGuns砲の数にはすべての砲が含まれているので誤解を招きやすい。対空砲、射程2の対戦車砲、射程が15にみたない両用砲などはコンバットリポートに含まれていても砲撃や対砲兵射撃に参加しない。
 4.  与えることのできるダメージという点でも、砲撃に参加できるかどうかという点でも、その砲deviceのanti-soft ratings対軟目標値が重要だ。砲撃に参加するためには、射程のチェックに通過し、しかも対軟目標値が5以上でなければならない。
 5.  他に考慮しておかなければならない要素は
  • detection level値
  • leadership値 
  • ユニットのmode
  • fatigue疲労値
  • disruption混乱値 
  • スタックしているユニットの数
  • 防御施設の規模
 6.  Symonさんがレスで言及している、michaelmさんがコードに手を入れた件は非常に重要だ。というのも、michaelmさんが変更した点こそ、砲兵による砲撃がどのように作用するのかを理解する急所にあたるから。
michaelmさんは2014年4月19日にコードに手を入れたこととその目的を以下のように述べている
「砲撃に対する防御側の反撃においては、defend modeまたはbombardment modeにある防御側のユニットの中の(攻撃側の砲撃と同じく)ranged weapon長射程の兵器だけが参加する。これにより攻撃側の被害が少なくなるだろう。特に、長射程の兵器を少ししか持たない部隊の被害は」
この変更以前、砲撃を実施する攻撃側のユニット(ある種のLCUがdeliberate attackやshock attackを実施する際にもあてはまる)は、条件に当てはまるdeviceのみが発砲していた。お返しに、defend modeまたはbombardment modeにある防御側ユニットは保有する全てのdeviceを用いて反撃していた。michaelmさんの言葉を引用すると
「攻撃側は長射程の兵器だけしか使えないのに対して、適切な態勢の防御側ユニットは全ての武器をつかうことができた」
さらに、このゲームが諸兵科連合のユニットを活かすようにつくられていることが、 この問題をより複雑にしている。師団にふさわしい規模の独立砲兵隊は敵の集中砲火を浴びることになる。派生する問題に興味のある人はmod制作者用サブフォーラムにゆくと、細部までよりよく再現しようとする際にDaBabes modに課さなければならない限界についてSymonさんが議論している。


マニュアル196ページには以下のように書かれている
武器は目標をとらえることが出来た時にのみ射撃することが出来る。目標のdetection level、射撃する側の防御施設の規模と経験値、攻撃側と防御側の武器の射程が、目標をとらえることが出来るかどうかに影響している。軟目標への射撃にはanti-soft ratings対軟目標値がつかわれ、装甲のある目標に対してはその武器の penetration貫徹値と目標の armor装甲値が比較される。射撃がうまくゆくと、目標の混乱値が上昇したり、目標のもつ武器がdisabledになったり破壊されたりする。
砲撃したユニットに対する防御側の砲撃・射撃では射程が3以上かつ軟目標値5以上の兵器だけがつかわれる。射程が1万5000ヤード未満の沿岸砲や両用砲は反撃することが出来ない。条件に合う全ての武器が発砲するわけではなく、射程の長い武器ほど発砲しやすい。
さらに同じページの下の方には:
 射撃の効果は以下の因子に影響される
 武器の性能
 指揮官のスキル
 ユニットの混乱値
 ユニットの疲労値
 ユニットのサプライ充足状況
 ユニットのmode
 その戦闘でそのユニットがすでに発砲した回数
 地形
相手があなたの砲に対して得ているdetection levelが、あなたが相手の砲に対して得ているdetection levelよりも高いようだと、あなたの被害の方が大きくなってもおかしくはないと思う... 完全に私の推測に過ぎないけど。また上の方のレスでも指摘されているが、相手側の防御施設の規模があなたの防御施設の規模を上回っているようならば、砲撃(対砲兵砲撃)はあなたにとって苦しいものとなるだろう。参考のためにあなたのユニットの防御施設の規模を教えてくれないだろうか?


面白い。Trackerで日本の砲兵部隊の経験値について調べてみると、11ユニットが90~70もの経験値を誇っていて、経験値65に達するものが50ユニットもある。連合軍側では、ソ連の砲兵の経験値70が最高(でも1945年までは活動できない)で、アメリカ陸軍の砲兵は65が最高だ。つまり、日本の砲兵ユニットはソ連の参戦する1945年まではどの対戦国に対しても優れているということだ。師団砲兵に関してはすこし事情が異なるかもしれないが、歩兵師団にしても質的に連合軍を凌駕している。


スレ主さん:忘れていたか、まったく知らなかったかする情報をまたひとつ提供してもらい、ありがとう。わたしの師団の防御施設の規模は2、砲兵は規模1だ。相手の防御施設の規模に比較するとずっと低いことは確かだ。ついでながら、地形はiight urbanで防御側に2倍のボーナスがある。


もうひとつ質問してもいいかな?対砲兵射撃によりもっともひどい被害を被ったユニットのサプライ充足状況はどんなものだっただろうか?というのも、サプライの状態が良くないユニット、つまりサプライの数値が赤い字で表示されているユニットが戦闘で大きな被害を出すように感じているからだ。ぜひ知りたいと思っている(たぶんAlfredさんやSymonさんたちなら、サプライ不足が砲撃や対砲兵射撃を受けた時にどんな影響を持つのか正しい情報を提供することができるかもしれないが)。


Symonさんの説明で納得した。記憶が正しければ、私はある砲撃戦で日本陸軍の歩兵分隊133とその他若干を破壊された経験がある。砲兵が多少優れているとはいっても、大きな砲兵ユニットが一緒にいて、しかもそれはdeliberate attackではなく砲撃戦で、砲兵には防御施設ができていて休養も充分でcombat modeだったのにそんな結果になった。その後は砲撃戦をかわすことがあまりないが、おおむね連合軍側の方がうまくやっていて、それでも、そんなに突出した被害が出ることはない。それと、上述の大きな被害が出た時、メモリの使い方がはんぱじゃなく(5本のプログラムが走っていた)、再起動していなかった。体験談に過ぎないが、お役に立つかも。


私が日本側をもってキャンペーンを成功裏にプレイした2回の経験では、数>数>数>SL(訳注:Stacking limitかな)>Detection level>指揮官>防御施設、だと感じた。また砲兵ユニットだけが砲撃した方がずっと良い結果が得られることに気付いた。歩兵や戦車ユニットに砲撃させると大きな被害を出してしまう。


Symonさん:もう一度レスすることにしたよ、スレ主さん。Techサブフォーラムの方のスレもみたが、どうやらsyncバグも関係していたようだ。それで憶い出したことがある。
やり取りされる変数はたくさんあり、巨大な行列がつくられて処理される。register(訳注:CPUのレジスタ?)に読み込まれ処理され消去され、また読み込まれ処理され ... メモリには大量の情報。そこでひらめいた。戦闘結果を算出するのに使われるのと同じ変数の多くはコンバットリポートの生成にもつかわれる。もちろん一方が脱線すると、他方も脱線することになるはずだ。
私はアプリケーションのプログラマ(私のプログラミング経験はファームウエアの評価の場でのもの)ではないので、なぜあなた方のPBEMで問題が発生することになったたのかは分からない。それを解明するのには他にもっとふさわしい人がいるだろう。とはいえ、外から見ているだけでは、本当に何が起きているのかなんて知る由もない。このゲームのコードの細かいところまで熟知しているのでなければ、でき得る最善のアドバイスでも意味がないこともある。私も熟知しているわけではない。michaelmさんならよく知っているんだが。
あなた方の問題をTechサブフォーラムにまとめて挙げることにすればよかった。syncバグの問題も含めて、このスレにはここが間違っていた・こうすれば良かったと多数の人がレスをつけてくれている。それらのレスも誤っているとまではいえなくとも、充分に掘り下げてあるとは言えない。先日のレスでお示ししたように、私たちはこれまでもこの問題に取り組んできていた。なので、あなたがmichaelmさんに事情の説明した文章をメールする際には、その写しを私かBillさんにも送ってほしい。そうすれば、私たちとmichaelmさんと連絡を取り、これが実在する問題なのだということを確信させることが出来るから。
あなたが痛い目にあってしまったことは遺憾に思うので、私たちも最善を尽くしたい。

スレの中で触れられている、2014年4月19日のmichaelmさんによるコードの変更は、マニュアル196ページの内容が意図していた通りには実装されていなかったので、それを修正するためのものだったのかも知れません。
また、WitP AEやPCの再起動が勧められていることは知りませんでした。これってSyncバグの原因になるんでしょうか?うちのPCはノートではないので、使い終わったら必ずその日のうちに電源オフにし、翌日また電源オンにします。それでもSyncバグを経験したことはあるので、この方法だけで防げるわけではないようです。

0 件のコメント: