[CHP] シナリオ:第7章(1回戦)2006-08-17

敵はネグローニ x 3.例によって前回のまま出撃して様子を見ます.

敵は拡散弾?のようなもの(もしかしたら分裂するロケットかもしれません)を撃ってきます.これが意外に効きます.効きすぎてトライポッドが戦線離脱.残ったマリアエレナは健闘しています.いつのまにか敵を1機破壊してました.そのうち双方とも弾切れをおこし膠着状態に.結局そのまま時間切れで2-2でした.

トライポッドをラスティネールに変更して再戦.カノンを連続ヒットさせるなどの見せ場を作りますが,機動性に劣るラスティネールが最初にやられます.その後1機ずつ破壊したところで双方とも弾が切れて時間切れ.1-2で敗れました.

ラスティネールは接近されると手数が減る悪癖が出ていたので,パラメータを調整して再戦させました.初期配置はマリアエレナ2機を左右の前列に配置して囮にし,後列中央に配置したラスティネールで援護します.

スピードの早いマリアエレナが敵の攻撃をかわしながら敵を引き付けます.すべてを避けることはできませんが,ヒットすると大きくはじき飛ばされるおかげか,連続ヒットで瞬殺されることはないようです.それでも耐久力は半分を切り,修復装置で耐えながら我慢の戦闘が続きます.

2機のマリアエレナの耐久力が1/3くらいになったところで,ラスティネールの放ったミサイルがネグローニを捉えて,ついに1機破壊します.

2機のマリアエレナが耐久力を削られつつも,数敵優位で火力を集中することで,なんとか残った2機を倒して3-0で勝利しました.

[CHP] シナリオ:第7章2006-08-15

敵はノーランダー x 3.とりあえず前回のまま出撃してみます.

すると,ラスティネールのカノンが全然届いていません.あっというまに全滅しました.マティルダの言うことは素直に聞きましょう.

ラスティネールをマリアエレナと入れ替えて再挑戦.入れ替えたばかりのマリアエレナが速攻でやられましたが,なぜか2-0で勝利しました.

敵はレーダー妨害弾で撹乱して接近して,格闘で仕留める作戦のようです.こちらは敵を見失うと移動ルーチンが暴走してひたすら前進してしまい,そこを襲われているようです.

敵を見失ったら後退&壁周回をするようにしましたが,トライポッドが早々に捕まってしまいます.

なので,トライポッドは敵をロストするとヴァルキリーを撒きつつ後退するようにしました.これで近づいてきた敵を迎え撃つことができるはずです.

ところが,ヴァルキリーは発射したそばから消えていきます.地面に吸い込まれているように見えます.もしかして高重力のせい? それは聞いてませんよ > マティルダ

敵は格闘以外に大した攻撃手段がなさそうなので,ロータスを投入することにしました.上空で敵を引き付けているうちに残り2機がレーザーで倒す寸法です.飛行型の中からロータスを選んだのは,手抜きプログラムでもそこそこ戦えるだろうという目論見です.ただ,武装がオートガンではなくなったみたいなので,思ったより手間がかかりました.

トライポッドと入れ替えて出撃することにしました.ロータスを前方中央に,マリアエレナ x 2を後方左右に配置して戦闘開始.

開始してすぐにロータスの高度が下がっていき,そのまま地面に激突,あえなくロータスは破壊されました.もしかしてこれも高重力のせい? これもきいてませんよ > マティルダ

しょうがないのでまじめに戦術を見直します.後退壁周回してもなかなか敵を見つけられず,逆に背後から敵に接近していくことになっていました.なので,前進壁周回に切り替えます.でも3-0負け.

格闘戦ではノーランダーに一日の長があるので,近距離では基本的に逃げ回るのですが.スキを見つけると果敢にうって出ます.ただ,1発目はうまくHITするのですが,2発目以降は返り討ちにあって破壊されることが多いみたいです.そこで,格闘を実効する条件を厳しくしてみました.

不用意な格闘をすることがなくなり,善戦して勝利しましたが2-0でした.もうひとおしです.

良く見ると,マリアエレナの小型ミサイルがほとんど当たっていません.上に向かって撃ち出すため,近すぎると最小旋回半径の内側になってしまい,敵の後方に着弾しています.

これまでとは逆に,100m以内ではレーザーを,100m~150mでは小型ミサイルを撃つようにしました.

この変更がズバリ的中しました.近距離ではレーザーを当てて足止めし,距離が離れたところで小型ミサイルを発射します.この小型ミサイルが面白いように命中し,ついに3-0で勝利できました.

