{
  "added_at": "2026-11-02",
  "additional_evidence_urls": [
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/docs/introduction.rst",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/docs/differences.rst",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/CHANGELOG.rst",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/bravo/beta/protocol.py",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/bravo.ini.example",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/requirements.txt",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/.travis.yml",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/LICENSE",
    "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/tools/parser-cli.py",
    "https://pypi.org/project/Bravo/2.0/"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reimplements the server side of Minecraft’s Alpha- and Beta-era multiplayer in Python on Twisted; its documentation calls it a reverse-engineered implementation written from scratch, credits network traffic dumps and says general Minecraft data went to a community wiki. The final 2.0 release speaks the 1.4.x client protocol for login, chunk transfer, entities, server-side inventories, lighting, physics and Anvil saves, while deliberately changing behaviour such as chunk loading and item stacking. A pluggable architecture adds terrain generation, seasons and commands, and small scripts inspect packets, NBT and region files.",
  "description_zh": "以 Python 基于 Twisted 重新实现 Minecraft Alpha 与 Beta 时期多人游戏的服务端；其文档称这是从零编写的逆向实现，致谢了网络流量转储的提供者，并说明通用的 Minecraft 资料已贡献给社区 wiki。最终的 2.0 版支持 1.4.x 客户端协议，涵盖登录、区块传输、实体、服务端背包、光照、物理和 Anvil 存档，同时有意改变了区块加载和物品堆叠等行为。可插拔架构提供地形生成、季节和命令，另有几个小脚本用于查看数据包、NBT 和区域文件。",
  "entry_url": "https://awesomerea.org/resources/bravo-minecraft-server-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/bravo-minecraft-server-case/",
  "evidence_url": "https://github.com/bravoserver/bravo/blob/7be5d792871a8447499911fa1502c6a7c1437dc3/README.rst",
  "group": "cases",
  "id": "bravo-minecraft-server-case",
  "json_url": "https://awesomerea.org/resources/bravo-minecraft-server-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/bravo-minecraft-server-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/bravo-minecraft-server-case/index.md",
  "name": "Bravo: a reverse-engineered Minecraft server",
  "name_zh": "Bravo：逆向实现的 Minecraft 服务端",
  "reconstruction_method": "engine-reimplementation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Unmaintained: the GitHub description marks the project UNMAINTAINED, and the reviewed master commit dates from 2014-09-09, 90 commits after the 2.0 tag (2013-01-10, also the latest PyPI release). The 2.0 changelog adds 1.4.x protocol support without server-side encryption, disables broken online authentication and replaces the Alpha and Beta save formats with Anvil; source pins protocol version 78. The introduction says creative games are probably safe but some Survival-Multiplayer elements are missing, and older pages such as the feature list predate these 2.0 changes.",
    "The server needs no original game files; clients connect with the matching Minecraft client the player owns, which the FAQ says Bravo will not replace. The repository commits no game assets or Mojang code: block, item and recipe definitions are written as Python tables, and the documentation says Bravo inherits no code from other Minecraft projects.",
    "Python 2.6 or 2.7 (CPython or PyPy); requirements.txt pins construct 2.0.6 and Pillow 2.4.0 and needs Twisted 11.0+, including Twisted Conch, with Twisted Words or Web for the IRC and web plugins. It runs as the twistd bravo plugin, configured from bravo.ini.example with a world path, creative or survival mode and the anvil serializer; the packet-parser script still imports a pre-2.0 module path.",
    "Travis CI ran trial over the in-tree tests for protocol packets, chunks, inventories, plugins and serializers on Python 2.6, 2.7 and PyPy. MIT/X11 license, with bravo/nbt.py taken from Thomas Woolford’s MIT NBT library; Minecraft and its client keep Mojang’s rights."
  ],
  "requirements_zh": [
    "项目已停止维护：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 所有。"
  ],
  "targets": [
    "game",
    "protocol"
  ],
  "url": "https://github.com/bravoserver/bravo",
  "verification": "source-reviewed",
  "verified_at": "2026-10-20"
}
