Minecraft:Java Edition 现已使用 SDL3

Minecraft: Java Edition 从 GLFW 迁移到 SDL3 被视为一次重大的基础设施升级,预计能带来更好的跨平台窗口与输入处理,以及更好的 Wayland 支持,但早期快照已经暴露出 Windows 和 Linux 上严重的全屏稳定性问题。评论者强调,这类回归在可选测试构建中本就常见,并借此比较 SDL3 与 SDL2/GLFW,讨论独占全屏与无边框全屏的取舍,以及回顾 Java 与 Bedrock 的优劣。除引擎层面的讨论外,很多人也分享了运行家庭或社区服务器的实用建议,从 Docker 和 VPS 到 Realms,以及通过 GeyserMC 实现跨平台联机。

SDL3 迁移与原因

  • Minecraft: Java Edition 已将其窗口/输入层从 GLFW 切换到 SDL3。
  • 线程中没有引用官方原因。
  • 推测的好处包括:
    • 更好、更稳健的跨平台输入与窗口处理,尤其是对 Wayland。
    • SDL 是更完整的平台层(窗口、输入、音频等),且高度可移植。
    • 改进键盘布局处理和 IME 支持。
  • 也有人质疑 SDL 的 2D/3D 渲染或移动/平台覆盖面是否真的相关,因为 Minecraft 使用的是自己的渲染管线(OpenGL / Vulkan)。

全屏模式、崩溃与快照

  • 已知问题:Windows(多显示器)和 Wayland 上的独占全屏会崩溃。
  • 关于此类 bug 是否应延迟快照,存在争论:
    • 一方认为:这些属于会阻塞发布级别的 bug。
    • 另一方认为:快照本来就是不稳定、主动选择参与的测试构建,因此带着严重 bug 发布是可以接受且有价值的,能用于遥测和早期反馈。
  • 讨论指出,许多游戏和操作系统已从独占全屏转向无边框全屏,原因是兼容性以及直播/录制方面的顾虑。
  • macOS 的全屏体验广受批评(Spaces 动画、菜单栏行为),有人认为问题更多出在操作系统而不是游戏。

SDL3 采用与生态

  • 其他游戏(例如 osu!)在迁移到 SDL3 后报告了延迟和性能改进。
  • 在 Linux 上,sdl2-compat 和 sdl12-compat 往往意味着应用实际上也在 SDL3 之上运行。
  • SDL3 相对较新;一些发行版(例如 Ubuntu 24.04)起初并不包含它,减缓了采用速度。
  • 许多游戏会打包自己的 SDL;其他则依赖系统库或打包方案(AUR、Nix、Flatpak、Steam runtime)。

Java 与 Bedrock 的分裂

  • Java Edition 仍然是“认真玩”的 PC 玩家、模组作者、速通玩家和大型服务器的主流。
  • Bedrock 用于主机、移动端和 Windows Store;原始性能更好,但模组更少、bug 更多,也更封闭、更偏向商业化。
  • 历史背景:Bedrock(C++)诞生于主机/移动端场景,在这些平台上 JVM/JIT 并不实用;Java 版本早期负债很重,后来经过重构。
  • 不同版本之间的碎片化是家庭用户和管理员的主要痛点;像 GeyserMC 这样的协议桥接可以让 Bedrock 客户端加入 Java 服务器,但有一定限制。

运行家庭 Minecraft 服务器(2026 重点)

  • 很多人建议使用 Java 服务器加 Bedrock 桥接(GeyserMC + Floodgate),这样 iPad/主机和 PC 就能一起玩。
  • 常见方案:itzg 的 Docker 镜像(Java 或 Bedrock),有时放在 WireGuard/Tailscale 后面,偶尔运行在 Kubernetes 或 fly.io 上。
  • 也有人偏好托管方案(Realms、Shockbyte、Pufferfish.host)以追求简单和稳定运行;Realms 常被认为是 iPad 孩子最容易上手的方式。
  • 建议了解版本差异(Java vs Bedrock)、备份、白名单以及基础 Linux/服务器管理;据说 LLM 也很适合作为远程“运维助手”。

性能、JVM 调优与服务器模组化

  • 对过时的 JVM 调优指南有强烈反对;现代建议集中在:
    • 使用最新 JVM(17+),避免照搬“玄学”参数。
    • 优先使用现代 GC(尤其是 ZGC)以获得低延迟。
    • 堆大小建议各不相同:
      • 有人建议在使用 ZGC 时尽可能设置得“舒适地高”;
      • 有人建议大多数模组包上限约为 8 GiB;
      • 也有人指出重度模组化服务器常常需要 8–16 GiB 以上。
      • 还提醒不要让堆大于 32 GiB,因为会涉及 compressed-oops 和 GC 行为问题。
  • 共识是:早期的性能问题很大程度上源于 Minecraft 代码质量;新版本加上优化模组(例如 Sodium/Lithium 系列、Fabric/NeoForge 生态)大幅提升了性能。
  • Paper/Spigot/Purpur 被指出是高性能服务器分支,但可能微妙地破坏红石/农场;若追求“纯正”行为,更偏向原版加优化模组。

模组、 “Minecraft 作为引擎” 与教育

  • 许多人越来越把 Minecraft 看作一种引擎或平台,尤其是在 Java 上拥有强大的模组 API 和基于字节码的扩展能力时。
  • 社区项目(例如大型模组包、Rust 编写的替代服务器、Luanti+Mineclonia 等替代引擎、ComputerCraft/OpenComputers)被认为非常有影响力。
  • 有些人会用 Minecraft/ComputerCraft 来教授编程、网络和系统概念,因为它处在一个有吸引力、以游戏为中心的环境里。

零散反应

  • 有些人查看了发布内容,以确认跨平台支持没有被削减,或者登录没有进一步被锁死。
  • Wayland 崩溃被标注为“已知问题”,有人开玩笑说“对于 Wayland 来说,这已经挺不错了。”
  • 线程里还零星提到一些小众话题:Minecraft 内部邮件、Nethack 邮件守护进程,以及对基于 Python 的 Minecraft 编程的好奇,不过细节不多。