[CHP] シナリオ:第6章2006-08-14

敵はローケン x 2とアングリフ x 1の車両部隊.固さでいえばさっきよりも上.ただ,相手も近接戦闘は望まないでしょうから,遠距離の撃ち合いになると予想しました.回避力と装甲の根比べといったところでしょうか.

初期配置では.右翼のアングリフが突出しているようなので,とりあえず先ほどの部隊に開幕集中ロックを仕掛けて様子を見ることにしました.

アングリフの正面(といっても後方ですが)にラスティネールを配置して先頭開始.

予想通り,遠距離での激しい撃ち合いです.しかし,敵の砲撃は遅く,遠距離ではホバー型にはあまり当たっていません.時折ラスティネールの表面に電気が走ってますが,パルスガンでも装備しているのでしょうか?

そうこうしているうちに,アングリフの手数が減ってきました.こちらの攻撃と自らの攻撃の発熱で,熱が危険な領域にまで達したのでしょう.ホバー型のレーザーもダメージは少ないですが,発熱で役に立っていたようです.すかさず畳み掛けたいところですが,肝心のラスティネールが敵のヴァルキリーに阻まれて思うように進めません.

モタモタしているといつのまにか乱戦になっていて,ラスティネールがジャンプで戦場を横切っていきます.沈黙していたアングリフも攻撃を再開しました.

アングリフの反撃で我に返ったのか,ラスティネールも攻撃を再開.ついにアングリフを仕留めました.

数敵優位に立ってからは,手堅く1機ずつ葬っていき,3-0で勝利しました.

[CHP]シナリオ:第5章2006-08-13

敵はアラクネー x 2とグラスホッパー x 1.とりあえず前回のまま挑んでみると,なんとアラクネーはショットガンを装備しているではありませんか.中~近距離でのショットガンの威力はすさまじく,あっさり敗北しました.

前進開始距離を200mにのばしましたが,やはりダメ.左右からの砲撃を前進でかわしているうちに敵に接近してしまうようです.

逆に170mより近ければ遠ざかるようにしてみました.すると壁に引っ掛かるようになって全滅.

距離制御を元に戻し,周回移動時のオフセットをなくして左右どちらも若干遠ざかる調整してもダメ.

粘っても敵の体力があまり減っていないことから,どうも火力が足りないようです.そこでトライポッドのかわりにラスティネールをいれてみたら,あっさり2-0で勝ってしまいました.

これならもう少しで,3-0勝ちもできそうです.マリアエレナのパラメータを煮詰めていきます.遠距離レーザーは当たっても極端にダメージが少ないので,185mより遠い場合は前進して距離をつめるようにしてみました.すると,今度は0-2負け.

アラクネーのミサイルが当たると痛いので,片方のマリアエレナを誘導妨害装置をつんでいるトライポッドに入れ替えます.誘導妨害装置を積んだOKEがアラクネーに対峙するように,初期配置を左からトライポッド,ラスティネール,マリアエレナとしました.遠距離戦が持ち味なので3機とも後方配置です.でも,また0-2負け.

どうも,頼みの綱のラスティネールの手数が少ないようです.回避に1/2の確率でジャンプ射撃をするようにしてみると,勝ちはしましたが2-0でした.

さらに手数を増やすべく,交戦距離を250mまでのばし,同時発射数を4まで増加したところ,ようやく3-0で勝利しました.

[CHP]シナリオ:第4章2006-08-12

ラスティネールのかわりに,ヴァルキリーを持つトライポッドを部隊に入れることにしました.ヴァルキリーには苦戦させられたので,活躍してもらいましょう.

また一からソフトを組むのもたいへんなので,同じホバー型のマリアエレナのソフトを流用しました.装備の違いを考慮した修正を施して完成です(手抜き).

敵は飛行型 x 3なので苦戦しそうですが,ヴァルキリーがあるので勝てるハズ.そう思って戦闘を開始したのですが,なんとヴァルキリーが攻撃しません.どうやら高高度の飛行型には反応しないようです.ヴァルキリー頼みだった我軍はあっさり敗北しました.

こんなことなら,ショットガンを持つジェイラーを修理すれば良かったと思いつつも,今更トライポッドをお蔵入りにするのもシャクです.ということで,ソフトの改良を続けます.

まず,格闘ルーチンが暴走して,当たらない格闘を繰り返すのを修正してみましたが,焼け石に水で0-3負け.

