投稿記事

2020年 05月の記事 (3)

D’s Production 2020/05/26 10:37

新作鋭意製作中5 & 過去作の売上振り返り

前までの怠慢を反省し、今週は頑張って作業をしておりました。
その甲斐あって、今日で1つのキャラの基本形が完成しました。

もちろんここから長く苦しいグロ差分の制作が始まるのですが、
・1週間でキャラの基本形完成
・さらに1週間でグロ差分作成
という予定の速度にほぼ戻すことができ、少し安堵しています。

できればこれ以上の速度を出したいのですが、なかなか厳しいですね(>ω<)

前の記事、新作ゲーム鋭意製作中2/同人絵師の差分地獄でも書いたことですが、
着衣差分はどこまでリアルに描くか、作者の本気度が問われます。

前の記事では「バスト寄せ問題」としてブラジャーによって
乳房の輪郭線が変わってしまう問題を取り上げました。

今回新たに問題になったのは「ハイヒール」でした。

基本的に前回と本質的に同じなのですが、
かかとの高い靴を履かせると、足の角度が変わってしまうので
結果的に輪郭線が変わるという問題です。

輪郭線が変わると、
単に上から「靴レイヤー」を書き足して表示するだけでは対応できず、
「身体(足)レイヤー」を靴に合わせて書き直さないといけません。

上の図では線画とベタ塗りの単純な絵なので単に輪郭が変わるだけですが、
実際にはベタ塗りの上に質感や影を表すレイヤーを何重にも付け足すので、
1つ変わるとその他も大幅に加筆しないといけないというわけです。

大変な作業ですが、ゲーム制作とはこのような大変な作業の連続です。。。
今後とも頑張っていきたいと思います!

高額路線の可能性

ツイッターで知ったのですが、
KICHUREA さんという方が1万円(+税)の同人ゲームを売り、
しかもそれが330DLされたとのこと。
●330DLされました。ありがとうございます。

昔の商業ゲームみたいな話でたまげたということなのですが
同時に夢のある話でもあります。

さらにぶったまげたことに、アンゼリ会の九条エミリアさんという方が
5万円のゲームの制作を決意されたとのこと。
●ブロマガでえみりあちゃん! 5月24日 27回目

KICHUREA さんの作品「ヴィルネーメレト」は「とにかくエロ満載」という
王道エロゲ路線の大物量戦略といった作品のようですが、
方やわが D's Production のだいずは1キャラに数週間も掛けてしまう超絶遅筆作家
かつハードコアエログロというマイナー路線ですから
方向性としては全く真逆という感じがします。

ただ、方向性は真逆でも、
高額路線は狙えるのではないかと思った次第です。

D's Production は明らかにニッチな性癖を攻めたサークルです。
つまり1万円とは言わずとも、多少価格が高くても手にとってもらいやすい
ということです。

もちろん内容が伴わなければ満足は得られませんから、
制作に注力することは変わりせんけれども
いざ作品が完成した時にいくらで売るかということを
今から考えているわけです。

過去作の販売戦略と売上

過去に制作した主要作品の売り方について振り返ってみたいと思います。

サキュバス・レ○プ残酷物語


2017年7月発売。
エログロRPG。価格は1700円(+消費税)

体験版では物語の1/3くらいまで進める事ができ、
それ以降は製品版に移行しないと進めないという
非常にオーソドックスな売り方。

サキュバス探訪譚


2017年12月発売。
エロPRG。価格は700円(+消費税)

サキュバス・レ○プ残酷物語が、その過激なグロのため
一部販売サイトで販売できなかったので急遽加筆修正して作ったのが
このサキュバス探訪譚。

実はサキュバス・レ○プ残酷物語の有料販促作品。

有料販促作品という性格のため体験版でストーリーの
最初から最後までプレイ可能だが、1/3くらいからCGに隠蔽が入る。

サキュバスシリーズの《追加パッチ》

《サキュバス・レ○プ残酷物語》と《サキュバス探訪譚》の
販売の特徴として、
2作品を両方買うと少し値段が得になるという設計になっている。

具体的には、
普通の《サキュバス・レ○プ残酷物語》 \1700
普通の《サキュバス探訪譚》 \700
・《サキュバス・レ○プ残酷物語》追加パッチ \1500
・《サキュバス探訪譚》追加パッチ \500
という4種類の商品を別個のものとして売っている。

