Skip to content

Repository files navigation

AI太空争霸

由 7 个性格各异的 AI 帝国自动推进的太空策略争霸赛。AI 完全自主决策——扩张、侦察、结盟、背叛、研发、调兵和开战——直到场上只剩最后一个存活帝国。你坐在最佳观战席上,实时观察这场持续演变的宇宙史诗。

English Version

ab59b35bec2b3f627e4796e33e4863ff

目录


七位 AI 统治者

每个 AI 有独立人格,影响其战略偏好、科技选择和外交倾向。

编号 名称 性格 标志色 策略倾向
1 征服者卡拉克斯 强攻型 🔴 武力扩张优先,主动寻找攻击机会,很少防守
2 守护者艾莉娅 防御型 🔵 稳住边疆优先,避免冒险,长期发展
3 商人维克多 经营型 🟢 前期疯狂发展经济,后期爆兵
4 科学家泽塔 科研型 🟣 快速科研,用科技碾压对手
5 外交官索菲亚 外交型 🟡 合纵连横,频繁结盟和背叛
6 猎手雷克斯 机会型 🔷 专挑薄弱点下手,喜欢收割残局
7 赌徒凯恩 豪赌型 🟠 孤注一掷,打法最难预测

每个 AI 有四项特质值(0~1):aggression(攻击性)、economy(经济倾向)、tech(科研倾向)、diplomacy(外交倾向),这些值会影响 AI 的决策偏好但不强制其行为。


地图系统

基本参数

  • 地图尺寸:2200×2200 坐标单位
  • 星球总数:约 84 颗(因地图模板而异)
  • 7 个母星:每个 AI 的起始星球,均匀分布在距中心约 390 单位的环上
  • 中央资源环:4~6 颗超级资源星,位于中心 150 单位半径内,是全图最高价值区域

星球类型

类型 数量 金属/秒 能源/秒 人口/秒 初始防御
母星 7 5 3 0.2 200
资源星 ~21+ 3 2 0.1 50
普通星 ~50+ 1 1 0.05 25~45

母星初始就拥有全部 5 种建筑各 1 级(矿场、能源站、船坞、防御炮台、研究中心),确保 AI 可以立即开始造船和科研。

战略角色

每颗星球有一个战略角色标签:

角色 说明
home_core 母星核心
central_hub 中央枢纽(超级资源星)
approach_gate 前线门扉(母星与中央之间的跳点)
core_relay 中央跳点(中央环外围的中继站)
border_bastion 边境关口
inner_resource 内环资源星
frontier_resource 边境资源星
outer_relay 外环中继

地图模板

每局随机选择一种模板,影响中央环布局和航道格局:

模板 特点
标准环形 中央资源环完整,主航道均衡
双核心 中央分裂成双核心簇,掌握两翼跳点者左右全局
断裂中央 中央航道存在断口,侧翼穿插更有价值
外环富集 外环更富饶,适合先做大再压中央

战区特性

地图分为 7 个外环战区 + 1 个中央资源环,每个外环战区随机分配一种特性:

特性 效果
锻炉带 金属+28%,船坞+1
学园漂带 能源+18%,研究中心+1,传感范围+30
壁垒弧 防御+80,稳定度增速+0.05
中继网 维修率+0.00004,维护减免+6%
远征边疆 人口+18%,前线价值+1
信号巢 传感范围+55,情报保鲜+35%
贸易风带 能源+12%,人口+10%,中继价值+1

特殊节点

部分星球拥有特殊节点类型,提供额外加成:

节点 加成
工业星 金属+22%,船坞+1
科研星 能源+10%,研究中心+1
要塞星 防御+160,稳定度增速+0.08
补给星 维修率+0.00005,维护减免+8%,船坞+1
监听星 传感范围+70,情报保鲜+45%
居住穹顶 人口+22%

航道拓扑

航道等级

