freeze:開発経緯

開発経緯・方針

戦国史作者asaka氏の「戦国史」の開発経緯について、戦国史公式掲示板から転載します。

貴重な開発秘話だと思います。

戦国史公式掲示板の過去ログ(2005/04/25-07:00)より転載、一部掲載のため編集しています。

開発の直接のきっかけは、フリー版公開当初(約4年前)からプレイして頂いている方はご存知かもしれませんが、(多くの期待を集めて)当時発売された某社の戦国シミュレーションゲームが色々と問題作だったことです。

その時の勢いで「ここは一つ自分で作ってやろう」と奮起して自作を始めました。

もともと、戦国ゲームはシステムソフトの「天下統一」の初代と2に随分とハマったものですが、城攻めが1ターン完結で、落とせなかったら兵をすぐに引き上げてしまうというのが不満でした。

そこでまず第一に、『複数ターンにわたって城包囲(強襲か兵糧攻め)を継続できて、強襲の場合は徐々に城内部に侵攻していき、兵糧攻めならば兵糧が徐々に減っていくシステム』というのを、このゲームの基本システムとしました。

これまでの戦国ゲームでは、基本的に

「(侵攻するのに十分な)兵力を増やし」→「侵攻」

の繰り返しでしたが、このゲームでは、攻める兵力が少なければ落城に時間がかかり、兵力が多ければ早く落城させることができるということになり、戦略の幅が広がります。

また、落城時期を見極めて援軍を差し向けたりなどの戦略をとることもできます。

その後、外交の充実などシステムを拡張してきたわけですが、ユーザーの皆さんからも比較的好評価を頂いたことも励みになり、現在の形になるまで開発を続けることができました。

このゲームの製作を進めてきた中での「コンセプト」というか、こだわってきたことについてまとめてみました。

個人的な嗜好なのですが、戦術面(合戦での用兵など)は全く興味がなく、戦略面(兵力の戦略的運用や外交など)に面白みを感じる性格なので、このゲームでは、戦略面を重視し、戦術面はごく単純化したシステム(これにはユーザーの皆さんの不満も多いとは思いますが)になっています。

したがって、合戦において戦術を駆使して寡兵で大軍を破ることはシステム上不可能です。(例外的に、奇襲や鉄砲配備量などで、小数の兵でも合戦を有利に進めることは可能ですが)

合戦で大軍に勝てないと爽快感は無いですが、その分戦略を廻らすことの重要性が増します。

つまり、外交によって大国と同盟を結んで戦争を避けたり、兵力の集中的な運用で常に有利な状況で合戦に臨むことが重要になるわけです。

大国との国力差が大きすぎる場合はあえて敵大名に従属し、反旗を翻す機会をうかがうという戦略をとることもできます。

戦略面重視ということもあり、外交システムにはこだわっています。

不戦同盟・従属・臣従という現在のシステムは早い段階にできていたのですが、主家鞍替えや従属志願・臣従志願などは後から追加しています。

特に弱小大名の動向はできるだけリアルになるように工夫しています。

例えば、単純に主家と敵対大名の国力差を比較して鞍替えや独立をするのでなく、その時の大名家の「勢い」(拡張期にあるのか衰退期にあるのか)を判断するようにしています。

これまでの戦国ゲームでは、勢力が大きくなると操作対象となる武将や城が増えて、どうしても操作が面倒になってきます。

最初の小勢力のうちは面白くても、少し勢力を拡大すると難易度も下がり、操作も面倒になって結局飽きてしまう、というのがよくあるパターンです。

その問題に対する一つの回答として、「当主の位置による直接操作国制限」と「軍団委任制」を採用しています。

つまり、強制的に直接操作することができる範囲を当主の周囲だけに限定することで、プレイヤーの作業量を減らしているわけです。

と同時に、直接操作できない領地を軍団に委任することで、プレイヤー側が有利になり過ぎないようにバランスをとっているという一面もあります。(軍団の思考はCPU操作の大名と基本的に同じです)

プレイヤーが各種の軍団を編成して指示を与えることで、史実上で各方面軍を従えていた織田家などの雰囲気を味わえるという意味もあります。

通常ターン制のゲームは、先に順番が回ってきた大名が有利になる(あるいは逆に後に順番が回ってきた大名が有利になる)などの問題がありますが、このゲームではターン制でありながらそのような問題が発生しないように作っています。

