3 款游戏,同机中位数对比
一个 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 个已发布接口Laya · Egret
Web API adapter · 浏览器产物
窗口 · 账号 · 支付 · 广告 · 版本 · 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 调用栈里,便于区分适配层报错与游戏报错。
// MigoGameView.swift — SwiftUI/UIKit 都行
import MigoRuntime
let config = RuntimeConfig()
.immersive(false)
.targetFps(60)
.addPreludeScript("<migo-web-adapter>", adapterSource)
let gameView = MigoGameView(config: config)
gameView.gameListener = listener
parent.addSubview(gameView)
gameView.loadGame("my-game", entry: "game.js")Swift Package / XCFramework 分一种, iOS 13+ 走 AAR 等价的 .framework. handler 同 Kotlin 那套协议.
// macOS — 同一份 Swift Package
import MigoRuntime
let config = RuntimeConfig()
.windowed(width: 960, height: 640)
.addPreludeScript("<migo-web-adapter>", adapterSource)
let gameView = MigoGameView(config: config)
window.contentView = gameView
gameView.loadGame("my-game", entry: "game.js")macOS 12+ NSView 嵌入, 与 iOS 同 artifact, 来自同一份 Rust crate.
// Linux — GTK4 / wlroots 都行, 一个 .so 接入 #include <migo/runtime.h> migo_config_t *cfg = migo_config_new(); migo_config_add_prelude(cfg, "<migo-web-adapter>", adapter_src, len); migo_view_t *view = migo_view_new(cfg); gtk_box_append(GTK_BOX(parent), migo_view_widget(view)); migo_view_load_game(view, "my-game", "game.js");
C ABI 直接可用, GTK4 widget 已封装. X11 / Wayland 都支持, EGL 渲染.
// Windows — Win32 / WinUI 都行 (C ABI) #include <migo/runtime.h> migo_config_t *cfg = migo_config_new(); migo_config_add_prelude(cfg, "<migo-web-adapter>", adapter_src, len); migo_view_t *view = migo_view_new(cfg); SetParent(migo_view_hwnd(view), parent_hwnd); migo_view_load_game(view, "my-game", "game.js");
Windows 10+, MSVC 2019+, D3D11 渲染路径, 自动 fall back 到 WARP.
// OpenHarmony — ArkTS 侧
import { MigoGameView, RuntimeConfig } from '@migo/runtime';
const config = new RuntimeConfig()
.addPreludeScript("<migo-web-adapter>", adapterSource);
MigoGameView({
config: config,
onReady: () => gameView.loadGame("my-game", "game.js")
})OpenHarmony 4.0+, HAP 包集成, 一份 .so 同 ABI.
// 商业化与账号留在宿主:游戏只发起,宿主决定怎么实现
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
更多评估与接入问题见 常见问题 →