等级 名称 速度倍率 战略权重 说明
trunk 中枢主航道 ×1.32 1.0 连接中央环跳点的核心干线
corridor 战略走廊 ×1.18 0.84 母星到前线门扉、前线到中央的推进线
frontier 边境航道 ×1.08 0.68 连接边境关口和侧翼
relay 外环中继 ×1.02 0.54 外环绕行线

深空跃迁

不在航道上的移动走深空跃迁,速度惩罚:

  • 区域内深空:×0.92
  • 跨区深空:×0.78

航道控制态势

航道两端星球的归属决定航道状态:

状态 条件 效果
已控 (secured) 两端同属一方,无敌方来袭 速度 +8%
受压 (pressured) 两端同属一方,但有敌方来袭 速度 -4%
争夺 (contested) 两端分属不同势力 速度 -10%
敌控 两端均被同一敌方控制 速度 -14%
中立 两端均为无主 无加成

资源系统

三大资源

资源 用途 获取方式
金属 建造建筑、造船 星球产出
能源 维持舰队后勤、持续消耗科研 星球产出
人口 决定舰队容量上限 自然增长

产出公式

每秒产出 = 基础产出 × (1 + 建筑等级 × 0.2) × (1 + 科技加成 + 节点加成) × 占领乘数 × 0.88
  • 基础产出:由星球类型决定(见上表)
  • 建筑加成:每级矿场/能源站 +20%
  • 科技加成:采矿效率/能源技术/人口增长,每级 +15%~+20%
  • 节点加成:战区特性和特殊节点的额外百分比
  • 占领乘数:稳控中的星球产出为 0.35~1.0(随稳定度线性增长)
  • 全局系数:0.88(整体节奏调节)

资源上限

  • 基础上限:50,000
  • 每级建筑:+10,000
  • 人口上限由建筑总等级决定

建筑系统

建筑 效果 金属 能源 基础时间
矿场 (mine) 金属产出 +20%/级 500 200 36 分钟
能源站 (powerPlant) 能源产出 +20%/级 400 300 36 分钟
船坞 (shipyard) 造船速度 +50%/级 800 400 72 分钟
防御炮台 (defense) 防御值 +100/级 600 500 54 分钟
研究中心 (lab) 科研速度 +30%/级 1000 800 144 分钟

规则

  • 每个星球同时只能建造 1 个建筑
  • 最高 5 级
  • 升级成本 = 基础成本 × (当前等级 + 1)
  • 升级时间 = 基础时间 × (当前等级 + 1)

舰队系统

舰船类型

舰船 攻击 防御 速度 人口占用 金属 能源 建造时间 维护/秒
侦察船 (scout) 5 10 10 1 100 50 6 分钟 0.1
护卫舰 (frigate) 20 30 5 3 300 150 18 分钟 0.3
巡洋舰 (cruiser) 60 80 3 8 800 400 54 分钟 0.8
战列舰 (battleship) 150 200 2 20 2000 1000 144 分钟 2.0

人口机制

  • 每个帝国的人口总量 = 所有星球人口之和
  • 已用人口 = 所有舰船的人口占用之和 + 造船队列中的人口占用
  • 可用人口 = 总人口 - 已用人口
  • 当可用人口不足时,不能继续造船(即使资源充足)

造船规则

  • 造船在星球的造船队列中排队
  • 船坞等级越高,造船速度越快
  • 造好的舰船自动加入该星球轨道上的闲置舰队
  • 如果该位置没有闲置舰队,自动创建一个新舰队

补给与战备

补给状态

舰队的补给状态取决于当前位置和移动状态:

状态 标签 维护倍率 战备变化/秒
本土补给 停泊在己方星球 ×0.82 +0.00012
补给枢纽 停泊在己方补给星 ×0.62 +0.00012
主航道补给 沿高速航道移动 ×0.98 +0.00003
航道机动 沿普通航道移动 ×1.08 -0.00002
前哨驻留 停泊在中立星球 ×1.12 -0.00004
进攻远征 向敌方移动/停泊在敌方 ×1.32 -0.00008
深空远征 深空跃迁 ×1.55 -0.00012

