2018年10月16日火曜日

Wargame Red Dragonかんたん遊び方ガイド


ウォーゲームWargame Red Dragonを初めてプレイする人のための遊び方ガイド

レベル0(まずはここから)


ゲームを開始したら左上の数字のボタンをクリックしてユニットを配置しよう。このとき兵站(LOG)カテゴリにあるCVユニットを配置するのを忘れずに。Wargameはセクターを占領しないとなにもできない。セクターとは上の写真で白いエリアだ。CVユニットをセクター内に配置すると占領できる。セクターを占領すると定期的に援軍を呼べるポイントを稼げる。更に上の写真でBravoセクターには陸上と航空と書かれた白い矢印が伸びている。これはこのセクターを占領すると陸軍と空軍が呼べるということだ。逆に援軍を呼べるセクターを占領できないといくらポイントが有っても援軍は呼べない。


CVユニットには星マークがついている。CVユニットにはいくつか種類がある。車両や戦車タイプのCVユニットは白いエリア内に配置するだけでセクターを占領できる。ヘリコプタータイプは着陸させないとセクターを占領できない。 着陸させるには右下のメニューで着陸を選択しよう。歩兵タイプのCVは載っている車両やヘリから降ろさないと占領できない。同じく右下のメニューから降車降機を選ぼう。上の写真ではその前の写真ではヘリに載っていてBravoセクターを占領できなかったCV歩兵をヘリから下ろすことでセクターを占領している。これでポイントを得られ、更にBravoセクターは援軍を呼べるセクターなので援軍を呼ぶことができるようになる。


ユニットは右クリックで目的の地点に移動できるが、地上ユニットは道路を使うともっと速く移動できる。戦闘発生地域までは道路を使った「ファストムーブ」による高速移動が基本だ。右下のメニューから高速移動を選択して左クリックするとその地点までファストムーブするがショートカットキーを使いたい。デフォルトのショートカットキーは;だが設定でFキーにしよう。Fast MoveのFだ。ファストムーブは多用するのでこの設定が都合がいい。Fキーを押して左クリックだ。


このゲームで歩兵は単独で出現せず必ず車両やヘリに乗ってくる。そのままだと歩兵は戦えず、また車両やヘリは歩兵を高速で運ぶことができるものの、目立ちやすく破壊されると中の歩兵も損害を受けてしまう。ファストムーブで車両やヘリを目的地まで移動させたら歩兵を降ろそう。降ろすには先程の右下メニューから選んでもいいがショートカットキーのUでもできる。UnloadのUだ。


上の写真は歩兵を降車させた場面。これで歩兵は戦うことができる。


降ろした歩兵は街に籠もると防御ボーナスを得られ、見つかりにくくなる。


地上ユニットは木々の中に隠れることが可能だ。カーソルを木々や森の近くにかざすと青色になる。その状態でユニットに移動命令を出そう。


するとそのユニットはそこに移動する。木々の中にいて敵から見えていないユニットはアイコンが緩やかに点滅する。敵が近づいたり発砲しない限り敵からは見えないので攻撃を受ける可能性は低い。木々の間にユニットを潜ませるのは基本の戦術だ。


航空機には離脱命令が可能で仕事が終わった航空機は直ちに戦場から離脱させよう。これも右メニューからから可能だがVキーを押しても離脱させることができる。エヴァキュエーションのヴァのVだ。航空機は戦場の滞在時間が長くなるほど撃墜される可能性が高まる。即離脱が基本だ。

レベル1
まだ

2018年10月14日日曜日

Marathon (FPSゲーム) の導入


HaloシリーズでFPS界において一世を風靡したゲーム会社Bungieは太古の昔(90年代)にMarathon(マラソン)というSFのFPSを開発していた。Marathonは3部作あり、いまはすべて無料でプレイすることができる。第一部では人類が宇宙に進出した近未来で主人公は突如エイリアンの攻撃を受けた、火星だかどこかの衛星をまるごとくり抜いて恒星間宇宙船にした"Marathon"に到着して、MarathonのAI"リーラ"と協力しながらエイリアンを倒してMarathonを救わなければならない。反乱を起こしたAI"デュランダル"をはじめMarathonを取り巻く環境など濃厚な世界観がプレイするうちに明らかにされていく、緻密なSFストーリーが魅力的なゲームだ。