例えば、武将移動では移動指示した武将がその時点で移動するのではなく、全ての大名が武将に移動先を決定してから(フェイズの最後で)実際の移動が行われますので、移動のターンが回ってくる順番が早くても遅くても他の大名の武将位置に関して得られる情報は変わらず、有利・不利はありません。

出陣では、先に行動した側の部隊が後に行動する側の部隊を足止めできるという仕様はいやだったので、例えば隣接する2城から互いに相手の城へ出陣した場合は城の間で戦闘になり、勝ったほうが城攻めに移れるようなシステムになっていますので、行動順序での有利・不利はありません。

合戦でも、各ターンで陣の移動や戦闘などは2つの大名が同時に実行しますので、ターンの回ってくる順番という概念がそもそもありません。

自国・自大名の情報はもちろん、他国・他大名の情報についても一切隠蔽せずにいつでも自由にプレイヤーが見ることができるというスタイルを採用しています。

リアルでないと思われるかもしれませんが、様々な情報を見ながら最適な戦略を練るというのは、この種の戦略ゲームの醍醐味だと思います。

CPU側の思考ルーチンでも、敵国の情報を全て利用していますので、歯ごたえのあるアルゴリズムを組むことが出来ます。

シミュレーションゲームでは、リアリティがあってなおかつゲーム性が高いというシステムが理想ですが、両立できない場合はゲーム性を重視するという方向で作っています。

例えば徴兵システムなどは、リアリティ優先した場合は武将の身分によって配下の兵数が自動的に決まってしまうようなシステムが考えられますが、これでは強い武将に兵力を集中させる楽しみがなくなってしまい、戦略の幅も狭まってしまいます。

そこで、現在のような徴兵した兵を自由に割り振ることができるオーソドックスなスタイルを採用しています。

前に述べた情報の開示についても、リアリティよりもゲーム性を優先していると言えます。

当初はエディット機能を充実させることは全然考えていなかったのですが、(自分がシナリオを作りやすいように)シナリオをテキストファイルで編集できるようにした途端にユーザーシナリオが色々と登場してきましたので、これは自分でシナリオをつくるよりも面白いと思い、その後はマップエディタなども作ってエディット機能を充実させてきました。

当初は、グラフィックには注力しない(その分システムの充実に力を入れる)という思想で作っていましたので見た目は相当貧弱でしたが、途中でやはり少々物足りなくなって、ある程度グラフィック品位にも力を入れるようになってきました。(とはいっても、市販のものには到底及びませんが)

特にシェアウェア版で実装している標高データによる地形描画機能は結構時間をかけて作りこんでいます。

ユーザーが地形やテクスチャをエディットすることもできるので、様々なユーザーシナリオが登場することを期待しています。

現状のソフトで、これらの「こだわり」が十分に実現できているかどうかは皆さんの判断にお任せするしかないですが、早めに正式版をリリースできるようにしばらくは開発に注力していきます。

これ以降に質問があったことに対する回答です。

(2005/04/26-19:33)

外交面については、現在のシステムがうまくシンプルにまとまっているので、なかなか拡張しづらいというのが実情です。

領土の通過を許可したとしても、現在の城20人制では本来の城所有大名の行動が制限されてしまうので、システムを改めないといけないでしょう。

(所有大名武将20人、同盟大名武将20人、包囲武将20人とか、あるいは40人枠にして同一大名は20人までというシステムを考えたこともありますが、あまり複雑化するのもどうかと思いますし)

そういえば、現在の海上封鎖についても、当初は城武将20人、包囲武将20人、海上封鎖武将20人、という2重包囲構造を考えていたのですが、複雑化しすぎると思って現在の形にしています。

(2005/04/26-19:33)

補給・兵站維持については、今回は経路の特徴を出すために簡易的に導入してみましたが、現在のシステムでうまく表現するのはなかなか難しいですね。

各武将に領地を割り当てるという概念があれば、領地から遠いほど補給が大変になるなどの表現ができますが、ソフトの手間とゲーム性を考えると、そこまで複雑化するのは不可能でしょう。

(2005/05/15-22:31)

野戦でPC側に「計略」が発動するとほぼ確実に負けてしまう上、発生する月は軍勢をどういじっても100%発動してしまう。

奇襲が発動した場合は、対処しようがないという仕様でつくっています。

