只有梦想家才能移山。
Mirror网络
Unity 2019 / 2020 / 2021 / 2022 LTS的第一免费开源游戏网络库。
已被Population: ONE等主要热门游戏实际应用于生产环境,以及更多。
最初基于UNET:自2014年以来经过战斗考验长达10年!
Mirror**稳定、模块化且易于使用**,适用于所有类型的游戏,甚至小型MMORPG 🎮。
在🇩🇪🇺🇸🇬🇧🇸🇬🇹🇼用❤️制作。
特性
Mirror提供了广泛的功能,支持所有游戏类型。
我们的许多功能很快成为所有Unity网络代码的标准!
特性 | 描述 | 状态 |
---|---|---|
🎛 传输 | UDP、TCP、WebSockets、Steam、中继等。 | 稳定 |
🪜 兴趣管理 | 空间哈希和距离检查器用于分区世界。 | 稳定 |
↗️ 同步方向 | 服务器和客户端权限 - 每个组件一键设置。 | 稳定 |
🐌 延迟模拟 | 在本地模拟延迟、丢包和抖动。 | 稳定 |
🧲 批处理 | 通过自动批处理最小化消息开销。 | 稳定 |
💌 RPCs和SyncVars | 内置安全的同步变量和远程函数调用。 | 稳定 |
🙅♀️无分配 | 运行时无分配,无GC(传输除外)。 | 稳定 |
🛞 变换和物理 | 内置变换和物理同步。 | 稳定 |
👩🍼 子组件 | 可在任何物体上添加网络组件。 | 稳定 |
🪚️ IL后处理 | 通过IL后处理实现零开销的[Rpcs]和[Commands]! | 稳定 |
☁️ 两键托管 | (可选)直接从Unity编辑器构建和推送到云端。 | 预览 |
📏 快照插值 | 适用于所有平台和所有游戏的完美平滑移动。 | 稳定 |
🏎 预测 | 在本地模拟物理并应用服务器校正。 | 研究中 |
🔫 延迟补偿 | 回滚状态以查看玩家在输入时看到的内容。 | 测试版 |
🧙♂️ 通用性 | Mirror支持所有类型的游戏! | |
🧘♀️ 稳定API | 长期(10年)稳定性,而非新版本! | |
🔬 经过战斗考验 | Mirror服务超过1亿玩家。它就是有效! | |
💴 免费和开源 | MIT许可,无任何限制,最大程度降低风险! | |
❤️ 社区 | 加入我们的Discord,与全球近15,000名开发者交流! | |
🧜🏻♀️ 长期支持 | 自2014年以来一直在维护,可选LTS版本! | |
🔒 加密 | 使用端到端加密进行安全通信。 | 预览 |
📐 位打包 | 优化压缩(布尔值用1位表示等) | 研究中 |
架构
服务器和客户端是同一个项目,以实现最高生产力。
只需使用NetworkBehaviour代替MonoBehaviour。
以这种方式制作多人游戏既有趣又简单:
public class Player : NetworkBehaviour
{
// 自动同步
[SyncVar] public int health = 100;
// 列表、字典、集合等也可以
SyncList<Item> inventory = new SyncList<Item>();
// 仅服务器/客户端代码
[Server] void LevelUp() {}
[Client] void Animate() {}
void Update()
{
// isServer/isClient用于运行时检查
if (isServer) Heal();
if (isClient) Move();
}
// 零开销远程调用
[Command] void CmdUseItem(int slot) {} // 客户端到服务器
[ClientRpc] void RpcRespawn() {} // 服务器到所有客户端
[TargetRpc] void Hello() {} // 服务器到一个客户端
}
还有NetworkServer和NetworkClient。
就这么简单 🤩
免费、开源和以社区为中心
Mirror是免费和开源的(MIT许可)。
🍺 "免费"意味着免费使用,以及可以自由地以任何方式使用它。
- 在任何地方托管游戏服务器!
- 自由定制任何内容!
- 没有付费墙,没有CCU成本,没有任何附加条件!
🤝 我们是一群专业游戏开发者,受雇在生产环境中使用Mirror。我们的动机始终与社区保持一致,因为我们和你一样都是Mirror的用户! ❤️ 我们拥有超过14,000名用户的优秀社区每天都在贡献反馈和改进。请加入我们的旅程,帮助他人,如果你喜欢我们的工作,请考虑捐赠!
上面的引言来自《疯狂的心》,这与本项目颇为相似。
入门指南
获取 Unity 2019 / 2020 / 2021 / 2022 LTS,下载 Mirror,打开其中一个示例并按下播放键!
查看我们的文档了解它是如何工作的。
如果你正从 UNET 迁移,请查看我们的迁移指南。
Mirror LTS(长期支持版)
Mirror LTS 可在 Asset Store 上获取。
Mirror LTS 让你可以安心地在生产环境中运行你的游戏。 永远不会有任何破坏性变更!
- 仅进行错误修复。
- 一致的 API:随时更新,没有任何破坏性功能。
- 与 Unity 2019/2020/2021 LTS 版本兼容。
- 每次支持两年。
使用 Mirror 制作的游戏
Population: ONE
BigBoxVR 团队从 2019 年 2 月开始使用 Mirror,最终成为最受欢迎的 Oculus Rift 游戏之一。
除了来自 Mirror 团队的全天候支持外,BigBoxVR 还聘请了我们的一名工程师。
Population: ONE 于 2021 年 6 月被 Meta 收购,他们刚刚在 2022 年发布了新的 Sandbox 附加内容!
Zooba
Wildlife Studio 的热门游戏 Zooba 在美国手机市场最大的大逃杀射击游戏中排名第五。
该游戏在 Google Play 上的下载量超过1 亿次,Wildlife Studios 是世界上十大手机游戏公司之一。
Swarm VR
SWARM 是一款快节奏的街机风格抓钩射击游戏,拥有快速的游戏环节、明亮多彩的世界和全球竞争的排行榜,将带你回到街机游戏的辉煌时代。
适用于 Meta Quest,使用 Mirror 制作。
Castaways
Castaways 是一款沙盒游戏,你被抛到一个偏远的小岛上,必须与他人合作以生存并建立一个繁荣的新文明。
Castaway 可以在浏览器中运行,这要归功于 Mirror 对 WebGL 的支持。
Nimoyd
Nudge Nudge Games 的首款作品:色彩丰富的后启示录开放世界沙盒游戏 Nimoyd 正在使用 Mirror 开发。
即将在 PC 和移动端发布!
Unleashed
来自《魔兽世界》、《阿玛拉王国》和《无尽的任务》的原开发者带来一款全新的适合全家人的奇幻冒险游戏。与黑暗势力战斗,探索被野性魔法吞噬的世界,与朋友一起建造要塞来增强你在新世界中的力量。
在业界资深人士 Brian Birmingham 和 Irena Pereira 的领导下,Unleashed 正在使用 Mirror 开发他们的下一代冒险游戏!
在 X 平台上关注他们:https://twitter.com/UnleashingGames/
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,分布在多个服务器实例中。
Samutale
一款沙盒生存武士 MMORPG,最初于 2016 年 9 月发布。 后来,荷兰的Maple Media将他们的网络代码切换到Mirror。
Another Dungeon
像素风地牢MMORPG,高峰时期同时在线人数达到5000。
原本开发为单人闲置游戏,在发布前三个月多亏Mirror成功转型为MMORPG!
未驯之岛
回合制怪兽驯养MMORPG未驯之岛目前正由Phat Loot Studios开发中。
在成功进行众筹后,这家新西兰工作室计划于2022年发布游戏。
Portals
动物之森遇上如龙遇上我的世界 —— 一款拥有多人中心枢纽的城市建造游戏。在浏览器中收集、交易和建造!
SCP: 秘密实验室
Northwood Studios的首款作品:多人恐怖游戏SCP: 秘密实验室是Mirror的早期采用者之一。
于2017年12月发布,如今在Steam上拥有超过14万条评论。
Naïca Online
Naïca是一款精美的免费2D像素风MMORPG。
这个法国团队是Mirror的早期采用者之一,于2020年11月发布了首个公开测试版。
Laurum Online
Laurum Online - 一款2D复古移动MMORPG,在Google Play上下载量超过50万。
Empires Mobile
Empires Mobile - 面向安卓和iOS的复古移动MMORPG,同时在线人数有时达到5000。看看他们的视频,感受一下_早期MMORPG_的怀旧氛围。
Overpowered
Overwpowered,一款令人兴奋的新卡牌游戏,将策略、神话和乐趣融为一体,打造出引人入胜的网页游戏体验。于2023年推出,使用Mirror开发!
还有更多...
模块化传输
Mirror 默认使用 KCP(可靠的 UDP),但您也可以使用我们社区提供的任何传输方式进行底层数据包发送:
- (内置)KCP:可靠的 UDP
- (内置)Telepathy:TCP
- (内置)Websockets:Websockets
- Ignorance:ENET UDP
- LiteNetLib UDP
- FizzySteam:Steam 网络
- FizzyFacepunch:Steam 网络
- Epic Relay:Epic 在线服务
- Bubble:Apple GameCenter
- Light Reflective Mirror:自托管中继
- Oculus P2P:Oculus 平台服务
基准测试
- [2022] mischa 400-800 CCU 测试
- [2021] Jesus 的基准测试
- [2019] uMMORPG 480 CCU(最坏情况)
开发与贡献
Mirror 被从小型独立项目到资金上百万美元、将运营十年或更长时间的游戏等各类项目实际应用于生产环境中。
我们倾向于缓慢而彻底地工作,以避免破坏所有人的游戏 🐌。
因此,我们需要遵循 KISS 原则 😗。
信息安全
Mirror-Networking 遵循通用的信息安全行业标准和最佳实践。
Mirror 是免费的开源软件(MIT 许可证),拥有超过 80% 的测试覆盖率。公司位于德国。我们不收集任何用户数据,不对用户和开发者施加任何限制,也不依赖于除 Unity 之外的任何闭源依赖项。
这使得 Mirror 成为政府机构和具有严格信息安全要求的大型企业的理想选择。
如果您有任何问题,或需要查看我们的任何政策,请随时联系 business [at] mirror-networking.com:
如果您决定使用 Mirror,请联系我们。
我们很高兴听到您的项目,并在需要时提供帮助!
事件响应和漏洞赏金计划
许多项目在生产环境中使用 Mirror。如果您在 Mirror 核心中发现了严重的漏洞/漏洞利用,请按照我们的安全政策中概述的步骤进行操作。
致谢/过往发现/修复:
- 2020,fholm:模糊测试 ConnectMessage 以阻止进一步连接 [#2397]
- 2023-04-05:IncludeSec:kcp2k UDP 欺骗 [#3286]
- 2023-06-27:James Frowen:ClientToServer [SyncVar] 分配攻击
致谢 🙏
🪞 Alexey Abramychev(UNET)
🪞 Alan
🪞 c6burns
🪞 Coburn
🪞 cooper
🪞 FakeByte
🪞 fholm
🪞 Gabe(BigBoxVR)
🪞 imer
🪞 James Frowen
🪞 JesusLuvsYooh
🪞 Mischa
🪞 Mr. Gadget
🪞 NinjaKickja
🪞 Paul Pacheco
🪞 Sean Riley(UNET)