Marathonシリーズはhttps://alephone.lhowon.org/からダウンロードできるが、こちらはすべて英語。しかし有志により日本語版がでている。ストーリーを楽しむためにはこちらがおすすめ。以下をダウンロードする。

・AlephOneJP
https://ja.osdn.net/projects/marathon/から、自分のOSにあったものをダウンロード。7z形式で圧縮されているので解凍にはhttps://sevenzip.osdn.jp/(右クリックメニューで7zファイルの展開ができるようになる)などが必要。これがいわゆるプレーヤー、エンジンでこれに各種シナリオデータを入れることで3部作をはじめいろいろなシナリオがプレイできるようになる。

・日本語版 M1A1 v1.6.2J (Full)
https://ja.osdn.net/projects/marathon/releases/54321からダウンロード。Marathon1部作目のシナリオデータ。

上記2つをダウンロードしたら日本語版 M1A1 v1.6.2J (Full)の中身をすべてAlephOneJPのAlephOne.exeがあるフォルダにつっこむ。これでAlephOne.exeを起動することで1部作がプレイできる。ゲームを起動したら設定項目で操作方法などを確認しよう。


ニューゲームをはじめると「到着」とでる。主人公の小型宇宙船がMarathonの反乱AIデュランダルによって破壊され、命からがら脱出ポットでMarathonに到着した場面だ。このあたりのやり取りは当時発売されたときは紙媒体(!)のゲームマニュアルに記してあった。少し読みづらいがwikiのプロローグに内容が転載されている。


が、次に映し出されたのは宇宙船の内部らしからぬ光景。これはBungieの最初期に作られたゲームでMarathonではない。オリジナルにはない、遊び心で挿入されたものだが不親切だ。最新版(英語)では削除されている。ここから出るには写真の赤い像で左折してあとはひたすら直進することだ。壁に隠し扉があり近づくと開く。


通路をドンドン進もう。


すると近代的な内装になった。オリジナルはここから開始だ。今までのことは脱出ポッドの中で悪い酔いして見た夢だったんだ。気を取り直そう。
前方に緑色のターミナルが見える。Tabキーを押すことでアクセスでき、ここでリーラから指示をされ、目標を達成し、大抵は別の場所ある別のターミナルから次のステージにテレポートされるというのが基本の流れだ。また役にはたたないが興味深い情報を得ることができる、ストーリーテラーとしての役割もある。


しかしターミナルに直行するのはよそう。悪い奴らを始末してからだ。左下のレーダーに敵がうつるぞ。赤いバーはヘルス、青いバーは酸素を示す。ゼロになると死ぬ。(大抵のステージは真空でないので酸素を気にする場面は少ない)。ちなみに写真のような粘性のある血しぶきや破裂しながら死ぬ(ちぎれちぎれの肉片になる)といった描写は黎明期の3Dモデルによるエイリアン描写にはない、2Dで描かれたモデル特有のものでこの点では2Dが勝っていた。


ターミナルにアクセスするとリーラと交信できる。彼女の言うとおりにしよう。


左側にモズクのようなものが見える。これがこのステージのマップだ。この複雑なマップはMarathon(あるいは旧世代FPS)の特徴だ。ゴールになんとかたどり着かねばならない。(※こうもマップが複雑で密度が高いのは、当時のパソコンではパワー不足で見晴らしのいい広大な空間は描画できなかったので、くねくね曲がった狭い空間にせざるを得なかったからだ。当時のマップエディターのマニュアルにはあまり大きな空間を作らないでくださいと注意書きがある)


主人公の乗ってきた脱出ポッドが見える。


Marathonをプレイすることとスイッチを押すことは同義だろうか?違うかもしれないがほとんど一緒だろう!Tabキーでスイッチを押すことでエレベーターを動かしたり扉を開けたりできる。


こいつの名はパターンバッファ。Tabキーでゲームがセーブできる。人体情報をすべて保存するらしい。


体力が減ったらチャージしよう。なんどでもチャージできる。パターンバッファとチャージャーはゲーム中何度も訪れる場所になる。


幸いMキーを押すとマップが表示される。どんどんステージを探索しよう。

そのほか
・武器はいくつでも持てる。弾薬は落ちているのを拾おう。難易度によって所持できる弾薬の上限は異なる。弾薬は持ち越しされる。無駄遣いは避けよう。
・武器には主トリガーと補助トリガーがある。マシンガンの場合主トリガーで機銃発射、補助トリガーでグレネードを発射する。パンチの場合は両方のトリガーを使うと両手で殴れる。
・スイッチの中には動作中にストップできるものがある。またスイッチはグレネード・プラズマピストルのフルチャージで射撃することでも動作できる(Marathon2部作以降ではエイリアンの武器でも可能)。
・ヘッドショットの概念はないが、装甲エイリアン(ハンター)はプラズマピストルに弱いなどの仕組みはある
・ゲームの終了はEscキー
・このゲームは(照明が)暗い。暗すぎたら設定で変更しよう。
・気にったら他のシナリオもプレイしてみよう。Marathon's storyではマニアによるマニアックなMarathonの世界についての考察が載っている。1995年に開設され、いまでも更新されている長生きのサイトだ。
The Marathon Spoiler Guideには攻略法が載っている。Marathonのステージには隠し扉(一見壁だがTabキーで開く)や隠しターミナルが散在しているがここで確認できる。

2018年7月19日木曜日

【Unity】RTS Bwars2 至近の課題

Bwars2開発にはやるべきことがたくさんあるが、至近のやることは3つある。それは射撃処理の洗練化、地物の生成、道路だ。


射撃処理の洗練

射撃は今は1つの砲弾ごとに命中・ダメージ判定を行っているが、高レートで連射した場合処理負荷が集中する可能性がある。例えばシルカ対空戦車は機銃を4門装備し一斉に射撃すると毎分数千発を射撃することになり、1秒あたり50発以上を発射する。これ1発1発について命中を判定しダメージを適用するのはあまり賢くなさそうだ。そのためある程度ゴマカシが必要になる。

そこで一定時間内に発射される砲弾をまとめて1つの砲弾として扱う。(まだ手法は考えていないけど)処理を一括して行うことで負荷の軽減が見込める。 この方法は弾の着弾地点が1箇所になる欠点がある。つまりきちんと1発ずつ計算していいれば複数弾の着弾地点はバラけ、様々な場所のユニットにダメージを与える可能性があるがこの方法では範囲が限られてしまう(その分範囲内のユニットには複数弾の合計されたダメージが入る)。そのためあまり多くの砲弾をまとめるべきではない。一方で簡略化は避け得ないのでやむを得ない方法だ。

また砲弾の処理に用いる入力パラメータを使い回すことでも処理を軽減できる。厳密に言うと敵味方のユニットが移動している場合、距離などのパラメータは刻一刻変化するので砲弾の発砲ごとに最新のパラメータを入力して命中判定などを行うのが望ましい。しかしパラメータの変更は計算のやり直しを招く(判定のしきい値がその都度再計算必要になる)。そのためある程度の時間内は同じパラメータを続けて使用するようにする。もちろん時間が経過することに状況は変化するのでなるたけ短時間の使用が望ましい。この同じパラメータを利用する連射を同一射撃と言うことにしよう。同一射撃時間は例えば1秒とする。この場合1秒の間はたとえ目標が破壊されたりロストしてもとにかく同じパラメータを利用して撃ち続ける。そして射撃開始から1秒後まだ目標が有効であり、かつリロードなどもクリアしていれば最新のパラメータを取り込み再び1秒撃ち続ける(パラメータは別のゲームループで更新されているので前回と同じ場合もありうる)。この場合見た目上はひたすら計算を行い連射しているように見えるが実際には1秒毎に計算が行われていることになる。同一射撃時間はそのままクールダウン時間となり、射撃開始後、同一射撃時間内は新たな発砲はできない。

以上2つの方法を用いる場合、射撃レートごとに以下のように利用することになる。

・高レート
同一射撃を開始する。例えば100発を同一射撃時間内に発砲するとしよう。それを25発ごとに1つの砲弾として同じパラメータを使って処理を行う

・低レート
同一射撃を開始する。4発を同一射撃時間内に発砲するとして、個々の砲弾ごとに同じパラメータを使って判定を行う。