战备 (Readiness)

  • 范围:35% ~ 115%
  • 影响:战备直接乘入战斗攻防计算。100% = 正常战力,50% = 半战力
  • 恢复:在己方安全星球停泊时自动恢复,船坞等级越高恢复越快
  • 战斗损耗:每次战斗后战备下降
  • 低战备舰队不应继续强攻,应 redeploy 回后方整补

整补系统

当舰队在己方安全星球闲置且战备低于 98.5% 时,自动进入整补状态:

  • 整补速率取决于船坞等级、母星加成和科技
  • 整补完成后自动恢复为"可投入"状态
  • 前线有敌方来袭时整补速率降低

流亡舰队衰减

失去全部星球的舰队每 3 分钟损失 18% 的舰船,最终被完全清除。


战斗系统

触发条件

舰队到达敌方或中立星球时触发战斗。必须处于战争状态才能攻击(盟友/中立不可攻击)。

战力计算

攻击方

战力 = Σ(舰船数 × 攻击值) × (1 + 武器强化等级 × 0.1) × (1 + 攻城工程等级 × 0.12) × 姿态加成 × 战备 × 补给修正

防御方

战力 = (防御值 × (1 + 防御炮台等级 × 0.5) × 要塞化加成 × 稳控减益) + Σ(驻防舰队防御力 × 姿态 × 战备 × 补给 × 要塞加成) × 护盾加成

姿态加成

姿态 攻击倍率 防御倍率
均衡 (balanced) ×1.00 ×1.00
强攻 (assault) ×1.12 ×0.90
坚守 (hold) ×0.92 ×1.15
截击 (intercept) ×1.04 ×1.06
机动 (mobile) ×0.98 ×0.98

战斗结果(6 档)

攻防比 结果 攻方损失 守方损失 是否占领
≥ 3.0 碾压胜利 8% 100%
≥ 2.15 胜利 24% 100%
≥ 1.45 僵持 36% 78%
≥ 0.95 僵持 50% 58%
≥ 0.72 失利 72% 34%
< 0.72 失利 86% 18%
  • 战败的攻击方舰队会撤回出发星球
  • 守方驻防舰队也会按比例损失

占领与稳控

占领流程

  1. 舰队战胜后占领星球,进入稳控期
  2. 稳控期初始稳定度:
    • 夺取敌方星球:12%~72%(取决于攻城科技、后勤科技、舰队战备)
    • 殖民中立星球:42%~72%

稳控期影响

  • 产能打折:稳控期产出 = 基础产出 × (0.35 + 稳定度/100 × 0.65)
  • 防御打折:防御值 = 基础值 × (0.45 + 稳定度/100 × 0.55)
  • 稳定度越低,产能和防御越弱

稳控推进

稳定度每秒增长,增速取决于:

  • 基础增速
  • 驻防舰队战力
  • 防御炮台等级
  • 攻城工程/后勤网络科技
  • 母星加成
  • 前线压力(有敌方来袭时增速降低)

当稳定度达到 100% 时,稳控完成,星球恢复完整控制。


科技系统

10 项科技

科技 学派 效果 研究成本曲线
武器强化 (weaponUpgrade) 火力 攻击力 +10%/级 标准
护盾技术 (shieldTech) 韧性 防御力 +10%/级 标准
引擎升级 (engineUpgrade) 机动 航速 +20%/级 标准
采矿效率 (miningEfficiency) 经济 金属产出 +15%/级 标准
能源技术 (energyTech) 经济 能源产出 +15%/级 高能源
人口增长 (populationGrowth) 经济 人口容量 +20%/级 标准
后勤网络 (logisticsNetwork) 机动 维护降低、战备恢复加快、深空惩罚减轻 高能源
攻城工程 (siegeEngineering) 火力 攻防加成、占领稳定速度加快 重型
要塞化 (fortification) 韧性 星球防御与驻军韧性提升 重型
传感网络 (sensorNetwork) 情报 情报保鲜更久、传感范围扩大 高能源

