Skip to content
TopicTracker
出典 HackerNews原文を表示
翻訳言語翻訳言語

RubyでCodemastersのBIGFアーカイブ形式をリバースエンジニアリング

この記事では、Codemastersのゲームで使われているBIGFアーカイブ形式をRubyで解析する方法を解説。バイナリデータの読み込み、ファイル構造の解読、そして実際のデータ抽出までのプロセスを詳述する。

背景メモ

- Codemastersは英国の老舗ゲーム開発会社(F1、DiRT、Gridシリーズなどで知られ、2021年にElectronic Artsが買収)。本記事は同社のプロプライエタリなアーカイブ形式「BIGF」を、公開された資料なしで解析したリバースエンジニアリングの記録。 - BIGFは「Big File」の略で、Codemastersの多くのゲームタイトルでゲーム内アセット(3Dモデル、テクスチャ、サウンドなど)を一つのファイルにパッケージングするために使われた独自コンテナ形式。仕様は非公開。 - 著者はRubyのバイナリ読み取り機能(String#unpackテンプレートなど)を駆使し、BIGFファイルのマジックナンバー、ヘッダ構造、チャンクの種類と配置を一つずつ解読している。ゲームデータ解析(mod制作、データマイニング、アーカイブ研究)の実践的な事例。 - この種のリバースエンジニアリングは、古典ゲームの保存活動(video game preservation)や改造コミュニティで重要視される手法の一つ。

関連記事