例えば「普通の《サキュバス・レ○プ残酷物語》」を買った人は
「《サキュバス探訪譚》追加パッチ」を買うことで
200円分安く買う事ができるというわけである。

(追加パッチは、普通の方の製品版のセーブデータがなければ
起動できないようになっている)

虐殺大陸


2019年8月発売。
エログロ・戦略シミュレーションゲーム。価格は1600円(+消費税)

売り方は《サキュバス探訪譚》と同じく、
体験版で最初から最後までプレイできるが、途中からはCGに隠蔽が入る。

実際の売れ行き

この記事を書くに当たって、各作品の総売上数を調査してみました。
(一部のサイトは本当に「調査」してみないと総売上数がわからない)

はじめは各サイトごとの細かい数値をここで公開しようかと
思ったのですが、それは有料記事の方に譲り、
ここでは合計数だけをお伝えすることにしようと思います。

主要3作品売上数(2020年5月25日現在)
《サキュバス・レ○プ残酷物語》(1700円。2017年7月発売) - 218
《サキュバス探訪譚》(700円。2017年12月発売) - 140
《虐殺大陸》(1600円。2019年8月発売) - 191

《サキュバス探訪譚》は単体の作品というより、
《サキュバス・レ○プ残酷物語》との抱合せ商品ですから
売上数が少ないのは当然かと思います。
(寧ろその中では健闘しているとも言える)

注目するべきは《虐殺大陸》で、
《サキュバス・レ○プ残酷物語》が発売から3年近く経って200超えに
達しているのに対し、
《虐殺大陸》は発売から1年足らずでもう200に達しようとしています。

しかも、《虐殺大陸》は体験版で最後までプレイできます。
皆が皆というわけではありませんが、
(隠蔽があるとはいえ)無料でできる作品にわざわざお金を払ってくださるのは、
カンパ的な意味合いが強いのではないかと思います。

違法アップロード・違法ダウンロードが問題になることも多い
インターネットコンテンツですが、
このように正規にお金を支払って買ってくださる方も多数
いらっしゃるというのが否定できない事実です。

このような皆様のご期待にお応えするべく、
今後とも一層努力して参りたいと思います。
何卒、よろしくお願いたしますm(_ _)m

有料記事では、最新の制作画像と
過去作のサイト別の詳細な売上を見ることができます。

【 応援プラン 】プラン以上限定 支援額:500円

このバックナンバーを購入すると、このプランの2020/05に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

D’s Production 2020/05/17 20:38

新作鋭意製作中4 - サボりすぎてしまった

サボりすぎてしまった話

作業が遅れがちなのはいつものことですが、
今回ばかりは流石にサボりすぎてしまった・・・

敵キャラクター(グロ差分含む)の制作は
2週間に1つ、という目標で取り組んでいますが、
今日完成したものは、何と5週間かかりました。

1キャラクターに5週間です。

すごく精密な描画が必要だとか
描く要素が単純に多いなど
作業内容の要請から時間が大幅に取られてしまうことはあります。

例えば過去作で描いたイラストには1枚に2ヶ月掛かったものがあるのですが、
それには5人ほどの人物が(1枚の中に)含まれており、
かつグロイラストだったので(グロ絵は血の描画など細かい作業が必要)
時間が掛かってもやむ無しと言ったところでした。

が、今回のものは特にそういうこともなく、
単にサボっていただけでした・・・(;´∀`)

やる気の有無によって作業進行度にムラが出るのは
同人としてはよくある話で、
それができるのが同人の良いところなのですが
逆にそれができてしまうのが同人の悪いところでもあります。

「単にサボっていただけで、進捗は遅れる」

このことを肝に銘じて、今後は作業に取り組んでいきたいと思います・・・orz

イラストの構造とグロ差分

この記事を見ている人には言うまでもないことだとは思いますが、
イラストを制作する際にはパーツごとにレイヤーを分けるということを
しています。

レイヤー・・・「層」のことですが、
例えば「裸」「下着」「服」のようにパーツごとに絵を用意して、
それらを重ね合わせるようにして1枚の絵にしているというわけです。

(もちろん、その1つのパーツも、「下地の色」「影1」「影2」など
何枚ものレイヤーを重ね合わせて作られています。
複雑な絵になればなるほど、レイヤー数は増えていきます)

例えば↓のような絵があるとすると・・・

その構造は↓の動画のように説明することができます。

(これを作りながら、正直自分は何をしているんだと思いました・・・(;´∀`) )

