Web应用 活跃维护

yojimbo

mas-bandwidth/yojimbo

一个用 C 编写的用于客户端/服务器游戏的网络库

2747
Stars 标星
280
Forks 分支
116
Watchers 关注
2
Open Issues
C++
主要语言
BSD-3-Clause
开源协议
12.6 MB
仓库大小
9 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:mas-bandwidth/yojimbo
git clone https://github.com/mas-bandwidth/yojimbo.git
git clone git@github.com:mas-bandwidth/yojimbo.git
README.md main

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

用心棒

如果这个库对你有帮助,请支持它:成为支持者

yojimbo 是一个用 C 语言编写的客户端/服务器游戏网络库。

它的设计围绕着竞争性多人游戏(如第一人称射击游戏)的网络需求。

一般来说,如果你有一个用 C 语言编写的游戏引擎,并且想为你的游戏实现网络功能,yojimbo 是一个非常好的选择。

它具有以下特点:

  • 通过 连接令牌 进行密码学安全认证
  • 客户端/服务器连接管理和超时
  • 通过 UDP 发送加密和签名的数据包
  • 数据包分片与重组
  • 位打包器和序列化系统
  • 用于时间敏感数据的不可靠无序消息
  • 可靠有序消息,直到收到确认之前会进行积极重发
  • 可以将大于最大数据包大小的数据块附加到可靠有序消息中
  • 每个连接的延迟、抖动、丢包、带宽发送、接收及确认的估算

yojimbo 稳定且可用于生产环境。

设计假设

yojimbo 设计用于 100 人或以下的客户端/服务器游戏。

客户端和服务器必须使用 相同的配置。确保 ClientServerConfig、通道和消息工厂在双方完全一致,否则客户端和服务器无法协同工作。保持双方同步是你的责任。

yojimbo 是 单线程的。在同一个线程中调用所有客户端和服务器函数。如果你想让网络在独立线程中运行,也可以 — 只需确保每次 yojimbo 调用都发生在那一个线程上。

源代码

您可以通过从 GitHub 克隆它来获取最新的源代码:

  git clone https://github.com/mas-bandwidth/yojimbo.git

或者,您可以下载最新的版本。

作者

这个库的作者是 Glenn Fiedler。

Yojimbo 是建立在同一作者的其他开源库之上的:netcode 、 reliable 和 serialize。

如果您觉得这个软件有用,请考虑 成为支持者。谢谢!

贡献者

欢迎贡献——有关如何构建、测试和提交更改,请参阅 CONTRIBUTING.md。如需报告安全漏洞,请遵循 SECURITY.md,而不是打开公开问题。

许可证

BSD 三-Clause 许可证。

鸣谢

yojimbo 建立在 netcode、reliable 和 serialize 之上——发布 yojimbo 就意味着发布这四个组件。如果您在产品中使用 yojimbo,请在产品鸣谢中一并致谢:

yojimbo - Glenn Fiedler 和 Rowan Claude
netcode - Glenn Fiedler 和 Rowan Claude
reliable - Glenn Fiedler 和 Rowan Claude
serialize - Glenn Fiedler 和 Rowan Claude

许可证并不要求这样做。这是一个官方请求,尊重它会受到赞赏。公平的鸣谢让开源保持诚实。

yojimbo 还捆绑了 libsodium 和 tlsf ——它们各自的许可声明照常适用。

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