
只有梦想家才能移山。
Mirror 网络库
Unity 排名第一的免费开源游戏网络库,被超过 2 亿玩家使用。
驱动了诸如 Population: ONE 等热门大作以及超过 1000 款 Steam 游戏。
最初基于 UNET:自 2014 年 起经过实战检验,已持续 10 年且仍在继续!
Mirror 对于所有类型的游戏,甚至小型 MMORPG 🎮,都是 稳定、模块化 且 易于使用 的。
由 🇩🇪🇺🇸🇬🇧🇸🇬🇹🇼 以 ❤️ 打造。
特性
Mirror 提供了多种多样的特性以支持所有游戏类型。
我们的许多特性迅速成为了所有 Unity 网络代码的标准!
| 功能 | 描述 | 状态 |
|---|---|---|
| 🎛 传输 | UDP、TCP、Websockets、Steam、Relay 等。 | 稳定 |
| 🪜 兴趣管理 | 使用空间哈希和距离检查器对世界进行分区。 | 稳定 |
| ↗️ 同步方向 | 服务器与客户端权限 - 按组件一键配置。 | 稳定 |
| 🐌 延迟模拟 | 在本地模拟延迟、丢包和抖动。 | 稳定 |
| 🧲 批处理 | 通过自动批处理最小化消息开销。 | 稳定 |
| 💌 RPCs & SyncVars | 内置且安全的同步变量和远程函数调用。 | Stable |
| 🙅♀️ Allocation Free | 无运行时分配,无 GC(Transports 除外)。 | Stable |
| 🛞 Transform & Physics | 内置 Transform & Physics 同步。 | Stable |
| 👩🍼 Child Components | 可将网络组件放置在任意对象上。 | Stable |
| 🪚️ IL Post Processing | 通过 IL 后处理实现零开销的 [Rpcs] 和 [Commands]! | Stable |
| ☁️ Two Click Hosting | (可选)Build & Push 直接从 Unity Editor 推送到云端。 | Stable |
| 📏 Snapshot Interpolation | 为所有平台和类型提供完美平滑的移动。 | Stable |
| 🔫 Lag Compensation | 回滚状态以查看玩家在输入期间看到的内容。 | Beta |
| 🔒 Encryption | 通过端到端加密实现安全通信。 | Beta |
| 🔒 Cheat Detection | Mirror Guard 安全检测 Melon Loader 及其他内容。 | Beta |
| 🚀 Unreliable Mode | 适用于任何组件的 Quake 风格 Unreliable SyncMode。 | Development |
| 🧙♂️ General Purpose | Mirror 支持所有类型,适用于您的所有游戏! | |
| 🧘♀️ Stable API | 长期(10 年)稳定性,而非新版本! | |
| 🔬 Battle Tested | Mirror 服务于超过 1 亿玩家。它就是这么好用! | |
| 💴 Free & Open Source | MIT 许可,无任何限制,以最小化风险! | |
| ❤️ Community | 加入我们的 Discord,与全球近 15,000 名开发者一起交流! | |
| 🧜🏻♀️ Long Term Support | 自 2014 年起持续维护,并提供可选的 LTS 版本! | |
| 📐 Bitpacking | 优化的压缩(如将布尔值压缩为 1 位等) | Researching |
| 🏎 Prediction | 在本地模拟物理并应用服务器修正。 | Researching |
架构
服务器与客户端是同一个项目,以实现最大生产力。
只需使用 NetworkBehaviour 替代 MonoBehaviour。
以这种方式制作多人游戏既有趣又简单:
public class Player : NetworkBehaviour
{
// Synced automatically
[SyncVar] public int health = 100;
// Lists, Dictionaries, Sets too
SyncList<Item> inventory = new SyncList<Item>();
// Server/Client-only code
[Server] void LevelUp() {}
[Client] void Animate() {}
void Update()
{
// isServer/isClient for runtime checks
if (isServer) Heal();
if (isClient) Move();
}
// Zero overhead remote calls
[Command] void CmdUseItem(int slot) {} // Client to Server
[ClientRpc] void RpcRespawn() {} // Server to all Clients
[TargetRpc] void Hello() {} // Server to one Client
}
还有 NetworkServer 和 NetworkClient。
大概就是这样了 🤩
免费、开源且面向社区
Mirror 是免费且开源的(采用 MIT 许可证)。
🍺 “免费”既指免费啤酒,也指你可以随心所欲地使用它。
- 在任意位置托管游戏 服务器!
- 自由定制任何内容!
- 无付费墙,无 CCU 费用,无附加条件!
🤝 我们是一支由专业游戏开发者组成的团队,我们因在生产环境中使用 Mirror 而获得报酬。我们的利益始终与社区保持一致,因为我们也和你一样是 Mirror 用户!
❤️ 我们拥有超过 14,000 名用户的出色社区,每天都在贡献反馈和改进。请加入我们的旅程,帮助他人,如果你热爱我们的工作,请考虑进行捐赠!
顶部的引言出自《Fitzcarraldo》,这与本项目颇为相似。
入门指南
获取 Unity 2019 / 2020 / 2021 / 2022 LTS 和 6000.1,下载 Mirror,打开其中一个示例并按下 Play!
查阅我们的文档以了解其工作原理。
如果你正在从 UNET 迁移,请查阅我们的迁移指南。
Guard - 反作弊 🔒
Guard 是一款专为 Unity 游戏打造的高影响力、零风险反作弊解决方案。与大多数商业反作弊系统不同,Guard 在源代码层面嵌入,并与您的项目一起编译。
Guard 可在 Asset Store 获取,并包含 Mirror 集成!
使用 Mirror 制作
数千款 Steam 游戏
Mirror 被 数千款 Steam 游戏 使用。
Population: ONE
BigBoxVR 团队从 2019 年 2 月开始使用 Mirror,最终开发出了最热门的 Oculus Rift 游戏之一。
除了获得 Mirror 团队的 24/7 支持 外,BigBoxVR 还聘请了我们的其中一名工程师。
Population: ONE 于 2021 年 6 月被 Meta 收购,他们刚刚在 2022 年发布了新的 Sandbox 附加组件!
Zooba
Wildlife Studio's 热门游戏 Zooba 在美国移动市场最大的大逃杀射击游戏中排名第五。
该游戏在 Google Play 上的下载量超过 1 亿 次,Wildlife Studios 是全球十大移动游戏公司之一。
Swarm VR
SWARM 是一款快节奏、街机风格的抓钩射击游戏,拥有短小精悍的对局、色彩鲜艳的世界以及全球竞争性排行榜,将带您回到街机游戏的辉煌时代。
可在 Meta Quest 上使用,使用 Mirror 制作。
Liars Bar
凭借 Steam 上超过 20,000 条压倒性好评,Liars Bar 是我们 2024 年最大的展示游戏之一。
这可不是普通的酒馆——这里是谎言、欺骗和心理博弈的巢穴。在四人桌旁坐下,沉浸在这场终极第一人称多人在线体验中,在这里,狡黠与诡计才是游戏的精髓。
Castaways
Castaways 是一款沙盒游戏,你流落到一个偏远的小岛上,必须与他人合作生存并建立一个繁荣的新文明。
Castaway 得益于 Mirror 的 WebGL 支持,可在浏览器中运行。
Nimoyd
Nudge Nudge Games 的首款作品:这款色彩斑斓的末日开放世界沙盒游戏 Nimoyd 正在使用 Mirror 进行开发。
即将登陆 PC 和移动平台!
Project Z
Projekt Z 是一款第一人称合作生存射击游戏,背景设定在二战僵尸场景下的一个德国秘密岛屿上。游戏聚焦于“Projekt Z”的威胁,这是一个由纳粹秘密运行的计划,旨在将此前在该岛上发现的僵尸转化为武器,以帮助扭转战局,使纳粹德国占据优势。
即将发布!
Unleashed
来自 World of Warcraft、Kingdoms of Amalur 和 EverQuest 原班开发者的全新家庭友好型奇幻冒险。对抗黑暗势力,探索被狂野魔法吞噬的世界,并与朋友一起建造要塞,以在这个新世界增强你的力量。
由行业资深人士 Brian Birmingham 和 Irena Pereira 领导,Unleashed 正在使用 Mirror 开发他们的下一代冒险游戏!
在 X 上关注他们:https://twitter.com/UnleashingGames/
Dinkum
Dinkum 是一款设定在澳大利亚内陆的休闲农场与生存游戏。由仅一名开发者制作,Dinkum 在抢先体验发布一周后,已获得超过 1000 条“好评如潮”的评价。
James Bendon 最初使用 UNET 制作该游戏,随后在 2019 年 切换到了 Mirror。
A Glimpse of Luna
A Glimpse of Luna - 一款拥有最精美概念艺术和配乐的战术多人卡牌对战游戏。
由两兄弟使用 Mirror 制作,他们 此前没有任何游戏开发 经验。
Havoc
Havoc 是一款战术团队第一人称射击游戏,拥有完全可破坏的环境和独特的艺术风格。Havoc 多年来一直是我们最喜欢的使用 Mirror 制作的游戏之一,我们很高兴终于能在 Steam 上看到它。
Sun Haven
Sun Haven - 一座美丽的人类城镇、一个隐秘的精灵村庄,以及一座充满农耕、魔法、巨龙和冒险的怪物城市。
在 Kickstarter 众筹成功后,Sun Haven 于 2021 年在 Steam 上发布,并于 2022 年移植到 Mirror。
A Township Tale
A Township Tale 是一种沉浸式 VR 体验,你可以与朋友一起建造城镇并探索世界。
使用我们的 KCP 传输技术制作,已在 Meta Quest Store 上架,获得超过 6000+ 条评价。
Inferna
最早使用 Mirror 制作的 MMORPG 之一,于 2019 年发布。
一款开放世界体验,在巅峰时期拥有超过 1000 CCU,分布在多个服务器实例中。
Samutale
一款沙盒生存武士 MMORPG,最初于 2016 年 9 月发布。
后来,总部位于荷兰的 Maple Media 将其网络代码切换为 Mirror。
Another Dungeon
一款像素艺术地牢 MMORPG,在高峰时期达到 5000 CCU。
最初开发为单人放置游戏,得益于 Mirror,它在发布前三个月转型为 MMORPG!
Untamed Isles
这款回合制、怪物驯服 MMORPG Untamed Isles 目前正由 Phat Loot Studios 开发。
在 Kickstarter 众筹成功后,这家总部位于新西兰的工作室正瞄准 2022 年的发布日期。
Portals
《动物森友会》遇上《如龙》再遇上《我的世界》——一款以多人中央枢纽为核心的城市建造游戏。采集、交易与建造——全在浏览器中完成!
SCP: Secret Laboratory
Northwood Studios' 的首款作品:多人恐怖游戏 SCP: Secret Laboratory 是 Mirror 的早期采用者之一。
该游戏于 2017 年 12 月发布,如今在 Steam 上拥有超过 140,000 条评论。
Naïca Online
Naïca 是一款精美的免费 2D 像素艺术 MMORPG。
这支来自法国的团队是 Mirror 的早期采用者之一,于 2020 年 11 月发布了首个公开测试版。
Laurum Online
Laurum Online - 一款 2D 复古移动 MMORPG,在 Google Play 上的下载量超过 500,000 次。
Empires Mobile
Empires Mobile - 一款面向 Android 和 iOS 的复古移动 MMORPG,峰值同时在线人数曾达 5000。观看他们的视频,感受一些_早期 MMORPG_的怀旧情怀。
Overpowered
Overwpowered,一款激动人心的新卡牌游戏,将策略、神话与乐趣融合为一次扣人心弦的基于 Web 的体验。于 2023 年发布,使用 Mirror 制作!
还有更多...
模块化传输
Mirror 默认使用 KCP(可靠 UDP),但你可以使用我们社区提供的任何传输层进行底层数据包发送:
- (内置)KCP: 可靠 UDP
- (内置)Telepathy: TCP
- (内置)Websockets: Websockets
- Ignorance: ENET UDP
- LiteNetLib UDP
- FizzySteam: SteamNetwork
- FizzyFacepunch: SteamNetwork
- Epic Relay: Epic Online Services
- Bubble: Apple GameCenter
- Light Reflective Mirror: 自托管中继
基准测试
- [2022] mischa 400-800 CCU 测试
- [2021] Jesus' Benchmarks
- [2019] uMMORPG 480 CCU(最坏情况)
开发与贡献
Mirror 被从小型独立项目到拥有百万美元资金、将运行十年或更久的游戏等生产环境广泛使用。
我们倾向于缓慢且彻底地工作,以免破坏所有人的游戏 🐌。
因此,我们需要 KISS 😗。
信息安全
Mirror-Networking 遵循常见的信息安全行业标准与最佳实践。
Mirror 是免费开源软件(MIT 许可),测试覆盖率超过 80%。公司位于德国。我们不收集任何用户数据,不对用户和开发者施加任何限制,也不依赖除 Unity 以外的任何闭源依赖项。
这使得 Mirror 成为对信息安全要求严格的政府机构和大型企业的理想选择。
如有任何问题,或需要查阅我们的任何政策,请随时联系 business [at] mirror-networking.com:
- Development best Practices and SDLC.pdf
- Disaster Recovery Procedure.pdf
- Document Retention and Destruction Policy.pdf
- Encryption Policy.pdf
- Information Security Guidelines.pdf
- Privacy Policy
- Security Policy
- Vulnerability Management Policy.pdf
如果您决定使用 Mirror,请随时联系我们。
我们很期待了解您的项目,如有需要,我们很乐意提供帮助!
Incident Response & Bug Bounty
许多项目在生产环境中使用 Mirror。如果您在 Mirror 核心中发现了严重漏洞 / 利用方式,请按照我们 Security Policy 中概述的步骤操作。
致谢 / 过往发现 / 修复:
- 2020, fholm: 对 ConnectMessage 进行模糊测试以阻止进一步连接 [#2397]
- 2023-04-05: IncludeSec: kcp2k UDP spoofing [#3286]
- 2023-06-27: James Frowen: ClientToServer [SyncVar] allocation attacks
Credits & Thanks 🙏
🪞 Alexey Abramychev (UNET)
🪞 Alan
🪞 c6burns
🪞 Coburn
🪞 cooper
🪞 FakeByte
🪞 fholm
🪞 Gabe (BigBoxVR)
🪞 imer
🪞 James Frowen
🪞 JesusLuvsYooh
🪞 Mischa
🪞 Mr. Gadget
🪞 NinjaKickja
🪞 Paul Pacheco
🪞 Sean Riley (UNET)









