工場づくりゲーム「Factorio」をNintendo Switchに移植するまでにはどんな苦労があったのか?
未知の惑星に不時着した主人公が、再び宇宙に繰り出すべく工場を建設しつつ原生生物との攻防を繰り広げるリアルタイムストラテジーゲームのFactorioが、2022年10月28日にNintendo Switchでリリースされます。2020年8月にPC版がリリースされた本作をNintendo Switchに移植する上でクリアしなければならなかった課題を、TwinsenことFactorioのプログラマーのRobert Asaftei氏がつづっています。
Friday Facts #370 - The journey to Nintendo Switch | Factorio
https://factorio.com/blog/post/fff-370
Factorioは、さまざまな作業を自動化しながら未開の惑星に工場を建設していくゲームです。基本的なゲームの内容は以下の記事から、正式版の追加要素などはこのリンクから見ることができます。
さまざまな作業を自動化しながら漂流した星に工場を建設&拡張するリアルタイムシミュレーションゲーム「Factorio」 - GIGAZINE
FactorioをNintendo Switchに移植するプロジェクトが始まったきっかけは、2021年2月ごろに行われた話し合いでした。Nintendo Switchのシステムの大ファンだというAsaftei氏は、開発チームとゲームの今後や次のプロジェクトについて検討していくうちに、FactorioをNintendo Switchに移植してみたいと思うようになったとのこと。
Factorioのサブプロジェクトを立ち上げては何年も続く開発地獄に陥った経験のあるAsaftei氏は、移植にあたって「素早く失敗する」こと、つまり多大なリソースを費やして泥沼にはまる前にプロジェクトの成否を迅速に見極めることを目標としました。
そんなAsaftei氏が最初に取りかかったのは、Nintendo Switch用にFactorioをコンパイルすることができるのか、という問題です。特に、FactorioのライブラリのビルドにはカスタムFASTBuildスクリプトが使われていたので、それをNintendo Switchに使えるようにできるかは大きな懸念材料でした。しかし、Nintendo Switchのドキュメントは非常に詳しく書かれているので、Asaftei氏はビルドシステムを詳細に理解した上でNintendo Switch用のFASTBuildスクリプトを作ることができました。
2021年3月3日にすべてのコンパイルエラーをクリアし、4日にはゲームを完全にビルドして実行することに成功したAsaftei氏ですが、実行直後にクラッシュするという問題に見舞われました。その後もウィンドウの初期化、オーディオ、ファイルシステムの初期化とアクセス、ネットワークスタックの初期化といったさまざまな技術的問題に直面しつつ、手探りで少しずつクリアしていったAsaftei氏は、3月29日についにメインメニューを立ち上げることに成功します。
起動には20分もかかってしまったとのことですが、Asaftei氏はその時のことを「突然全てが機能するようになったのは素晴らしい気分でした。背景のシミュレーションは正しく描画され、サウンドと音楽が再生され、タッチスクリーンを使ったGUIの操作さえも機能するようになったのです。修正と実装のすべてが、ようやく目に見える形になりました」と振り返っています。
デバッグビルドなので20分という起動時間は想定の範囲内とのことでしたが、起動時間は最後まで重要な課題だったとのこと。なお、最終的にFactorioの起動時間は内部ストレージにインストールした場合で70秒にまで短縮しているそうです。
次の問題は、パフォーマンスの最適化です。なにをもって十分なパフォーマンスかというのは難しい問題ですが、Asaftei氏は「平均的なプレイヤーがロケットを打ち上げてエンディングに達するまで60UPS(updates per second)を維持すること」を目標にしました。最適化のためにやらなければならなかったことは多かったものの、開発ツールのおかげで作業は楽になったため、ギリギリではあるものの目標はクリアできたとのこと。
また、マルチプレイも課題でした。Asaftei氏はNintendo Switch版のFactorioからマルチプレイを除外したくないと考えていた上に、PC版との間でのマルチプレイも実現したいと考えていました。そのため、ARMとx86という2つのアーキテクチャでゲームを動作させなければならないという課題がありましたが、両方の環境の違いをテストするツールは豊富にあったので、動作確認自体は難しくなかったそうです。まだ同期ずれの問題は残っている可能性がありますが、Asaftei氏は「プレイヤーの皆さんなら、きっと残っている同期ずれの発見に協力してくれるはずです」とFactorioファンへの期待を述べました。
さらに、Asaftei氏はキーボードとマウスで操作するように作られているFactorioをNintendo Switchのコントローラーで動くようにすることや、GUIデザインを大きく変更させることなくコントローラーで直感的に操作できるようにすることなどにも苦心したそうです。
こうしてNintendo Switch版のFactorioが通しでプレイできるようになったのは2021年8月のことでしたが、その後も調整や改良に時間がかかり、最終的なリリースは前述の通り2022年10月28日となりました。Asaftei氏はこれについて、「コードの90%が開発時間の最初の90%を占め、残りの10%のコードが他の90%の開発時間を占めて合計180%になる」という90対90の法則にほぼ当てはまるとコメントしています。
この移植プロジェクトにフルタイムで取り組んだのはAsaftei氏1人だけでしたが、形になるまでには多くの人の協力もあったとのことで、Asaftei氏は公式ブログへの投稿の中で「チームの他のメンバーには拡張パックに専念してもらい、邪魔をしないようにしましたが、細かい作業などで手伝ってもらいました。ですから、何事もそうですが、チームワークは大切なことです。また、任天堂の多くの関係者が発売と開発のサポートをしてくれました。そして、Nintendo Directのような大きなイベントで紹介されたのは光栄でした」と、他の開発メンバーや任天堂の関係者への謝辞を述べました。
・関連記事
未開の惑星に工場を建設するリアルタイムシミュレーション「Factorio」の正式版となるバージョン1.0がついにリリース - GIGAZINE
さまざまな作業を自動化しながら漂流した星に工場を建設&拡張するリアルタイムシミュレーションゲーム「Factorio」 - GIGAZINE
工場建築ゲーム「Factorio」で実際に動作する8ビットコンピューターを作り上げた猛者が登場 - GIGAZINE
「OKボタンは右か左か」問題から始まったゲーム「Factorio」のGUIデザインの工夫 - GIGAZINE
未開の星で工場のラインを組み上げていくゲーム「Factorio」が得意な人はソフトウェアエンジニアに向いている - GIGAZINE
工場建設シム「Factorio」のブループリントをシンプルに視覚化する「Factorio Blueprint Visualizer」 - GIGAZINE
・関連コンテンツ