How-To:Linux 安裝 Unreal Tournament (1999)

操作環境:

  • Fedora 23
  • Unreal Tournament v436

 

如果要讓 DR 列出一份最喜歡的 FPS 遊戲清單,則 1999 年的《浴血戰場》(Unreal Tournament,以下簡稱 UT),大概可以跟它的另一款續作《浴血戰場 2004》(Unreal Tournament 2004)一同並列在第二名的位置。如今這款老遊戲似乎有越陳越香的趨勢,由於它佔用的體積小、安裝容易、配備需求極低(但當年可是高檔貨),再加上多樣且豐富的遊戲內容,使得這款遊戲幾乎成了完美的殺時間遊戲。可以上網對戰、與三五好友玩區域網路、或是單人與 Bot 對戰,可說是彈性十足。

 

UT 同時也是一款骨灰級的 Linux 遊戲,因此若要在現今的 Linux 發行版上順利執行,得處理一些相容性的問題。但另一方面,其 Windows 版卻是可以透過 Wine 在 Linux 上順利執行。因此本文會先後說明兩種方案:以 Wine 來執行 Windows 版,以及原生的 Linux 版。

 

由於 GOG.com 應該是目前最容易取得及保存 UT 的購買管道,因此雖然 DR 手上已經擁有 UT 的光碟版(而且不是一套,是四套……),但還是以 GOG.com 所提供的安裝程式作為本文的操作範例。

 

1. 安裝 Windows 版

自 GOG.com 下載 UT 的 Windows 版安裝程式後,便使用 Wine 執行:

  • wine setup_ut_goty_2.0.0.5.exe

 

 

為了方便後續作業,DR 在這裡並不使用預設的安裝路徑,而是指定到家目錄下的「ut」目錄,也就是 /home/username/ut。

 

2. 初次執行 Windows 版

在使用 Wine 執行 UT 之前,為了避免遊戲的全螢幕顯示出現問題,先執行以下指令:

  • winecfg

 

進入 Wine 的系統設定工具後,選擇【Graphics】分頁,然後取消勾選【Allow the window manager to decorate the windows】。

 

接著便可以使用 Wine 來執行 UT,在使用者家目錄執行以下指令:

  • wine ut/System/UnrealTournament.exe

 

UT 在第一次執行時,會要求選擇繪圖模式,在這裡不選擇預設的 Direct3D,而是點選【Show all devices】,然後選擇 OpenGL。如此一來,Wine 在執行時就無須再將 Direct3D 呼叫轉譯為 OpenGL,藉此提高支援能力及效能。

 

若之後想要重新設定繪圖模式,可以在執行 UT 時加上「-safe」參數:

  • wine ut/System/UnrealTournament.exe -safe

 

3. 編輯 Windows 版的遊戲設定檔

若直接在遊戲中調整解析度,則可能會出現切換問題,因此建議編輯遊戲目錄下的 System/UnrealTournament.ini,然後在 [WinDrv.WindowsClient] 項目下,分別修改 FullscreenViewportX 及 FullscreenViewportY 的數值,儲存後即生效。

 

4. 安裝 Linux 版

由於 GOG.com 並未提供 UT 的 Linux 版安裝程式,因此在安裝 Linux 版之前,事實上也是需要執行前述的第一項步驟,透過 Wine 將遊戲檔案安裝至特定目錄。接著,DR 的作法是從「ut」目錄再複製一份名為「ut_linux」的目錄。雖然看似多消耗了一些空間,但可以讓兩個執行版本並存,確保不會互相影響。不過若無此考量,則無須再複製一份,可以直接將後續步驟套用在相同的目錄裡。

 

接下來從 liflg.org 網站下載 Linux 版的安裝程式,由於這個安裝程式是針對光碟版本,會需要從遊戲光碟讀取資料,所以沒有辦法直接使用它的安裝流程,而是需要做出一些變通。下載安裝程式後,執行以下指令將安裝程式解開到名為「linux_build」的目錄裡:

  • chmod +x unreal.tournament_436-multilanguage.goty.run
  • ./unreal.tournament_436-multilanguage.goty.run --noexec --target linux_build

 

