Linux 概覽
Linux 版的 Steam 現已推出,供所有 Steam 使用者選用。 隨著支援 Linux 的遊戲與日俱增,加上活躍的「Steam for Linux」社群群組,現在正是將遊戲移植至 Linux 平台的絕佳時機。
對習慣使用 Windows 或 macOS 作業系統的開發人員來說,製作 Linux 上的遊戲可能頗有難度, 因此我們準備了以下資訊,希望能助您成功把遊戲搬上 Linux 平台的 Steam。
準備開始
想製作 Linux 平台的遊戲,需符合以下條件:
- 一台開發電腦,執行全面更新至最新版本的 Linux 作業系統。 雙作業系統電腦、專跑 Linux 的電腦,甚至是跑 Linux 的虛擬電腦都可以。 雖然 32 位元或 64 位元版的 Linux 皆可用來進行開發, 但我們最推薦的 Linux 版本為最新的 Ubuntu LTS,原因是 Ubuntu LTS 為 Valve 與 Linux 社群最積極測試的版本。 Ubuntu 可由此下載安裝。
- Linux 版的 Steam 用戶端。
- Build-essential 套件內含的基本 Linux 開發工具組(例:G++、GCC、Make Utility)。 請至 Ubuntu Software Center,或透過開放終端視窗的 apt-get 指令:「sudo apt-get install build-essential」下載此套件。
- 最新版的 Steam Linux Runtime,其中包含將 Linux 遊戲放上 Steam 所需的工具與一整套函式庫。 Runtime 的使用方法請見儲存機制中的 README.md。
如果您有任何關於 Linux Steamworks 的疑問,或想回報關於 Runtime 的問題,請加入 Steamworks 開發群組、於 Linux 討論區中發文提出。
Linux 工具
從命令列介面至圖形開發者 IDE,現有的 Linux 開發工具琳瑯滿目。 我們根據 Valve Linux 團隊的經驗為您提供以下資訊。
對於有使用 Windows 開發工具經驗的人來說,最簡單的 Linux 開發方式是使用 Windows 上的 Visual Studio 和
WinGDB——這是一種允許對遠端 Linux 程序進行偵錯的 Visual C++ 擴充,且使用 Visual Studio 偵錯介面。
Valve 的 Linux 團隊使用以下工具進行 Linux 平台上的開發工作:
- QtCreator – 偵錯工具兼 IDE,具備常見的 Visual Studio 按鍵配置
- SlickEdit – 提供基本、可設定的 GUI,使用者可自行指定按鍵
- gdb – 熱門的命令列偵錯工具
- cgdb – GDB 包裝擴充,執行時,將以分割畫面顯示當下所在位置的原始碼
- Eclipse – 另一款可針對 Linux 設定的 IDE, 支援 Windows、macOS、Linux 作業系統
- vim – 基本的命令列文字編輯器
Valve Linux 團隊採用下列偵錯與追蹤工具:
- QtCreator – 請見上文
- Symbol Servers
- PerfStudio – 功能齊全的單幀畫面偵錯工具,具備可記錄分析使用 AMD 顯示卡執行的遊戲的 API, 支援 Windows 作業系統
- Telemetry – 功能齊全的分析工具,用於使用顯示卡的遊戲, 支援 Linux、Windows、macOS 作業系統
- gDEBugger - 能偵錯、效能分析及分析 OpenGL 代碼的偵錯器。 持續開發活動已移至 CodeXL
- perf - 包含各種效能功能的命令列工具。 支援 Linux 作業系統
- NVIDIA Nsight – 用於為 Nvidia 顯示卡上執行的遊戲偵錯的 Visual Studio 擴充
- lTTng - Linux 追蹤工具
- apitrace project - 一組用於追蹤和重複遊戲中 OpenGL 和 OpenGL ES 呼叫的工具
- Zoom - 強大的 CPU 效能分析器,且擁有好用的使用者介面
Linux API
Vulkan 是高品質圖形渲染的絕佳選擇, 為 DirectX12 與 Metal 的開源同等選擇。
OpenGL 是歷史悠久的圖形渲染標準。 大多數的遊戲會直接呼叫 OpenGL,但也有遊戲使用轉換法將老舊的渲染碼轉為 OpenGL 呼叫函式, 像《絕地要塞 2》與《絕對武力:次世代》這兩款 Valve 的 Source 老遊戲就採用了這個方法。 如果您選擇 OpenGL,我們推薦您開發遊戲時,選用 OpenGL 3.0 的核心功能。
Simple DirectMedia Layer(SDL)2.0 版的功能繁多,包含低階音訊與視窗化。 透過 OpenGL 可達成 3D 渲染支援。
點此閱讀安裝說明, 詳情說明與說明文件請見 SDL
Wiki。 Valve 在 Steam 和我們大部分的遊戲上使用 SDL 來處理視窗系統,並提供驅動
Steam 輸入 API 的後端。
下列程式庫為遊戲開發的其它方面提供支援:
Linux 執行階段
擁有 Linux 原生支援的遊戲可選擇特定版本的 Linux Steam 執行階段來執行。 每個分支可分開設定。 請注意,您選擇的執行階段需要和用於編譯執行檔的 Linux 版 Steam SDK 相符。 更多詳情請參閱
steam-runtime-guide如要使用此功能,您的應用程式必須先設定支援 Linux 的啟動選項。 設定完成後,您可以前往安裝 > Linux 執行階段選單項目。
GitHub 儲存機制
下列為公開的儲存機制,用於與 Linux 版 Steam 相關的專案: