# Bravo：逆向实现的 Minecraft 服务端

> 以 Python 基于 Twisted 重新实现 Minecraft Alpha 与 Beta 时期多人游戏的服务端；其文档称这是从零编写的逆向实现，致谢了网络流量转储的提供者，并说明通用的 Minecraft 资料已贡献给社区 wiki。最终的 2.0 版支持 1.4.x 客户端协议，涵盖登录、区块传输、实体、服务端背包、光照、物理和 Anvil 存档，同时有意改变了区块加载和物品堆叠等行为。可插拔架构提供地形生成、季节和命令，另有几个小脚本用于查看数据包、NBT 和区域文件。

- 类型：案例
- 目标：游戏 · 协议
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-20
- 收录于：2026-11-02
- 原始资源：<https://github.com/bravoserver/bravo>
- 一手来源：<https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/README.rst>
- 目录页面：<https://awesomerea.org/zh/resources/bravo-minecraft-server-case/>
- 记录 JSON：<https://awesomerea.org/resources/bravo-minecraft-server-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/bravo-minecraft-server-case/index.md)

## 使用条件与局限

- 项目已停止维护：GitHub 简介标为 UNMAINTAINED，所审阅的 master 提交日期为 2014-09-09，比 2.0 标签（2013-01-10，也是 PyPI 上的最新版本）多 90 个提交。2.0 更新日志称新增 1.4.x 协议支持但不含服务端加密，停用了已失效的在线验证，并以 Anvil 取代 Alpha 和 Beta 存档格式；源码固定协议版本为 78。简介称运行创造模式大概是安全的，但仍缺少部分生存多人模式要素；功能列表等较早的页面早于这些 2.0 改动。
- 服务端不需要任何原游戏文件；玩家用自己拥有的对应版本 Minecraft 客户端连接，FAQ 表示 Bravo 不会替代客户端。仓库未提交游戏素材或 Mojang 代码：方块、物品和配方定义以 Python 表格写成，文档称 Bravo 未继承其他 Minecraft 项目的代码。
- 需要 Python 2.6 或 2.7（CPython 或 PyPy）；requirements.txt 固定 construct 2.0.6 和 Pillow 2.4.0，并要求 Twisted 11.0+（含 Twisted Conch），IRC 和网页插件另需 Twisted Words 或 Web。它以 twistd 的 bravo 插件运行，按 bravo.ini.example 配置世界路径、创造或生存模式及 anvil 序列化器；数据包解析脚本仍导入 2.0 之前的模块路径。
- Travis CI 曾在 Python 2.6、2.7 和 PyPy 上用 trial 运行仓库内针对协议数据包、区块、背包、插件和序列化器的测试。采用 MIT/X11 许可证，bravo/nbt.py 取自 Thomas Woolford 的 MIT 许可 NBT 库；Minecraft 及其客户端仍归 Mojang 所有。

## 一手来源

1. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/README.rst>
2. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/docs/introduction.rst>
3. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/docs/differences.rst>
4. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/CHANGELOG.rst>
5. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/bravo/beta/protocol.py>
6. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/bravo.ini.example>
7. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/requirements.txt>
8. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/.travis.yml>
9. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/LICENSE>
10. <https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/tools/parser-cli.py>
11. <https://pypi.org/project/Bravo/2.0/>

## 同分区更多条目：游戏

- [Chariot《帝国时代》引擎重实现](https://awesomerea.org/zh/resources/chariot/index.md) · 案例
- [CoD4 Rewrite：Rust/Bevy 游戏重建](https://awesomerea.org/zh/resources/cod4-rewrite-reconstruction-case/index.md) · 案例
- [CorsixTH：Theme Hospital 的开源重新实现](https://awesomerea.org/zh/resources/corsixth-engine-case/index.md) · 案例
- [Cursed Lands：用 Godot 重建《Evil Islands》与《Lost in Astral》引擎](https://awesomerea.org/zh/resources/cursed-lands-case/index.md) · 案例
- [Desktop Games Nostalgia：macOS 与浏览器移植](https://awesomerea.org/zh/resources/desktop-games-nostalgia-rea-port-case/index.md) · 案例
- [FreeRS42：重实现《Ricochet Xtreme》](https://awesomerea.org/zh/resources/freers42-ricochet-xtreme-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