自動旋回にオフセットをつけて,移動方向によって接近と離脱を行うようにしましたが,やはり0-3負け.

ミサイルが良く当たっていたので,誘導妨害装置やデコイの使用条件を緩和しましたが,まだ0-3負け.

脆そうなロータスにロックを集中して数を減らそうとしましたが,誤って味方をロックしてしまい,速攻で0-3負け.バグを直すと0-2負けに向上しました.

ロックする敵を変更して挑んだところ,フライドには比較的ミサイルが当たりやすく,短時間で破壊できるようでした.

開始早々に,チァイーカから近距離ミサイルを発射されるのをさけるため,初期配置を右端に縦一列にしてみました.しかし,若干生存時間は延びるものの,やはり最後は負けてしまいます.

遠距離でのレーザー攻撃がほとんど当たっておらず,最後には弾切れしてしまっています.そこで,逃げるだけではなく,150mよりも遠い場合は前進して接近するようにしました.しかし,これでも最後のチァイーカを落すまでには至りません.

飛行型にも引けをとらないスピードがあるホバー型にも関わらず,敵の攻撃の方が良く当たります.どうも,敵の同時発射数はかなり多いようです.一度被弾すると一気に破壊されることがあるのは追い討ちルーチンのためだと思ってましたが,どうやら常時たくさん撃っているようです.

こちらも発射数を2から3に上げたところ,予想どおり敵に当たりやすくなりました.あと一歩というところまで追い詰めましたが,残念ながら弾切れ.さらに発射数を3から4に上げたところで,ついに3-0で勝利できました.

[CHP]シナリオ:第3章2006-08-12

温度制御だと一度被弾すると手数が減り,相手を調子ずかせてしまうようです.そこで,ラスティネールにもカウンタ制御を取り入れました.射撃をキャンセルすると撃たない時間が長くなってしまうカウンタ制御の欠点を温度制御を併用することで解消しています.といっても,機体温度が0度以下なら無条件に射撃するという簡易な方法ですが.

2機のマリアエレナにも同様の改良を施しました.敵周回にも改良を加えました.戦闘範囲のカドで引っ掛かることがあったので,後方に戦闘範囲外があるときに前進するようにしました.また,味方が固まりにくくなることを期待して,初期の移動方向を逆にしました.

戦闘を開始すると,押し気味に進んでいきます.そのまま勝てそうだったのですが,敵のヴァルキリーで戦局が一変しました.全方向から撃たれて何もさせてもらえません.そうこうしているうちに全滅しました.

ということで,機雷避けルーチンを追加しました.前方に機雷があればバックダッシュ,という簡易なものでしたが効果てきめん.危なげなく勝利しました.

[CHP]シナリオ:第2章2006-08-12

とりあえずラスティネールのバグを改修します.

温度制御の閾値をあげて2発ずつ発射するようにしました.また,距離によってカノンと小型ミサイルを使い分けていたのですが,距離判定の矢印が逆で遠距離で小型ミサイルを撃っていたのを修正しました.

さて,次の相手はエッグノッグ x 2とジェイラー x 1.ジェイラーはともかく,エッグノックはハンドグレネードや格闘が強力なので,近距離での戦闘は避けたいところ.

ということで,新しく入手したマリアエレナも遠距離ネチネチタイプにしました.基本戦術は敵周回+壁スイッチです.射撃管制はカウンタ制御を取り入れてみました.

戦闘を開始するとやはりエッグノッグが近づいてきます.機動性が高くてこちらの攻撃がなかなか当たらずどんどん接近されます.スピードでは負けないホバー型のマリアエレナは,何とかグレネードをかわしつつ,距離を保ってます.

ラスティネールも初期配置を後方にしたおかげで標的にされず,カノンの遠距離射撃で援護します.

そうこうしているうちに,エッグノッグのうち1機をマリアエレナ2機で十字砲火に捉えることに成功し,これを破壊します.

これで楽勝かと思ったのですが,いつのまにか敵に接近してきたラスティネールが結構やばくなっています.また,マリアエレナもジェイラーのショットガンに捉えられて苦戦してます.

それでも何とか数の暴力で押しきることができました.

[CHP]シナリオ:第1章2006-08-11

シナリオモードでの奮戦の記録を残していきます.うまい人ならそんなに苦労しないのでしょうが,ZEUS2を途中で投げてしまった私が何処まで行けるか……

ちなみに

*ネタバレを含みます*

ので,ご注意下さい.

