技术总览

Minecraft 游戏技术

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

EaseCation 起床战争主题插画,包含玩家、建筑和床
起床战争 · 玩法主题插画

服务端与集群

代理处理登录与连接,集群控制服务分配房间,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尚未开源,计划开放

  1. 感知

    发现敌人,记录装备与床的威胁

  2. 行为决策

    行为树与效用评分选择行动

  3. 移动执行

    异步 A* 寻路,执行跳跃、搭路与破障

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

跨版本体验

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

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

  1. 基岩版服务端

    玩法、实体与资源

  2. ViaProxy + ViaBedrock

    转换协议并传递扩展数据

  3. Java 客户端与扩展

    显示模型、界面与动画

Java 资源适配基岩版客户端

  1. ItemsAdder

    美术与配置源文件

  2. 转换工具 + Geyser 映射

    生成基岩模型与资源包

  3. 基岩版客户端

    使用自定义方块与物品

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

模型与动画

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

界面与交互

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

光照与配置

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

资源与地图

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

ViaBedrock · 查看协议适配分支

开发与内容制作

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

mcpywrap:开发、运行与调试

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

  1. 管理依赖

    复用代码与资源

  2. 构建打包

    生成 Addon 或地图包

  3. 运行游戏

    启动独立测试实例

  4. 检查与调试

    日志、运行时检查与热更

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

Windows 与 Apple Silicon macOS

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

界面与文字

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

镜头与场景

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

剧情与关卡

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

记录、验证与持续维护

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

回放与复核

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

测试与发布

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

规则与公平

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

更多公开项目

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

  • CubeConverter

    读取与转换 Java、基岩版模型。

  • bedrock-addon-parser

    解析多版本 Addon 定义,提供统一数据结构。

  • DistantHorizonsSupport

    维护远景插件分支,增加世界注册与 LOD 数据导入导出接口。

  • cube-3d-text

    在浏览器中制作多语言方块文字与模型。

  • mcget

    查询 Java 与基岩版服务器状态的库和命令行工具。

  • ReplayStudio

    维护 Minecraft 回放文件处理库分支。

NBS 曲库

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

浏览 EaseCation GitHub