・単発
戦車砲など毎分10発前後の場合は同一射撃終了後、リロードを挟んで再度射撃を行うことになる。

こうした処理を行うために、射撃制御クラスを作る。各ユニットの武器クラスは同一射撃時にパラメータを制御クラスに渡しあとはお任せすることになる。


地物の生成

今は地形の特性はテクスチャに描かれた図形で表現されているが、やはり立体のほうがいい。ただしBwarsは低スペック・旧PCにも対応したいのでGPUをブン回して描写を行うことは避けたく、またユーザーが手軽にmodを作れることを目指しており、加えて基本的には遠くから俯瞰しながらプレイするゲームであることから地物はとても簡略した描写に抑えたい。市街地や森ではたくさんの建物や木を並べて高密度さを表現したいがGPUインスタンシングでも数が多いと負荷は馬鹿にならない。そこでこうした高密度オブジェクトは連続したポリゴンを生成し描くようにする。これはGoogle Mapの3Dと同じような感じになる。郊外や茂みなど低密度な地域は一つ一つ地物描くようにする。ポリゴンの生成とLOD処理が課題になる。また地物ポリゴンが省略された場合でも自然に見えるマップテクスチャの生成も必要だ。


道路

個人的には道がないテラインは梅干しがない白米みたいだと思っていて、道路の実装は必須だ。道路はノードで定義され、各ノードは座標と接続ノードの情報を持っている。課題がいくつかある。1つは道路のノードの編集で、エディターなどを整備しないといけない。また実際にノードから地形に沿って目に見える道路を生成する必要がある。これには橋やトンネルも含まれる。最後に道路を全体の経路探索に組み込み、ユニットが道路に対応し道路上を移動できるようにしなければならない。課題は多いがRTSゲームではコンプレックスな道路の実装は少なく(せいぜい川に橋がかかるだけ、都市系シムと比べると特に見劣る)、実装できればマップの表現や戦術に新しい光を当たることができるだろう。


2018年6月26日火曜日

【Unity】RTS Bwars2 ベータ版ver3 公開


ベータ版3を公開しました。

https://sites.google.com/view/bwars2/%E3%83%9B%E3%83%BC%E3%83%A0/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89

・士気の実装。士気はユニットアイコンの枠線で示され、低下するとユニットが逃亡する。
・アタックムーブの実装。Qキー+左クリックでユニットは移動を行い、途中攻撃範囲に敵が入ると停止する。
・AOE(範囲ダメージ)の実装。いくつかの攻撃は着弾地点周辺のユニットにもダメージ・士気の低下を及ぼす。
・新ユニット特殊部隊追加。3つの武装を持ち、内グレネードランチャーは士気を低下させる効果が大きい

2018年6月12日火曜日

【Unity】RTS Bwars2 ベータ版ver2 公開


ベータ版ver2を公開しました。


・視界システム・戦場の霧を実装
・地形による遮蔽:射線や視界は地形で制限される
・新しいユニットスペック

2018年5月20日日曜日

【Unity】RTS Bwars2 ユニットパラメータの刷新


嫌で仕方がなかったユニットのパラメータの仕組みを刷新した。攻撃力や移動速度などユニットのパラメータはJSONで指定できるが、以前からあまりいい設計と感じていなかったので変える必要があった。今回の変更で例えば攻撃力はターゲットの防御属性の種類の数の分存在することになった。別の例では射程距離と命中率も回避属性分存在(車両とか飛行機とか)する。この変更をしたくなかったのは設定読み込み処理の加えて火器管制AIや対戦AIなど広範囲な修正が必要だったからだ。しかし避け得ないことだった。

また数時間を費やして汎用的で視覚的なデバッガも改良して以前よりゲームの状態を掴めやすくした。上の写真ではAIが適切と考えるユニットの配置場所が立方体の大きさで示されている。

2018年3月21日水曜日

Bwars2 アルファ版2公開


アルファ版2を公開しました。ポータルサイトも開設。

前回からの変更点
・地形の立体化(射線が地形で遮られます)
・ユーザーが地形を追加可能(ポータルサイトのそのほかを参照)

デフォルトでマップは富士山で、関連ファイルを交換することでスコットランドのマップでも遊べます。

ダウンロードはポータルサイトから
ポータルサイトはこちら