最初の相手はマリアエレナが2機.こちらはラスティネールが1機だけ.下手に近づくと挟み撃ちにされる恐れがありそうです.そのうえ,動きの鈍いラスティーネイルの相手がホバー型のマリアエレナが相手では,近距離では旋回が追い付かずに死角から一方的にやられてしまう可能性も考えられます.

そこで,遠距離ネチネチタイプをプログラムすることにしました.射撃管制は面倒なので温度制御で実装しました.

戦闘開始すると,いきなりバグが発覚.3発ずつ撃つはずが1発しか撃ちません.射撃条件を0度以下にしたために1発目を発射した時点で射撃ルーチンから外れて,移動チップによって射撃がキャンセルされているようです.初代カルネジでは,ジャンプ > 射撃 > 移動 という優先順位がありましたが,今作では等価のようです.

弾幕の薄さから見る見るうちに距離をつめられ,ついに格闘戦の間合いになってしまいました.が,ここでなぜかこちらの格闘がヒットし,何発かカノンが命中していた1機の破壊に成功しました.

ラッキーパンチで倒したのもつかの間,そのスキにもう1機にも接近を許してしまいました.殴りあいでは部が悪そうに思えたのですが,耐久力は相手よりもあります.とはいえ,みるみるうちにHPが減っていきます.

もうダメかとあきらめかけたところで,ついに敵が背後に回り込みました.そのとき,近接格闘防御ルーチンが発動し,旋回ジャンプで距離をとりつつ格闘範囲に敵を捉える!ところまでは行きませんでした.それでも,なんとか敵の攻撃をかわし続けることには成功しています.こんなことならマジメにパラメータをチューニングしておけばよかった.

グルグル相手を回り続け,このままタイムアップもしくは燃料切れかと思ったのですが,何かの弾みで目の前にマリアエレナがあらわれ,またしてもラッキーパンチが炸裂して勝利しました.

[CHP] 実験2:サブルーチン呼び出しのペナルティ2006-08-07

サブルーチン呼び出しが性能に与える影響を調べてみました.

使用機体

第2章から使えるマリアエレナ

計測プログラム

メイン

  1. 100秒以上なら外周へ
  2. SUB1
  3. SUB1※

※の矢印は1.を指す.

SUB1

  1. カウンタAに+1※

※の矢印は外周を指す

100秒経過後のカウンタAの値を計測する

結果

  • サブルーチン呼び出し:1500

結論

サブルーチン呼び出しは性能に与える影響が大きい.

考察

当初はサブルーチン呼び出しチップも1チップとしてカウントされ,

150[チップ/sec] x 100[sec] x 2 / 5 = 6000

となることを予想しましたが,それを大きく下回る結果となりました.結果から計算すると,1ループあたりのチップ数は実に20にもなります.条件判断とカウンタ加算x2をのぞくと17となり,1つのサブルーチン呼び出しチップは8.5チップ相当となります.

この大きなペナルティが処理がサブルーチンに移る際に起るのか,サブルーチンからメインに戻る際に起るのか,あるいはその両方に分配されているのか気になるところです.しかし,調べ方がちょっと思いつきません.

もし,サブルーチンに処理が移る際にペナルティが起るのならば,反応速度が特に重要になる回避処理や格闘処理をサブルーチンに書くと不利になる恐れがあります.

[CHP] 実験1:閉ループ v.s. 外周 v.s. RETURNチップ2006-08-07

Carnage Hart Portableでようやくシナリオにたどり着きました.

今作からなにもないところに矢印を向けると,そこが自動的にRETURNチップになり,処理がスタート位置に戻ります.で,このRETURNチップは1チップとして処理されるのか,それともペナルティなしで最初に戻れるのかが気になったので調べてみました.

使用機体

第2章から使えるマリアエレナ

計測プログラム

  1. 100秒以上なら外周へ
  2. カウンタAに+1
  3. カウンタAに+1※

※の矢印を1.,外周,空き領域に変えてカウンタAの最終値を計測する

結果

  • 閉ループ:9998
  • 外周:9998
  • RETURNチップ:7498

結論

RETURNチップは1チップとして処理される.外周と閉ループは等価である.

考察

このCPUの処理速度は150[チップ/sec]のようです.サブ領域もありますので最高級のLP-323Hのようです.

カウンタの値がキリの良い値になっていないのは,CPUクロックが150Hzではなく実は50Hzで,3パイプラインを持ったスーパースカラプロセッサなのではないでしょうか?

初代のCPU速度は,クロックが一定で1クロック中に処理するチップ数で区別されていたので可能性はあると思います(間違ってたらつっこんでください).