概要
Quake のWin32バイナリを 1997年当時の環境 でビルドする手順のまとめ。 Windows NT 4 と Visual C++ 6 のインストール方法の解説。 ソースコード取得 と ビルド時の注意点 を具体的に説明。 90年代の開発環境 の雰囲気やトラブルにも言及。 QuakeWorld のビルド・実行方法も紹介。
1997年当時のQuakeビルド体験再現
- Quakeの初期バイナリ (quake.exe, vquake.exe)は HP 712-60(NeXT) で開発、 DEC Alphaサーバー でクロスコンパイル
- 1996年6月、id Softwareは Intergraph製Windows NTマシン へ開発環境を移行
- winquake.exe, glquake.exe, QuakeWorld (qwcl.exe, qwsv.exe)は Windows NT + Visual C++ 4.X で開発
- 1997年当時の再現方法 として4つの選択肢
- Intergraph RealizM Dual P6-200MHzワークステーション実機
- Dual Pentium Proマシン(例:W6-LI)
- 90年代後期の一般的なPC(Quake PC)
- VirtualBox による仮想環境(Windows 98SEまたはWindows NT 4.0)
Windows NT 4のインストール
- Windows NT 4 は CDブート対応、インストールは約30分
- 起動画面 はミニマルで、検出CPU数・RAM容量を表示
- デュアルCPU対応 には再インストールが必要(HALの切替)
- W6-LIマザーボード の場合、CPU追加時に レギュレーター も必要
- UIテーマ はWindows 9Xと共通、NT 3はWindows 3.1風で評価低
Visual C++ 6のインストール
- Win32向けQuake は Visual C++ 4.X で開発、1999年以降は VC++6 に移行
- インストールメディア はInternet Archiveやwinworldpc.comで入手可能
- プロダクトID入力 が必要、次世代IDE「Visual Studio」も同梱
- 高解像度 (1280x1024)ではインストーラ画面が崩れる(推奨:640x480/800x600)
ソースコード取得と注意点
- GitHubやFTP経由の転送は禁止
- .dswワークスペースファイル が壊れるため、VC++6で正常に開けなくなる
- 推奨入手先 :Jason Brownless管理の Quake Official Archive
- ファイル転送方法 :VMのドラッグ&ドロップ、またはQuick ‘n Easy FTP Server
- q1source.zip の解凍には WinRar v2.50 が安定
ビルド手順とトラブル解決
- VC++6 で「Open Workspace」→「WinQuake.dsw」を開く
- .dsw =ワークスペース、 .dsp =プロジェクトファイル
- 「Rebuild All」実行でビルド開始
- エラー発生: .sファイル(アセンブリ) のビルド失敗
- 原因: ml.exeアセンブラ が必要(VC++6 Processor Packに同梱)
- 対策手順
- Visual Studio 6.0 Service Pack 5 (vc6sp5.exe)を先にインストール
- MDAC 2.5 (mdac_typ.exe)を先に実行しないとセットアップ失敗
- Processor Pack(vcpp5.exe) をインストール、 ml.exe がbinフォルダに追加される
- 再度「Rebuild All」実行でビルド成功
- Visual Studio 6.0 Service Pack 5 (vc6sp5.exe)を先にインストール
実行・検証と開発環境の特徴
- PmProXX.dll, WdirXX.dll, id1 をコピーすればゲーム起動可能
- QuakeWorld(QSpy対応) もビルド・実行可能
- VC++6の特徴
- 「定義へ移動」「ブレークポイント」「スタックトレース」「変数ウォッチ」等を1996年時点で搭載
- Intellisense自動補完 は未搭載
- 当時としては非常に先進的な統合開発環境
90年代開発環境の雰囲気
- インストールやビルドの手順が複雑 で、些細なミスで数時間のロスも
- 進捗バーやUIの不親切さ も時代を象徴
- Monkey Island的な謎解き感覚 で進行する90年代の開発体験
参考リンク
- Quake Official Archive (Jason Brownless管理)
- Internet Archive / winworldpc.com (VC++6配布元)