Skip to content

wangwei-ying3/ming-salvage-sim

Repository files navigation

明末力挽狂澜

明末力挽狂澜主页

你是崇祯。

你知道十七年后北京城破,知道煤山那棵树在等你,也知道大明不是死于某一个敌人,而是死于国库空虚、辽东失血、流民四起、党争内耗、官僚敷衍、军队欠饷和一次次“朕已知悉”之后的无力。

但这一次,你可以亲自召见每一个人。

问户部银子去哪了,问兵部边军为什么又欠饷,问司礼监宫里谁在递话,问锦衣卫地方官到底有没有瞒灾。你可以下旨、任免、追责、赈灾、练兵、加税、清丈、议和、开战。大臣会给你建议,也会推诿、隐瞒、站队、阳奉阴违。你以为自己写下的是圣旨,真正落到地方时,可能已经变成另一件事。

这不是一款“选择 A/B/C”的历史问答游戏,而是一场围绕晚明国家机器的对话式政略模拟:你说什么、信谁、逼谁、放过谁,都会变成下一月的财政、军情、民变和朝局。

这里没有开局送神兵、没有天降忠臣、没有科技树一键升级、没有一键中兴。你能依靠的只有局势条、奏报、大臣嘴里的半真半假,以及自己的脑洞:怎么借力打力,怎么拆东墙补西墙,怎么把一句话说成一道能落地的旨。

为什么值得试

优点 说明
自定义 API Key,低成本长线游玩 最推荐 deepseek-v4-flash。配合强提示词优化和 DeepSeek 一类高缓存命中的模型服务,实测目标是 85%+ 缓存命中,打到终局 300 回合成本不到 10 元。
数值有落点,局势有推进 国库、内库、民心、皇威,加上各省民变、士绅阻力、军队欠饷、外部势力都会持续变化。它不是纯聊天游戏,而是每句话都要落回国家机器。
没有金手指科技树 不靠点亮科技树直接变强,也没有万能改革按钮。局势怎么推、资源怎么挪、人怎么用,全靠玩家自己拆局。
圆一个“自定义 P 社游戏”的梦 人物、事件、地区、军队、外部势力和提示词都能继续扩写。想把晚明改造成什么样,可以自己动手。

快速开始

环境要求:

  • Python 3.11+
  • Node.js 20+
  • 一个可用于 AI 对话的 API Key
git clone https://github.com/wangwei-ying3/ming-salvage-sim.git
cd ming-salvage-sim

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt

cd web
npm install
npm run build
cd ..

cp .env.example .env

编辑 .env,至少填入:

OPENAI_API_KEY=your_api_key_here
OPENAI_BASE_URL=https://api.deepseek.com
OPENAI_MODEL=deepseek-v4-flash

启动网页游戏:

set -a
source .env
set +a
python3 -m uvicorn web_app:app --host 127.0.0.1 --port 8010

打开 http://127.0.0.1:8010

也可以跑纯文本版本:

set -a
source .env
set +a
python3 main.py

怎么玩

每一回合是一个月。

月初,你会看到上月发生了什么:收了多少税,花了多少饷,哪里闹灾,谁在办差,哪道旨意被执行成了什么样。

然后你开始召见大臣。你可以直接问,也可以试探,可以让他拟旨,可以要求查账、查军、查地方、查宫里。不同职位、不同人物、不同派系能告诉你的东西不一样,也会有不同的私心。

召见大臣

局势是你判断国家还能撑多久的核心依据。国库见底,说明再漂亮的改革也可能没钱执行;皇威太低,说明圣旨出了紫禁城就会被打折;某省动乱升高,说明地方已经不只是穷,而是在准备掀桌。比如你想给辽东补饷,钱可以从内库挪、从盐税借、从江南加派、从宗室禄米里抠,但每一种做法都会牵动不同盘面:边军欠饷可能补上,民心可能下滑,地方士绅阻力可能被点燃,灾区民变也可能更难压。

每条在办局势都可以指定一名承办人。承办人不直接给进度条加固定点数,而是像帝国修正一样,给本月“基准进度”一个带符号百分比修正。

承办修正% = clamp(
  (能力 - 50) × 1.6%
  + (忠诚 - 50) × 0.6%
  + (清廉 - 50) × 0.5%
  + (胆略 - 50) × 0.4%,
  -80%, 80%
)

