客户端游戏 活跃维护

Mirror

MirrorNetworking/Mirror

#1 开源 Unity 网络库

6351
Stars 标星
872
Forks 分支
103
Watchers 关注
70
Open Issues
C#
主要语言
MIT
开源协议
407.9 MB
仓库大小
15 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:MirrorNetworking/Mirror
git clone https://github.com/MirrorNetworking/Mirror.git
git clone git@github.com:MirrorNetworking/Mirror.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。


只有梦想家才能真正移山。

镜像网络

适用于 Unity 的 #1 免费开源 游戏网络库,已有超过 2 亿玩家使用。

为像 Population: ONE 以及超过 1000 款 Steam 游戏 等热门游戏提供 动力。

最初基于 UNET:自 2014 年 起经过战斗测试,已有 10 年历史,仍在持续!

Mirror 对所有类型的游戏来说都是 稳定、模块化 和 易于使用 的,即使是小型 MMORPG 也适用 🎮。

在 🇩🇪🇺🇸🇬🇧🇸🇬🇹🇼 用 ❤️ 制作。


功能

Mirror 提供多种功能以支持所有游戏类型。
我们的许多功能迅速成为所有 Unity 网络代码的标准!

功能 描述 状态
🎛 传输 UDP、TCP、Websockets、Steam、中继等。 稳定
🪜 兴趣管理 使用空间哈希和距离检查来划分世界。 稳定
↗️ 同步方向 服务器与客户端权限 - 每个组件一键设置。 稳定
🐌 延迟模拟 在本地模拟延迟、数据包丢失和抖动。 稳定
🧲 批处理 通过自动批处理最小化消息开销。 稳定
💌 RPC与同步变量 内置同步变量和远程函数调用,安全可靠。 稳定
🙅‍♀️ 无分配 运行时无分配且无垃圾回收(传输除外)。 稳定
🛞 变换与物理 内置变换与物理同步。 稳定
👩‍🍼 子组件 可以将网络组件放置在任意对象上。 稳定
🪚️ IL后处理 通过IL后处理实现[Rpcs]和[Commands]零开销! 稳定
☁️ 两步托管 (可选)直接从Unity编辑器构建并推送到云端。 稳定
📏 快照插值 为所有平台和类型提供完美流畅的移动。 稳定
🔫 延迟补偿 回滚状态以查看玩家在输入时看到的内容。 测试版
🔒 加密 使用端到端加密进行安全通信。 测试版
🔒 作弊检测 Mirror Guard 安全检测 Melon Loader 及更多内容。 测试版
🚀 不可靠模式 Quake 风格的任何组件不可靠同步模式。 开发中
🧙‍♂️ 通用用途 Mirror 支持你所有游戏的所有类型!
🧘‍♀️ 稳定 API 提供长期(10 年)稳定性,而不是频繁推出新版本!
🔬 经过实战考验 Mirror 服务超过 1 亿玩家,运行可靠!
💴 免费与开源 MIT 许可,无任何限制,以降低风险!
❤️ 社区 加入我们的 Discord 社区,与全球近 15,000 名开发者交流!
🧜🏻‍♀️ 长期支持 自 2014 年起维护,并提供可选的 LTS 版本!
📐 位打包 优化压缩(布尔值占用 1 位等) 研究中
🏎 预测 本地模拟物理并应用服务器修正。 研究中

架构

服务器和客户端 是 一个项目 以实现最大生产力。

只需使用 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 名用户,每天贡献反馈和改进。请加入我们的旅程,帮助他人,如果你喜欢我们的工作,请考虑 捐赠!

上方的引用来自《菲茨卡拉多》,这与本项目颇为相似。


入门指南

获取 Unity 2019 / 2020 / 2021 / 2022 LTS 和 6000.1,下载 Mirror,打开其中一个示例并按播放!

查看我们的文档以了解它的工作原理。

如果你正在从 UNET 迁移,请查看我们的迁移指南。


Guard - 反作弊 🔒

