Linux 概览
Linux 版 Steam 现在对所有 Steam 用户开放。 Linux 所支持的游戏与日俱增,Linux 版 Steam 的社区也十分活跃,因此现在正是把您的游戏移植到 Linux 上的好时候。
为 Steam 开发 Linux 游戏对于原来为 Windows 或 macOS 进行开发的开发者来说富有挑战性。 以下信息将有助于您成功地把游戏移植到 Linux 版 Steam 上。
入门指南
在 Linux 上制作游戏需要以下条件:
- 一台已更新至 Linux 最新版本的电脑。 可以是安装了双系统的电脑、Linux 单系统电脑,甚至是运行 Linux 的虚拟机。 此外,32 位和 64 位 Linux 发行版都支持游戏开发。 我们推荐使用的 Linux 发行版为最新发布的 Ubuntu LTS,原因在于 Valve 和 Linux 社区对其进行的测试最多。 点击此处安装 Ubuntu。
- Linux 版 Steam 客户端。
- Linux 开发基础工具集(如 g++、gcc 以及 make 工具),包含在 build-essential 程序包中。 可通过 Ubuntu 软件中心或任一开放的终端窗口运行 apt-get 命令“sudo apt-get install build-essential”来安装该程序包。
- 最新版本的 Steam Linux Runtime,包括 Steam 上发行 Linux 游戏所必需的工具及完整库集合。 运行时的使用说明位于存储库内的 README.md 文件中。
如果您对 Linux Steamworks 有疑问或需要报告运行时的问题,请加入 Steamworks 开发组并在 Linux 讨论区发帖。
Linux 工具
Linux 开发工具数量众多,既有命令行界面也有图形化的开发者 IDE。 以下信息来自于 Valve Linux 团队的经验。
对于具有 Windows 开发工具使用经验的开发者,改用 Linux 进行开发最容易的方法是使用 Windows 的 Visual Studio 以及
WinGDB—— 一个 Visual C++ 扩展,允许利用 Visual Studio 调试界面进行远程 Linux 进程的调试。
Valve 的 Linux 团队使用以下工具在 Linux 上进行开发:
- QtCreator:带有常见的 Visual Studio 按键设置的调试器和 IDE。
- 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:这是一个 Visual Studio 扩展,用于调试在 NVIDIA 显卡上运行的游戏。
- lTTng:这是一个 Linux 跟踪工具。
- apitrace 项目:这是一个跟踪并回放您游戏的 OpenGL 和 OpenGL ES 调用的工具集。
- Zoom:这是一个 CPU 探查器,具有强大且友好的用户界面。
Linux API
Vulkan 是实现高性能图形渲染的首选库。 它是一个等同于 DirectX12 和 Metal 的开放库。
OpenGL 是图形渲染的较早标准。 大部分游戏直接调用 OpenGL,但也有其他游戏采用转换方法,将旧的渲染代码转换成 OpenGL 调用。 早先的 Valve Source 游戏如《军团要塞 2》和《反恐精英:起源》都使用这种方法。 如果您选择使用 OpenGL,那么我们推荐在游戏中使用 OpenGL 3.0 版的核心功能。
Simple DirectMedia Layer(SDL)2.0 版提供对音频、窗口化操作及其他内容的底层访问。 使用 OpenGL 时,支持进行 3D 渲染。 安装说明见
此处。 如需更多信息与文件,请见 SDL
wiki。 Valve 在 Steam 和大部分自有游戏中使用 SDL 处理窗口化,SDL 也提供后端,用以驱动
Steam 输入 API。
以下的库对游戏开发的其他方面提供支持:
Linux 运行时
原生支持 Linux 的游戏可以选择特定版本的 Steam Linux 运行时来执行, 并且可以针对每个分支进行设置。 请注意,您选择的运行时必须与用于编译可执行文件的 Linux 版 Steam SDK 匹配。 更多详情请参阅
Steam 运行时指南。
要使用此功能,您的应用必须首先设置一个支持 Linux 的启动选项。 设置完成后,您可以前往“安装”>“Linux 运行时”菜单项进行配置。
GitHub 存储库
以下公共存储库用于与 Linux 版 Steam 相关的项目: