見出し画像

[一般TCG理論] あなたのデッキ、"進化"できますか?

まさかのTCG一般論、第二段です。今回はデッキの進化について考えていきます。今回参考にした書籍はこちらです。

https://www.oreilly.co.jp/books/9784873118567/

なんとシステムアーキテクチャ論!安心信頼のオライリー本です!
今回はこちらについてのご紹介です。

1. "進化的アーキテクチャ"とはなにか?

現在、ITの世界はまさに日進月歩であり、日々新しい技術やサービスが生み出され続けています。
そんな中でシステムはかつてのように5年10年変わらずに動くことを想定して作ることが適切ではなくなってきました。それを踏まえ、常に変化できるシステムを構築しよう、という考え方が進化的アーキテクチャです。

"進化的アーキテクチャとは、複数の次元にわたる漸進的で誘導的な変化を支援するものである"

O'REILLY 社「進化的アーキテクチャ」より

この言葉のとおり、進化的アーキテクチャの根幹は"複数の次元にわたる漸進的で誘導的な変化"という言葉に集約されています。
かみ砕いて言ってしまうと、
"複数の次元にわたる" = 多面的な視点で
"漸進的で" = 少しずつ変更可能で
"誘導的な" = 設定した目的に向かって
変化できる構成が進化的アーキテクチャということになります。

これらを満たすためにこの書籍では以下のテクニックが紹介されています。

① "適応度関数"の採用
② アーキテクチャの分離

ではこの2つの内容とデッキ構築について紹介していきます。

2. デッキの進化と適応度関数

"アーキテクチャの適応度関数は、あるアーキテクチャ特性がどの程度満たされているかを評価する客観的な指標を与える"

O'REILLY 社「進化的アーキテクチャ」より

つまりどういうことかというと、デッキの特徴や能力を発揮できているかどうかの定量的な指標を作ろう!ということです。
もちろん最もわかりやすいのはデッキの勝率ですが、進化する方向性の指針になるように設定する必要があります。

例えば、"コンボパーツが揃うまでのターン数"であったり、"Xターン目までのドロー枚数"であったり、"Xターン目までに生物の並ぶ数"などデッキの特性によってさまざまな適応度関数が考えられます。

ここでポイントとなるのは、適応度関数はデッキの評価指標であって、カードの評価指標ではないということです。

"このカード、入れ替えてみて、確かに活躍したけど結局どっちが良かったんだろう?"と感じたことは誰しもあると思います。
そんなときに適応度関数を設定しておけば、自分のデッキの目指す姿に近づいているかどうかを定量的に判断できるようになりますし、どの適応度関数が変化したかによってそのカードがデッキに与える効果を客観的に評価できます。

さらに詳細にデッキの"次元"についても考えてみましょう。
ITシステムにおける次元については、ネットワークなどのインフラ構成や、アプリの処理時間、サービスの満足度など多くの例が出されています。

システムの適応度関数の例

これらをそのまま当てはめてみると、"カードをプレイしたときのデッキ回転の期待値"、"期待している動きの実現性や実現ターン数"、"その動きの勝利貢献度"などといったところでしょうか。ぜひ皆さんのデッキの方針にあった適応度関数を設定してみてください。

コンボデッキの適応度関数の例

以上の方法で、デッキを"複数の次元に渡って"、"誘導的に"進化させることが可能になります。

3. アーキテクチャの分離

では、残りは"漸進的"という部分です。
これを実現するためにアーキテクチャの分離がこの書籍で語られています。

まずは、2つのシステムアーキテクチャの種類について説明します。
1つ目は、モノリシックアーキテクチャと呼ばれるものです。
モノリスという言葉から想像がつく通り、複数の機能が依存関係にあり、一つの大きなシステムになっているシステムです。
対する2つ目はマイクロサービスアーキテクチャと呼ばれるものです。
こちらはモノリシックアーキと対になっており、ひとつひとつの機能が小さく独立して構築されているものです。

さて、この二つのシステム、どちらが漸進的に変更できる(少しずつ変更できる)でしょうか?
もちろんマイクロサービスアーキテクチャですね。
モノリシックアーキテクチャはそれぞれの機能が複雑に依存しあっていて、変更をするには他の機能の変更を余儀なくされてしまいます。
ここでポイントなのは、マイクロサービスも独立しているもののそれぞれの機能は連携しています。つまりモノリシックアーキの問題はお互いに関係しあっていることではなく、お互いに依存してしまっているという点です。

とはいえ、すべてのシステムが単独で成立することは現実的ではありません。そこで、この書籍では機能として独立できる最小単位を”アーキテクチャ量子”と呼んでいます。
かっこいいので、本記事でも積極的に使っていきます。
皆さんも「その組み合わせ、アーキテクチャ量子でかくない?」といった感じで積極的に使っていきましょう。

この考え方をカードゲームに置き換えてみます。もちろんデッキの中には単体で強いカードもあれば組み合わせで強いカードもデッキには存在するでしょう。それらのデッキパーツをアーキテクチャ量子に分解してみるのです。
とても簡略化した例を以下に出してみます。

実際はもっともっと複雑になると思いますが、こういったかたちでカード群を量子として捉えてみます。
これによってデッキのシステムの構成単位が見えることで何が起きるのかというと、同じ役割のカードを入れ替えて試す小規模なチューニングだけでなく、アーキテクチャ量子の単位でカードを変更することでよりダイナミックにデッキを変化させることができます。
たとえば、適応度関数にフィニッシャーが場に出る数と定義していた場合、実は墓地から出すよりもランプして出すほうにデッキを寄せたほうが適応度は高い値を示すかもしれません。こうしたデッキの枠組みを作り直すときに非常に重要な考え方となります。

また、同時にデッキがモノリシックになりすぎていないかもこれによって可視化されます。モノリシックであるということは、デッキの進化可能(変更可能)な部分が少ないデッキであるということです。
極端な話、コンボに10種類のカードが必要であれば、それだけでデッキは埋め尽くされてしまい対処カードを入れる隙間は無くなってしまいます。

出来る限りアーキテクチャ量子が小さい構成でデッキを組むことで環境に合わせて細かくデッキを変更していけるようになります。
単体で強いカードは正義!

3. さいごに

システムアーキテクチャの考え方だったので馴染みのない方も多かったと思いますが、環境に適応できるようなデッキを作るという意味では中々面白い考え方だったのではないでしょうか。

もちろんカードゲームにおいては、ある特定の環境で成果を出すことが目的なので、モノリシックなデッキでもその環境で強ければ正義です。ただし、禁止改訂や新パックなど環境が変化したときにそのデッキが対応できる可能性は低くなります。
これが自分の相棒だと決めたカードやデッキが環境の波に飲まれて淘汰されていくのはいつもつらいですし、願わくばローテーション落ちするその時まで使い続けていたいものです。
長く使いたいカードがあるなら、デッキを進化可能にしておくことは非常に重要です。

皆さんの相棒を、ぜひお別れの時が来るまで進化させ続けてあげてください。

さいごに、実はダーウィンは発言していないという噂の、ダーウィンの名言で締めくくろうと思います。

"最も強い者が生き残るのではなく、
最も賢い者が生き延びるのでもない。
唯一、生き残るのは変化できる者である。"


この記事が気に入ったらサポートをしてみませんか?