Guard 是专为 Unity 游戏构建的高效、零风险反作弊解决方案。与大多数商业反作弊不同,Guard 嵌入在源代码级别,并随项目一起编译。

Guard 可在 Asset Store 获取,并包括 Mirror 集成!


使用镜像制作

成千上万款Steam游戏

Mirror 被 成千上万的 Steam 游戏 使用。

人口:ONE

BigBoxVR 团队在 2019 年 2 月开始使用 Mirror,最终开发出了 Oculus Rift 上最受欢迎的游戏之一。

除了 Mirror 团队提供的全天候支持之外,BigBoxVR 还雇佣了我们的其中一名工程师。

人口:ONE 于 2021 年 6 月被 Meta 收购,他们在 2022 年刚刚发布了一个新的 Sandbox 插件!

Zooba

Wildlife Studio 的热门游戏 Zooba 在美国移动市场上成为最大的大逃杀射击游戏中的第五名。

该游戏在 Google Play 上的下载量超过 1 亿 次,Wildlife Studios 是全球十大最大移动游戏公司之一。

Swarm VR

带枪的蜘蛛侠!

《SWARM》是一款节奏快速、街机风格的抓取射击游戏,拥有快速的游戏节奏、色彩鲜艳的世界和全球竞争排行榜,让你重回街机游戏的辉煌时代。

适用于 Meta Quest,由 Mirror 制作。

骗子酒吧


在Steam上拥有超过2万条极为正面的评论,《Liars Bar》是我们2024年最大的展示游戏之一。

这可不是普通的酒吧——这里是谎言、欺骗和心理游戏的巢穴。坐在四人桌旁,沉浸在终极第一人称多人在线体验中,狡诈与欺骗是游戏的核心。

流浪者

遗落荒岛 是一款沙盒游戏,你将被流放到一个偏远的小岛上,在那里你必须与他人合作生存,并建立一个繁荣的新文明。

Castaway 可以在浏览器中运行,这得益于 Mirror 的 WebGL 支持。

Nimoyd

Nudge Nudge Games 的首款作品:色彩丰富的末日后开放世界沙盒游戏 Nimoyd 正在使用 Mirror 开发。

Soon将登陆PC和移动端!

Project Z

Projekt Z是一款第一人称合作生存射击游戏,背景设定在二战期间德国一座秘密岛屿上的僵尸场景。游戏聚焦于“Projekt Z”的威胁,这是纳粹秘密运营的程序,旨在将早前在岛上发现的僵尸转化为武器,帮助扭转战争局势,向纳粹德国倾斜。

Soon即将发布!

释放

来自《魔兽世界》、《阿玛拉王国》和《无尽的任务》的原开发者,带来一款全新的适合家庭的奇幻冒险。与黑暗势力抗争,探索被狂野魔法吞噬的世界,与朋友们一起建立要塞,增强你在新世界中的力量。

由业界资深人士Brian Birmingham和Irena PereiraLead,Unleashed正在开发他们的次世代冒险游戏,这款游戏用Mirror!

在X: https://twitter.com/UnleashingGames/ 关注他们

Dinkum

《Dinkum》设定在澳大利亚内陆,是一款轻松的农耕与生存游戏。仅由一位开发者制作,抢先体验一周后就已获得1000条“压倒性正面”评价。

James Bendon 最初使用 UNET 制作了这款游戏,然后在 2019 年转向了 Mirror。

月亮一瞥

A Glimpse of Luna - 一款战术多人卡牌对战游戏,拥有最美的概念艺术和原声音乐。

由两兄弟使用 Mirror 制作,他们没有任何游戏开发经验。

Havoc

《Havoc》是一款战术团队第一人称射击游戏,拥有完全可破坏的环境和独特的艺术风格。《Havoc》多年来一直是我们最喜欢的使用Mirror制作的游戏之一,我们很高兴终于看到它在Steam上发布。

阳光谷

Sun Haven - 一个美丽的人类城镇,一个隐藏的精灵村庄,以及一个充满农业、魔法、龙和冒险的怪物城市。