このようにパーツごとにレイヤー(ただしくは複数のレイヤーをまとめた「レイヤーグループ」)
を分けておくと、
例えば衣服のレイヤーだけを非表示にすると「裸差分」などができるとか、
あるいは複数の衣服レイヤーを用意するとワンタッチで着せ替えができるなど、
非常に便利なわけです。

さて、今回は別にそのレイヤー機能の話をしたかったのではありません。
グロ差分(ダメージ差分)の話です。

言うまでもないことですが、グロ差分とは、人間の体が傷つく様を
描写した差分のことです。

つまり肌が傷つくわけですが、腕や足、顔などの露出箇所を除いて、
肌が傷つくためにはそこを覆っている衣服が破れなくてはいけません。

例えば「下腹部付近」が傷つくと、そこを覆っている衣服・・・
「下着」「スカート」「服」などが一気に引き裂かれる必要があります。

↓の動画をご覧ください。

ちょっとわかりにくいかも知れませんが、
とどのつまり、一箇所に傷がついただけで、
この場合は3つの上部レイヤーをそれぞれ加工しなければならない
ということです。

とても面倒ですね!?

そう、グロ差分を作るのはとても面倒なのです・・・

私がつい作業をサボってしまいたくなる気持ちも、
これでご理解いただけるかと思います・・・

という言い訳タイムなのでした。
(「このことを肝に銘じて、今後は作業に取り組んでいきたい」
などと言った矢先にこれとは・・・(;´∀`) )


有料記事では最新の画像を見ることができます。

※Ci-enの仕様では料金を支払ったその月の有料記事のみ見ることができるようです。
 (よって過去の月の有料記事は見れない模様です)

 いきなり今月分のプランに加入されても、もちろん問題ないのですが、
 まずは4月分のバックナンバーを購入し、↓の記事を見てからの方が
 D's Productionの活動をより深くご理解いただけるかと思います。
 何卒ご検討頂ますようお願いいたします。

2020年4月4日「《虐殺大陸の明けぬ夜・真》D's Productionの今までとこれから」

【 応援プラン 】プラン以上限定 支援額:500円

このバックナンバーを購入すると、このプランの2020/05に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

D’s Production 2020/05/02 15:23

《虐殺大陸の明けぬ夜6》敵AIのアルゴリズム

はじめに - “簡単”なレベルデザイン

皆さんはどれくらいのレベルのゲーマーであろうか?

「レベル」というと曖昧だが、ここでは腕前とそれを振るいたいという気持ち──つまり挑戦心という程度の意味で考えてもらいたい。平たく言うと、どれくらいの難易度のゲームを好むかということである。

ジャンルにもよるが、私自身は「ごく普通」だと思う。
つまり、あまりに難しすぎるのは嫌いだが、簡単すぎるのも好まない。
ほどよく難しく、ほどよく簡単なのが良い。

ゲーム開発者にとって難しさのデザインは最も困難なことの1つだと聞く。
どの程度のレベルのプレイヤーを想定するのかから話を始めなければならないが (そしてそれは宣伝の仕方にも関わってくる。間違った宣伝をすると、不本意な非難に晒される) 、もちろんその想定したプレイヤーに最適の難しさにするのも簡単なことではない。

よくあるのが、作者自身は開発段階で何度もプレイするので慣れていき、どんどん難しく設定していき、最終的には鬼畜ゲームとでも言うような難易度になるというものである。
しかしそのことを踏まえて甘く設定しすぎると極端にヌルゲーになってしまうこともある。

そういった「最適な」レベルデザインの難しさの話は枚挙に暇がないが、誤解を恐れずに言えば実は難易度を上げることも難易度を下げることも開発者にとっては難しいことではない。数値をいじればよいのである。

例えば敵の攻撃力を上げる/下げる、味方の防御力を上げる/下げる、成長率を上げる/下げる・・・
全ては数値であり、それをいじるのは極めて簡単なことだ。ゲームの世界にとって、開発者は神のような存在なのである。ついでに言うと、その意味ではチーターも同様の存在になれる。
(※チーター:哺乳綱食肉目ネコ科チーター属に分類される食肉類のこと、ではなく、「チート」という、ゲームに備わっていない機能を用いることで優位になる行為をする人のこと)

《虐殺大陸》では、(これもある種の敗北宣言なのだが)難易度調整をプレイヤーに任せるという方法をとった。難易度設定機能の実装である。

Lv.0~5の6段階をプレイヤーに選ばせる。(Lv.5は一度ゲームをクリアした後に選べるようになる。作者もクリアできなかったが、公開後これをクリアした人が現れた。脱帽!)

これによって変わるのは基本的に数値である。
簡単に言うと、レベルを下げるほど味方の攻撃力と防御力が上がる。ついでに敵がプレイヤーの軍に向かってはあまり攻めてこなくなるが、これも数値の変更である(敵が攻めてくる確率と、攻めてくる人数を変更している)。

この難易度変更のシステムはシミュレーションゲームに限らず、あらゆるゲームにおいて使われている手法で、幅広いプレイヤーに向けて、快適にプレイしてほしいという気持ち(そして不本意な非難を避けたいという気持ち)から来ていると思う。

《虐殺大陸》では各レベルに名前を付けており、Lv.1が「易しい」Lv.3が「通常」Lv.4が「難しい」である。
作者が頑張って最適にデザインした難易度はLv.3だとしており、特に変更しなければゲームはLv.3で始まることになっている。手応えのある、しかし必ずクリアできるレベルのシミュレーションゲームをやりたい人は是非「通常」のままプレイしてほしいと思う。

さて、前置きが長くなったが、今回書きたいのはレベルデザインのことではない。
それは数値をいじるだけでできる“簡単”な調整なのだと言いたかった。

この“簡単”はあくまで括弧つきの“簡単”である。
数値調整によるレベルデザインというものがゲームバランス、ひいてはゲームの全体の面白さ・満足度に大いに影響するということは言うまでもないことである。
しかし言うまでもないことなので、この記事の読者には敢えて言わなかったまでのことである。つい言ってしまったがね・・・

それではできない、アルゴリズムの話がまたしても今回のテーマである。

敵に「思考」をさせるということ

シミュレーションゲームの面白さはどこにあるか?それは文字通りの「シミュレーション」にあるのではないか。

《虐殺大陸》は戦略シミュレーションゲームだから、まさしく戦略──つまり戦争指導をシミュレートするところに醍醐味がある。

とはいえ、ゲームらしく簡略化されているから、実際に体験できるのは兵力の増産と、増産した兵力の配置・派遣先の決定といったところにとどまる。かなり程度が低いシミュレーションだが、そこは勘弁していただきたい。

ここで重要なことは、「自分にできることは相手にもできる」ということである。
もちろん多少の差異はあっても良い。その方が各勢力に特徴が出て面白みが増す。しかし基本的にできることはどの勢力も平等であるべきであろう。

「自分ができることは相手にもできる」

─口で言うのは簡単だが、いざ実際にゲームにそれを組み込むのは骨が折れる作業である。こちらは人間、相手はコンピューターだ。人間がひと目で理解できることも、1つ1つプログラムによって理解させなければならない。

具体的に言うと、どの程度の兵力を作り、どこにその兵力を配置し、どのタイミングで敵城にそれを派遣するのか、それを敵AIに決定させなければならない。

適当に決定するわけにはいかない──ということは、周囲の状況を把握する必要があるということを意味する。

現状の把握 - データベースの活用

例えば城Aには現在守備隊が10部隊ある。
隣接する敵の城Xには5部隊、同じく敵城Yには10部隊、敵城Zには30部隊がいるとする。

さらっと「隣接する敵城X、Y、Zには・・・」と書いたが、当然コンピューターにはそんなことはわからない
人間の目には明らかに隣接している城同士でも、データベースには、単に城1、城2、城3・・・と並んでいるに過ぎない。だから、城1と城2が隣接している、城1と城3も隣接している、と一つ一つ入力してやる必要がある(もちろんその際、城1のデータベースに「隣接している城1、2、3・・・」という項目を用意して、その中に具体的な数値を格納するという作業が必要になる)。


▲人間はこの画像を見ると一瞬でその状況を理解できるが・・・


▲コンピューターにはこうでなければいけない。
余談ながら、ウディタにはありがたいことに、もともと「データベース」という、まとまった変数のグループのようなものが存在しており、ユーザーが自由にこれをカスタマイズすることができる。(一応、「ユーザーデータベース」「可変データベース」「システムデータベース」という3種類があるのだが、ここではその説明は省略する)

例えば《虐殺大陸》には「城」が22個存在している。その22個の城の設定を総合的に格納する場所として、このデータベースを活用している。

まず「城」という【タイプ】を用意し、その中に22個の【データ】を用意する。
【データ】はさらに【項目】に分かれており、その中に、例えば「城名」「X座標」「Y座標」などを格納する。

例えば【データ1】には「城名:ライトニングフォード城」「X座標:10」「Y座標:20」などの【項目】が格納されている、といった具合である。

仮にカーソルが(10,20)の座標にある時に決定キーが押されると、【データ1~22】の【項目X座標、Y座標】が検索されて、合致したデータ番号の【項目:城名】「ライトニングフォード城」を返してくれる。

これとは別に、単に数字順に並んでいる「通常変数」というものもあるのだが、これだけで上記のような処理をしようと考えたら、途方も無い苦労が必要であることは容易に想像がつく。

《虐殺大陸》の制作は、このようにウディタという非常に便利なツールに助けられていることは改めて言うまでもないことだろう。


▲ウディタのデータベース実例。項目の名前や種類(数値・文字列)などは自由にカスタマイズできる!

ついでながら、《虐殺大陸》はリアルタイムシミュレーションであるので、いつでも城の中に部隊がいるとは限らない。
城Aと城Xをつなぐ街道上を敵10部隊が進軍中かも知れない。「城Aと城Xをつなぐ街道は、街道S、T、Uである」ということも合わせてデータベースに登録し、この街道上にある師団を検索するシステムも組む必要がある。

面倒な作業だが、やってやれないことはない。
コンピューターは人間とは違って勤勉である。命令されたことは愚直にやる。それゆえ、下手なやり方をすると処理が重くなるのだが、その辺りの苦悩については前の記事で述べたので、改めて繰り返す必要はないだろう・・・

さて、そのような方法で、当該の城に隣接・接続する城や街道がどこかを把握できれば、あとはそこの部隊数を検索・計算して足し合わせるだけである。こうすると、「それぞれの城が、今どの程度の敵兵力に晒されているか」が分かる。
例えば城Aは敵兵力55部隊、城Bは60部隊、城Cは10部隊・・・などという形である。
(もちろんこの中には重複して数えられている部隊もあるが、ここではそれは問題にしないことにした。本当はそこも考えた方が良いのだろうが、それを考えることは私の限界を超えていたのである)

このように「現状を把握する」ことは、複雑なシステムが必要になるかもしれないが、根気よくやれば不可能なことではない。
問題は、「現状を把握した上で、それに基づいて判断する」ということである。
実は、これがあらゆるシミュレーションゲームの(あるいはRPGやアクションゲームでも)面白さの根幹に関わることだと思う。

つまり「敵AIがどれほど賢いか」ということである。

現状から次の行動を判断する

どれだけ複雑で面白いシステムの戦闘であったとしても、常に敵が何の考えもなしに攻撃を繰り出してきたり完全にランダムに行動するというのでは、シミュレーションゲームとしては失格であろう。

「こちらができることは相手もできる」──これが基本であり、これは即ち「こちらが考えつく手は相手も考えつく」ということをも意味する。
そうでなければ「敵AIはおバカ」と言われてプレイヤーの失笑を買うことになる・・・のだが、そのようなゲームは枚挙に暇がない。
そして残念ながら、開発者自身の自己評価としては、《虐殺大陸》はその例の一つに数えられる可能性がある、と思う。

話を戻して、戦力配置の問題である。

自軍の戦力配置と、敵軍の戦力配置の現状については把握できている。
次に考えなければならないことは、この上でどのように自軍の戦力を配置し直すかあるいはどのように敵に向けて進軍させるか、である。

コンピューターに対して「良きに計らえ」は通用しないことは再三繰り返すまでもあるまい。人間がプログラミングという形で指示してやる必要がある。

ここまでお読みの読者諸君ならば当然のようにご存知だと思うが、ここで使うのは「条件分岐」である。
ある条件を満たすならばAの処理に進む、そうでなければBの処理に進む、という司令が条件分岐である。

例えば、城Aの自軍兵力が、その周囲の敵兵力よりも少ない場合は、城Aに別の城から兵力を回す、などという判断をすることができる。
もちろん、この処理を城Bにも、城Cにも適応することができる。

ここで少し問題があることに気付くと思う。
このようにして、不足している城に兵力を回すようにしていくと、(本当に十分に兵力がある時は良いとして)どこかの段階で兵力が足りなくなるだろうということである。

そもそも、「兵力を回す」ということは別の場所から兵力を移動させるということだが、その「別の場所」とはどこか。
・城Aの兵力が不足しているので城Bから兵力を回す。
・今度は、その城Bの兵力が不足しているので、城Cから回す。
・今度は城Cの兵力が・・・
ということで、最終的にまた城Aから兵力を引き抜かなくてはならない。無限ループである。

もちろんこれは、単にプログラミングの話ではなくて、実際の戦争でも司令官はそのような苦悩に悩まされただろう・・・
作者の知能を超えるゲームを、作者は作れないのである。

この問題を解決するためには、現状の自軍兵力というものから逆算して、各城に分配できる兵力数というものを割り出さなくてはならない。

自軍に全部でxの部隊があるとして、城Aには20、城Bには15、城Cには30・・・とそれぞれの割当数を決定する。
現在各城に駐在している兵力は、城Aは15、城Bは5、城Cは45・・・だとすると、城CからAに5、Bに10の兵力を移動させれば良いということになる。

このやり方の問題は2つある。
・1つは、「各城の兵力割り当てをどのように決定するか」、という問題。
・もう1つは「どの城からどの城に向けて兵力を移動させるか、それをどのように決定するか」という問題である。

各城の兵力割り当て

1つ目の「各城の兵力割り当て」の問題だが、《虐殺大陸》では各国に首都城というものが設定されており、この首都城を攻め落とされるとその国は直ちに敗戦というシステムになっている。

だから、首都城は言うに及ばず、その首都城への侵攻ルート上にある城は、その国にとっては必ず守らなければならない要衝ということになる。よって、城ごとに防衛の優先順位というものができるのである。
正直なところ、首都城から遠く離れた辺境の城というものは、上記の点では守らなくても良い城ということになる。

そこで私は国ごとに、各城の優先順位というものが定めることにした。
例えば首都城の優先度を30、その周辺の各国固有の領土にある城を10、ミリタ市などの軍事的要衝を10、その他は1などとする。その上で周囲の敵兵力を踏まえて、各城の兵力割合を掛け算で計算する。

これは非常に単純な考えで、
 その城の周囲の敵兵力 × その城の防衛優先度
でその城の兵力割り当てを計算するというものである。
(そうすると城ごとの必要兵力の比率というものが計算される。あとは実際に使える兵力をその比率に従って分配するだけである。ややこしいが小学校の算数でできる計算ばかりだ!多分)

そうすると、必然的に次のような兵力配備になる。

敵戦力に囲まれた最前線だが、優先度が高くない城:
 ここは侵略されても良いので、守備隊の兵力はほどほどで良い。

優先度は高いが、周囲にはそれほど敵がいない城:
 ここは侵略される可能性が低いので、やはり守備隊はほどほどで良い。

優先度が高い城が最前線になり、大兵力に囲まれている:
ここは防備を固めるべきであるので、大量に守備隊を配置する必要がある。

首都城目前にまで敵が侵攻してきている:
 一大事なので、すぐにでも首都城に兵力を結集しなければならない。

しかしながら、いかに辺境の城でも、また最前線ではない内地の城でも、守備隊を1部隊や数部隊などにすると敵の侵攻を受けた時にたちまちそこを突破されてしまう。だから最低の部隊数は駐留させておく必要がある。(いわゆる「縦深防御」というものである)

そのために、各城の最低守備部隊数を決めておき、その数の兵力だけは常にその城に駐留させることにした。
これによって、極端に防備の薄い城から攻め入り、その国の首都城の兵力が少ない内に電撃的に占領する、という方法は取りづらくなっているはずである。

兵力の移動

次にもう1つの問題である「兵力移動」の問題であるが、正直、これは《虐殺大陸》のAIの欠陥の1つであると言わざるを得ない。

上記の方法で、「どの城に、いくらの兵力が必要か」は算出できる。しかし実際にその城に兵力を送り込むのは容易ではないのである。

なぜならばこのゲーム《虐殺大陸》はリアルタイムシミュレーションであり、各城は不規則に連結されており、そしてそれらの城の間には不規則な距離が存在しているからである。
人間ならば「見れば分かる」ことも、コンピュータにそれは通用しない。

仮に城Aに兵力を30送る必要があったとして、
・城Bから30送るか
・城Cから30送るか
・あるいは城Bだけでは余剰兵力が不足しているので5だけ送り、城Cからは25送るのか

などといったことを考えないといけない。

しかも、送っている途中で敵軍と遭遇して予定通りに兵力が届かないという可能性もある。

今から思えばもう少しこの問題について考えてベストとは言わずとも、ベターなアルゴリズムを考えればよかったのだが、私は考えることをやめた。
最も安直な方法をとった。

「すべての余剰兵力を一旦首都城に送り、首都城から各城に必要兵力を送る」という方法である。

《虐殺大陸》を実際にプレイした方は、なぜか敵師団がひっきりなしに各城と首都城の間を往復しているのを不思議に思ったかもしれない。
これは私が「諦めた」からである。


▲首都城と各城を往復する敵師団

人間が見れば、仮に隣接する城AとBがあり、AからBに10の兵力を送れば良いだけ、という状況でも、敵は一旦Aから首都城に兵力を10送り、その上で首都城から10部隊を再出陣させBに送る、という回りくどいことをする。

もしかしたら「前線と本国が頻繁に連絡を取り合っている」「前線から実戦経験のある部隊を引き抜いて別前線に送り込んでいる」といった裏設定の表現と思われた人もいるかもしれないが、実際には単にシステムの問題である。

何はともあれ、これで、あまり利口ではないがプレイヤーに簡単には勝たせない防衛ステムはできた。
しかし問題はこれでは終わらない。

攻勢問題

上記の兵力分配に関してだが、防御のことだけ考えればこのやり方もそれなりには機能するのだが、攻勢のことを考えると非常に心許ない。防衛面での優先度は低くても、逆にこちらから敵国に侵攻するということを考えれば重要な拠点になる城はあるからである。

本来はその国ごとの攻勢も含めた戦争指導計画というものに基づいて各城の兵力配置のバランスは決定されるべきなのだが、実は《虐殺大陸》このようなことは全く考えられていない。

こちらの首都を目前に帰っていってしまう敵師団

首都から遠い城はほとんどすべて辺境である。

プレイヤーの中には、自国の首都目前にまで敵の侵攻を受けた人がいるかも知れない。
さらには参謀から「敵国が首都城への侵攻作戦を企画している」と警告を受けた人もいるかも知れない(敵AIがプレイヤーの首都に攻め入る前に警告されるシステムになっている)

しかしその後その人は、せっかく首都目前にまで迫った敵軍が、なぜかその大部分を引き抜いて本国に帰っていってしまうという事態を目撃したであろう。
仮に30部隊の敵軍がいて、そのまま25部隊くらいで首都に攻め込んでくると、こちらは負けてしまう──
そのような状況下で、しかしその25部隊は敵国は退却していく・・・

この珍妙な出来事は上述のことが原因で、「敵国(プレイヤーから見ると自分の国)の領土は別に防衛しなくても良いので、最低限の兵力しか置かない」という判断によるものである。
(現実にはコンピューターは判断はしておらず、単にデータベースの数値を読み取って、必要な兵力を計算しているだけなのだが・・・)

このように、敵AIに「攻勢作戦」というシステムを与えられなかったことは、戦略シミュレーションゲームの開発者としては遺憾の極みである。

だが無思慮で無謀な敵AIこそが実は驚異に

ただし、実際にプレイした人の中には、敵の攻勢に苦しめられた経験のある人も多いだろう。
特に序盤から中盤にかけて、こちらの兵力が少ないうちは、敵師団が自国領土に攻め込んでくるのがそれなりに手痛い打撃になるバランスにはなっている。

これはどのようなアルゴリズムによるのかと言うと、実に簡単で、

「隣接する敵城の兵力に対して、こちらの城が一定程度の割合の兵力を持っていると、攻撃を仕掛ける」

というものである。

例えばこちらの城A、敵の城Bがあるとして、自城Aに敵城Bの【3分の2】以上の兵力がいると有無を言わさずその【3分の2】以上の部隊を師団として送り出して攻撃する。
(【 】の割合の部分は国家によって異なっており、例えば文明レベルの低いケイクリッジなら1/3、人権意識の高いユングリオならば4/3などである。またゲームの進行度と難易度によっても異なっており、ゲームが進むほど、また高難度にすればするほど、敵は頻繁に攻めてくるようになる)

もちろんそうすると、当初の予定通りに戦力配備が進まず、特に最前線の兵力がゴリゴリ削られていくことになる。

しかしこれはそう大きな問題にはならない。
基本的に兵力はいつでも足りていない。その足りない兵力を各城にどのように分配するか、を上記の兵力割り当ての方法で決定することにしている。

《虐殺大陸》はリアルタイムで進行するため、兵力割り当ても一定期間ごとに行われる。一定の時間が経てば、その時の保有兵力に応じて新しい割り当てが計算され直す。
結果、前線の兵力が足りないとなると、続々と(他の城から首都城に兵力が戻された上で)首都城から最前線に向けて兵力が送られていくということになるのである。

無論、敵もプレイヤーと同じく一定期間ごと(内政のタイミング)に資源の許す限り部隊を増産している。結果として、前線で交戦が行われている限り、常に「首都城から前線に部隊が続々と送られていく」という図式になる。

このゲームでは、基本的に戦力の逐次投入は推奨されない作戦である。
小規模部隊で敵の守備隊の戦力を削り、あるいは一時的にそこを占領したとしても、新たに敵の本国から次々に増援が送られてくるので、結局互いに戦力を少しずつ削り合う泥沼の消耗戦になってしまう。

その点はこのゲームのよく出来ている部分だと思う。
つまり、

こちらが小規模部隊を逐次投入すると、敵はすぐに増援を出してきて戦力補充してしまい、泥沼化する。
 →プレイヤーが勝利(ゲームクリア)を目指すためには、大部隊を用意して決戦を挑む必要がある

しかし敵は、(プレイヤーにとっての悪手である)戦力の逐次投入をして来て、プレイヤーの戦力を削りに来る。
 →結果プレイヤーは大部隊を用意することが難しくなり、決戦を挑むこともできなくなる。

 敵国(NPC)の目的は戦争に勝利することではなく、あくまでプレイヤーの邪魔をすることなので、これで良い。

プレイヤーと敵NPCではそもそも目的が違うので、この不出来なシステムでも十分に機能するというわけである。

そして上では「敵には攻勢作戦というシステムがない」ということを書いたが、プレイヤーが積極的に敵に攻め込んでいる限りは敵は防衛に回ることになり、そして防衛のシステムはそれなりによく出来ているので攻勢システムの不出来には気づきにくいのではないかと思う。

プレイヤーは、敵の散発的な攻撃を、なるべく自軍の被害を抑えながら食い止めつつ戦力の拡充をし、大兵力で攻勢を仕掛けて敵国の中核に攻め込む、という戦略を要求されることになる。
その中で効率の良いやり方、時にはシステムの穴を突くような方法を、プレイヤーの皆さんは考え出されたことだろうと思う。
(参考:
●111のデジ同人感想
●ひとりアウトプット広場
既に何度かこのシリーズでも紹介させて頂いた111さんとlosspassさんのブログである。)

いかにプレイヤーの思考を先回して予想して、その対応策を防ぐか、ということが敵AIを作る上でのプログラマーのするべきことだが、当然それをあまりに完璧にし過ぎるとゲームの難易度が上がり過ぎてしまう。
私個人の知能と技術の限界、そして怠慢等が重なり、開発者としては悔いの残るシステムになっている部分もあるが、完成したゲームを見たら程々に良い塩梅になっており、それなりに遊べるものになっている、それが私自身の評価である。(もちろん課題も多い)

皆さんはどのように感じただろうか。
もしまだプレイしていない人がいれば、是非今からプレイしてみて、開発者との思考合戦を楽しんで頂ければと思う。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索