若基准进度 >= 0:
  最终进度变化 = round(基准进度 × (1 + 承办修正% / 100))

若基准进度 < 0:
  最终进度变化 = round(基准进度 × (1 - 承办修正% / 100))

50 是无修正基准;高于 50 的属性给正百分比,低于 50 的属性给负百分比。能力是最重的基数,忠诚、清廉、胆略分别影响奉旨程度、贪墨折损和临事敢断。这个公式与帝国修正一致:正修正在正向月份放大成果,在负向月份缩小损失;负修正则会压低成果、放大损失。没有承办人的事项也不会静止,通常会因为责任无着而轻微恶化。

等你整理好本月诏令,颁诏,时间推进一个月。系统会结算圣旨执行、财政流动、朝局变化、地区变化、军队变化和外部势力动向。你的判断会让大明续命,也可能让局势更快崩坏。

后宫也是一条可经营的线。你可以下旨选妃,司礼监会从预设的秀女池里遴选几名呈上御览,附性情与才艺;你看中谁,再降诏册封她入宫。入宫之后召见妃嫔,除了闲话家常,还能调教——明确要她学一门技艺、改一种性子,都会写进她的永久记忆,往后召见便见变化。

进度随时存档,可多周目重开。

游戏菜单与存档

想做成什么

  • 一个可以长期游玩的晚明皇帝模拟器,不只是“活到 1644”,而是让每条改革路线都有代价和回声。
  • 一个真正围绕官僚系统运转的政略游戏:圣旨不是按钮,执行才是战场。
  • 一个会记仇、会惯性、会自我恶化的国家机器:欠饷会拖垮军心,苛派会逼出民变,党争会吞掉改革。
  • 一个半开放的历史沙盘:皇太极、流寇、灾荒、边镇、宗室、士绅、宦官、东林、阉党都会动,但不必完全照着历史死去。
  • 一个没有金手指的脑洞实验场:没有标准答案,只有你能不能把有限资源、人物关系和局势压力玩出一条活路。
  • 一个适合魔改的内容框架:人物、事件、地区、军队、外部势力、提示词都可以继续扩写。

TODO

  • 更多历史人物和地方官,让朝廷不只是几个熟脸轮流上朝。
  • 更完整的结局线:中兴、南迁、议和、迁都、辽东崩盘、流寇入京、权臣架空等。
  • 更强的派系系统:结党、弹劾、清流名望、内廷干政、地方保护网。
  • 更丰富的诏令类型:清丈、考成、募兵、裁撤、改饷、海贸、开矿、赈济、特务调查。
  • 更清晰的新手引导,让第一次当皇帝的人少一点“朕是谁,朕在哪,朕的钱呢”。
  • 存档管理、多周目统计和关键历史节点回顾。
  • 前端体验继续打磨,包括地图交互、奏疏阅读、人物关系和月末报告。
  • 更多自动游玩和平衡性测试,避免某一条路线数值飞天或早早崩盘。

已实现

模块 功能 亮点
核心玩法 月度回合制 一回合一个月,月初读奏报、召见、下旨,月末结算时局
大臣召见 内阁/六部/宦官/将领/地方官/密探,各有立场私心,可问可试探可让其拟旨
诏令流程 对话中形成草案 → 编辑/删除/批准 → 颁诏结算
执行偏差 圣旨不一定按原意落地——钱不够、皇威低、派系作梗都会让结果走样
密令暗查 皇帝绕开朝堂下密令给某臣(如锦衣卫、司礼监)暗中查办,按月推进,办结后查得的实证可在拟诏时引为定罪铁证;可催办、设期限
AI 驱动 月末邸报 每回合生成一份明代邸报笔法的月末奏章,按章叙时局与圣旨回响
事项推进 改革与危机立为可追踪事项,每月按惯性漂移,皇帝行动可加速/扭转/改变难度
事件记忆 每回合结算后自动提炼记忆卡(人物/地区/朝廷/外部势力),大臣下次召见时会读取旧事,让对话前后贯通;记忆按重要度自动衰减(importance 1–4设TTL,5永久保留)
推演记忆注入 结算前专用 agent 从诏书提取实体词,按 tags 召回相关历史记忆注入月末推演与打分,使邸报叙事前后贯通、档房定档更准
大臣时间回忆 大臣可按年月追溯历史旧事(绕过衰减),结合关键词合并去重,皇帝追问旧事时有据可查
人物系统 吏部铨选 点名起用名册外的史实官员,吏部尚书凭资历裁断后即刻补入朝堂
人物状态 在朝/罢黜/下狱/流放/致仕/身故;名臣按史实年月自动登场与离场
据实奏对 大臣被问他人现职近况,须查在朝名册据实回奏,不再凭史实记忆乱报官职;朝堂名册按官品高低排序
后宫系统 选妃 下旨选妃,司礼监从秀女池遴选数名呈上性情才艺,看中者降诏册封入宫
调教 召见时要妃嫔学技艺或改性子,写入永久记忆,下次召见性情随之变化
网页后宫面板 浏览在册妃嫔、查看选妃候选、册封入宫,一键重开新局
自定义立绘 妃嫔卡片可上传本机图片作专属立绘,存档级保存,重启后自动复用
经济系统 省级财政模型 田赋/辽饷/盐税/商税分税源月结;腐败与民变压低解运比,皇威低则地方截留辽饷
月度收支结算 各省税银汇总入国库,按九边补给/官俸/工程/赈灾/军饷优先级逐项支出;内库可挪用救急
钱粮流水 每笔收支按科目落账,月末逐条复盘谁进多少、花多少、欠多少
世界盘面 两京十三省 人口/民心/动乱/天灾/人祸/田亩/隐田/税收/粮食/士绅阻力/军事压力
军队系统 人数/维护费/补给/士气/训练/装备/欠饷/机动/忠诚/状态
建筑系统 御窑厂/边堡/仓储/工坊/河工,等级状态维护产出按月落账,新建须立项推进
外部势力 后金/清、八旗、蒙古、朝鲜、流寇按月变化
历史锚点 皇太极继汗位、己巳之变、称帝等节点进推演,玩家可改走向
平台 网页版 HUD 一整张古风底图为台面:中央透视地形图(两京十三省与建筑标记)+ 透视朝班(大臣立绘按坑位排列,可拖动归位);顶栏国库/内库/民心/皇威,左栏局势进度条,右侧部院导航(吏/省/兵/户/工/礼/后宫/目标),底部木牌命令区(奏疏/邸报详明/密令/史册/拟诏)
纯文本 CLI 快速调试跑局
本地存档 状态存本机 data/ming_sim.db,可多周目重开
内容外置 人物/事件/地区/军队/外部势力/提示词集中放 content/,方便魔改扩写

国家指标:国库、内库(钱粮整数,单位万两)+ 民心、皇威(0-100 量表)。地方动乱、士绅阻力、军队欠饷等落在各省 / 各军队字段与外部势力盘面上。

配置

复制 .env.example.env 后填写配置。

变量 必填 默认值 说明
OPENAI_API_KEY API Key
OPENAI_BASE_URL https://api.openai.com/v1 API 地址,推荐 https://api.deepseek.com
OPENAI_MODEL gpt-4o-mini 模型名,推荐 deepseek-v4-flash
MING_SIM_DB data/ming_sim.db 存档数据库路径
MING_SIM_SEED 7 随机种子
MING_SIM_START_YM 新存档起始年月,如 1629.04
CLI_API_KEY 回退 OPENAI_API_KEY CLI 单独 API Key
CLI_BASE_URL 回退 OPENAI_BASE_URL CLI 单独 API 地址
CLI_MODEL 回退 OPENAI_MODEL CLI 单独模型名

目录

.
├── main.py                  # 纯文本入口
├── web_app.py               # 网页入口
├── ming_sim/                # 游戏规则、结算、存档、角色对话
├── content/                 # 人物、事件、地区、军队、外部势力、提示词
├── web/                     # 网页界面
├── docs/                    # 设定和开发文档
├── scripts/                 # 自动跑局与平衡性测试
├── requirements.txt         # Python 依赖
└── .env.example             # 配置模板

更多设定见 docs/setting-outline.md,模块拆分见 docs/system-modules.md

About

大明力挽狂澜之重生之我是崇祯(P社策略+LLM自定义)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors