SubwayBuilder パッチャー
概要
SubwayBuilder Patcher は、PC ゲーム「Subway Builder」に対して外部の都市データやコンテンツを導入するためのパッチ作成ツールです。Linux では AppImage を直接パッチし、Windows ではインストール済みディレクトリのコピーを作成して差し替えを行います。オーナーが既にゲームを所有していることが前提で、OS ごとの設定ファイル(config_linux.js / config_windows.js)によりパスや処理内容を柔軟に切り替えられます。シンプルな Node.js ベースのスクリプト群で構成されており、将来的な機能拡張も見据えた設計になっています。
リポジトリの統計情報
- スター数: 2
- フォーク数: 1
- ウォッチャー数: 2
- コミット数: 3
- ファイル数: 10
- メインの言語: JavaScript
主な特徴
- AppImage(Linux)とインストールディレクトリ(Windows)双方に対応したパッチ処理。
- プラットフォーム毎の設定ファイルでパスや動作を切り替え可能。
- Node.js スクリプトによる自動化:バックアップ、展開、差し替え、再パッケージなどを実行。
- 軽量で拡張しやすく、追加機能やツール化の余地がある構造。
技術的なポイント
このプロジェクトは主に JavaScript(Node.js)で実装されており、OS ごとに異なる処理を分離するための設定ファイル(config.js / config_linux.js / config_windows.js)を備えています。一般的に AppImage を扱う場合は、実体が自己完結型のアーカイブ(ISO 9660 や合成ファイル)であるため、マウントや展開が必要です。スクリプトは child_process 経由で外部コマンド(mount/umount、bsdtar など)を呼び出すか、Node のストリームで展開・書き換えを行っていると想定されます。Windows 側ではインストールディレクトリを丸ごとコピーして作業領域を作り、リソース(例えばゲーム内の JSON、アセット、パッケージ)を書き換えるアプローチが取られている可能性が高いです。
ファイル操作には fs と path を多用し、既存のファイルを上書きする前にバックアップを生成してロールバック可能にするのが実務的な実装です。また、追加の都市データを注入する際は参照パスの更新やマニフェスト(JSON/XML)の追記が必要になるため、自動的にマニフェスト編集やチェックサム更新を行う処理があると便利です。将来的には GUI ラッパーやチェックサム検証、差分インストーラ(パッチ適用差分のみを配布)などが追加可能です。
注意点としては、ゲームの著作権や配布ポリシー、オンライン検証(anti-cheat)に関する問題を確認する必要があること、AppImage の扱いはルート権限やマウント権限を要する場合があること、そして Windows では管理者権限やファイルロックに注意する必要があることです。readme には「ゲームを既に持っていることが前提」と明示されており、配布や適用の際は自己責任の範囲で使うことが求められます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- config.js: file
- config_linux.js: file
- config_windows.js: file
- package-lock.json: file
…他 5 ファイル
まとめ
軽量な Node.js ベースのパッチツールで、OS 別設定に柔軟性があり拡張性も高いです。
リポジトリ情報:
- 名前: subwaybuilder-patcher
- 説明: 説明なし
- スター数: 2
- 言語: JavaScript
- URL: https://github.com/piemadd/subwaybuilder-patcher
- オーナー: piemadd
- アバター: https://avatars.githubusercontent.com/u/22846928?v=4
READMEの抜粋:
SubwayBuilder Patcher
Self explanatory title. Patches other cities into subway builder. You need to own the game already and have it on your machine. I might extend this to add features and such to subwaybuilder. I don’t know. Its 9pm on a thursday as I type this. I don’t even know what I’m having for lunch tomorrow; I definitely don’t know where this project will be within a week.
Support
This tool will patch an appimage (linux) or create a modified version of the install directory. I wo…