Skip to content

Latest commit

 

History

History
287 lines (207 loc) · 9.28 KB

File metadata and controls

287 lines (207 loc) · 9.28 KB

Logo

English  |  中文



Android .NET Kotlin Compose

License GitHub Stars Discord Patreon


Rotating Art Launcher 是一款 Android 应用,让你在移动设备上运行基于 .NET 的桌面游戏。
支持 FNA/XNA 框架游戏、tModLoader、SMAPI、Everest 等模组加载器。

⚠️警告⚠️:这是针对Android 7.0+的修改版本


📖 目录


🎮 支持的游戏

游戏 模组加载器 状态
Terraria (泰拉瑞亚) tModLoader ✅ 支持
Stardew Valley (星露谷物语) SMAPI ✅ 支持
Celeste (蔚蓝) Everest ✅ 支持
其他 FNA/XNA .NET 游戏 ✅ 支持

✨ 特性一览

🧩 .NET 运行时

  • 集成完整的 .NET 10.0 Runtime
  • 原生运行 .NET 程序集
  • 支持 FNA / XNA 游戏框架
  • 内置 MonoMod 补丁系统

🖥️ 多渲染后端

渲染器 说明
Native OpenGL ES 3 最快,GPU 直接加速
GL4ES 兼容性最佳
GL4ES + ANGLE Vulkan 转译,推荐骁龙
MobileGlues GL 4.6 → GLES 3.2

🎛️ 控制系统

  • 虚拟摇杆 — 自定义触摸摇杆
  • 虚拟按钮 — 支持不规则形状
  • 虚拟键盘 — 拖动 & 透明度调整
  • Xbox 手柄 — 蓝牙 / USB
  • 鼠标键盘模拟 — 触控映射
  • 控件布局编辑器 — 可视化编辑
  • 控件包 — 可分享的布局包

🌐 更多特性

  • GOG 集成 — 登录 GOG 下载已购游戏
  • EasyTier 联机 — P2P VPN 多人组网
  • 补丁系统 — 自动游戏兼容性修复
  • 多进程隔离 — 游戏独立进程运行
  • 动态库加载 — 按需解压原生库
  • Compose UI — Material 3 现代界面

🚀 快速开始

系统要求

  • 📱 Android 7.0 (API 24) 或更高
  • 🏗️ ARM64-v8a 架构设备
  • 💾 至少 2GB 可用存储

安装

1. 从 Releases 页面下载最新 APK
2. 启用「允许安装未知来源应用」
3. 安装并启动应用
4. 按照引导完成初始化

Download

使用方法

  1. 打开 Rotating Art Launcher
  2. 点击 「+」 添加游戏(或通过 GOG 下载)
  3. 选择游戏可执行文件
  4. 配置渲染器和控件布局
  5. 启动游戏 🎮

🛠️ 从源码构建

展开查看构建指南

前置条件

工具 版本
Android Studio 最新稳定版
Android NDK r28
CMake 3.22.1+
JDK 21
Git 含 LFS 支持

构建步骤

# 克隆仓库
git clone --recursive https://github.com/FireworkSky/RotatingartLauncher.git
cd RotatingartLauncher

# 构建 Debug APK
./gradlew assembleDebug

APK 输出路径:app/build/outputs/apk/debug/

📁 项目架构

展开查看目录结构
RotatingartLauncher/
├── app/                          # Android 应用主模块
│   └── src/main/
│       ├── java/.../ralaunch/    # Kotlin/Java 源码
│       │   ├── core/             #   游戏启动核心逻辑
│       │   ├── dotnet/           #   .NET 运行时集成
│       │   ├── renderer/         #   渲染器配置与加载
│       │   ├── controls/         #   虚拟控件系统
│       │   ├── gog/              #   GOG Galaxy 集成
│       │   ├── easytier/         #   EasyTier 联机服务
│       │   ├── patch/            #   补丁管理系统
│       │   └── ui/               #   Compose UI 界面
│       ├── cpp/                  #   原生 C/C++ (SDL2, GL4ES ...)
│       └── assets/               #   运行时资源
├── shared/                       # Kotlin Multiplatform 共享模块
│   └── src/
│       ├── commonMain/           #   通用 UI、领域模型、数据层
│       └── androidMain/          #   Android 平台实现
└── patches/                      # C# 游戏补丁文件

🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

展开查看贡献步骤
  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

代码规范

  • 遵循 Android Kotlin 编码规范
  • 使用有意义的变量和函数命名
  • 为复杂逻辑添加注释

报告问题

  1. 先查看已有 Issues 避免重复
  2. 创建新 Issue 时请提供:
    • 问题的清晰描述
    • 复现步骤
    • 设备信息(型号、Android 版本)
    • 日志(如有)

📄 许可证

本项目基于 GNU General Public License v3.0 (GPLv3) 开源。详见 LICENSE 文件。

第三方库许可
许可证
SDL2 Zlib License
GL4ES MIT License
.NET Runtime MIT License
FNA3D Microsoft Public License

🙏 致谢

感谢以下开源项目和社区

项目 说明
SDL Project 跨平台媒体库
GL4ES OpenGL 兼容层
.NET Runtime .NET 运行时
FNA XNA 兼容框架
ANGLE OpenGL ES over Vulkan
EasyTier P2P 组网
PojavLauncher 启动器灵感来源

感谢所有贡献者和 Patreon 支持者

📬 联系我们

Issue Discussions Discord Patreon