2022年11月26日土曜日

Safe Driving

 

Hi I'm developing driving game now. Check here

2019年11月18日月曜日

【WargameRD】自衛隊異世界調査隊


Wargame RDではところどころ何故が射線が通らない場所がある。明らかに平地なのに遮られてしまうのだ。これは目に見えない異世界へのポータルかもしれない、ということで87式偵察警戒車出動!本当に安全なのかソコォ!

2019年11月11日月曜日

【Unity RTS】Bwars2 開発日記 #1


 みなさん、こんにちは。今日は次回リリース予定のバージョン0.7についてお話しましょう。0.6のリリースにより私はBwars2は開発上の一つの段階を達成したと考えています。0.6では地形・ユニットエディタを備え、間接兵器を除く陸海空のユニットの運用が可能になりました。荒削りながらも完成されたゲームが備えている基本的な機能をほぼ実装したプレイ可能なベータ版です。

 そのため私は次の開発に進むまえに、この機会に大規模なリファクタリングを実施してデバッグ機能を強化して0.7以降の開発がスムースに進むようにするべきだと感じました。リファクタリングは先日行い、名前空間とファイルの構成の整理によってプロジェクト全体の見通しがよくなりました。Bwars2ではロジック担当のメインシステムを基幹とし、ビジュアル担当のスキンがそれを監視して描画を行うことでメインシステムを修正すること無くスキンの交換によりゲームの見た目を変更することを目指しています。現状はメインシステムからスキンが情報を引き出す部分がやや複雑なのでここを整理すればリファクタリングは一旦完了と言えるでしょう。またこれまでの開発を通して必要と感じたデバッグ機能を実装していきます。現状のデバッグ機能は行きあたりばったりで偏屈なのでゴミ箱に破棄されるでしょう。サヨナラ!

 0.7では地形が強化される予定です。現状の0.6では高低差が大きな地形を作るとユニットの経路探索がうまくいきません。これはUnityのナビメッシュが急斜面では機能しないためです。そのため経路探索を改善する方法を考えてこの問題に対処することになるでしょう。これが完了したら山脈や渓谷などよりダイナミックな地形を扱えるようになります。

 また0.7では地形の描画が改善される予定です。1つはランドマークでこれはユーザーが作成した3Dの地物モデルを配置できるようになります。例えば東京タワーなどです。これはマップにフレーバーを加えるのに役立つでしょう。将来的には地形のスペックの上書き(例えば要塞を設置した場合)を行いますが、0.7ではひとまずゲーム上では特に影響を持たいない、純粋にアイキャンディとしてランドマークは実装される予定です。もう一つは電線です。地形上の構造物の種類は点(一本の大木など)、線(道路など)、そして面(市街地など)に分類できます。そのうち点はランドマークが担うとして、面はすでに市街地や森林を実装しているので達成されています。私は線は地形にフレーバーを与えるのになかなか重要だと感じています。道路がすでに実装されていますがさらに電線を加えることでよりリアリティーが増すでしょう。戦場となる地形は市街化していない場所が多いので電線は相性がいいとも言えます。そうしたわけで0.7ではより魅力的なマップが提供されるでしょう。(おわり)


2019年11月4日月曜日

【Unity】RTS Bwars2 β ver 0.6.0リリース


Bwars2ベータ版ver0.6.0を公開しました。

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

前回からの変更点
・地形タイプに水面を追加
・水上ユニット追加
・地形による移動制約
・マップの追加
・マップエディタの追加
・UIの大きさを設定する機能
・マニュアル更新:遊び方のページ以下に、「メニュー」「マップエディタ」「設定項目」を追加
・視点操作の改善


2019年8月22日木曜日

Wargame Red Dragon の歩兵について

Wargameのデッキ編集で歩兵のメニューを初めて見たときはそのバリエーションの多さにすこしギョッとするだろう。



2019年6月9日日曜日

【Unity】RTS Bwars2 β ver 0.5.0公開


Bwars2ベータ版ver0.5.0を公開しました。

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