また、乱数で発動にすると、プレイヤーはリロードして回避できてしまうので、単純な乱数ではなく発生する場合はたとえリロードしても発生するようになっています。

(プレイヤー側だけが有利になる仕様はできるだけ避けるという思想です)

計略発動=確実に負け、では興ざめなので、計略が発生した場合の陣形を、的に近い側から「本陣・第一陣・第二陣」ではなく「第二陣・本陣・第一陣」して逆転の可能性を残すようにするなど、計略発動時の不利さを緩和できないでしょうか。

そうすると、プレイヤーはリロードして第二陣に多くの武将を集めてしまうので、やはりプレイヤー有利になってしまいます。

このゲームは、戦術面であまりプレイヤー側だけが有利になるような仕様にはしたくないと思っています。 (第一陣で集中でプレイヤー有利になっているという話もありますが、これはまた別問題ということで)

「計略発動=確実に負け、では興ざめ」という考え方をするとつまらなくなってしまうと思いますので、できれば「奇襲されるほどの智謀の高い武将との野戦は極力さける」という方向で戦略を巡らしてもらえると楽しめるのではないかと思います。

どうしても現在の奇襲の仕様だとストレスが溜まるという場合は、シナリオを変更して奇襲不可にするという手もあります。

また、自軍が計略発動できた場合にしても、なんのコストもなくランダムに発動してしまっては、やはり興を削がれます。計略は自動発動ではなく、コマンド式にして、何らかのコストや賭けるようにできないでしょうか。

「賭け」の要素が入ると、やはりプレイヤー有利になってしまいます。 (プレイヤーは、コストを払って奇襲が発動しなかったら、リロードして通常の戦闘を仕掛けるでしょう)

奇襲は、効果が大きいだけにリロードでプレイヤーが有利になってしまうと戦略ゲームとしてのバランスが崩れてしまうので、現状の自動発動(リロードしても変わらず)、対処法なし、という仕様でいきたいと思います。

戦国史のシステムに関して、掲示板で回答した内容の抜粋 (一部編集してあります)

 マニュアルには奇襲についてこう書いてあります。

なお、兵数が相手よりも少なく、智謀が高い武将(野戦相手の武将の智謀の最高値+3以上)がいる場合、野戦開始時に奇襲に成功する場合があります。
その場合は、野戦開始直後から相手の本陣を攻撃することが可能となり、野戦に勝利できる可能性が非常に高くなります。

「場合がある」との表記ですが、ゲームをしていると条件を満たせば、ほぼ100%発生している印象を受けますが、実際のところはどうなのでしょうか?

奇襲が発生してしまうとそれだけで勝敗が決まってしまって、ゲームが非常に面白くなくなってしまいます。


 野戦については、シンプルなシステムにすることで、「開始した時点で既にほとんど勝敗は決まっている」というのは、あえて意図した仕様です。

通常は、両者の戦力(兵数や武将能力)で勝敗が決まりますが、奇襲が発生した場合は奇襲した側が勝利する、というのはこのゲームでの決まり事と思ってください。

そのコンセプトからすれば、野戦は自動戦闘でもかまわないのですが、それではあまりに味気ないので、プレイヤーが操作する余地を多少でも持たせることで、合戦に参加している雰囲気をより味わえるようにしています。

奇襲の発生頻度に関しては、少々複雑な仕様になっています。奇襲が発生するかどうかを単純な乱数で決めてしまうと、プレイヤーは直前のセーブデータをリロードするで回避できてしまいますので、リロードを多用できるプレイヤーが 圧倒的に有利になってしまいます。

そこで、奇襲が発生する場合は、たとえ何度リロードしても必ず発生するように、発生確率を細工しています。

一度奇襲を受ければ、その後しばらくは奇襲を受ける確率は減るのですが、プレイヤーが「奇襲を受ける場合はリロードして出陣を取りやめて奇襲を回避する」ということをしていると、次のターンで出陣した時にも奇襲を受けることになり、プレイヤーにとっては奇襲を受ける確率が非常に高いように感じるかもしれません。

なお、「野戦をもっと複雑にして欲しい」「寡兵でも勝利できるようにして欲しい」との要望も多いですが、野戦を複雑にすると、確かに野戦単体では面白くなるとは思いますが、戦略ゲームとしては以下の問題が発生します。