研究规则

  • 每个 AI 同时只能研究 1 项科技
  • 需要至少 1 级研究中心
  • 研究速度 = 基础时间 / (1 + 研究中心总等级 × 0.3)
  • 研究持续消耗能源:能源不足时自动暂停,补能后恢复
  • 最高 5 级,每级成本和时间递增

成本递增

以标准曲线为例:

等级 金属 能源 时间
1→2 1,000 500 1 小时
2→3 2,000 1,000 2 小时
3→4 4,000 2,000 4 小时
4→5 8,000 4,000 8 小时
5→6 16,000 8,000 16 小时

外交系统

关系状态

状态 说明
中立 (neutral) 默认状态,不可攻击
盟友 (ally) 结盟,共享视野,不可互相攻击
贸易 (trade) 完成贸易后的关系提升
战争 (war) 可互相攻击

提案制外交

所有外交动作都通过提案流程:

  1. 发起方提出提案(结盟/停战/贸易)
  2. 提案在 30 分钟内等待对方回应
  3. 对方可接受或拒绝
  4. 超时未回应自动过期

结盟

  • 持续时间:2~8 小时
  • 效果:共享视野、不可互相攻击
  • 到期后自动恢复中立
  • 联盟可能因条约稳定度过低、危机等级过高、边境紧张度过高而提前破裂

宣战

  • 单方面可宣战
  • 宣战后 1 小时内不能停战
  • 对盟友宣战 = 背叛,信誉 -50
  • 对贸易伙伴宣战,信誉 -20

停战

  • 需要双方同意
  • 停战后 1 小时内不能再次宣战

贸易

  • 双方交换资源,AI 自主定价
  • 贸易立即生效,会提升双方关系

违约突袭 (Surprise Attack)

  • 可以在非战争状态下直接撕毁表面关系发起攻击
  • 严重声誉代价(盟友 -70,贸易 -38,中立 -24)
  • 适合背刺、抢先手或撕毁脆弱联盟

7 维关系模型

每对 AI 之间的关系由 7 个维度构成:

维度 范围 说明
信任 (trust) 0~100 高信任更易结盟和贸易
恐惧 (fear) 0~100 高恐惧可能导致求和或结盟
旧怨 (grievance) 0~100 背叛和战斗累积,难以消解
依赖 (dependency) 0~100 贸易和共同敌人提升依赖
边境紧张 (borderTension) 0~100 邻近星球越多、军事压力越大越紧张
条约稳定 (treatyStability) 0~100 盟友/贸易专属,低于 45 有破裂风险
危机等级 (crisisLevel) 5 档 平静→紧张→危机→濒裂→战争

信誉系统

  • 初始 50,范围 0~100
  • 背叛盟友 -50,遵守承诺 +10,援助盟友 +20
  • 信誉低的 AI 很难找到盟友

情报系统

信息迷雾

AI 不掌握全知视角。每个 AI 只能基于自己侦察到的信息做决策。

情报来源

  1. 己方星球:实时掌握全部信息
  2. 己方舰队:实时掌握己方舰队位置和状态
  3. 舰队到达:舰队到达某星球时更新该星球情报
  4. 传感网络:科技等级越高,从己方星球辐射的侦察范围越广
  5. 联盟共享:盟友之间共享全部星球和舰队情报

情报保鲜

情报会随时间过期:

  • 星球情报保鲜阈值 = 300 tick + 传感等级 × 120 + 战区情报保留加成
  • 舰队情报保鲜阈值 = 120 tick + 传感等级 × 60 + 战区情报保留加成
  • 过期情报标记为"过期"(stale),AI 决策时会考虑不确定性

佯攻欺骗