在他们成功的Kickstarter之后,《Sun Haven》于2021年在Steam发布,并于2022年移植到Mirror。

一个小镇的故事

《A Township Tale》是一款沉浸式的VR体验,你可以和朋友一起建造城镇并探索世界。

使用我们的KCP传输制作,可在Meta Quest商店获取,拥有超过6000条评分。

Inferna

这是使用Mirror制作的首批MMORPG之一,于2019年发布。

一款开放世界的体验,在高峰期拥有超过1000的CCU,分布在多个服务器实例中。

Samutale

一款沙盒生存武士MMORPG,最初于2016年9月发布。

随后,总部位于荷兰的Maple Media将其网络代码切换至Mirror。

另一个地下城

像素风格地牢MMORPG,高峰时期达到5000 CCU。

最初开发为单人挂机游戏,但 thanks to Mirror,在发布前三个月成功转型为MMORPG!

狂野岛屿

回合制、怪物驯养MMORPGUntamed Isles目前由Phat Loot Studios开发。

在他们成功的Kickstarter之后,这家新西兰工作室预计将在2022年发布。

Portals

动物之森遇上如龙再遇上我的世界——一个带多人中心枢纽的城市建设游戏。收集、交易和建造——一切都在浏览器中!

SCP: 秘密实验室

Northwood Studios' 首款游戏:多人恐怖游戏 SCP: Secret Laboratory 是 Mirror 的早期用户之一。

2017 年 12 月发布,如今在 Steam 上已有超过 140,000 条评价。

Naïca 在线

Naïca 是一款漂亮的免费 2D 像素风格 MMORPG。

法国团队 是 Mirror 的早期用户之一,于 2020 年 11 月发布了他们的第一次公开测试。

Laurum 在线

Laurum Online——一款 2D 复古风格的移动 MMORPG,在 Google Play 上下载量超过 500,000。

帝国手游

Empires Mobile——Android 和 iOS 的复古移动 MMORPG,有时可达 5000 CCU。查看他们的视频感受一些早期 MMORPG 怀旧风情。

压制

Overwpowered,这款令人兴奋的新卡牌游戏将策略、神话和乐趣融合到一个引人入胜的网页体验中。于2023年推出,由Mirror制作!

以及更多...

模块化传输

Mirror 默认使用 KCP(可靠 UDP),但你可以使用我们社区的任何传输方式进行低级数据包发送:

基准测试

开发与贡献

Mirror 在生产中被从小型独立项目到运行十年甚至更久的数百万美元资助游戏的所有人使用。

我们更喜欢慢而彻底地工作,以免弄坏每个人的游戏 🐌。

因此,我们需要 KISS 😗。


信息安全

Mirror-Networking 遵循通用的信息安全行业标准和最佳实践。

Mirror 是免费的开源软件(MIT 许可),测试覆盖率超过 80%。公司位于德国。我们不收集任何用户数据,对用户和开发者不施加任何限制,也不依赖除 Unity 之外的任何闭源依赖。

这使得 Mirror 成为政府机构和有严格信息安全要求的大型企业的理想选择。

如果您有任何问题,或者需要查看我们的任何政策,请随时通过业务邮箱 [at] mirror-networking.com 联系我们:

  • 开发最佳实践和 SDLC.pdf
  • 灾难恢复流程.pdf
  • 文档保留与销毁政策.pdf
  • 加密政策.pdf
  • 信息安全指南.pdf
  • 隐私政策
  • 安全政策
  • 漏洞管理政策.pdf

如果您决定使用 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)

本站来源与版权声明
  • 本文标题:Mirror - #1 开源 Unity 网络库
  • 本文链接:https://cn121.com/clientgame/mirrornetworking-mirror.html
  • 原项目:MirrorNetworking/Mirror 版权归原作者 MirrorNetworking 及贡献者所有
  • 收录信息:本站于 2026-10-05 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 MirrorNetworking/Mirror。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。