接著進入解開的 linux_build 目錄,使用以下指令將裡面所有的壓縮檔解開到 ut_linux 遊戲目錄裡:

  • for file in *.tar.gz; do tar -zxvf $file -C /home/username/ut_linux/; done

 

此外,再複製兩個啟動腳本到 ut_linux 目錄:

  • cp bin/ut home/username/ut_linux/
  • cp bin/Linux/x86/ucc home/username/ut_linux/

 

至此 Linux 版便安裝完畢。

 

5. 初次執行 Linux 版

在當今主流的 Linux 發行版皆採用 PulseAudio 音效系統後,像 UT 這類的老 Linux 遊戲,便需要再透過一個相容性包裝器(padsp),才能夠順利發出聲音。因此於使用者家目錄下,使用以下指令啟動遊戲:

  • padsp-32 ut_linux/ut

 

6. 編輯 Linux 版的遊戲設定檔

類似於 Windows 版的狀況,若直接於遊戲中變更解析度可能會出現切換問題。因此需要編輯使用者家目錄下的 .loki/ut/System/UnrealTournament.ini,這個設定檔會在遊戲第一次執行後產生。找到 [SDLDrv.SDLClient] 項目後,變更 FullscreenViewportX 及 FullscreenViewportY 的數值。

 

除此之外,為了解決聲音延遲的問題,於 [Engine.Engine] 項目下,將 AudioDevice 從 ALAudio.ALAudioSubsystem 變更為 Audio.GenericAudioSubsystem。

 

7. 啟用 S3TC 材質壓縮

當年 UT 所支援的其中一項劃時代技術即是 S3TC,此功能可讓遊戲呈現高解析度的材質。雖然起初 S3TC 只能在 S3 的 3D 顯示晶片上啟用(使用 S3 MeTal 繪圖模式),但如今只要再安裝更新版的 Direct3D 或 OpenGL 繪圖器便能在其它的顯示晶片上啟用 S3TC。

 

針對 UT 的 Windows 版,可以從 http://www.cwdohnal.com/utglr/ 下載更新版的 OpenGL 繪圖器(OpenGLDrv.dll),然後放置到遊戲目錄的 System 目錄裡。由於 Linux 不似 Windows 會忽略檔案大小寫,所以需要先移除原目錄裡的 OpenGlDrv.dll,才會達到替換的效果。

 

完成檔案替換後,編輯 UnrealTournament.ini,在 [OpenGLDrv.OpenGLRenderDevice] 項目裡,新增:

UseS3TC=1

 

如此一來,Windows 版的 UT 便會啟用 S3TC。

 

至於 Linux 版,事實上先前的安裝步驟已經置入所需的檔案,讓 S3TC 已經是預設啟用。

 

在啟用 S3TC 後,接下來便需要安裝高解析度的材質檔才能真正產生效果。由於 GOG.com 所提供的安裝程式並未收納當初官方附在第二片安裝光碟裡的高解析度材質檔,所以現今比較常見的作法其實是使用社群所製作的版本。不過事實上社群版比官方版更完整、解析度也更高,可從 old Unreal 網站下載(實際來源是 UT Texture 網站,但前者有提供最直接的連結),並放置於遊戲的 Textures 目錄裡。

 

依適用的硬體等級,社群版的高解析度材質檔又分為 Low End、High End 及 Extreme End 三種版本。不過現今的硬體配備應該都足以負荷最高等級的版本,所以一般來說,玩家應該都可以選擇使用 Extreme End 版本。

 

這些材質檔(*.utx)都是以 ZIP 格式打包,如果想要一次將大量的壓縮檔解開到 Textures 目錄裡,可以有很多種作法,以下即是其中一種方式:

  • 7za x "*.zip" -y -xr\!*.txt -xr\!Copyright -oc:/home/username/ut/Textures/

 

套用高解析度材質後,遊戲關卡的地表、牆面及天空等材質就會變得非常精細,至於實際效果可參考以下抓圖:套用前、及套用後

 

8. 其它參考資料