原作引擎与数据证据
核查日期:2026年11月2日。本文是原作代码与一手资料的专项研究;推荐均为Agent候选,不是船长已确认的产品方案。
决定性结论:创业模拟器需要让玩家的行动改变后续可发生的事,并让承诺、人物和账目持续生效。人生重开说明,少量属性加大量条件事件可以制造人生差异;Reigns说明,事件必须随局势重新筛选并避免近期重复;青椒和崇祯说明,自由输入会把难题推进到跨回合状态维护。不能从“AI能续写”直接推导“AI能可靠结算公司”。
1.证据覆盖与版本边界
| 原作 | 本轮技术证据 | 实玩边界 |
|---|---|---|
| 人生重开 | 作者仓库历史与当前提交;逐ID统计原始数据表;读取事件、属性、天赋、存档代码 | 主任务已完整2局;未覆盖修仙等全部分支。本专项未另外实玩 |
| 青椒Plus | 原团队官网指向的线上页面及公开发布的前端JS;团队独立开源引擎KAL | 主任务本地模式到第4年Q2;未结局、未付费AI模式 |
| 80亿分之1 | 唯一官网的规则、数据来源、存档说明 | 主任务完整1局,未重玩;本专项未读取其内部引擎 |
| 历史模拟器:崇祯 | 青干Steam App4304230的官方商店API及官方更新公告 | 未安装、未实玩;不与App5121940同名Demo合并 |
| A Dark Room | 作者组织公开源码,锁定提交 | 本轮未实玩;只讨论网页源码,不外推iOS版本 |
| Reigns | 创作者François Alliot署名技术文章 | 本轮未实玩;作者2016年披露,不冒充2026年完整源码 |
AI Dungeon另作一条记忆系统技术补证,不充当新增实玩案例。未查到公开代码不等于确定闭源;只表示本轮没有获得可用的开源证据。
2.人生重开:内容不是随机拼句,是条件化的数据系统
2.1版本与实际规模
原地址VickScarlet/lifeRestart现重定向至作者的VickScarlet/remake。核查两份不可变提交:
| 代码快照 | 提交日期(UTC) | 技术形态 | 事件ID | 天赋ID | 成就ID |
|---|---|---|---|---|---|
39388c6eaf1df9b643535ddd270650a678799a70 | 2025-09-24 09:46:20 | JavaScript、Laya界面,src/modules与data/zh-cn | 1720 | 184 | 165 |
d20aa815cf2f92d489302e64ae13ba39d3d17d63 | 2026-11-01 03:15:31 | TypeScript工作区;React、Jotai、Vite;独立core/condition/data包 | 1720 | 184 | 165 |
计数口径:读取对应提交中文数据表第1张工作表,只保留首列为数字ID的记录,再校验ID去重;不计字段行、说明行和空行,不把翻译重复计作新内容。当前事件表有1768个XML行记录,直接减去2行表头会误算;实际1720个唯一事件ID。天赋184条不等于184条都能普通抽到;事件1720条也不等于玩家一局能看到1720个独立抉择。
当前快照与历史快照的内容计数相同,不证明每一条内容或执行语义完全相同。重构至少在2026年10月14日已有;11月1日只是本次最新提交日期。没有锁定实玩浏览器当时的部署哈希,因此不宣称以上某个提交就是两局体验的精确线上版本。
来源:作者仓库、历史提交、当前提交、旧中文数据目录、新数据目录。
2.2怎样从属性走到一年经历
旧版Life.next()的调用链可以直接复核:
- 年龄推进,从年龄表取得该年龄候选事件与天赋。
- 先检查并触发天赋,改变当前属性。
- 排除
NoRandom事件、命中exclude的事件,以及不满足include的事件。 - 对剩余候选按年龄表权重抽取事件。
- 记录事件ID,应用属性影响;如命中事件分支,继续执行后继事件。
- 检查死亡与这一阶段的成就。
这是一条自动推进的执行链;主要玩家控制在开局构筑。事件分支大多由状态条件决定,不能把它画成“每年给玩家三选一”。来源:旧Life.next与random、事件筛选和跳转。
| 数据结构 | 两份快照实数 | 意义 |
|---|---|---|
有非空include | 1539/1720 | 大量内容只有在属性或历史满足时才能进入候选 |
有非空exclude | 1475/1720 | 已发生事件、天赋和属性可以让某条内容退出 |
标记NoRandom | 152/1720 | 部分事件只能由其他路径触发 |
| 有至少一个分支的事件 | 230/1720 | 一个事件可继续导向条件链 |
| 条件分支边 | 319 | 统计全部非空branch[]单元格;不是319种结局 |
这些集合可重叠,不能相加。分支计数检查全部3列;只看首列会漏掉44条事件,误得186条。年龄表还会先限制事件集合,因此只看事件总数无法得到每岁的实际选择密度。
小数据示例取自原表,省略无关字段:
事件10011:出生在美国
include = (MNY>8)|(TLT?[1014])
exclude = TLT?[1010,1012]
它先检查排除条件;即使家境够高,命中排除天赋仍不能被这条随机路径抽到。MNY是家境数值,TLT是天赋集合,?检查是否包含,|表示或。条件语言还支持&、括号、数值比较及!集合排除。创业题材对应的实现可以是“融资寒冬且现金紧张,才进入降薪谈判事件;已经签下保底合同的公司排除某类断供事件”,无需让每条遭遇对所有玩家出现。
版本差异值得警惕:旧版Event.do()先判分支,再由Life.doEvent()应用效果;当前event.ts先应用本事件效果,再判分支。对于读写同一属性的事件,两者可能产生不同结果。这是源码差异,未做完整行为回归,不声称线上发生过相关问题。来源:旧事件模块、新事件模块。
2.3复玩、存档和结算
旧版代码记录本局发生过的事件、持有天赋、属性高低值;跨局记录包括重开次数、见过的内容、成就与继承天赋。天赋抽取还读取重开次数与成就数;成就并非纯展示。旧版使用localStorage,界面另提供JSON导入导出;不能把这里的跨局档案直接称作完整的逐年断点续玩。来源:属性与持久化、天赋抽取、导入导出界面。
实玩疑点已得到代码解释:旧版总结界面读取HINT而不是当前INT,总评亦使用各属性历史最高值。公式为floor(2×五项最高属性之和+最高年龄/2)。因此,过程中智力下降、结算仍展示曾经的高值,符合代码设计;这只能解释此现象,不能倒推已精确识别实玩部署版本。来源:总结界面、评分公式。
所检查的游戏核心无需运行时大模型;当前仓库标示MIT许可证。可学习其数据与执行器分离,但创业游戏若要让玩家持续做经营决策,应借用事件条件机制,不能直接照搬开局后围观的人生流程。许可来源:LICENSE。
3.青椒Plus:可以核实的前端与不能代推的后端
原团队Wortou官网明确链接到当前Plus版。本轮只读取得页面公开引用的前端主包index-rP3iX21f.js,340150字节;未登录、未调用付费接口。前端发布文件供浏览器执行,不等于作者授予开源复用许可。
可核验的实现:构建产物使用Vite及React模块;状态含年份、季度、阶段、教师属性、经费、职称、学生列表、论文、毕业与退学累计、项目、日志和事件队列。可见Math.random()用于部分本地抽取;本地状态经压缩编码写入localStorage,读取时有格式处理。未验证所有存档故障与恢复路径。
AI分工有明确接口边界:季度逻辑向/api/generate-quarter传当前状态,读取result与context,并记录服务返回的计费字段;也有/api/generate-persona。这证明前端存在按季度和人物生成的服务调用路径,不证明后端采用哪个模型、几次调用、怎样检查数值、怎样检索记忆。公开主包还含云存档接口和版本冲突处理,但本轮没有验证账号云同步。
发布包内的界面文字将本地模式描述为预设随机事件与学生模板。它与主任务观察到的招生、经费、学生压力和重复事件相容。本地模式体验只能评价这条路径,不能拿重复预设事件直接判AI增强内容失败。同样,也不能凭官网“响应每次决策”的宣传判AI模式已解决长期一致性。
团队另公开KAL,许可证为Apache-2.0。其README划分Session状态机、Flow工作流和Node执行节点;状态有类型与范围,LLM输出经过解析再写回,支持存档与调试。这是同团队通用框架的技术证据;本轮没有证据证明当前青椒线上使用了该版本KAL。不能用KAL的节点数量、自动保存能力或架构图补齐青椒未公开的后端。
对创业模拟器的取舍:教师/学生的稳定实体可对应创始人/合伙人/员工;季度服务边界可帮助分清固定结算与开放行动。但每季度一次生成本身不保证因果可信,必须验证输出如何落实到账目、合同和具体人物。技术栈可借鉴,不宜据此决定我们的框架。
4.80亿分之1:有统计约束的生命过程
唯一官网1in8b.life的官方说明披露:默认按172个国家和地区的出生数加权抽出生地,另一模式按人口;每年依据性别生命表抽死亡,选择改变概率。数据引用UN、WHO等,缺值存在估算。人生保存在浏览器,可用迁移码转移。作者用Claude辅助代码和文字,自己决定并检查内容;这不等于游戏每回合调用Claude。
已确认体验中人物会延续、限制会影响行动。但具体事件池、随机种子、公式校准、后端栈和开源许可均未取得证据,不补造。创业借鉴点是让出身、市场环境影响机会,并让人物与结果延续;宏观统计只能支撑约束,不能宣称预测个人创业成败。
5.崇祯:自由指令与持续服务,规则引擎仍未知
本轮成功读取Steam官方appdetails:success=true、is_free=true、开发者为青干工作室。商店页在本工具地区出现限制,因此使用官方结构化数据交叉核查。
当前收费必须纠正:顶部明确本体免费,游戏继续消耗模型积分,赠送用尽后购买积分或自接API。正文下方仍残留“本体买断+初始流量包”旧文案;本轮以当前免费字段与顶部说明描述现状,并保留冲突,不能把5月付费访谈当11月现价。
官方更新时序可以核查:5月28日自接API测试公告、6月9日API正式接入公告、10月官方新闻页说明MOD测试和编辑器。以上仅使用开发组公告正文/标题,不采用下方玩家评论来断言后端实现。
官方描述自由诏书和大模型推演,但本轮未取得状态schema、规则结算代码、随机策略、记忆算法、存档结构、完整技术栈或开源许可。也没有核实宣传中的内部测试统计。因此只能写“AI参与推演”,不能画出某个并不存在于证据里的‘多Agent世界引擎’。
对创业模拟器:自然语言指令允许“用联营代替融资”这类预设菜单难以容纳的行动。接下来必须把同意了什么、何时执行、影响哪个对象持久化;下一回合仍生效才构成经营体验。崇祯的当前收费证明持续推演有独立服务负担,不提供我们的真实每局成本数字。
6.A Dark Room:同一状态支持资源、事件与空间扩展
代码锁定作者组织提交1fada4620b6c66bd07bf15a3f1eb8223df8bc1d7,2025-05-23 15:33:06 UTC。网页是JavaScript/jQuery式模块结构,README指向原作;当前package里的Express仅用于开发服务器,不能据此声称线上后端是Express。仓库标示MPL-2.0。来源:仓库、package、许可证。
它把资源保存在统一State中,事件池由多个场所模块组合。触发时逐个调用isAvailable(),然后在可用事件中随机选取;无候选则延迟再检查。事件内又包含场景、按钮条件、成本、奖励、概率分支。比如商人要求玩家当前在房间且有毛皮;指南针购买项还检查是否已拥有。资源变化因此直接改变玩家能遇到的人和能做的动作。来源:事件执行器、房间事件。
engine.js把State序列化到localStorage.gameState,支持导入导出与旧存档迁移;世界模块使用随机生成与探索状态;prestige.js保留部分资源和成绩供再开流程使用。所检查模块没有运行时大模型。这些能力有源码证据;没有完成所有内容统计或试玩,不能据此评价移动版全部体验。来源:保存与迁移、世界、再开承接。
创业对应取舍:第一单客户、第一位员工、第一份持续合同应该逐步带出新动作。公司成长可改变操作空间,不必只增加一排数值或把后续全部写成新闻。
7.Reigns:让事件池随玩家的处境改变
创作者2016年署名技术说明解释:每次选择后,用王国全局状态重建可用卡池,去掉条件不符和最近出现的卡,再按权重抽取。战争期间相关卡权重突出,结束后退出;部分情节收缩成小卡组或确定链条。新人物还会永久增加卡牌,跨世代保留隐藏叙事。
作者提到最初50张卡,这是早期原型规模,不能当正式版总量。本文没有其源码、存档格式、随机种子或许可证据。创业借鉴很具体:一旦公司卷入融资谈判、供应危机或合伙人冲突,未来几轮应集中回应此事;近期重复应有冷却。其可借鉴性来自已披露的筛选机制,不需要把所有事件实时生成。
8.补证:AI Dungeon怎样处理长故事
官方记忆系统文档描述将旧行动分组摘要、存储向量,再按当前行动检索相关记忆;全局摘要与局部检索共同进入上下文。它同时明确历史编辑可能需手工修订摘要。官方故障说明承认上下文和模型限制会导致遗忘或混淆。
借鉴的是“长期事实不应靠整篇对话硬塞”的思路。钱、股权、合同和人事状态需要结构化记录;检索摘要负责把相关经过交给生成器,不能代替财务结算。本文未实玩AI Dungeon,也未核验当前后端部署。
9.对创业模拟器的五项具体取舍
以下是P3候选,用于让体验样件可检验,不自动升为正式架构或90天目标。
| 取舍 | 采用理由 | 应该拿什么样件验证 |
|---|---|---|
| 硬状态独立保存:现金、每期成本、合同、股权、角色关系、未兑现承诺 | 人生重开与A Dark Room证明内容能基于状态筛选;生成记忆不能保证账目连续 | 同一次性投入连续推进三轮,只扣一次;持续合同按周期生效;辞职的人不会再次出现在在职名单 |
| 条件事件+少量连续情节;加入近期冷却与事件后续标记 | Reigns公开机制与本轮原作重复观察都指向相关性和节奏 | 同样的融资选择改变后面两三轮的事件集合,旧冲突得到回应;避免靠随机文本造成假差异 |
| AI先识别开放行动并提出可执行结果;规则检查后再写入正式状态 | 青椒存在服务结果回写边界;崇祯证明自由指令是独立体验方向,但未证明结算可靠 | 玩家提出联营、预售或以股代薪时,能形成有对象、条件和期限的安排,并影响后续行动 |
| 记录随机种子、事件ID、状态差异与生成版本 | 属于本项目工程建议,不声称所有原作如此实现;用于复现和定位问题 | 同一存档与种子可以复现规则结果;AI输出变化时仍能追溯哪一步改变事实 |
| 结算给公司故事与关键转折,再给复玩理由 | 人生重开的成就/继承和80亿的个人经历提供不同承接方式 | 玩家能解释“我的公司为何走到这里”,且愿意试另一条经营路线;不能只靠更高总分 |
AI投入的验收线:去掉生成器后若仍有相同决策、关系与后果,AI主要增加了表达。只有开放行动被世界理解、兑现并带来新的后续可玩空间,才有证据说明它改善了游戏机制。这是需要用样件检验的判断,不是本轮已证明的产品成效。
10.仍未知,不能写进HTML当事实
- 青椒AI增强后端的模型、调用链、提示词、记忆、状态校验、真实每局成本与内容总量;是否使用公开KAL版本。
- 80亿的完整引擎、分布拟合方法、事件总量、随机种子与每个现实数据点的校准质量;AI辅助开发不等于运行时生成。
- 崇祯具体规则引擎、Agent数量、记忆、存档、数值校验、真实成本;本轮未实玩。
- 人生重开实玩时的精确部署哈希;1720事件等数据是两份源码快照的统计,不是2021首发内容量。
- Reigns正式版总卡数、源码与存档;A Dark Room移动版实现与网页仓的差异。
- 原作的源码结构、公开宣传和有限实玩都不能证明我们的留存、付费或自由创业点子模拟能力。
附:人生重开计数复核方法
必要文件仅三份小型xlsx,旧版约245KB,新版约254KB;无需克隆整个仓库或安装游戏。下载URL模板:https://raw.githubusercontent.com/VickScarlet/remake/{commit}/{path}。旧路径为data/zh-cn/events.xlsx、talents.xlsx、achievement.xlsx;新路径为packages/data/src/event.xlsx、talent.xlsx、achievement.xlsx。
下面函数只读取本地已取得文件,用标准库解析,不执行表格宏,不依赖额外包:
from zipfile import ZipFile
from xml.etree import ElementTree as ET
import re
def records(path):
ns = {'m': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'}
with ZipFile(path) as z:
ss = [''.join(x.itertext()) for x in ET.fromstring(z.read('xl/sharedStrings.xml'))]
root = ET.fromstring(z.read('xl/worksheets/sheet1.xml'))
rows = []
for row in root.findall('.//m:row', ns):
item = {}
for cell in row:
v = cell.find('m:v', ns)
text = '' if v is None else v.text
if cell.get('t') == 's':
text = ss[int(text)]
item[re.sub(r'\d', '', cell.get('r'))] = text
if str(item.get('A', '')).isdigit():
rows.append(item)
assert len(rows) == len({x['A'] for x in rows})
return rows
# 旧事件表:L=NoRandom,M=include,N=exclude,O/P/Q=branch[]
# 新事件表:M=NoRandom,N=include,O=exclude,P/Q/R=branch[]
# 例如:len(records('events.xlsx')) == 1720
本轮下载仅必要代码、数据与公开网页的小文件;未下载游戏客户端、模型、音视频或大型资产。中间只读缓存位于内部临时记录,永久研究输出只有本文。所有链接访问日均为2026年11月2日;上述暂存目录不作为长期交付依赖。