前回からの変更点
・ユニットエディタを追加(エディタの使い方のページを追加
・航空ユニットを追加(遊び方に加筆しています
・誘導弾を追加

2019年1月19日土曜日

【Unity】RTS Bwars2 β4公開


Bwars2ベータ版ver.4を公開しました。

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

前回からの更新点
・セクターの廃止。ユニットはどこでも戦えるようになった。
・道路とファストムーブの実装。Fキー+左クリックでユニットは道路上を高速移動します。
・勝利条件の追加。ユニットを失うごとに減っていくスコアが0になったほうが負け。
ポータルサイトの「遊び方」に加筆しています。

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を公開しました。ポータルサイトも開設。

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

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

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

2017年12月20日水曜日

Bwars2 α版

Bwars2 α版を公開しました。ダウンロードしてプレイすることが出来ます。



重要:α版でありまだまだ開発途中まっただなかのバージョンです。バグもあり機能も未実装のものがたくさんあります。


ダウンロードや遊び方などはポータルサイトに移動しました。以下の内容は古い場合があります

・Bwars2について
Bwars2はRTS(リアルタイムストラテジー)ゲームです。上空視点から戦場を俯瞰し、戦車などのユニットに指示をだし敵をやっつけるゲームです。

【動作環境】
・Windows (Directx12推奨)
・リファクタリングもしていないので全体的に動作が重いです。5年以内のPCのならなんとか動くでしょう。Macはまだ。ごめんね。





【視点操作方法】
・一般的なFPSに同じくWASDで移動
・マウスホイールで拡大縮小
・マウス中ボタンで角度変更

【ユニット操作方法】
・青が自分、赤が敵(AIが操作)
・ユニットにカーソルをかざすと攻撃範囲を示す円が表示される。
・ユニットシンボルをマウス左クリックでユニットを選択
・マウス左ドラックで範囲選択、複数のユニットを選択


・任意の場所でマウス右クリックすることで選択したユニットにその場所に移動させる
※ユニットは攻撃範囲の敵を自動で攻撃する。攻撃目標の指定はできない。

【セクター】
・戦場はいくつかのセクターに分割されていて、セクターの中央にある円のなかにユニットを移動させると占領できる。



・セクターは味方セクターに隣接していないと占領できない。またユニットが戦闘できるのは味方セクターとそれに隣接するセクターのみ。

【収入とユニット購入】
・一定時間ごとに占領しているセクターからの収入がゲーム画面左上の資金に追加される。
ユニットを購入するにはゲーム画面左上のガテゴリー(infなど)をクリックしユニットの種類をクリックしてそのあと戦場の任意の場所をクリックする(このときshiftキーを押しながら戦場をクリックを繰り返すと資金の許す限りユニットを配置できる)


・購入したユニットは次回収入が入る時に配備される。

【そのほか】
・勝利判定はない。
F12キーでスクリーンショット。画像ファイルはBwars2_ではじまりデスクトップに保存される

【ヒント】
・基本的に森・街でユニットの回避率が上昇
・ゲーム開始時は赤軍のユニットがちょっと多い。でもAIは賢くないのでセクターを順当に占領しユニットを作り続ければ勝てる
・1つセクターにあまりに多くのユニットを配置すると攻撃速度が低下する

【今後の予定】
 * 経路探索
 * 地形の立体化
 * 地形による遮蔽、射線・視界の判定
 * ユニットパラメータの刷新
 * 火器管制システムの改善
 * AIの改善
 * ベータ版
 * 間接・範囲攻撃
 * シナリオイベント

2017年11月23日木曜日

【Unity】RTSゲーム Bwars2 エフェクトやユニット購入やAI


ささやかなエフェクト―砲火や爆発―を追加した。自分同様慎ましいので誰も気づかないかもしれない。
 セクターから収入が得られるようにして、一定時間ごとに資金に加算されて購入したユニットが戦場に現れる。上の写真でも購入用のUIやセクターごとの情報を表示するUIを確認できる。これは試み的な工夫の一つで比較的長い間隔による更新でRTSにありがちな刻々増える資金に常に注意を払いお金が貯まるやいなや購入コマンドを押す操作を軽減する目的がある。初心者にとって戦場で戦闘の指揮を行いつつ随時ユニットを追加する操作は難しい。この仕組なら一定時間内の好きなときに資金を確認し必要ならユニットを購入することができる。購入実装に伴いAIもユニットが購入できるようにした。
 戦力をセクターに分配するアルゴリズムを新しい理屈に基づいて改善した。セクターへの戦力分配は大まかにセクターの重要度と危険度で決定される。重要度はセクターからの収入や生産施設の有無で変化する。危険度はステップ数に基づくセクター間の経路探索を実装したことで敵セクターまでに経由するセクターとステップ数を調べることが可能になったので、例えば敵セクターとの間に味方セクターを挟む場合は危険度を低下させることができるようになった。実はこれまでセクターの重要度などは与えていたが、これでAIが動的にセクターの価値を測定し戦力を決定できるようになった。
 火器管制システムをGame空間に移管させた。話すと長いしつまらないのでこれは省こう。
 ユニットに属性を設定することを考えている。例えば回避率は戦車であれ装甲車であれ地形別の変化量は同じ傾向になると仮定することができる。そこでこれを属性とすることで各ユニットでは基本回避率と属性を指定するだけで手軽に各地形での回避率を設定することができるだろう。

* エフェクトの強化
    * 火器管制システム
    * セクターUI強化
    * セクター兵站制限によるペナルティ
    * ユニットの生産
    * --------------↑やった↑------------------
    * AI改善
        * セクター戦力分配
        * 地形の効果的な利用
    * ユニット駒モデル
    * LOD
    * 操作性の改善
        * UIの改善
            * ユニット選択
            * ユニット購入
    * ゲームスタート・終了機能
    * アルファ版
    * 経路探索
    * 地形の立体化
    * 射線・視界の判定
    * AIの改善
    * ベータ版
    * 間接・範囲攻撃
    * シナリオイベント

マップを大きくしたら木を描画しきれなくなたのでLODを実装する必要がある。
うまくすれば来年の1月にα版を公開できる。

2017年11月6日月曜日

【Unity】RTS Bwars2 くっつくUI


以前からユニット同士が近いとUIが重なってしまっていて気になっていたので直すことにした。UIが重なっているのか判定する必要があるので四分木とモートン順序を利用して空間分割のアルゴリズムを実装して千コ矩形を置いて重なった矩形を赤く染めて(上の写真)ヤッタヤッタと喜んでいたがUIの整列にはもうひと工夫必要だった。結局重なったUIでグループを作って並べるようにした(下の写真)。


 その仕組み上グループに属して再配置されたUIと一匹狼のUIや他のグループUIは重なってしまうがたぶん問題ない(ほんとかな?)。UIも再デザインした。こうして見るとWargameの横長のUIはうまく出来ているなと思う。ユニット名が長くても表示できるし、プレイされることが多い横長モニタと相性がいい。まねっこになるからまねしないけども。AIも改良し以前に比べ大幅に良くなった。引き続きUIの実装に努める。

2017年10月17日火曜日

【Unity】RTS Bwars2 UIの実装の続き


多少UIのデザインを考えたのでUIの実装をしている。その一環で地形上のセクターの境界に線を引くように改良した。またいくつかユニットの種類も増やした。ユニットの追加はユニットを3Dモデルからイメージに変えたので、もともと動的にデータからユニットを生成する仕組みと相まって比較的容易だ。一方でどうしても3Dモデルの臨場に比べると迫力の無さは否めない。ユニットのイメージは描く予定でいま絵を練習している。この後もう少しUIの実装に努めたところで再度AIの改善に戻るだろう。その前にはユニットや地形などもろもろの設定を一度きちんと決めてやる必要がある。その情報を使ってAIがもう少しマシな判断が下せるように助けるようにしよう。


2017年10月4日水曜日

【Unity】RTS Bwars2 地形とUIの実装の開始

前回行っていたクラスの再編成が完了した。クラス大きく分けてゲームの運用を行うGame空間とゲームの情報から戦術判断を下し命令するAI空間に二分された。両空間は疎結合でAI空間からGame空間に指示を出してユニットを動かすことに成功した。上の写真はAIが指示したユニットの移動先や敵ユニットの予想位置を赤青のシンボルで示している。
 これで一応ゲームは動くので外見上の改善に手を付け始めた。ひとまず旧プロジェクトから回収したコードを使ってマップに木を生やした(同じく上の写真)。次にユニットのシンボルを実装しようと思う。下の写真はイラレで作成したデザインの案だ。



ユニットのシンボルは距離によって変更する予定だ。より近づくとシンボルから具体的な絵や写真に変わる。ひとまず遠目から見たUIを実装して満足しよう。