3 款游戏,同机中位数对比
轻松接入
极速畅玩
为小游戏和 H5 提供高性能原生运行时,满足多种使用场景。
已发布
Android · iOS · macOS · Linux · Windows · OpenHarmony
一个 Migo,多个场景

应用内集成 · 游戏
频道随宿主同包分发, 登录、广告、权限都是你自己控制。

直播间 · 互动游戏
主播发起, 观众即时加入, 不打断直播流。

互动广告 · 激励视频
激励视频换成可玩互动, 奖励仍由宿主回调结算。

车载中控 · 后排娱乐
车机无 WebView 环境, 静态库直编进 ROM, 随车型迭代。

IoT · 智能面板
小屏弱 CPU 也能跑, 4 MB 离线可玩。

零售 POS · 闲时营销
收银屏闲时跑营销互动, 数据自留。

广告落地 · 互动体验
落地页内直接可玩 demo, 转化路径不跳浏览器。

企业 IM · 内部应用
桌面 IM 嵌 H5, 性能对齐原生, 内网部署。

行业定制 · 游戏化场景
教育 / 金融 / 政务, 按需接入你的报表与工单。
还有更多场景 · 邮件联系 → 12 小时内回复
为什么选 Migo
3 款游戏,单核归一
装机 38.9 MB;也可按需加载
横断面同样可审计:API 面共 369 个已发布接口;一致性套件 80 条共用断言在 Linux 参考实现、模拟器与真机三端逐条全过。
游戏跑在 Migo 里,账号、支付、发布仍在宿主手里。
Rust 原生内核
自带 V8 · 单 crate 多端构建369 个已发布接口Babylon.js · PlayCanvas
Web API adapter · 浏览器产物,conformance 套件原样运行
窗口 · 账号 · 支付 · 广告 · 版本 · sha256 · 灰度 / 回滚
6 个原生宿主 · 9 组商业化回调
// MigoGameView.java 文档用法
MigoGameView gameView = new MigoGameView(context);
RuntimeConfig config = new RuntimeConfig.Builder(context)
.setImmersiveMode(false) // 嵌入式视图通常为 false
.setTargetFps(60)
.setCodeCacheDir(cacheDir)
// 适配层就是一段前置脚本,多次调用按顺序累加
.addPreludeScript("<migo-web-adapter>", adapterSource)
.build();
gameView.setConfig(config);
gameView.setGameListener(listener);
layout.addView(gameView);
gameView.loadGame("my-game", "game.js");RuntimeConfig 另可钉住启动方向、日志级别、看门狗超时与代码签名校验。前置脚本名会出现在 V8 调用栈里,便于区分适配层报错与游戏报错。
// iOS — MigoGameView, UIKit (SwiftUI 经 UIViewRepresentable)
import MigoApplePerformancePlus
let config = try MigoGameView.Configuration.standard(contentSigning: .unsigned)
try MigoGameInstaller.install(package: gameDir, id: "my-game",
version: build, into: config.directories)
let gameView = MigoGameView(configuration: config)
gameView.onEvent = { event in /* .ready, .exitRequested, … */ }
parent.addSubview(gameView)
gameView.loadGame(id: "my-game")SwiftPM 包 migo-<版本>-apple-sdk.zip, iOS 15.2+。内容 JS 跑在 WebKit 的 JavaScriptCore(带 JIT), 渲染由 Migo 在 App 进程完成(Performance+)。
// macOS — 同一个包, AppKit
import MigoMacV8
let config = try MigoGameView.Configuration.standard(contentSigning: .unsigned)
try MigoGameInstaller.install(package: gameDir, id: "my-game",
version: build, into: config.directories)
let gameView = MigoGameView(configuration: config)
window.contentView = gameView
gameView.loadGame(id: "my-game")macOS 11+, V8 带 JIT 在本进程运行。App 需以 hardened runtime + allow-jit 签名, 并在构建阶段嵌入 ANGLE。
// Linux — C ABI, 挂在宿主 UI 拥有的窗口上
#include <migo/migo.h>
#include <migo/platform/x11.h>
migo_engine_create(&engine_config, &engine);
migo_session_create(engine, &session_config, &session);
migo_session_set_host_callbacks(session, &callbacks);
MigoX11WindowDescriptor x11 = { /* … */ .display = dpy, .window = xid };
migo_session_attach_surface(session, &surface, &attachment);
migo_session_load_content(session, &content); /* my-game, game.js */C ABI 为候选版, 尚未冻结。宿主提供 X11 或 Wayland 窗口, 用 migo_session_notify_vsync 驱动出帧; host-kit 里有 Qt 6 / X11 适配器。
// Windows — C ABI, 挂在宿主拥有的子 HWND 上
#include <migo/migo.h>
#include <migo/platform/win32.h>
migo_engine_create(&engine_config, &engine);
migo_session_create(engine, &session_config, &session);
migo_session_set_host_callbacks(session, &callbacks);
MigoWin32HwndDescriptor win = { /* … */ .hwnd = child_hwnd };
migo_session_attach_surface(session, &surface, &attachment);
migo_session_load_content(session, &content); /* my-game, game.js */migo.dll + 导入库与 CMake target, x64 / arm64。渲染经 ANGLE 画到 HWND 上; WinUI 集成由宿主完成。
// OpenHarmony — XComponent 绑定 native 宿主模块
XComponent({ id: 'migo_surface', type: XComponentType.SURFACE,
libraryname: 'migohost' })
.onLoad(() => {
// native 侧经同一套 C ABI 挂载 surface
migohost.start(filesDir, cacheDir, 'my-game', scaleFactor);
})完整 DevEco 宿主工程。HarmonyOS NEXT 不允许第三方 JIT, 那里 V8 以 jitless 运行。
// 商业化与账号留在宿主:游戏只发起,宿主决定怎么实现
class Ads implements AdHandler { /* 接你自己的聚合 SDK */ }
class Auth implements AuthHandler { /* 接你自己的账号服务 */ }
class Pay implements PaymentHandler { /* 接你自己的支付通道 */ }
class Perms implements PermissionHandler { /* 你决定游戏能用什么 */ }
class Sink implements AdEventSink { /* 曝光 / 点击 / 完播回传 */ }
// 游戏里调 createRewardedVideoAd() -> 走到 AdHandler
// 游戏里调 login() -> 走到 AuthHandler
// 游戏里调 requestMidasPayment() -> 走到 PaymentHandler
// 一个都不接也能跑,只是这些调用会明确失败运行时不内置任何广告网络,也不持有账号体系。收款和登录都发生在你的 SDK 里。
完整接口与回调约定见 开发者文档 →
灯塔计划 · 免费接入
灯塔计划
现在开放在你的 App 里跑通一款游戏,含宿主集成、广告 / 支付 / 账号回调打通与灰度发布。费用为 0, 换的是一份可公开引用的真机数据报告。
- 宿主集成与联调 · 全程免费
- 广告 / 支付 / 账号回调打通
- 灰度包、回滚方案、性能数据
- 数据可写入公开 migo-bench 报告
技术支持
1 对 1 免费从环境准备到上线, 你的工程师与我们的引擎作者一对一。工作时间 2 小时内回复, 紧急问题当日跟到关闭。
- 引擎作者直连 · 不转客服
- 工作时间 2 小时内回复
- 紧急问题当日关闭
- 微信群 / Slack / 线上会议
年度商业许可
接入后谈游戏跑通进入运营期后再谈商业条款, 按 MAU 与平台计价。灯塔客户在签约价格上享有明确的优惠。
- 按 MAU 与平台计价
- 版本升级与安全更新
- 接口扩展优先级
- 灯塔客户价格优惠 · BSL 1.1
更多评估与接入问题见 常见问题 →