• 游戏

Minecraft-CTF

三分钟的 Minecraft 夺旗对抗:穿过防线、躲开危险,把对方旗帜带回自己的半场。

Minecraft-CTF

简介

Minecraft-CTF 是一个开源的 Minecraft 夺旗插件。两队各守一边,越过中线夺取对方旗帜,再把它带回己方目标点;先交回八面旗帜,或在三分钟结束时得分领先的一方获胜。游戏不提供武器,玩家需要通过走位、近身抓捕与空手击退争取机会,同时应对感染、冲撞和地形带来的干扰。除了玩家组队对战,还可以选择机器人练习,并通过观战和录像回放分析每一次进攻。

项目缘起

夺旗的目标很直观,真正玩起来却需要不断取舍:是深入对方半场,还是留下保护旗帜?拿到旗之后,走近路冒险,还是绕开守方稳妥返回?项目希望把这些选择放进一个规则清楚、节奏紧凑的对抗环境。Minecraft 提供了可自定义的场地与直观的三维视角,让追逐、拦截和队友配合都能直接呈现在场上。机器人与录像功能则让玩家能够反复尝试不同策略,也为研究游戏 AI 提供具体的对局场景。

项目概览 —— 它怎么玩

  1. 玩家登记账号并加入分组后,在聊天栏发送匹配消息,选择每队人数、地图和对手;既可以匹配其他分组,也可以与内置机器人对战或进行无对手练习;

  2. 匹配成功后进入准备阶段,人数到齐、全员确认即可开局;两队从各自半场出发,靠近敌方旗帜自动拾取,再带回己方空着的金块目标点得分;

  3. 在己方半场贴近入侵者可以抓捕,在敌方半场则要躲开守方;途中还要避开蠹虫、感染玩家、哞菇和蜂蜜块。先交回八面旗帜,或三分钟结束时得分领先的一方获胜,同分则平局;

  4. 比赛全程逐刻录像,可在游戏内或浏览器中回放复盘;登录 Web 面板后,还可以用三维视角或俯视小地图实时查看自己参与的对局。

项目亮点

  1. 跨过中线,攻守互换

    在己方半场,你可以近身抓住入侵者;进入对方半场,就要小心被守方截住。没有武器可供争夺,空手攻击与击退则让追逐多了变化,进攻和防守都离不开走位。

  2. 六种机器人对手

    从基础寻路、跳跃冲刺到规避敌人、主动攻击,内置六种行为不同的机器人。可以先练习拿旗与回程,再尝试更复杂的对抗,也能通过源码了解它们的决策方式。

  3. 熟悉路线,也应对变化

    固定模式让旗帜与目标点按对称位置排列,随机模式则需要重新寻找目标。两种模式下,树木和蜂蜜块等元素都会重新随机生成,让每局的行进路线有所变化。

  4. 在浏览器里看清战局

    内置 Web 面板提供三维实时视角、俯视小地图和对局统计。登录后可以查看自己参与的比赛,既能近距离观察追逐,也能从全场视角看队员分布。

  5. 逐刻录像回放

    逐刻记录场内实体状态与方块变化,在游戏内或浏览器中重看对局;浏览器回放支持调整速度,方便检查失误发生的位置和时机。

  6. 环境也会改变战局

    蠹虫会使玩家感染并丢旗,感染还会在玩家之间传播;哞菇会追踪、冲撞附近的人,蜂蜜块则拖慢脚步。这些干扰不分队伍,运旗时需要同时留意对手与周围环境。

技术与方法

项目基于 Bukkit/Spigot 服务端开发,使用 Kotlin 与 TabooLib 框架编写,适配 Minecraft 1.21。每场比赛从模板世界复制生成独立竞技场,结束后自动卸载删除;旗帜与目标点可选择固定或随机布局,树木等环境元素随机生成。夺旗、抓捕、感染与计分由服务端处理。机器人使用 NMS 原生玩家实体,通过模拟移动和攻击输入参与对局,并触发相应的游戏规则。

插件内置 HTTP 服务器,使用 Three.js 提供三维观战与回放,使用 ECharts 展示统计数据。录像记录场内实体状态和方块变化,以自定义二进制格式存储并用 Zstd 压缩,供游戏内与浏览器回放使用。

BUILD IT. SHOW IT. SHARE IT.

想展示你的项目,
或想找人一起共创?

把项目介绍、仓库链接或共创想法发送到

公众号二维码
关注公众号
获取项目动态