ちなみに

火曜日の空は僕を押しつぶした。

ソフトウェアエンジニアこそやるべきバルダーズ・ゲート3

みなさんバルダーズ・ゲート3やってますか。僕はいま140時間くらいやっています。

おもしろいゲームが沢山リリースされた大豊作の2023年にゲームオブザイヤーを総なめにしたすごいRPGです。 日本では馴染みのない ダンジョンズ&ドラゴンズ のルールが元になっているなども事情もあって、周りではそこまで盛り上がりを感じなくて惜しいなと感じています。

このゲーム、最初はむずかしいなと感じるのですが、知識が増えるごとに出来ることが広がっていき、気が付いたらその面白さの虜になっています。 これってどこかで体験していませんか。そうです、ソフトウェア開発を学び始めたときと同じなのです。

この記事ではバルダーズ・ゲート3をプレイすることで、ソフトウェアエンジニアにとってどういった利点があるのかをお伝えしようと思います。

(ネタです。マジレスは勘弁してください。)

不確実性

このゲームはほぼすべてがダイスロールで決まります。つまりダイス(サイコロ)を振って出目によって結果が決まるのです。 例えば、会話で相手を説得出来るか、隠されたものを見つけられるか、攻撃が相手に当たるか、などなど。

現代のソフトウェア開発において不確実性をどうコントロールするかというのは大きなテーマです。 ダイスロールというのはまさに「不確実性」と言えるのではないでしょうか。

ダイスをふるならただの運ゲーじゃないかと思われる方もいらっしゃるかもしれません。 しかし、ここからがおもしろいところです。このゲームでは様々な方法で期待値の調整が可能なのです。

例えば、キャラクターのビルドによって能力値の補正を加えたり、魔法やアイテムの効果によって出目の底上げが可能です。 どういった能力が求められているかを正確に把握して、適切に対応することで不確実性を減らすことできるのです。

不確実性について普段から意識することは、ソフトウェア開発にも必ず活きてきます。 そして、どうやって不確実性を下げるかというのはソフトウェアエンジニアとしての腕の見せ所でしょう。

リソース管理

戦闘中は基本は1ターンにつき「アクション」「ボーナスアクション」「リアクション」「移動」の4つの行動しか取ることが出来ません。 くわえて魔法などの特殊な行動についても使える回数が決まっており、基本的には休憩するまでは回復しない仕様になっています。

戦闘の難易度はかなり高めになっており、限られたリソースの中で最大限の効果を発揮できる方法を常に考える必要があります。 魔法やアイテムなどの準備も必要なので、リソースの調達についても頭を使うことになります。

同じく、ソフトウェア開発においてもリソースの管理は重要です。時間や予算との戦いになることもあるでしょう。 マネージャーやリーダーとしてだけでなく、開発メンバーとしてもリソースを意識することは重要です。

このゲームで骨のある戦闘を何度もこなし、リソース管理に対する姿勢を身につけることで、この先生き残るためのスキルを身につけることが出来ます。

スケジュール管理

難易度の高い戦闘はシビアなスケジュール管理についても要求してきます。 誰を使って、どの順番でどの敵を倒すのが効率がいいのか計画したり、敵の行動による割り込みに対処する必要があります。 また、勝負は戦闘前から始まっており、味方の位置取りを決めたり、都合のいいように環境を整備する準備は、スケジュール短縮のための根回しそのものです。

スケジュールを立て、進捗をみつつ、臨機応変に対応するスキルは、絶対にソフトウェア開発に必要になってきます。 このゲームは計画から実行までのプロセスを何度も経験できるチャンスではないでしょうか。

設計のトレードオフ

みなさんもソフトウェアエンジニアとして、大なり小なり設計という行為を行ったことがあるのではないでしょうか。 その中で、様々なトレードオフに頭を悩ませてきたはずです。

このゲームのキャラクタービルドはとにかく変数が多く、すべてを最高にすることは出来ないのでトレードオフに頭を悩ませることになります。 例えばクラスだけをとっても1クラスで最大レベルまで上げるのか、マルチクラスにしてシナジーを狙うのかなどなど考えることが無数にあります。

各キャラクターのビルドは単一システムの設計、パーティー全体のバランスを考えるのは複数システムの設計とみなせます。 誰にどういう役割を持たせるかを考えるのは、システム分割を考えるのに等しい行為ではないでしょうか。 その中で発生するトレードオフに頭を悩ませてみてください。

幸いなことに「種族」と「背景」以外はいつでも変更が可能で、何度も試行錯誤できるので、よい訓練になるでしょう。

コミュニケーション

このゲームに登場するキャラクターは全員が良くも悪くもとても個性的です。 それぞれが思惑や事情を持っており、斜め上のコミュニケーションを取ってきます。 彼ら、彼女らの機嫌を取ったり、場合によっては敵対したりと、コミュニケーションも重要なゲームの要素になっています。

ソフトウェア開発においてもコミュニケーションは非常に重要です。 様々なバックグラウンドのメンバーが集まってチームを組むこともあるでしょう。 チームが最大限の力を発揮出来るように普段から鍛えておくに超したことはありません。

パーティメンバーだけでなく、それ以外のメンバーにも気を配って冒険を進めることでコミュニケーション能力が鍛えらるでしょう。


いかがだったでしょうか。

たしかにプライベートでも仕事みたいなことするのは嫌だとおっしゃる方もいるでしょう。 しかし、難しい開発を乗り切った達成感を知っているからこそ、この仕事を続けているのではないでしょうか。

まあ、そんなことどうでも良くてめちゃくちゃおもしろいのでとにかくやってくれ!!!

個人的にはPC版でマウスキーボードでやるのがおすすめです。 ドラッグでいろんな要素を移動できるので楽です。

store.steampowered.com

www.spike-chunsoft.co.jp