# Minecraft 游戏技术 | EaseCation

Source: https://www.easecation.net/technology/minecraft

Language: zh-Hans

> 了解 EaseCation 的服务端集群、Java 与基岩版适配、开发工具和回放系统，以及相关公开项目。

[技术总览](https://www.easecation.net/technology)

# Minecraft 游戏技术

我们开发游戏框架，维护服务端与客户端，也制作开发工具。这些工作支撑着 EaseCation 的原创玩法。

![EaseCation 起床战争主题插画，包含玩家、建筑和床](https://static.easecation.net/website/media/objects/5cc0e1a607d2b5b47e99bd516dd62ac9d05fb1f53fefd284da67fac440881907.webp)

起床战争 · 玩法主题插画

## 服务端与集群

代理处理登录与连接，集群控制服务分配房间，Nukkit 运行玩法。CodeFunCore 把房间、玩家状态和跨服通信接在一起。

### 统一管理房间

创建、等待、开局、结算和清理由同一套框架处理。起床战争、圣符传说、生化大逃杀和灾难游戏各自实现规则、队伍、地图与表现。

### 独立调整匹配

Matcher 选择房间，ECMaster 在入场前检查状态与容量。匹配考虑组队完整性和等待时间，也支持补位与教学机器人；已开局的房间继续独立运行。

### 共用玩家服务

账号、权限、好友、公会、任务和经济由共用服务维护。切换游戏时，玩家继续使用同一套数据；配置与多语言也由公共模块处理。

### 连接与调度

玩家连接

1.  **玩家客户端**
    
    基岩版 · Java 版经适配接入
    
2.  **代理入口**
    
    Nemisys / Synapse
    
3.  **大厅与游戏房间**
    
    Nukkit + CodeFunCore
    

**ECMaster + Matcher**

分配房间、检查容量、协调转服

账号与社交 · 任务与经济 · 配置与多语言

玩家连接经过代理进入游戏服。ECMaster 与 Matcher 负责后台调度；图中省略 Java 接入所需的协议转换。

### Matcher：兼顾实力差、等待与组队

起床战争的高低峰流量不同，分池过细会留下多个半满房。总空位足够，也不一定能容纳一整支队伍。选房和分队需要分别处理这些约束。

自适应选房

用快、慢两组指数移动平均（EWMA）估计玩家到达率，再结合预计开局时间、实力差和建房成本，对可用房间加权排序。

组队约束下的分队

入房后由游戏服另行分队：队伍容量内的 Party 保持完整，用有界搜索先平衡人数，再通过整组交换比较实力分布与组队负载。

补位与教学分开计算

等待压力与学习需求分别计入决策，共用有限的 Bot 配额。补位帮助已有房间开局，教学面向有学习需求的玩家；Bot 对局不更新真人隐藏实力。

算法参数与玩家体验效果仍通过离线模拟、影子决策和线上试验持续验证。

### 游戏内 Bot 与 MoBrain

起床战争 Bot 会收集资源、购买装备、搭路、护床、破床和 PvP。Matcher 负责匹配中的 Bot 安排，MoBrain 驱动局内行为，根据血量、装备和周围威胁选择行动。

[GitHub · mobrain](https://github.com/EaseCation/mobrain)尚未开源，计划开放

1.  **感知**
    
    发现敌人，记录装备与床的威胁
    
2.  **行为决策**
    
    行为树与效用评分选择行动
    
3.  **移动执行**
    
    异步 A\* 寻路，执行跳跃、搭路与破障
    

AI 决策树选择目标和动作，移动执行树负责到达目标。两者通过共享上下文协作，平台适配层对接 Nukkit 的实体、物品和方块操作。

-   [Nukkit](https://github.com/EaseCation/Nukkit)
    
    维护基岩版服务端分支
    
-   [Nemisys](https://github.com/EaseCation/Nemisys)
    
    Synapse 代理服务
    
-   [SynapseAPI](https://github.com/EaseCation/SynapseAPI)
    
    服务端代理连接与集成
    
-   [Network](https://github.com/EaseCation/Network)
    
    网络通信组件
    
-   [ease\_chat](https://github.com/EaseCation/ease_chat)
    
    跨服频道消息
    

## 跨版本体验

协议连接之外，模型、界面、动画和操作也需要适配。我们同时维护 Java 客户端接入基岩服务端，以及 Java 内容转换到基岩端的工具。

### Java 客户端接入基岩版服务端

1.  **基岩版服务端**
    
    玩法、实体与资源
    
2.  **ViaProxy + ViaBedrock**
    
    转换协议并传递扩展数据
    
3.  **Java 客户端与扩展**
    
    显示模型、界面与动画
    

### Java 资源适配基岩版客户端

1.  **ItemsAdder**
    
    美术与配置源文件
    
2.  **转换工具 + Geyser 映射**
    
    生成基岩模型与资源包
    
3.  **基岩版客户端**
    
    使用自定义方块与物品
    

两条链路分别处理客户端接入和资源转换。各项目的支持版本与功能范围见仓库说明。

### 模型与动画

在 Java 客户端呈现基岩自定义实体、皮肤和骨骼动画。BedrockMotion 与 MoLang 运行时处理动画计算，远处实体可降低动画更新频率。

-   [ViaBedrockUtilityNeoForge](https://github.com/EaseCation/ViaBedrockUtilityNeoForge)
-   [BedrockMotion](https://github.com/EaseCation/BedrockMotion)
-   [mocha](https://github.com/EaseCation/mocha)

### 界面与交互

把服务端驱动的 HUD 和菜单呈现在 Java 客户端，处理布局、按钮与动态更新。客户端设置集中管理显示和操作选项。

-   [ModUIClient](https://github.com/EaseCation/ModUIClient)
-   [ECClientSettingsNeoForge](https://github.com/EaseCation/ECClientSettingsNeoForge)

### 光照与配置

针对跨协议链路重算客户端光照，并限制后台计算的工作量。将配置、资源包和着色器目录持久保存，方便多版本与多实例共存。

-   [ECClientLightNeoForge](https://github.com/EaseCation/ECClientLightNeoForge)
-   [ECConfigRedirectNeoForge](https://github.com/EaseCation/ECConfigRedirectNeoForge)

### 资源与地图

从同一份 ItemsAdder 产物生成 Geyser 映射与基岩资源包。模型转换库和地图转换插件，帮助制作人员复用已有资源。

-   [itemsadder-bedrock-convertor](https://github.com/EaseCation/itemsadder-bedrock-convertor)
-   [mc-model-geo](https://github.com/EaseCation/mc-model-geo)
-   [ChunkerSpigot](https://github.com/EaseCation/ChunkerSpigot)

[ViaBedrock · 查看协议适配分支](https://github.com/EaseCation/ViaBedrock)

## 开发与内容制作

把依赖、构建和调试整理成固定流程，把反复使用的界面、镜头和关卡逻辑做成工具。开发者和内容制作人员可以复用同一套基础。

### mcpywrap：开发、运行与调试

管理中国版 Addon 的代码与资源依赖，构建发布包，启动测试世界，再读取日志和调试运行中的游戏。

1.  **管理依赖**
    
    复用代码与资源
    
2.  **构建打包**
    
    生成 Addon 或地图包
    
3.  **运行游戏**
    
    启动独立测试实例
    
4.  **检查与调试**
    
    日志、运行时检查与热更
    

修改项目后可重新构建、运行和验证；具体热更能力取决于引擎版本与平台。

#### Windows 与 Apple Silicon macOS

Windows 使用 MC Studio 引擎。macOS 开发运行环境基于 mcpelauncher 维护分支，支持指定网易开发者 APK 的本地测试世界。

-   [mcpywrap](https://github.com/EaseCation/mcpywrap)
    
    项目管理与调试工具
    
-   [mcpelauncher-manifest](https://github.com/EaseCation/mcpelauncher-manifest)
    
    macOS 开发运行环境
    

### 界面与文字

UI Studio 在 Blockbench 中提供嵌套图层、自动布局和九宫格，文字插件支持字体与排版编辑。保存为标准 bbmodel 后，无需插件也能查看成品；当前侧重静态界面设计。

-   [blockbench-ui-studio](https://github.com/EaseCation/blockbench-ui-studio)
-   [blockbench-bbmodel-text](https://github.com/EaseCation/blockbench-bbmodel-text)

### 镜头与场景

ECCamera 把 Blockbench 相机关键帧用于游戏运镜，支持多种插值、景深、晕影和视场角。场景工具辅助整理骨骼与导出动画。

-   [ECCamera](https://github.com/EaseCation/ECCamera)
-   [blockbench-scene-tool](https://github.com/EaseCation/blockbench-scene-tool)

### 剧情与关卡

GracefulStage 用嵌套状态机组织游戏流程。圣符传说通过配置编排对话、战斗与引导；NPC Studio 支持游戏内调试。状态机方法也整理成了中国版开发组件。

-   [GamingStateNetEaseModPart](https://github.com/EaseCation/GamingStateNetEaseModPart)

## 记录、验证与持续维护

对局结束后，赛果更新账号、任务、经济和排行榜。记录与回放用于复盘和核对举报，测试与监控帮助检查每次改动。

### 回放与复核

Ghosty 记录玩家路线与交互。GhostyPaperRecorder 将 Paper 上的部分 PvP 行为记录为兼容格式；NeoForgeReplay 移植录制、镜头控制与渲染功能。

### 测试与发布

游戏配置可以单独更新。代码改动经过构建和回归测试，也用真实 API 服务验证房间、组队、重连与状态清理。发布后通过日志、监控和客户端诊断继续检查。

### 规则与公平

游戏规则由服务端判断。反作弊持续处理行为检测与跨客户端兼容问题；匹配调整结合对局记录、等待情况和玩家反馈进行验证。

-   [Ghosty](https://github.com/EaseCation/Ghosty)
    
    服务端记录与回放
    
-   [GhostyPaperRecorder](https://github.com/EaseCation/GhostyPaperRecorder)
    
    Paper PvP 记录适配
    
-   [NeoForgeReplay](https://github.com/EaseCation/NeoForgeReplay)
    
    NeoForge 回放移植
    

## 更多公开项目

公开仓库包含自研工具和基于上游项目维护的分支。以下项目补充模型处理、远景数据、服务器查询与内容制作能力。

-   ### [CubeConverter](https://github.com/EaseCation/CubeConverter)
    
    读取与转换 Java、基岩版模型。
    
-   ### [bedrock-addon-parser](https://github.com/EaseCation/bedrock-addon-parser)
    
    解析多版本 Addon 定义，提供统一数据结构。
    
-   ### [DistantHorizonsSupport](https://github.com/EaseCation/DistantHorizonsSupport)
    
    维护远景插件分支，增加世界注册与 LOD 数据导入导出接口。
    
-   ### [cube-3d-text](https://github.com/EaseCation/cube-3d-text)
    
    在浏览器中制作多语言方块文字与模型。
    
-   ### [mcget](https://github.com/EaseCation/mcget)
    
    查询 Java 与基岩版服务器状态的库和命令行工具。
    
-   ### [ReplayStudio](https://github.com/EaseCation/ReplayStudio)
    
    维护 Minecraft 回放文件处理库分支。
    

[NBS 曲库](https://nbs.easecation.net/)

试听与处理音符盒音乐，获取游戏导入码。配套音乐播放机计划上架网易组件市场。

[浏览 EaseCation GitHub](https://github.com/EaseCation)

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "Organization",
        "@id": "https://www.easecation.net/#company",
        "name": "宁波易什网络科技有限公司",
        "legalName": "宁波易什网络科技有限公司",
        "foundingDate": "2022-11-02",
        "url": "https://www.easecation.net/team",
        "brand": {
          "@id": "https://www.easecation.net/#brand"
        },
        "sameAs": [
          "https://www.linkedin.com/company/esh-group-cn/"
        ],
        "contactPoint": {
          "@type": "ContactPoint",
          "contactType": "business inquiries",
          "email": "Junxuan.Bao@easecation.net",
          "url": "https://www.easecation.net/team"
        }
      },
      {
        "@type": "Brand",
        "@id": "https://www.easecation.net/#brand",
        "name": "EaseCation",
        "url": "https://www.easecation.net/",
        "logo": "https://static.easecation.net/website/media/objects/eafbe77dd861d3184a5d2b3c28e1ea1b07fc30ac9f6cd4fa8158d2465568a61d.png",
        "sameAs": [
          "https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=Mzk0NjQyNDE1Mw==",
          "https://space.bilibili.com/382198016",
          "https://www.douyin.com/user/MS4wLjABAAAA1Y2bQJJvvGC8cG78cI04qnPP78ygeFWn9qACeQ-LTLY",
          "https://www.xiaohongshu.com/user/profile/683824fe000000001b0195d2",
          "https://pd.qq.com/s/fyin4tuq9",
          "https://github.com/EaseCation",
          "https://wiki.easecation.net/"
        ]
      },
      {
        "@type": "WebSite",
        "@id": "https://www.easecation.net/#website",
        "name": "EaseCation",
        "url": "https://www.easecation.net/",
        "inLanguage": [
          "zh-Hans",
          "en"
        ],
        "publisher": {
          "@id": "https://www.easecation.net/#company"
        },
        "about": {
          "@id": "https://www.easecation.net/#brand"
        }
      },
      {
        "@type": "WebPage",
        "@id": "https://www.easecation.net/technology/minecraft#webpage",
        "url": "https://www.easecation.net/technology/minecraft",
        "name": "Minecraft 游戏技术 | EaseCation",
        "description": "了解 EaseCation 的服务端集群、Java 与基岩版适配、开发工具和回放系统，以及相关公开项目。",
        "inLanguage": "zh-Hans",
        "isPartOf": {
          "@id": "https://www.easecation.net/#website"
        },
        "about": {
          "@id": "https://www.easecation.net/#brand"
        },
        "breadcrumb": {
          "@id": "https://www.easecation.net/technology/minecraft#breadcrumb"
        },
        "primaryImageOfPage": {
          "@type": "ImageObject",
          "url": "https://static.easecation.net/website/media/objects/1d867f6ce45694a86cf31df5caed1d2f3ec6612a96631430cbd65eda01df507c.jpg",
          "width": 1200,
          "height": 630
        }
      },
      {
        "@type": "BreadcrumbList",
        "@id": "https://www.easecation.net/technology/minecraft#breadcrumb",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "EaseCation",
            "item": "https://www.easecation.net/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "技术与开源",
            "item": "https://www.easecation.net/technology"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "Minecraft 游戏技术 | EaseCation",
            "item": "https://www.easecation.net/technology/minecraft"
          }
        ]
      }
    ]
  }
]
```