相手よりも劣る戦力でも野戦で勝利できる可能性が(多少でも)生じる。
↓
プレイヤーは勝利できるまで何回かリロードして繰り返すことが多いので、例え勝利できる確率が低くても、実際には(根気と時間さえあれば)100%近く勝利できることになる。
例えば半分の兵力で勝利できる確立が10%だったとしても、10回程度リロードすれば勝利できることになる。
(逆にCPU側は、たとえ戦力がプレイヤーよりも勝っていても必ず負けてしまう)
↓
したがって、まじめに戦略を練ることの重要性が薄れる。(戦略がいい加減でも、リロードで根気よく野戦に勝利していけばクリアできるようになってしまう)

リロードなしでプレイすれば上記の問題はなくなりますが、たいていの人は野戦で負けた場合はリロードの誘惑にかられると思うので、実質的に野戦ではプレイヤーが圧倒的に有利になってしまいます。

もちろん、以上の内容は戦略ゲームとしてのゲーム性を重視した場合の問題ですので、一般ユーザー受けするように将来野戦を複雑化する可能性もなくはありません(その場合は今までの野戦形式との選択式にするとは思いますが)

(2005/05/28-15:30)

顔グラフィックを登録できるようにすると、まず間違いなく某野望のグラフィックを流用するユーザーが出てくると思いますが、それでメーカーからクレームが来ると厄介なので顔グラフィック登録機能は付けません。

家紋を設定したとしても、今の全国画面ではよほど城数が少ないシナリオでないと表示できないですし、国内画面では大名家名を表示しているのであまり意味が無いかと思っています。

(2005/05/31-21:02)

ゲームバランスが変わってしまう恐れがあるので(内地の城の維持費が安くなるので大国有利になる?)、他の城の守備兵や、他の武将の足軽兵に転用できない現状のシステムのままとします。

(2005/06/17-21:31)

今のところは、現状のシステムでの完成度を上げたいと思っているので、新しいシステムの導入は当面考えていません。

本拠地概念をいれるとしても、前線から遠い所を本拠地にしておけば絶対に安心ということになってしまうと意味が無いので、前線と本拠地が遠い場合は補給などの面でデメリットがあるようなシステムにしないと、導入する必然性が薄いような気がします。

そうなると、現在の戦国史のシステムで再現するのはなかなか難しそうですね。

(2005/06/28-00:27)

もともと、某ゲームで石高によって兵数が制限されてしまうのがイヤで現在のような仕様になっています。 (資金には余裕があるのに兵が雇えないのは理不尽に感じていたので)

武将の兵数制限も、本当はあまりやりたくない(武将数によって兵数が制限されてしまうので)ところです。

(2005/06/20-20:17)

正式版公開までは、かなり重点的に開発時間を取ってきたのですが、今後は戦国史にかける時間は減らしていく予定です。 (今までのペースではさすがに生活に支障がでるため)

要望については、数ヶ月・数年のスパンで対応していくことになるかと思いますが、気長にお待ちいただけると助かります。 (バグについてはなるべく速やかに対処したいと思いますが)

(2005/11/11-00:59)

外部サイトへのリンク機能はやめておきます。

一番の理由は、オンラインゲームではないので、出来るだけローカルで完結した仕様にしておきたいことです。

(モバイル環境などで、ネットに繋がなくてもすべての機能が動作することが望ましい)

その他、自分のサイト以外にリンクする場合、

  • リンク先のサイト管理者があたかもゲームの機能の一部のように使われることを快く思わない可能性もある。(許可を取れば問題ないとは思いますが)
  • 将来、リンク先サイトの更新や閉鎖でリンクが切れる可能性がある。

などが理由です。

(2005/12/02-20:51)

今のところ、SHIFT-JISコード以外の文字は表示できません。

UNICODE対応にできればよいのですが、対応するのはなかなか手間がかかりそうですので、将来対応できるかどうかは未定です。

  • この件について、2020/05/20にお尋ねしたところ、やはり対応は難しいようです。

(2006/07/17-16:41)

野戦については、シンプルなシステムにすることで「開始した時点で既にほとんど勝敗は決まっている」というのは意図した仕様です。

通常は、両者の戦力(兵数や武将能力)で勝敗が決まりますが、奇襲が発生した場合は奇襲した側が勝利する、というのは決まり事と思ってください。

