AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 793956
Accepted
dubious
dubious
Asked: 2025-04-20 18:45:21 +0800 CST2025-04-20 18:45:21 +0800 CST 2025-04-20 18:45:21 +0800 CST

支持 Linux 的虚幻引擎游戏

  • 772

虚幻引擎和其他引擎支持在 iOS、Android、Windows、MacOS 和 Linux 等多个平台上制作游戏。这些游戏以预编译的可执行文件形式分发,并且都需要针对特定​​操作系统进行特定的构建。

由于 Linux 发行版数量众多,是否需要为 Ubuntu、Arch 等提供不同的版本?

开发人员如何确保支持尽可能多的 Linux 发行版?

games
  • 2 2 个回答
  • 1752 Views

2 个回答

  • Voted
  1. Best Answer
    cas
    2025-04-20T19:01:04+08:002025-04-20T19:01:04+08:00

    您最好的选择是:

    1. 编译您的游戏,以便所有使用的库(或尽可能多的/实用的)都是静态链接的 - 这将使游戏基本上独立于它所运行的特定发行版的库版本(尽管其他因素如桌面环境或 X 与 Wayland 可能仍然是问题的根源)。

    2. 编译你的游戏使其在特定环境中运行。通常,这意味着 steam 和 steamos。Steam Linux 运行时提供了一个已知的环境和已知版本的库。如果我没记错的话,Steam 运行时是基于 Ubuntu 的,但我对此并不完全确定——所以请查看开发者文档。如果我没记错的话,SteamDeck 是基于 Arch 的。当然,这只有在你打算通过 Steam 分发游戏时才真正有用。

    顺便说一句,库版本是 Linux 原生游戏寿命短的原因之一,除非开发者/发行商不时地重新编译它们以跟上变化。大多数大型发行商并不在意这一点,所以很多 Linux 原生游戏几年后就崩溃了,玩家只能在 Proton 或其他版本的 Wine 中运行 Windows 版本。

    • 15
  2. Austin Hemmelgarn
    2025-04-21T05:44:21+08:002025-04-21T05:44:21+08:00

    你问的是一个具体的包装问题。大致来说,你可以使用四种方法:

    • 为 Windows 构建,但在 Proton/Wine 下进行适当的测试。出于多种原因,这通常是“简单”的解决方案,大多数声称支持 Steam 平台的游戏实际上都是这样做的,但它的集成度最差,而且只适用于游戏(出于多种原因,普通 Linux 用户在其他大多数情况下不愿意这样做)。
    • 为 Steam 或 Flatpak 等发行版(指软件发行,而非软件集合)平台构建。这通常是真正原生且可移植的最佳选择,但它需要你提前主动决定开发环境(因为改造游戏使其能够像这样运行并不容易)。
    • 采用 Windows 或 macOS 风格的方法,将所有或大部分依赖项随游戏本身一起发布。Linux 与其他类 UNIX 平台一样,提供了许多选项,其中两种简单的方法是静态链接或使用自定义库搜索路径。然而,这会使游戏本身变得更大,因为您需要随游戏一起发布大量额外的代码。
    • 如果游戏不是商业的,只需将其设为自由/开源软件 (FOSS),并与发行版合作进行原生打包即可。一旦你将可用的软件包导入 Debian、Fedora 和 Arch,大多数其他发行版通常都会自动支持,无需你做太多其他工作,这可以减轻大部分(但不是全部)特定发行版的打包负担,让你无需处理这些工作。不过,这需要大量的前期时间投入,而且显然不适用于商业游戏。

    显然,也可以选择按发行版进行构建(顺便说一下,涵盖 Debian、Fedora 和 Arch 可以让大多数桌面 Linux 用户轻松上手,因为绝大多数桌面 Linux 用户要么使用这三个发行版,要么使用这三个发行版的衍生版本)。但这需要投入大量的时间,而且需要持续投入,才能随着时间的推移保持游戏的可玩性。

    • 8

相关问题

  • GNOME Chess 会向开发人员上传任何内容吗?

  • 纯文本国际象棋位置创建软件

  • click+shift在xfce4下的游戏中不起作用

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve