【プログラマが考察】Apexはなぜバグが修正されない?考えうる3つの原因
私が大好きだったApex Legendsは、愉快なゲーム性で手軽に楽しめる一方、永久に解消されないバグがあるような、欠陥性も楽しめるのが魅力です。
というのは冗談で、グリッチなどの違反行為に利用されている現状は、あまり好ましい状況とは言えないでしょう。
例えば、音が時々消えるようなバグは、今でも残っています。
今回は、なぜApexの開発チームはバグを早急に直すことが出来ないのか、その理由について考察していきます。
※注意として、私はApex Legendsの開発に携わっているわけでも何でもない、ただのプログラマです。したがって、一部事実と異なるような、憶測とも言える内容もあるので、過度に信用しないようにしてください。
1.開発のマネジメントが不十分
Apex Legendsのバグが中々治らない点について、考えられるのが開発現場でリソースの不足が起きている可能性です。
一般的に組織として何かサービスを開発する際、マネージャーが現場の管理を行います。
今のプロジェクトにどれだけの人員が必要か、外部と連携すべき要素はあるかなど、現場環境の構築を行う他、資金や人材のリソース管理まで行う、いわば開発現場の要です。
要するに、「マネージャーがしっかりマネジメント出来てないからバグだらけになるのでは?」ということですね。
実際、マネジメントが不足している開発現場は実際多く、開発しているエンジニアの重労働によって成り立っているケースも珍しくありません。
正直、Apex Legendsの開発現場がそういった状況になっているのであれば、バグが起こるのは仕方ないと同情の余地があります、
マネジメントが不足している現場では、過労なスケジュールの中で、例えばバグを探すようなテスト作業が曖昧になっていたり、チェックがずさんになったり、ミスが目立ち始めます。
Apex Legendsはとりわけ大規模で世界観も作りこまれているゲームなので、細かな部分で発生するバグや欠陥を見逃してしまうわけです。
プログラミングにおいて、Apex Legendsのような規模で開発を進める場合、エラーなく開発を終えることは基本的にありません。
したがって、この問題を解決するためには、複数人によるテストを実施する、マネジメントを徹底して現場に余裕を持たせるといった、基本的な部分の対策が重要になります。
2.その場しのぎのバグ修正
Apex Legendsが根本的にバグを直せない原因として、最有力なのがその場しのぎのバグ修正が多いのではないか、という仮説です。
バグが発生した際の対応として、最も望ましいのは「バグが絶対に再発しないようシステムを改修する」という対応です。
というより、一般的に「バグの修正」と聞くと、上記の内容を真っ先に思い浮かべる方がほとんどでしょう。
しかし、ゲームのバグというのは、ほとんどが表面上認知できるものであり、サーバやバックエンドの処理で何かしらバグが発生していても、ユーザには「何かサーバ調子悪いな」程度にしか思われません。
何が言いたいかというと、根本的にバグが直らなくてもバグを改修できるということです。
例えば、オブジェクトを消すことができないなら、オブジェクトの上から背景色を追加して不可視化することで、事実上オブジェクトを消すような、無理なりな修正をするケースも少なくありません。
バグが起きているようなキャラクターやアクションを、そもそも抹消してしまうような形でも対策は可能ですね。これも少々強引ではありますが。
ただ、小規模な開発なら、まだしも、Apex Legendsのように規模の大きなゲームの場合、こういった修正方法はプログラムのメンテナンス性・保守性を損なう原因となり、致命的なエラーに繋がる恐れもあります。
例えるなら、レンガの壁があったとして、1番下の段のレンガが腐敗したとしても、それを交換するためには上のレンガを全て取り外す必要があり、非常に面倒ですよね。
そのように、汚れを上塗りするようなバグ修正を続けていくと、解決できないバグがどんどん生まれてしまうのです。
憶測の域を出ないですが、Apexの開発現場もこのような実態になっている可能性が高いのではないでしょうか。
3.長期メンテによる損失リスク
Apex Legendsに数多あるバグも、長い時間をかければ完全に解決することは可能です。
それこそ、2,3年間かけて一から作り直せば、バグがほとんど無い状態まで戻すこともできるでしょう。
ただし、あくまでApex Legendsは大きな利益を上げているコアなサービスであり、サービスの提供を止めるということは、それだけ大きな損失を生むことになります。
2,3年も稼働を止めるとなると、下手すれば組織の運営にも関わる歳月ですよね。
開発チームが大胆なバグ修正などに踏み切れないのも、「もしもバグ修正した結果、ゲームに何等かの大きな不具合が生まれてしまったら…」と考え、事業継続を危惧しているから、というのが私の考えです。
どこかのパッチで大型リニューアルする機会があれば、システムの作り直しに踏み切ってくれるかもしれません。
まとめ
Apex Legendsは音声や弾の挙動など、様々なところでバグが起きているのは事実です。
ただ、ゲームからバグを完全に消すことは、そう簡単なことではありません。
Apex Legendsのような大規模なサービスの開発にバグはどうしてもついて回りますが、エンジニアとしては開発領域、プログラムのモジュール管理を徹底し、可能な限り不具合を排除することが大切だと感じます。
ある意味では、エンジニアにとっての反面教師と言えるでしょう。