AI 可以发起佯攻假象 (feint assault)

  • 在对手的情报层中注入一支伪舰队
  • 伪舰队会显示为正在向目标星球移动
  • 不改变世界真相,只影响目标 AI 的判断
  • 持续 4~8 分钟,之后自动消散
  • 冷却 12 分钟
  • 需要消耗资源(能源 + 金属)

AI 决策系统

三层决策

层级 频率 内容
战略决策 每 15 分钟 发展策略、外交行动、长期目标、记忆更新
战术决策 每 5 分钟 资源分配、舰队调度、科技选择
事件响应 即时触发 被攻击、外交提案、侦察到敌军

记忆系统

层级 保存时间 内容
短期记忆 最近 1 小时 所有决策和事件
中期记忆 最近 6 小时 关键事件(战斗、外交变化、重大损失)
长期记忆 整局 敌人行为模式、成功/失败策略

调度器偏置

AI 调度器会在 AI 决策基础上自动补充:

  • 受威胁关键节点的防御建设
  • 低战备舰队的回撤整补
  • 中央环和咽喉节点的抢占
  • 零研究中心时强制建造研究中心
  • 外交提案的自动响应

开局

游戏启动后立即执行一轮完整的战略 + 战术决策,确保 AI 从一开始就有行动计划。


胜利与淘汰机制

  • 无固定结束时长:本局持续运行,直到只剩一个存活帝国
  • 淘汰条件:星球数 = 0 且 舰队数 = 0
  • 仅失去星球但保有舰队的 AI 仍然存活(流亡状态,会逐步衰减)
  • 最终存活的 AI 成为胜者

观战功能

地图

  • Canvas 实时渲染星图
  • 支持缩放、拖拽、小地图定位
  • 4 种图层:航线、名称、星区、态势
  • 舰队移动动画、战斗热点标记
  • 航道控制态势着色

信息面板(右侧抽屉)

面板 内容
概览 帝国态势、情报覆盖、战区风格、实时排名
焦点 点击星球查看控制、资源、驻防、来袭舰队、航道连接
外交 外交矩阵(7 维关系)、科技画像、提案列表
战区 机动舰队列表、结构化战报、前线热点
时间轴 事件筛选(战斗/外交/科研/情报/系统)、AI/星球/战区筛选
交互 提问 AI、下注

提问 AI

  • 随时向任意 AI 提问当前战略意图
  • 限流:每 5 分钟最多 3 次
  • AI 基于自己的记忆和当前状态回答

下注

  • 开局前 10 分钟可下注
  • 支持预测最终胜者或进入前三
  • 对局结束后自动结算

部署与运行

环境要求

  • Node.js 18+
  • npm
  • OpenAI 兼容聊天补全接口

安装

npm install

配置

复制 .env.example.env,至少配置:

API_BASE_URL=http://localhost:8000
API_KEY=your_api_key_here
API_MODEL=gpt-5.2
HOST=0.0.0.0
PORT=3000

可选参数:

参数 默认值 说明
TICK_RATE 1000 主循环间隔毫秒
STRATEGY_INTERVAL 900000 战略决策间隔(15 分钟)
TACTICAL_INTERVAL 300000 战术决策间隔(5 分钟)
SAVE_INTERVAL 300000 自动保存间隔(5 分钟)
DB_PATH ./data/game.db SQLite 数据库路径

启动

npm start          # 生产启动
npm run dev        # 开发模式(自动重载)
npm run smoke      # 最小回归验证

Linux 一键部署

bash deploy.sh

PM2 守护

pm2 start ecosystem.config.cjs
pm2 save
pm2 startup

访问

  • HTTP 页面:http://localhost:3000
  • WebSocket:ws://localhost:3000/ws

技术栈

  • 后端:Node.js + Express + WebSocket (ws)
  • 数据库:sql.js (SQLite 文件)
  • AI:OpenAI 兼容聊天补全接口
  • 前端:原生 HTML/CSS/JavaScript + Canvas
  • 进程管理:PM2

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages