搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

komaruworld/mocktail

游戏

在 Linux 和 FreeBSD 上通过兼容运行时运行 Android 版 Roblox 客户端。

427
45
C++
Apache-2.0
创建于 2 个月前

项目介绍

Mocktail 是一个实验性的兼容运行时,用于在 Linux 上运行 Android x86_64 Roblox 客户端,并为 Android arm64-v8a 客户端提供实验性的 aarch64 构建。它也能在 FreeBSD 的 Linuxulator 中、借助 Linux 用户空间运行,但它不是原生 FreeBSD 二进制。项目是独立社区项目,不随附 Roblox 客户端。

实现上,Mocktail 补齐客户端需要的 Android ABI 和 JNI 组件,再将其接到 Linux 侧的 SDL3,并使用 Vulkan 或 OpenGL 渲染。APK 在加载任何原生代码前会做签名和 ABI 检查;客户端在首次启动时下载,若更新失败会保留上一份可用副本。

安装与运行

稳定版通过 Flathub 安装:

flatpak install flathub space.bigrat.mocktail
flatpak run space.bigrat.mocktail

需要 main 分支的最新每日构建时:

flatpak install --user https://mocktail.bigrat.space/mocktail.flatpakref
flatpak run space.bigrat.mocktail

Arch 用户可通过 AUR helper 安装 mocktail-git,或用 mocktail 构建固定源码版本、用 mocktail-bin 安装预编译稳定包。Fedora 44 通过 DNF 仓库提供 mocktail 和 mocktail-nightly;Ubuntu 26.04 有对应的 APT 包和签名密钥。AppImage、DEB 和 RPM 也可从官网和 GitHub Releases直接下载。

配置

可通过 $XDG_CONFIG_HOME/mocktail/fflags.json(通常是 ~/.config/mocktail/fflags.json)调整运行时行为,Mocktail 会在下次启动时应用。PC 配置默认使用旧版 Charts 页面,因为新版 SDUI 页面会因 Color3 错误显示空白;显式设置 FFlagLuaAppChartsAppPage 可覆盖该默认值。文件内容为字符串值的 JSON 对象,例如:

{
  "FFlagExample": "True",
  "DFIntExample": "120"
}

从源码构建

构建需要 CMake 3.20+、Git、pkg-config、LLD、binutils、C++17 编译器,以及一组规模不小的依赖,包括 SDL 3.4+、SDL3_ttf、Vulkan、EGL、libplacebo、GTK4、libadwaita 1.6+、WebKitGTK 6.0 等。README 给出了 Ubuntu 26.04+、Arch 和 Fedora 44+ 的依赖安装命令。装好依赖后:

git clone --recurse-submodules https://github.com/komaruworld/mocktail.git
cd mocktail
make build
./build/mocktail

FreeBSD 的配置和启动步骤见项目的 FreeBSD 指南。

使用约束

aarch64 构建可用,但 Roblox 运行时在该架构上的验证仍是实验性的。FreeBSD 支持同样处于实验阶段,且只用运行于 Linuxulator 内的 x86_64 Fedora 44 用户空间测试过。Mocktail 目前不能与 hardened_malloc 共用,启用后可能无法启动或运行中崩溃,因此应在不启用 hardened_malloc 的环境下运行。项目采用 Apache-2.0 许可,第三方组件保留各自许可。

HotRepo 点评

Mocktail 在 2026-11-07 以当日新增 8 个 Star 进入 GitHub C++ 日榜第 15 名,当时仓库共 422 个 Star、44 个 Fork。这条单日记录说明它在 C++ 榜单上有一定可见度,但还不足以判断趋势。技术上更值得关注的是它的路线:通过 Bionic 和 JNI 复用 Android 客户端的 ABI,再接到原生 SDL3、Vulkan 和 OpenGL,而不是为桌面重写游戏。README 对 aarch64 和 FreeBSD 的实验性边界写得很明确,这对期待稳定游玩的人很重要。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。