したがって本来は自動戦闘でもかまわないのですが、それでは味気ないのでプレイヤーが操作することによって合戦に参加している雰囲気をより味わえるようにしているわけです。

野戦を複雑にすると、野戦自体は面白くなるかもしれませんが、戦略ゲームとしては以下の問題が発生します。

相手よりも劣る戦力でも野戦で勝利できる可能性が多少でも生じる。
↓
プレイヤーは勝利できるまで何回かリロードして繰り返すので確率が低くても実際には(根気さえあれば)100%勝利できる。
例えば半分の兵力で勝利できる確立が10%だったとしても、10回程度リロードすれば勝利できる。
(逆にCPU側は、たとえ戦力がプレイヤーよりも勝っていても必ず負ける)
↓
したがって、まじめに戦略を練ることの重要性が薄れる。
(戦略は適当でも、根気よく野戦に勝利していくことでクリアできるようになる)

リロードなしでプレイすれば上記の問題はなくなりますが、たいていの人は野戦で負けた場合はリロードの誘惑にかられるので、野戦ではプレイヤーが圧倒的に有利になってしまいます。

もちろん、以上の内容は戦略ゲームとしてのゲーム性を重視した場合の問題ですので、一般ユーザー受けするように将来野戦を複雑化する可能性もなくはありません(その場合は今までの野戦形式との選択式にするとは思いますが)

ちなみに、現在の奇襲についてはリロードで回避できてしまうとプレイヤーが圧倒的に有利になってしまうので、たとえ何度リロードしても、発生する時には必ず発生するようになっています。

したがって、一度あきらめて奇襲を受ければ、しばらくは奇襲を受ける確率は減るのですが、プレイヤーが奇襲を受ける場合はリロードして出陣を取りやめる、ということをしていると、いつまでたっても確率が下がらないのでプレイヤーにとっては奇襲を受ける確率が高いように感じるかもしれません。

(2006/07/08-16:49)

落ち延びて仕官しない武将は、死亡と同等の扱いとなっています。

(2006/06/20-17:44)

イベントは番号順に実行されていくはずです。

<実行される順序>
条件イベント1の発生条件1→2→3→...
 (条件成立なら)発生イベント1→2→3→...
条件イベント2の発生条件1→2→3→...
 (条件成立なら)発生イベント1→2→3→...

(2007/12/30-02:35)

配列は、配列変数名[インデックス] という形で使用できます。インデックスは0~30000までが指定可能です。

使い道としては、大名ごとに何かパラメータを持たせたり、城ごとにパラメータを持たせたりといったところですかね。

なお、武将番号は変動しますので、配列に武将ごとのパラメータを持たせるという用途では使用できません。

(2010/06/20-23:44)

例:質問文が「難易度を選択してください」、選択肢が「難しい」「普通」「簡単」の3つの場合は、これらをスラッシュ(/)で区切って、データ2に「難易度を選択してください/難しい/普通/簡単」と記述します。 データ1に記述した変数に選択結果が入ります。この例では、「難しい」を選択したら0、「普通」を選択したら1、「簡単」を選択したら2が入ります。

(2011/09/23-01:43)

以下の点について。

  • 後半武将数が増えると管理が大変になるのでUIを改善すべき
  • 軍団AIの出来が悪いために、本来は軍団によって武将管理の手間が軽減されるべきところが、かえってプレイヤーのストレスが増大する結果になっている

正直なところ、現在の戦国史に関しては、今からシステム・UI・AIに手を入れるつもりはありません。

理由はいろいろあるのですが、一番の理由は、これまでのユーザーシナリオの蓄積が無駄にならないように互換性を維持したまま拡張するのには限界があるので、今後開発を続けるにしても、一度リセットして、互換性にとらわれずに新しいシステムのものを作りたい、ということですね。

雇った兵を解雇できない、武将を解雇できない、軍船が破棄できない、というのは今まで戦国史はそういうシステムでやってきていますので、今更変えるつもりはありません。(この辺は、参考にした某ゲームの影響もあって、必要なくなったからといって簡単に切り捨てられない、という仕様ですね)

海戦で軍船が沈まない、というのは手抜きといえば手抜きなので、対処するかもしれません。

  • freeze/開発経緯.txt
  • 最終更新: 2020/05/29 00:50
  • by 蛛賢